New issue
Advanced search Search tips

Issue 824471 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug

Blocking:
issue 823655



Sign in to add a comment

ToT Linux ASan Fuzzer bot fails to link libc++abi symbols

Project Member Reported by r...@chromium.org, Mar 21 2018

Issue description

First failing build: https://ci.chromium.org/buildbot/chromium.clang/ToTLinuxASanLibfuzzer/648
Previous green build: https://ci.chromium.org/buildbot/chromium.clang/ToTLinuxASanLibfuzzer/647

These are the gn args:

clang_use_chrome_plugins = false
enable_nacl = false
ffmpeg_branding = "ChromeOS"
is_asan = true
is_clang = true
is_debug = false
llvm_force_head_revision = true
pdf_enable_xfa = true
proprietary_codecs = true
use_libfuzzer = true

This is the link error:

[10718/46239] LINK ./modetest
FAILED: modetest 
python "../../build/toolchain/gcc_link_wrapper.py" --output="./modetest" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro -fuse-ld=lld -m64 -Werror -Wl,-O2 -Wl,--gc-sections -Wl,--fatal-warnings -nostdlib++ --sysroot=../../build/linux/debian_sid_amd64-sysroot -L../../build/linux/debian_sid_amd64-sysroot/usr/local/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_sid_amd64-sysroot/usr/local/lib/x86_64-linux-gnu -L../../build/linux/debian_sid_amd64-sysroot/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_sid_amd64-sysroot/lib/x86_64-linux-gnu -L../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu -Wl,-rpath-link=../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=leak -fsanitize-coverage=trace-pc-guard -Wl,-rpath-link=. -Wl,--disable-new-dtags -Wl,-rpath=\$ORIGIN/. -Wl,-rpath-link=. -o "./modetest" -Wl,--start-group @"./modetest.rsp"  -Wl,--end-group   -ldl -lpthread -lrt 
/b/c/b/ToTLinuxASanLibfuzzer/src/out/Release/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: undefined symbol: typeinfo for __cxxabiv1::__si_class_type_info
>>> referenced by ubsan_type_hash_itanium.cc:163 (/b/c/b/ToTLinuxASanLibfuzzer/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc:163)
>>>               ubsan_type_hash_itanium.cc.o:(findBaseAtOffset(__cxxabiv1::__class_type_info const*, long)) in archive /b/c/b/ToTLinuxASanLibfuzzer/src/third_party/llvm-build/Release+Asserts/lib/clang/7.0.0/lib/linux/libclang_rt.asan_cxx-x86_64.a
/b/c/b/ToTLinuxASanLibfuzzer/src/out/Release/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: undefined symbol: typeinfo for __cxxabiv1::__class_type_info
>>> referenced by ubsan_type_hash_itanium.cc:163 (/b/c/b/ToTLinuxASanLibfuzzer/src/third_party/llvm/compiler-rt/lib/ubsan/ubsan_type_hash_itanium.cc:163)
>>>               ubsan_type_hash_itanium.cc.o:(findBaseAtOffset(__cxxabiv1::__class_type_info const*, long)) in archive /b/c/b/ToTLinuxASanLibfuzzer/src/third_party/llvm-build/Release+Asserts/lib/clang/7.0.0/lib/linux/libclang_rt.asan_cxx-x86_64.a
/b/c/b/ToTLinuxASanLibfuzzer/src/out/Release/../../third_party/llvm-build/Release+Asserts/bin/ld.lld: error: undefined symbol: __dynamic_cast

The missing symbols are "__dynamic_cast" and "typeinfo for __cxxabiv1::__class_type_info", which are typically provided by libc++abi. These are built with ASan instrumentation as part of the Chromium build and it is statically linked into libc++.so.

I was not able to reproduce this build failure locally, so I must be holding something wrong.
 

Comment 1 by thakis@chromium.org, Mar 21 2018

Cc: thomasanderson@chromium.org
Which libc++ABI is getting linked in? (Pass `-d keeprsp` to ninja to check). It's possible that libc++(ABI) doesn't yet honor local_clang_dir (sp?)

Comment 2 by h...@chromium.org, Mar 21 2018

I think I fixed this earlier today with https://chromium-review.googlesource.com/972046
Sorry, I should have cc'd more people.

Comment 3 by r...@chromium.org, Mar 21 2018

Status: Fixed (was: Assigned)
Got it, that's why I couldn't repro, it was fixed. :)

Looks like the bot has been building for 8 hours:
https://ci.chromium.org/buildbot/chromium.clang/ToTLinuxASanLibfuzzer/656

It has already successfully linked modetest, so I will close this.

Sign in to add a comment