From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id B832B3983020; Thu, 17 Jun 2021 19:01:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B832B3983020 From: "mose at gnu dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug sanitizer/101111] New: Undefined reference to ___lsan_default_suppressions when compiling GCC 11.1 for x86_64 macOS Date: Thu, 17 Jun 2021 19:01:37 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: sanitizer X-Bugzilla-Version: 11.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: mose at gnu dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jun 2021 19:01:37 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D101111 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, marxi= n 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/2597ce2a3fdc4689ce089730263386d9= 79fa1f65/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/../lsa= n/.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_lin= ux.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=20=20 .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=20=20 -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=20 /workspace/destdir/x86_64-apple-darwin14/lib/libasan.6.dylib -compatibility_version 7 -current_version 7.0 -Wl,-single_module=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] Undefined symbols for architecture x86_64:=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] "___lsan_default_suppressions", referenced from:=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] __ZN6__lsan22InitializeSuppressionsEv in lsan_common.o=20= =20=20=20=20=20=20=20=20 [10:03:02] "___lsan_is_turned_off", referenced from:=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] __ZN6__lsanL13CheckForLeaksEv in lsan_common.o=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] "___sanitizer_free_hook", referenced from:=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02]=20=20=20=20=20=20 __ZN6__asan9Allocator10DeallocateEPvmmPN11__sanitizer18BufferedStackTraceEN= S_9AllocTypeE in asan_allocator.o=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02]=20=20=20=20=20=20 __ZN6__asan9asan_freeEPvPN11__sanitizer18BufferedStackTraceENS_9AllocTypeE = in asan_allocator.o=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02]=20=20=20=20=20=20 __ZN6__asan12asan_reallocEPvmPN11__sanitizer18BufferedStackTraceE in asan_allocator.o=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] "___sanitizer_malloc_hook", referenced from:=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02]=20=20=20=20=20=20 __ZN6__asan9Allocator8AllocateEmmPN11__sanitizer18BufferedStackTraceENS_9Al= locTypeEb in asan_allocator.o=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02] "___sanitizer_symbolize_code", referenced from:=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 [10:03:02]=20=20=20=20=20=20 __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]=20=20=20=20=20=20 __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 implemen= ted in https://gcc.gnu.org/git/?p=3Dgcc.git;a=3Dblob;f=3Dlibsanitizer/lsan/lsan_co= mmon.cpp;h=3D9e23aa9997ac0ee76e2fa51eb4981b16838ec6c5;hb=3D50bc9185c2821350= f0b785d6e23a6e9dcde58466 only when !SANITIZER_SUPPORTS_WEAK_HOOKS is 1, but they are referenced unconditionally in CheckForLeaks and InitializeSuppressions, in the same fi= le.=20 Since I'm using SDK 10.12, SANITIZER_SUPPORTS_WEAK_HOOKS is set to 1 at https://gcc.gnu.org/git/?p=3Dgcc.git;a=3Dblob;f=3Dlibsanitizer/sanitizer_co= mmon/sanitizer_internal_defs.h;h=3Dd8f0540037d2435bc201a6cd7733fe4272f03519= ;hb=3D50bc9185c2821350f0b785d6e23a6e9dcde58466#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?=