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.