https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237068
--- Comment #5 from Dimitry Andric <d...@freebsd.org> --- (In reply to Ed Maste from comment #4) > Is there an associated GNU binutils ld bug report? Not yet, I'm working on a small test case. The issue appears to be caused by a versioned weak symbol: llvm::hashing::detail::get_execution_seed()::seed@@JL_LLVM_6.0 I added some debug printfs around the failing assertion, with binutils master, and this shows: DBG h : llvm::hashing::detail::get_execution_seed()::seed@@JL_LLVM_6.0 DBG def: __bss_start@@JL_LLVM_6.0 /home/dim/ins/binutils-master-e392bad3e/bin/ld: BFD (GNU Binutils) 2.32.51.20190407 assertion fail /share/dim/src/binutils-gdb/bfd/elflink.c:2974 DBG h : llvm::hashing::detail::get_execution_seed()::seed@@JL_LLVM_6.0 DBG def: __bss_start@@JL_LLVM_6.0 /home/dim/ins/binutils-master-e392bad3e/bin/ld: BFD (GNU Binutils) 2.32.51.20190407 assertion fail /share/dim/src/binutils-gdb/bfd/elflink.c:2974 The 'seed' variable is a static variable in an inline function in include/llvm/ADT/Hashing.h: /// \brief A global, fixed seed-override variable. /// /// This variable can be set using the \see llvm::set_fixed_execution_seed /// function. See that function for details. Do not, under any circumstances, /// set or read this variable. extern size_t fixed_seed_override; inline size_t get_execution_seed() { // FIXME: This needs to be a per-execution seed. This is just a placeholder // implementation. Switching to a per-execution seed is likely to flush out // instability bugs and so will happen as its own commit. // // However, if there is a fixed seed override set the first time this is // called, return that instead of the per-execution seed. const uint64_t seed_prime = 0xff51afd7ed558ccdULL; static size_t seed = fixed_seed_override ? fixed_seed_override : (size_t)seed_prime; return seed; } In libLLVM-6.0.so's .symtab, it looks like: $ readelf -sW /wrkdirs/share/dim/ports/lang/julia/work/julia-1.0.3/deps/scratch/llvm-6.0.0/build_Release/lib/libLLVM-6.0.so | grep _ZZN4llvm7hashing6detail18get_execution_seedEvE4seed 3490: 00000000027c5380 8 OBJECT WEAK DEFAULT 28 _ZZN4llvm7hashing6detail18get_execution_seedEvE4seed@@JL_LLVM_6.0 31450: 00000000027c5380 8 OBJECT WEAK DEFAULT 28 _ZZN4llvm7hashing6detail18get_execution_seedEvE4seed For some reason, there is both a symbol with versionJL_LLVM_6.0, and one without. libLLVM-6.0.so gets built with the following very simple version script: JL_LLVM_6.0 { global: *; }; -- You are receiving this mail because: You are the assignee for the bug. _______________________________________________ freebsd-toolchain@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"