New issue
Advanced search Search tips

Issue 696570 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 669453



Sign in to add a comment

Update CrOS HarfBuzz to >= 1.4.2

Project Member Reported by drott@chromium.org, Feb 27 2017

Issue description

Required for  issue 669453 , OpenType variations, since the axis parametrization functions in HarfBuzz are starting to be available only from that version.

Jungshik, could you help with this? Thank you.
 

Comment 1 by drott@chromium.org, Feb 27 2017

Once this is fixed, we should remove the conditional compile introduced in https://codereview.chromium.org/2698043005

Comment 2 by drott@chromium.org, Feb 27 2017

Cc: drott@chromium.org

Comment 3 by behdad@google.com, Feb 27 2017

Please jump to 1.4.3

Comment 4 by js...@chromium.org, Mar 7 2017

It's updated to 1.4.2 before you filed this bug on Feb 25 :-)   
https://chromium-review.googlesource.com/c/444323/

I saw 1.4.3 released since. Can go up one more time. 



Comment 5 by js...@chromium.org, Mar 7 2017

Status: Fixed (was: Assigned)
Project Member

Comment 6 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ed7d4f727ec41f735788d6096dbe4b45f7f54279

commit ed7d4f727ec41f735788d6096dbe4b45f7f54279
Author: drott <drott@chromium.org>
Date: Tue Mar 28 16:58:06 2017

Remove HarfBuzz version specific compile conditional

BUG= 696570 
TBR=jshin

Review-Url: https://codereview.chromium.org/2735233004
Cr-Commit-Position: refs/heads/master@{#460137}

[modify] https://crrev.com/ed7d4f727ec41f735788d6096dbe4b45f7f54279/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzFace.cpp

Comment 7 by bashi@chromium.org, Mar 30 2017

Status: Available (was: Fixed)
This caused build failure on my environment. I'm using sdk veyron_speedy R59-9403.0.0. How can I fix this?

CXX obj/third_party/WebKi...ource/platform/platform/HarfBuzzFace.o
FAILED: obj/third_party/WebKit/Source/platform/platform/HarfBuzzFace.o 
/usr/local/google/home/bashi/chromium/.cros_cache/common/goma+2/gomacc armv7a-cros-linux-gnueabi-g++ -B/usr/local/google/home/bashi/chromium/.cros_cache/chrome-
sdk/tarballs/veyron_speedy+9186.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/arm
v7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold -MMD -MF obj/third_party/WebKit
/Source/platform/platform/HarfBuzzFace.o.d -DBLINK_PLATFORM_IMPLEMENTATION=1 -DINSIDE_BLINK -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSI
NG_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONS
TANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DOS_CHROMEOS -DNDEBUG -D
NVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DUSE_EGL -DSK_IGNORE_LINEONLY_AA_CONV
EX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DENABLE_LAYOUT_UNIT_IN_INLINE_BOXES=0 -DENABLE
_OILPAN=1 -DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1 -DWTF_USE_WEBAUDIO_FFMPEG=1
 -DWTF_USE_DEFAULT_RENDER_THEME=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 
-DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUSE_LIBJPEG_TURBO=1 -Igen/blink -I../../third_party/ffmpeg -I../.. -Igen -I../../third_party
/WebKit/Source/platform -I../../third_party/WebKit/Source -I../../third_party/WebKit -Igen/blink -Igen/third_party/WebKit -I../../third_party/khronos -I../../gp
u -I../../third_party/libwebp -I../../skia/config -I../../skia/ext -I../../third
_party/skia/include/c -I../../third_party/skia/include/config -I../../third_part
y/skia/include/core -I../../third_party/skia/include/effects -I../../third_party
/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/s
kia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/ski
a/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/i
nclude/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/g
pu -I../../third_party/skia/src/sksl -I../../third_party/libwebm/source -I../../
third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../
../third_party/boringssl/src/include -I/usr/local/google/home/bashi/chromium/.cr
os_cache/chrome-sdk/tarballs/veyron_speedy+9186.0.0+sysroot_chromeos-base_chrome
os-chrome.tar.xz/usr/include/nss -I/usr/local/google/home/bashi/chromium/.cros_c
ache/chrome-sdk/tarballs/veyron_speedy+9186.0.0+sysroot_chromeos-base_chromeos-c
hrome.tar.xz/usr/include/nspr -I../../third_party/icu/source/common -I../../thir
d_party/icu/source/i18n -I../../third_party/libjpeg_turbo -I../../third_party/ic
cjpeg -I../../third_party/libpng -I../../third_party/zlib -I../../third_party/ot
s/include -I../../v8/include -Igen/v8/include -I../../third_party/ced/src -I/usr
/local/google/home/bashi/chromium/.cros_cache/chrome-sdk/tarballs/veyron_speedy+
9186.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/harfbuzz -I/us
r/local/google/home/bashi/chromium/.cros_cache/chrome-sdk/tarballs/veyron_speedy
+9186.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/glib-2.0 -I/u
sr/local/google/home/bashi/chromium/.cros_cache/chrome-sdk/tarballs/veyron_speed
y+9186.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib/glib-2.0/include
 -I../../third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon -I../../thir
d_party/ffmpeg -fno-strict-aliasing -Wno-builtin-macro-redefined -D__DATE__= -D_
_TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binuti
ls/Linux_x64/Release/bin -march=armv7ve -mfloat-abi=hard -mtune=generic-armv7-a 
-pthread -mfpu=neon -mthumb -Wall -Werror -Wno-psabi -Wno-unused-local-typedefs 
-Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -
O2 -fno-ident -fdata-sections -ffunction-sections -g2 -gsplit-dwarf --sysroot=..
/../../.cros_cache/chrome-sdk/tarballs/veyron_speedy+9186.0.0+sysroot_chromeos-b
ase_chromeos-chrome.tar.xz -fvisibility=hidden -fvisibility-inlines-hidden -std=
gnu++11 -Wno-narrowing -Wno-literal-suffix -fno-rtti -fno-exceptions -pipe -mcpu
=cortex-a12 -mtune=cortex-a12 -mfpu=neon -mfloat-abi=hard -D__google_stl_debug_v
ector=1 -c ../../third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzFace.c
pp -o obj/third_party/WebKit/Source/platform/platform/HarfBuzzFace.o
../../third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzFace.cpp:385:27: 
error: 'hb_variation_t' was not declared in this scope
                  decltype(hb_variation_t::tag)>::value &&

Comment 8 by drott@chromium.org, Mar 30 2017

Any chance you can rebase/update your dependencies? I think CrOS master has the right HarfBuzz now. As a temporary solution, you can put the version specific #ifdef's in place again, but we cannot generally not work with older versions of HarfBuzz. Usually every roll means a bug fix or improvement.
same errors here.
Cc: e...@chromium.org
reverse this patch fixed the problem.

Comment 11 by bashi@chromium.org, Apr 11 2017

Cc: bashi@chromium.org
Labels: -Pri-3 Pri-1
drott@: Thanks for the reply and sorry for late response but how can I rebase/update? My workflow is:

$ git rebase-update && gclient sync
$ cros chrome-sdk --board=veyron_speedy
$ ninja -C out/Release chrome

This should update my environment and I'm currently on R59-9428.0.0 (was R59-9403.0.0) but the issue still exists.

I have been used custom #ifdef's as you suggested but after today's rebase the workaround doesn't work for some reason (my device hangs).

Probably this is an issue of ChromeOS build environment update? I'd really appreciate if someone (jshin@ ?) can address this issue.

Comment 12 by drott@chromium.org, Apr 11 2017

Unfortunately, I am not very familiar with dependency management on ChromeOS, jshin@ knows more.

Where can we look up the .emerge files for R59-9428? Can you check there what HarfBuzz version is built for his system image? If it's not >= 1.4.2, this should be backported from master. 

I don't really know how you would get hangs from this issue though. It either builds, or it doesn't. And if there are symbol availability issues at runtime, I would not expect Chrome to start up at all, it would crash at startup with missing symbols.


Comment 13 by bashi@chromium.org, Apr 11 2017

I'm not very familiar with ChromeOS too :( I have no idea where .emerge files are. Probably I should wait for jshin@ for his advice.

As for hangs it seems the root cause doesn't relate to this. Thanks for the clarification!

Comment 14 by bashi@chromium.org, Apr 11 2017

Status: Fixed (was: Available)
nya@ helped me to investigate the problem and he pointed out we need to run following command when I update sdk:

$ gn gen out_$SDK_BOARD/Release --args="$GN_ARGS"

This solved the problem.

Comment 15 by sque@chromium.org, Apr 11 2017

When do we no longer have to use a manual revert commit in order to build? I just synced my Chrome source and chrome-sdk (9428.0.0) and I still need to keep the revert commit on top of my checkout.

Comment 16 by bashi@chromium.org, Apr 12 2017

#15

Did you run `gn gen` as described in 
https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/building-chromium-browser#TOC-Additional-instructions ?

This should update your dependencies.

Comment 17 by wutao@chromium.org, Apr 19 2017

Cc: wutao@chromium.org
Thanks. This line in the link #16 is very important: "However, if you exit the session or sync/update chrome the $GN_ARGS might change and you need to 'gn gen' again."

Do we know how exactly run `gn gen` resolve the dependencies issue? Which flag was affected in args.gn?

Comment 18 by bashi@chromium.org, Apr 20 2017

If you look at out/Release/args.gn you will see some build flags are updated. For example,

cros_target_cxx = "armv7a-cros-linux-gnueabi-clang++ -B/work/chromium/.cros_cache/chrome-sdk/tarballs/veyron_speedy+9428.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/armv7a-cros-linux-gnueabi/binutils-bin/2.25.51-gold -Wno-unknown-warning-option"

The toolchain path is important.

Comment 19 by drott@chromium.org, Apr 20 2017

Thanks for helping with this issue, bashi@.

Comment 20 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 22 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment