Linux GN build won't link, harfbuzz problems?

204 views
Skip to first unread message

James Cook

unread,
Nov 3, 2014, 4:56:00 PM11/3/14
to chromium-dev
I can't get my Linux GN build to link. The bots are green, so I'm obviously doing something wrong. Any ideas?

(I have a ~/.gyp/include.gypi but GN shouldn't read that. I have run build/install-build-deps.sh. I'm on Trusty.)

jamescook@rubella2:/w/chrome/src$ git st
# HEAD detached at origin/master
nothing to commit, working directory clean

jamescook@rubella2:/w/chrome/src$ git co origin/master
HEAD is now at 5c5f7eb... Include version number with ClearKey and Widevine cdmadapters

jamescook@rubella2:/w/chrome/src$ git fetch
remote: Counting objects: 73807, done
remote: Finding sources: 100% (83/83)
remote: Total 83 (delta 71), reused 83 (delta 71)
Unpacking objects: 100% (83/83), done.
   5c5f7eb..03d8876  git-svn    -> origin/git-svn
   5c5f7eb..03d8876  master     -> origin/master

jamescook@rubella2:/w/chrome/src$ gclient sync
<spam>

jamescook@rubella2:/w/chrome/src$ cat out/Debug_gn/args.gn 
# Build arguments go here. Examples:
#   enable_doom_melon = true
#   crazy_something = "absolutely"
use_goma = true

jamescook@rubella2:/w/chrome/src$ gn gen out/Debug_gn
Done. Wrote 1617 targets from 533 files in 598ms

jamescook@rubella2:/w/chrome/src$ ninja -C out/Debug_gn -j 1000 chrome
ninja: Entering directory `out/Debug_gn'
[1/1] Regenerating ninja files
[4/29] ACTION //remoting/resources:strings_grit(//build/toolchain/linux:clang_x64)
Asserted file list does not match.

<snip - lots of json file spam>

[29/29] LINK ./chrome
FAILED: /usr/local/google/home/jamescook/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -Wl,--fatal-warnings -m64 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -pthread -B../../third_party/binutils/Linux_x64/Release/bin -fuse-ld=gold -Wl,--icf=safe -Wl,-rpath=\$ORIGIN/ -Wl,-rpath-link= -Wl,--disable-new-dtags -o ./chrome -Wl,--start-group @./chrome.rsp ./libffmpegsumo.so -Wl,--end-group  -ldl -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lX11 -lXcomposite -lXcursor -lXdamage -lXext -lXfixes -lXi -lXrender -lXtst -ludev -lcups -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lgcrypt -lz -lpthread -lm -lcrypt -lgnome-keyring -lXss -ldbus-1 -lfontconfig -lgmodule-2.0 -lgthread-2.0 -lrt -lfreetype -lgconf-2 -lresolv -lnss3 -lnssutil3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lgio-2.0 -lexpat -lXrandr -lasound -lcap -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_destroy' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_tags_from_script' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-tag.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_script' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_language_get_feature_tags' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_v_advance_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_tag_to_script' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-tag.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_get_length' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_set_ppem' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_get_direction' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_h_kerning_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_script_find_language' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_extents_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_set_scale' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_get_glyph_infos' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_reverse' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_add_utf8' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_reset' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_create' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_create' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_table_get_script_tags' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_flags' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_destroy' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_language' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_v_origin_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_get_glyph_positions' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_language_get_required_feature_index' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_language_to_string' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-common.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_set_funcs' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_h_origin_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_tag_from_string' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-common.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_tag_from_language' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-tag.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_contour_point_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_font_funcs_set_glyph_h_advance_func' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-font.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_script_get_language_tags' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_table_find_script' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_language_from_string' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-common.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_face_destroy' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-face.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_add' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_layout_language_find_feature' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-layout.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_ot_tag_to_language' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-ot-tag.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_shape' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-shape.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_direction' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_unicode_funcs' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_create' in obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
../../third_party/binutils/Linux_x64/Release/bin/ld.gold: error: treating warnings as errors
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

James Robinson

unread,
Nov 3, 2014, 4:58:16 PM11/3/14
to James Cook, chromium-dev
Did install-build-deps.sh exit successfully?  A number of folks have reported that the script is broken on Trusty: https://code.google.com/p/chromium/issues/detail?id=373988 and it leaves several text libraries in a busted state.

- James

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

James Cook

unread,
Nov 3, 2014, 5:03:02 PM11/3/14
to James Robinson, chromium-dev
install-build-deps.sh seemed to run fine.

I have a clean-install Trusty.

Lei Zhang

unread,
Nov 3, 2014, 5:19:03 PM11/3/14
to James Cook, chromium-dev
Does a gyp build work?

On Mon, Nov 3, 2014 at 1:55 PM, James Cook <jame...@chromium.org> wrote:

James Cook

unread,
Nov 3, 2014, 6:46:27 PM11/3/14
to Lei Zhang, chromium-dev
Yes, a gyp build works. (GYP build is a component build and the GN build is not, unclear to me if that matters.)

Lei Zhang

unread,
Nov 3, 2014, 6:55:47 PM11/3/14
to James Cook, chromium-dev
It would be helpful to try building with the same configuration. If
gyp still works and GN is still broken, then you can play "spot the
command line difference" and/or "spot the missing file."

James Cook

unread,
Nov 3, 2014, 7:53:00 PM11/3/14
to Lei Zhang, chromium-dev
Component build works for both gyp and gn.  Perhaps only the non-component build is broken. I'll try that next.

James Cook

unread,
Nov 3, 2014, 8:05:38 PM11/3/14
to Lei Zhang, chromium-dev
And now both gyp and gn succeed for non-component build.

Someone must have fixed it. Sorry to trouble you.

James

PS - I'm now on r302528 if you need a buildable version.

Brett Wilson

unread,
Nov 7, 2014, 8:04:22 PM11/7/14
to James Cook, Lei Zhang, chromium-dev
I had this problem and I tracked it down. I'm not sure why your issue
went away. I'm doing a patch now.

In case anybody's interested: A newer version of the system pangoft2
library links to harfbuzz. When we link to this version of pangoft2
the linker blows up because of the duplicate symbols.

We want to ship our harfbuzz in official builds. It happens that our
systemroot which we build against includes an older version of
pangoft2 which doesn't have this dependency. In non-official builds,
it does a version check and conditionally uses the system harfbuzz if
your pangoft2 is the newer one. In this case, we just cross our
fingers that the system harfbuzz is good enough.

I'm just duplicating this logic in the GN build (which currently
always links to our custom one). Someday we're going to have to
untangle this...

Brett

John Abd-El-Malek

unread,
Feb 2, 2015, 12:25:26 AM2/2/15
to Brett Wilson, James Cook, Lei Zhang, chromium-dev
btw I just saw this problem with a GYP build, so it's not fixed yet in GYP. It was the first time I built an official build on Linux.

Emil A Eklund

unread,
Feb 23, 2015, 6:23:02 PM2/23/15
to Brett Wilson, James Cook, Lei Zhang, chromium-dev
On Fri, Nov 7, 2014 at 5:03 PM, Brett Wilson <bre...@chromium.org> wrote:
> I had this problem and I tracked it down. I'm not sure why your issue
> went away. I'm doing a patch now.
>
> In case anybody's interested: A newer version of the system pangoft2
> library links to harfbuzz. When we link to this version of pangoft2
> the linker blows up because of the duplicate symbols.
>
> We want to ship our harfbuzz in official builds. It happens that our
> systemroot which we build against includes an older version of
> pangoft2 which doesn't have this dependency. In non-official builds,
> it does a version check and conditionally uses the system harfbuzz if
> your pangoft2 is the newer one. In this case, we just cross our
> fingers that the system harfbuzz is good enough.
>
> I'm just duplicating this logic in the GN build (which currently
> always links to our custom one). Someday we're going to have to
> untangle this...

What's the latest on this? Having developer and release builds on
linux use different versions of harfbuzz is far from ideal and means
that we test and develop against a different version than we ship. We
update the version of harfbuzz in third_party pretty regularly (to fix
security and performance issues as well as to add functionality) and
not being able to depend on that is really broken and is blocking a
number of features and performance improvements we're working on.

Can we please try to find some way to fix this madness? What prevents
us from always doing what we do for official builds?

--
Emil

Dirk Pranke

unread,
Feb 23, 2015, 6:37:18 PM2/23/15
to Emil A Eklund, Brett Wilson, James Cook, Lei Zhang, chromium-dev
AFAIK, GN's behavior matches what we do in GYP these days.

Please start a separate thread for the general problem of using a pinned
version of harfbuzz vs. the system-provided one, but generally speaking
this is a problem we have with a bunch of Linux libraries, I think, and I
think we're actually doing what the distros "want" us to be doing. Of
course, doing so does land us in DLL hell ...

-- Dirk

--
Emil

Paweł Hajdan, Jr.

unread,
Feb 24, 2015, 7:03:48 AM2/24/15
to Dirk Pranke, Emil A Eklund, Brett Wilson, James Cook, Lei Zhang, chromium-dev
On Tue, Feb 24, 2015 at 12:36 AM, Dirk Pranke <dpr...@chromium.org> wrote:
Please start a separate thread for the general problem of using a pinned
version of harfbuzz vs. the system-provided one, but generally speaking
this is a problem we have with a bunch of Linux libraries, I think, and I
think we're actually doing what the distros "want" us to be doing. Of
course, doing so does land us in DLL hell ...

Just to clear a possible confusion: distros have nothing to do with what Google Chrome does. It can bundle the universe.

Distro packaging guidelines apply to chromium builds, but we do have a solution for that as well (build/linux/unbundle) which is transparent to Chrome developers and works well for distros.

Bottom line: don't worry about distros here. Do the right thing for the project.

Paweł

Michael Giuffrida

unread,
May 19, 2015, 3:39:04 AM5/19/15
to chromi...@chromium.org, jame...@chromium.org
Sorry to resurrect a thread but I'm encountering this issue trying to build official Linux chromium for the first time.

chromium.gyp_env: 
{'GYP_DEFINES': 'use_goma=1 buildtype=Official',
 
'GYP_GENERATOR_FLAGS': 'output_dir=out_linux_official'}

invocation:
ninja -C out_linux_official/Release -j 9999 -l 40 chrome

errors (a lot of these):
/usr/local/google/home/michaelpg/dev/c/settings/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_shape' in obj/third_party/harfbuzz-ng/libharfbuzz-ng.a(obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-shape.o) is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
/usr/local/google/home/michaelpg/dev/c/settings/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_direction' in obj/third_party/harfbuzz-ng/libharfbuzz-ng.a(obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o) is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
/usr/local/google/home/michaelpg/dev/c/settings/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_set_unicode_funcs' in obj/third_party/harfbuzz-ng/libharfbuzz-ng.a(obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o) is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
/usr/local/google/home/michaelpg/dev/c/settings/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: warning: hidden symbol 'hb_buffer_create' in obj/third_party/harfbuzz-ng/libharfbuzz-ng.a(obj/third_party/harfbuzz-ng/src/harfbuzz-ng.hb-buffer.o) is referenced by DSO /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libpangoft2-1.0.so
/usr/local/google/home/michaelpg/dev/c/settings/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: error: treating warnings as errors

clang: error: linker command failed with exit code 1 (use -v to see invocation)

I ran install_build_deps.sh but it didn't update anything, and linking still fails.
I'm not sure how this got fixed last time or what to do with brettw's information -- do I have to specify which library to link with? 


Michael

Brett Wilson

unread,
May 19, 2015, 11:29:31 AM5/19/15
to mich...@chromium.org, Chromium-dev, James Cook
I had a similar problem with the GYP Linux build recently. I think it wasn't using the chroot for compiling. Did you have the GYP_DEFINES set to the official buildtype when you ran gclient sync?

Brett

--

Michael Giuffrida

unread,
May 19, 2015, 2:39:18 PM5/19/15
to Brett Wilson, Chromium-dev, James Cook

Yes, and I've fetched ToT and rerun gclient sync a few more times. I've never used a chroot for anything other than Chrome OS, unless I'm unaware that happens automatically.

Reply all
Reply to author
Forward
0 new messages