HomeFreeBSD

sanitizers: mark __elf_aux_vector as weak, to allow linking without libsys

Description

sanitizers: mark __elf_aux_vector as weak, to allow linking without libsys

After libsys was introduced, linking sanitized programs started failing
with:

  1. c++ -fsanitize=address main.cc ld: error: undefined symbol: elf_aux_vector >>> referenced by sanitizer_linux_libcdep.cpp:950 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:950) >>> sanitizer_linux_libcdep.o:(sanitizer::ReExec()) in archive /usr/lib/clang/17/lib/freebsd/libclang_rt.asan-x86_64.a c++: error: linker command failed with exit code 1 (use -v to see invocation)

Mark __elf_aux_vector as weak in the internal sanitizer declaration, so
the linker will accept it at link time. The dynamic linker will then
take care of the symbol at run time.

Suggestion by: brooks
PR: 276104, 277393
MFC after: 1 month

Details

Provenance
dimAuthored on Sun, Apr 14, 5:38 PM
Parents
rGe6a4b57239da: mbuf: restore m_uiotombuf() feature of returning a zero length mbuf
Branches
Unknown
Tags
Unknown