public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug sanitizer/101111] New: Undefined reference to ___lsan_default_suppressions when compiling GCC 11.1 for x86_64 macOS
@ 2021-06-17 19:01 mose at gnu dot org
  2021-06-17 22:17 ` [Bug sanitizer/101111] " mose at gnu dot org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: mose at gnu dot org @ 2021-06-17 19:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101111

            Bug ID: 101111
           Summary: Undefined reference to ___lsan_default_suppressions
                    when compiling GCC 11.1 for x86_64 macOS
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mose at gnu dot org
                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: ---

I'm trying to cross-compile GCC 11.1 for x86_64-apple-darwin on an
x86_64-linux-musl host.  You can find the full build script at
https://github.com/giordano/Yggdrasil/blob/2597ce2a3fdc4689ce089730263386d979fa1f65/0_RootFS/gcc_common.jl#L274-L778.
 The macOS SDK used is version 10.12.

When doing the final compilation, line 771 of the fine linked above,
compilation of libasan fails with the following error:


[10:03:02] libtool: link: (cd .libs/libasan.lax/libsanitizer_lsan.a &&
/workspace/destdir/bin/llvm-ar x
"/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libsanitizer/asan/../lsan/.libs/libsanitizer_l[49/1977]
[10:03:02] libtool: link:  /workspace/srcdir/gcc_build/./gcc/xgcc
-shared-libgcc -B/workspace/srcdir/gcc_build/./gcc -nostdinc++
-L/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libstdc++-v3/src
-L/workspace
/srcdir/gcc_build/x86_64-apple-darwin14/libstdc++-v3/src/.libs
-L/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libstdc++-v3/libsupc++/.libs
-B/workspace/destdir/x86_64-apple-darwin14/bin/ -B/workspace/destd
ir/x86_64-apple-darwin14/lib/ -isystem
/workspace/destdir/x86_64-apple-darwin14/include -isystem
/workspace/destdir/x86_64-apple-darwin14/sys-include    -dynamiclib  -o
.libs/libasan.6.dylib  .libs/asan_activat
ion.o .libs/asan_allocator.o .libs/asan_debugging.o .libs/asan_descriptions.o
.libs/asan_errors.o .libs/asan_fake_stack.o .libs/asan_flags.o
.libs/asan_globals.o .libs/asan_interceptors.o .libs/asan_interceptor
s_memintrinsics.o .libs/asan_linux.o .libs/asan_mac.o .libs/asan_malloc_linux.o
.libs/asan_malloc_mac.o .libs/asan_malloc_win.o .libs/asan_memory_profile.o
.libs/asan_new_delete.o .libs/asan_poisoning.o .libs/a
san_posix.o .libs/asan_premap_shadow.o .libs/asan_report.o .libs/asan_rtems.o
.libs/asan_rtl.o .libs/asan_shadow_setup.o .libs/asan_stack.o
.libs/asan_stats.o .libs/asan_suppressions.o .libs/asan_thread.o .libs
/asan_win.o .libs/asan_win_dll_thunk.o .libs/asan_win_dynamic_runtime_thunk.o
.libs/asan_interceptors_vfork.o  
.libs/libasan.lax/libsanitizer_common.a/sancov_flags.o
.libs/libasan.lax/libsanitizer_common.a/san
itizer_allocator.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_allocator_checks.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_allocator_report.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_com
mon.o .libs/libasan.lax/libsanitizer_common.a/sanitizer_common_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_coverage_libcdep_new.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_deadlock_detec
tor1.o .libs/libasan.lax/libsanitizer_common.a/sanitizer_deadlock_detector2.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_errno.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_file.o .libs/libasan.lax
/libsanitizer_common.a/sanitizer_flag_parser.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_flags.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_libc.o
.libs/libasan.lax/libsanitizer_common.a/sanitize
r_libignore.o .libs/libasan.lax/libsanitizer_common.a/sanitizer_linux.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_linux_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_linux_s390.o .libs/lib
asan.lax/libsanitizer_common.a/sanitizer_mac.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_mac_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_netbsd.o
.libs/libasan.lax/libsanitizer_common.a/
sanitizer_openbsd.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_persistent_allocator.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_platform_limits_freebsd.o
.libs/libasan.lax/libsanitizer_common.a/s
anitizer_platform_limits_linux.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_platform_limits_openbsd.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_platform_limits_posix.o
.libs/libasan.lax/libsaniti
zer_common.a/sanitizer_platform_limits_solaris.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_posix.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_posix_libcdep.o
.libs/libasan.lax/libsanitizer_common
.a/sanitizer_printf.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_procmaps_bsd.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_procmaps_common.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_procm
aps_linux.o .libs/libasan.lax/libsanitizer_common.a/sanitizer_procmaps_mac.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_procmaps_solaris.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_rtems.o .libs/
libasan.lax/libsanitizer_common.a/sanitizer_solaris.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_stackdepot.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_stacktrace.o
.libs/libasan.lax/libsanitizer
_common.a/sanitizer_stacktrace_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_stacktrace_printer.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_stacktrace_sparc.o
.libs/libasan.lax/libsanitize
r_common.a/sanitizer_stoptheworld_linux_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_stoptheworld_mac.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_suppressions.o
.libs/libasan.lax/libsanit
izer_common.a/sanitizer_symbolizer.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_symbolizer_libbacktrace.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_symbolizer_libcdep.o
.libs/libasan.lax/libsanit
izer_common.a/sanitizer_symbolizer_mac.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_symbolizer_posix_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_symbolizer_report.o
.libs/libasan.lax/libs
anitizer_common.a/sanitizer_symbolizer_win.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_termination.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_thread_registry.o
.libs/libasan.lax/libsanitizer_co
mmon.a/sanitizer_tls_get_addr.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_unwind_linux_libcdep.o
.libs/libasan.lax/libsanitizer_common.a/sanitizer_unwind_win.o
.libs/libasan.lax/libsanitizer_common.a/sa
nitizer_win.o  .libs/libasan.lax/libsanitizer_lsan.a/lsan_common.o
.libs/libasan.lax/libsanitizer_lsan.a/lsan_common_linux.o
.libs/libasan.lax/libsanitizer_lsan.a/lsan_common_mac.o  
-L/workspace/srcdir/gcc_bui
ld/x86_64-apple-darwin14/libstdc++-v3/src/.libs
-L/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libstdc++-v3/src
-L/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libstdc++-v3/libsupc++/.libs
-ldl -lpthre
ad ../../libstdc++-v3/src/.libs/libstdc++.dylib -lm    -install_name 
/workspace/destdir/x86_64-apple-darwin14/lib/libasan.6.dylib
-compatibility_version 7 -current_version 7.0 -Wl,-single_module               
[10:03:02] Undefined symbols for architecture x86_64:                           
[10:03:02]   "___lsan_default_suppressions", referenced from:                   
[10:03:02]       __ZN6__lsan22InitializeSuppressionsEv in lsan_common.o         
[10:03:02]   "___lsan_is_turned_off", referenced from:                          
[10:03:02]       __ZN6__lsanL13CheckForLeaksEv in lsan_common.o                 
[10:03:02]   "___sanitizer_free_hook", referenced from:                         
[10:03:02]      
__ZN6__asan9Allocator10DeallocateEPvmmPN11__sanitizer18BufferedStackTraceENS_9AllocTypeE
in asan_allocator.o                                                             
[10:03:02]      
__ZN6__asan9asan_freeEPvPN11__sanitizer18BufferedStackTraceENS_9AllocTypeE in
asan_allocator.o                                                                
[10:03:02]      
__ZN6__asan12asan_reallocEPvmPN11__sanitizer18BufferedStackTraceE in
asan_allocator.o                                                                
[10:03:02]   "___sanitizer_malloc_hook", referenced from:                       
[10:03:02]      
__ZN6__asan9Allocator8AllocateEmmPN11__sanitizer18BufferedStackTraceENS_9AllocTypeEb
in asan_allocator.o                                                             
[10:03:02]   "___sanitizer_symbolize_code", referenced from:                    
[10:03:02]      
__ZN11__sanitizer18InternalSymbolizer11SymbolizePCEmPNS_15SymbolizedStackE in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02]       __ZN11__sanitizer10Symbolizer12PlatformInitEv in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02]   "___sanitizer_symbolize_data", referenced from:
[10:03:02]      
__ZN11__sanitizer18InternalSymbolizer13SymbolizeDataEmPNS_8DataInfoE in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02]       __ZN11__sanitizer10Symbolizer12PlatformInitEv in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02]   "___sanitizer_symbolize_demangle", referenced from:
[10:03:02]       __ZN11__sanitizer18InternalSymbolizer8DemangleEPKc in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02]   "___sanitizer_symbolize_flush", referenced from:
[10:03:02]       __ZN11__sanitizer18InternalSymbolizer5FlushEv in
sanitizer_symbolizer_posix_libcdep.o
[10:03:02] ld: symbol(s) not found for architecture x86_64
[10:03:02] collect2: error: ld returned 1 exit status
[10:03:02] make[4]: *** [Makefile:577: libasan.la] Error 1
[10:03:02] make[4]: Leaving directory
'/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libsanitizer/asan'
[10:03:02] make[3]: *** [Makefile:531: all-recursive] Error 1
[10:03:02] make[3]: Leaving directory
'/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libsanitizer'
[10:03:02] make[2]: *** [Makefile:418: all] Error 2
[10:03:02] make[2]: Leaving directory
'/workspace/srcdir/gcc_build/x86_64-apple-darwin14/libsanitizer'
[10:03:02] make[1]: *** [Makefile:13570: all-target-libsanitizer] Error 2
[10:03:02] make[1]: Leaving directory '/workspace/srcdir/gcc_build'
[10:03:02] make: *** [Makefile:969: all] Error 2


Functions __lsan_is_turned_off and __lsan_default_suppressions are implemented
in
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libsanitizer/lsan/lsan_common.cpp;h=9e23aa9997ac0ee76e2fa51eb4981b16838ec6c5;hb=50bc9185c2821350f0b785d6e23a6e9dcde58466
only when !SANITIZER_SUPPORTS_WEAK_HOOKS is 1, but they are referenced
unconditionally in CheckForLeaks and InitializeSuppressions, in the same file. 
Since I'm using SDK 10.12, SANITIZER_SUPPORTS_WEAK_HOOKS is set to 1 at
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libsanitizer/sanitizer_common/sanitizer_internal_defs.h;h=d8f0540037d2435bc201a6cd7733fe4272f03519;hb=50bc9185c2821350f0b785d6e23a6e9dcde58466#l78
--- which I verified by placing an #error in that branch --- and so
!SANITIZER_SUPPORTS_WEAK_HOOKS will be 0, and the symbols __lsan_is_turned_off
and __lsan_default_suppressions are indeed not defined, as reported by the
error message.  Am I missing something?  How is this supposed to work?

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-08-03 11:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-17 19:01 [Bug sanitizer/101111] New: Undefined reference to ___lsan_default_suppressions when compiling GCC 11.1 for x86_64 macOS mose at gnu dot org
2021-06-17 22:17 ` [Bug sanitizer/101111] " mose at gnu dot org
2021-06-18 19:42 ` [Bug sanitizer/101111] xgcc cross-compiler for x86_64-apple-darwin in GCC 11.1 doesn't generate weak symbols, resulting in undefined reference to ___lsan_default_suppressions mose at gnu dot org
2021-06-18 19:50 ` pinskia at gcc dot gnu.org
2021-06-18 22:46 ` mose at gnu dot org
2021-06-18 23:24 ` mose at gnu dot org
2021-06-18 23:53 ` mose at gnu dot org
2021-07-19 20:33 ` mose at gnu dot org
2021-07-22 18:06 ` marxin at gcc dot gnu.org
2021-07-22 19:01 ` iains at gcc dot gnu.org
2021-07-25 10:54 ` iains at gcc dot gnu.org
2021-07-25 10:56 ` mose at gnu dot org
2021-08-03 11:25 ` cvs-commit at gcc dot gnu.org
2021-08-03 11:25 ` marxin at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).