https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101749
Bug ID: 101749
Summary: gcc -static-libasan broken because libasan.a needs
__cxa_guard_release in libstdc++
Product: gcc
Version: 11.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: sanitizer
Assignee: unassigned at gcc dot gnu.org
Reporter: xry111 at mengyan1223 dot wang
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org, marxin at
gcc dot gnu.org
Target Milestone: ---
Test summary:
FAIL: c-c++-common/asan/pr59063-2.c -O0 (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O0 compilation failed to produce
executable
FAIL: c-c++-common/asan/pr59063-2.c -O1 (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O1 compilation failed to produce
executable
FAIL: c-c++-common/asan/pr59063-2.c -O2 (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O2 compilation failed to produce
executable
FAIL: c-c++-common/asan/pr59063-2.c -O3 -g (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O3 -g compilation failed to
produce executable
FAIL: c-c++-common/asan/pr59063-2.c -Os (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -Os compilation failed to produce
executable
FAIL: c-c++-common/asan/pr59063-2.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none compilation failed to produce executable
FAIL: c-c++-common/asan/pr59063-2.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects (test for excess errors)
UNRESOLVED: c-c++-common/asan/pr59063-2.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects compilation failed to produce executable
$ cc dummy.c -fsanitize=address -static-libasan
/usr/bin/ld:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libasan.a(sanitizer_posix_libcdep.o):
in function `__sanitizer::SetAlternateSignalStack()':
/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libsanitizer/sanitizer_common/../../../../libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:170:
undefined reference to `__cxa_guard_acquire'
/usr/bin/ld:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libasan.a(sanitizer_posix_libcdep.o):
in function `GetAltStackSize':
/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libsanitizer/sanitizer_common/../../../../libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:170:
undefined reference to `__cxa_guard_release'
/usr/bin/ld:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libasan.a(sanitizer_posix_libcdep.o):
in function `__sanitizer::UnsetAlternateSignalStack()':
/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libsanitizer/sanitizer_common/../../../../libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:170:
undefined reference to `__cxa_guard_acquire'
/usr/bin/ld:
/usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libasan.a(sanitizer_posix_libcdep.o):
in function `GetAltStackSize':
/sources/gcc-11.2.0/build/x86_64-pc-linux-gnu/libsanitizer/sanitizer_common/../../../../libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp:170:
undefined reference to `__cxa_guard_release'
collect2: error: ld returned 1 exit status
Not sure if this is because something has changed in glibc-2.34.