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.

Reply via email to