Linker failure on mac asan due to not included libc++abi sources.
Project Member
Reported by
yvesg@google.com,
Today
(16 hours ago)
Issue description
What steps will reproduce the problem?(1) gn args out/mac_asan
dcheck_always_on = true
ffmpeg_branding = "Chrome"
is_asan = true
is_clang = true
is_debug = false
rtc_use_h264 = true
target_cpu = "x64"
(2) ninja -C out/mac_asan
What is the expected result?
Build flawlessly.
What happens instead?
Linker error:
"___cxa_current_primary_exception", referenced from:
std::nested_exception::nested_exception() in exception.o
std::current_exception() in exception.o
std::nested_exception::nested_exception() in exception.o
"___cxa_decrement_exception_refcount", referenced from:
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::rethrow_nested() const in exception.o
...
"___cxa_increment_exception_refcount", referenced from:
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::rethrow_nested() const in exception.o
"___cxa_rethrow_primary_exception", referenced from:
std::rethrow_exception(std::exception_ptr) in exception.o
"___cxa_uncaught_exceptions", referenced from:
std::uncaught_exception() in exception.o
std::uncaught_exceptions() in exception.o
ld: symbol(s) not found for architecture x86_64
Or just check mac_asan bot here: https://webrtc-review.googlesource.com/c/src/+/118480/Please use labels and text to provide additional information.
It appeared since: "Switch Mac to in-tree libc++ builds" https://chromium-review.googlesource.com/c/chromium/src/+/1396842
It appears libc++abi source_set isn't pulled, export_libcxxabi_from_executables being set to true.
We haven't managed to get a good grasp of this variable. For instance, why is it set for is_asan but not is_msan or is_tsan?
What steps will reproduce the problem?
(0) fetch webrtc && cd webrtc/src
(1) gn args out/mac_asan
dcheck_always_on = true
ffmpeg_branding = "Chrome"
is_asan = true
is_clang = true
is_debug = false
rtc_use_h264 = true
target_cpu = "x64"
(2) ninja -C out/mac_asan
What is the expected result?
Build flawlessly.
What happens instead?
Linker error:
"___cxa_current_primary_exception", referenced from:
std::nested_exception::nested_exception() in exception.o
std::current_exception() in exception.o
std::nested_exception::nested_exception() in exception.o
"___cxa_decrement_exception_refcount", referenced from:
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::rethrow_nested() const in exception.o
...
"___cxa_increment_exception_refcount", referenced from:
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::rethrow_nested() const in exception.o
"___cxa_rethrow_primary_exception", referenced from:
std::rethrow_exception(std::exception_ptr) in exception.o
"___cxa_uncaught_exceptions", referenced from:
std::uncaught_exception() in exception.o
std::uncaught_exceptions() in exception.o
ld: symbol(s) not found for architecture x86_64
Or just check mac_asan bot here: https://webrtc-review.googlesource.com/c/src/+/118480/Please use labels and text to provide additional information.
It appeared since: "Switch Mac to in-tree libc++ builds" https://chromium-review.googlesource.com/c/chromium/src/+/1396842
It appears libc++abi source_set isn't pulled, export_libcxxabi_from_executables being set to true.
We haven't managed to get a good grasp of this variable. For instance, why is it set for is_asan but not is_msan or is_tsan?
What steps will reproduce the problem?
(0) fetch webrtc && cd webrtc/src
(1) gn args out/mac_asan
dcheck_always_on = true
ffmpeg_branding = "Chrome"
is_asan = true
is_clang = true
is_debug = false
rtc_use_h264 = true
target_cpu = "x64"
(2) ninja -C out/mac_asan
What is the expected result?
Build flawlessly.
What happens instead?
Linker error:
"___cxa_current_primary_exception", referenced from:
std::nested_exception::nested_exception() in exception.o
std::current_exception() in exception.o
std::nested_exception::nested_exception() in exception.o
"___cxa_decrement_exception_refcount", referenced from:
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::~exception_ptr() in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::~nested_exception() in exception.o
std::nested_exception::rethrow_nested() const in exception.o
...
"___cxa_increment_exception_refcount", referenced from:
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::exception_ptr(std::exception_ptr const&) in exception.o
std::exception_ptr::operator=(std::exception_ptr const&) in exception.o
std::nested_exception::rethrow_nested() const in exception.o
"___cxa_rethrow_primary_exception", referenced from:
std::rethrow_exception(std::exception_ptr) in exception.o
"___cxa_uncaught_exceptions", referenced from:
std::uncaught_exception() in exception.o
std::uncaught_exceptions() in exception.o
ld: symbol(s) not found for architecture x86_64
Or just check mac_asan bot here: https://webrtc-review.googlesource.com/c/src/+/118480/Please use labels and text to provide additional information.
It appeared since: "Switch Mac to in-tree libc++ builds" https://chromium-review.googlesource.com/c/chromium/src/+/1396842
It appears libc++abi source_set isn't pulled, export_libcxxabi_from_executables being set to true.
We haven't managed to get a good grasp of this variable. For instance, why is it set for is_asan but not is_msan or is_tsan?
Nb: this is on webrtc checkout, where we don't use component build.
Comment 1 by yvesg@google.com
, Today (16 hours ago)