New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 913071 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Build-Toolchain

Blocking:
issue 878565



Sign in to add a comment

Arm64 chrome cannot be built with lld

Project Member Reported by manojgupta@chromium.org, Dec 7

Issue description

If I build chrome with USE="lld -gold", some of the unit test binaries fail to link.

chromeos-chrome-72.0.3612.0_rc-r1: FAILED: video_decode_accelerator_unittest 
chromeos-chrome-72.0.3612.0_rc-r1: python "../../../../../../../home/chrome-bot/chrome_root/src/build/toolchain/gcc_link_wrapper.py" --output="./video_decode_accelerator_unittest" -- aarch64-cros-linux-gnu-clang++ -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -fuse-ld=lld -Wl,-z,max-page-size=4096 -Wl,--icf=all -Wl,--color-diagnostics -flto=thin -Wl,--thinlto-jobs=8 -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10\%:cache_size_bytes=10g:cache_size_files=100000 -Wl,--lto-O2 -fwhole-program-vtables --target=aarch64-linux-gnu -Wl,-O2 -Wl,--gc-sections -Wl,--gdb-index --sysroot=../../../../../../../build/kevin64 -L../../../../../../../build/kevin64/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/lib64 -L../../../../../../../build/kevin64/usr/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/usr/lib64 -L../../../../../../../build/kevin64/usr/local/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/usr/local/lib64 -L../../../../../../../build/kevin64/lib -Wl,-rpath-link=../../../../../../../build/kevin64/lib -L../../../../../../../build/kevin64/usr/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/lib -L../../../../../../../build/kevin64/usr/local/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/local/lib -L../../../../../../../build/kevin64/usr/aarch64-cros-linux-gnu/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/aarch64-cros-linux-gnu/lib -fsanitize=cfi-vcall -fsanitize=cfi-derived-cast -fsanitize=cfi-unrelated-cast -pie -Wl,-rpath-link=. -Wl,--disable-new-dtags -L/build/kevin64/usr/lib64 -L/build/kevin64/usr/lib -Wl,-O2 -Wl,--as-needed -stdlib=libc++ -Wl,-plugin-opt,-import-instr-limit=30 -o "./video_decode_accelerator_unittest" -Wl,--start-group @"./video_decode_accelerator_unittest.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lasound -lcras -ldbus-1 -lexpat -lfontconfig -ldrm -lsync -lm -lz -lresolv -lEGL -lGLESv2 -lxkbcommon -lgestures -levdev -lgbm -lpci 
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '__bss_start' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '_end' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '_edata' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
chromeos-chrome-72.0.3612.0_rc-r1: 
chromeos-chrome-72.0.3612.0_rc-r1: [18/1309] LINK ./test_ime_driver.service
chromeos-chrome-72.0.3612.0_rc-r1: FAILED: test_ime_driver.service 
chromeos-chrome-72.0.3612.0_rc-r1: python "../../../../../../../home/chrome-bot/chrome_root/src/build/toolchain/gcc_link_wrapper.py" --output="./test_ime_driver.service" -- aarch64-cros-linux-gnu-clang++ -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -Wl,--as-needed -fuse-ld=lld -Wl,-z,max-page-size=4096 -Wl,--icf=all -Wl,--color-diagnostics -flto=thin -Wl,--thinlto-jobs=8 -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10\%:cache_size_bytes=10g:cache_size_files=100000 -Wl,--lto-O2 -fwhole-program-vtables --target=aarch64-linux-gnu -Wl,-O2 -Wl,--gc-sections -Wl,--gdb-index --sysroot=../../../../../../../build/kevin64 -L../../../../../../../build/kevin64/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/lib64 -L../../../../../../../build/kevin64/usr/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/usr/lib64 -L../../../../../../../build/kevin64/usr/local/lib64 -Wl,-rpath-link=../../../../../../../build/kevin64/usr/local/lib64 -L../../../../../../../build/kevin64/lib -Wl,-rpath-link=../../../../../../../build/kevin64/lib -L../../../../../../../build/kevin64/usr/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/lib -L../../../../../../../build/kevin64/usr/local/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/local/lib -L../../../../../../../build/kevin64/usr/aarch64-cros-linux-gnu/lib -Wl,-rpath-link=../../../../../../../build/kevin64/usr/aarch64-cros-linux-gnu/lib -fsanitize=cfi-vcall -fsanitize=cfi-derived-cast -fsanitize=cfi-unrelated-cast -pie -Wl,-rpath-link=. -Wl,--disable-new-dtags -L/build/kevin64/usr/lib64 -L/build/kevin64/usr/lib -Wl,-O2 -Wl,--as-needed -stdlib=libc++ -Wl,-plugin-opt,-import-instr-limit=30 -o "./test_ime_driver.service" -Wl,--start-group @"./test_ime_driver.service.rsp"  -Wl,--end-group   -ldl -lpthread -lrt -lsmime3 -lnss3 -lnssutil3 -lplds4 -lplc4 -lnspr4 -lfontconfig -lexpat -ldrm -lsync -lxkbcommon -ldbus-1 -lresolv -lm -lz -lgestures -levdev -lgbm -lpci -lasound -lcras -lEGL -lGLESv2 
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '__bss_start' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '_end' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: lld.real: error: found local symbol '_edata' in global part of symbol table in file ../../../../../../../build/kevin64/usr/lib64/libEGL.so
chromeos-chrome-72.0.3612.0_rc-r1: clang-8: error: linker command failed with exit code 1 (use -v to see invocation)
 
Owner: dave.rod...@gtempaccount.com
Dave, can you help to take a look at the mali drivers and why its exported symbols do not play well with lld.
Description: Show this description
That error is actually a warning, so you might be able to work around it by setting fatal_linker_warnings to false in gn.
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/72b73ae9726e589a82762c34a8978184e9a7f097

commit 72b73ae9726e589a82762c34a8978184e9a7f097
Author: Manoj Gupta <manojgupta@google.com>
Date: Tue Dec 11 00:38:19 2018

kevin64: Force gold linker for chrome.

lld currently cannot link chrome because of errors
reported with mali-drivers.

BUG=chromium:913071
TEST=gold is used as linker

Change-Id: I8c768ec6c1616ff8dd7bd8ae7426862b32a86c78
Reviewed-on: https://chromium-review.googlesource.com/c/1370560
Commit-Queue: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Trybot-Ready: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[add] https://crrev.com/72b73ae9726e589a82762c34a8978184e9a7f097/overlay-kevin64/profiles/base/package.use

Cc: p...@chromium.org
Thanks Peter, I'll test if disabling fatal_linker_warnings works.
Project Member

Comment 6 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/8e68df72075a061dff612250fca2d7c351939f31

commit 8e68df72075a061dff612250fca2d7c351939f31
Author: Manoj Gupta <manojgupta@google.com>
Date: Thu Dec 13 01:04:50 2018

chromeos-chrome: Disable linker fatal warnings on lld/arm64.

BUG=chromium:913071
TEST=No more lld errors on arm64 when linking Chrome.

Change-Id: I0ca4123967630cb1e6a6e1dc4d3df14d0b02e80a
Reviewed-on: https://chromium-review.googlesource.com/1372289
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[modify] https://crrev.com/8e68df72075a061dff612250fca2d7c351939f31/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild

Project Member

Comment 7 by bugdroid1@chromium.org, Dec 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/15a1eff80f9b146e99e667d17ef977ab45656db3

commit 15a1eff80f9b146e99e667d17ef977ab45656db3
Author: Manoj Gupta <manojgupta@google.com>
Date: Thu Dec 13 21:19:59 2018

kevin64: Drop force gold linker.

No need to force lld after disabling fatal warnings.

BUG=chromium:913071
TEST=No more lld errors on arm64 when linking Chrome.

CQ-DEPEND=CL:1372289

Change-Id: I9ba10ab25bc5fcd4e18155bee937fb9ab5a78c0d
Reviewed-on: https://chromium-review.googlesource.com/c/1372768
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>

[delete] https://crrev.com/1ce2ed45d9d0e8900db2433dc6eed4b98b1ba33b/overlay-kevin64/profiles/base/package.use

Status: Assigned (was: Untriaged)
This issue has an owner, a component and a priority, but is still listed as untriaged or unconfirmed. By definition, this bug is triaged. Changing status to "assigned". Please reach out to me if you disagree with how I've done this.

Sign in to add a comment