[Bug 282728] tsan linking failure: duplicated symbols
Date: Wed, 13 Nov 2024 13:26:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282728
Bug ID: 282728
Summary: tsan linking failure: duplicated symbols
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: bugs@FreeBSD.org
Reporter: bapt@FreeBSD.org
When linking on freebsd with tsan: (https://github.com/freebsd/pkg/pull/2343)
ld: error: duplicate symbol: _pthread_mutex_init
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(_pthread_mutex_init) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at thr_mutex.c:380 (/home/pkgbuild/worktrees/main/lib/libthr/thread/thr_mutex.c:380)
>>> thr_mutex.o:(__Tthr_mutex_init) in archive /usr/lib/libpthread.a
ld: error: duplicate symbol: _pthread_mutex_lock
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(_pthread_mutex_lock) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at thr_mutex.c:745 (/home/pkgbuild/worktrees/main/lib/libthr/thread/thr_mutex.c:745)
>>> thr_mutex.o:(__Tthr_mutex_lock) in archive /usr/lib/libpthread.a
ld: error: duplicate symbol: _pthread_mutex_trylock
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(_pthread_mutex_trylock) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at thr_mutex.c:616 (/home/pkgbuild/worktrees/main/lib/libthr/thread/thr_mutex.c:616)
>>> thr_mutex.o:(__Tthr_mutex_trylock) in archive /usr/lib/libpthread.a
ld: error: duplicate symbol: arc4random_buf
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(arc4random_buf) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at arc4random.c:248 (/home/pkgbuild/worktrees/main/lib/libc/gen/arc4random.c:248)
>>> arc4random.o:(.text+0xC0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: opendir
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(opendir) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at opendir.c:53 (/home/pkgbuild/worktrees/main/lib/libc/gen/opendir.c:53)
>>> opendir.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: posix_spawn
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(posix_spawn) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at posix_spawn.c:377 (/home/pkgbuild/worktrees/main/lib/libc/gen/posix_spawn.c:377)
>>> posix_spawn.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: posix_spawnp
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(posix_spawnp) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at posix_spawn.c:386 (/home/pkgbuild/worktrees/main/lib/libc/gen/posix_spawn.c:386)
>>> posix_spawn.o:(.text+0x180) in archive /usr/lib/libc.a
ld: error: duplicate symbol: scandir
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(scandir) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at scandir.c:144 (/home/pkgbuild/worktrees/main/lib/libc/gen/scandir.c:144)
>>> scandir.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: sigemptyset
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(sigemptyset) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at sigsetops.c:61 (/home/pkgbuild/worktrees/main/lib/libc/gen/sigsetops.c:61)
>>> sigsetops.o:(.text+0x80) in archive /usr/lib/libc.a
ld: error: duplicate symbol: sigfillset
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(sigfillset) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at sigsetops.c:71 (/home/pkgbuild/worktrees/main/lib/libc/gen/sigsetops.c:71)
>>> sigsetops.o:(.text+0x90) in archive /usr/lib/libc.a
ld: error: duplicate symbol: _setjmp
>>> defined at tsan_rtl_amd64.S:72 (/home/pkgbuild/worktrees/main/contrib/llvm-project/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S:72)
>>> tsan_rtl_amd64.o:(_setjmp) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at _setjmp.S:45 (/home/pkgbuild/worktrees/main/lib/libc/amd64/gen/_setjmp.S:45)
>>> _setjmp.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: setlocale
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(setlocale) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at setlocale.c:98 (/home/pkgbuild/worktrees/main/lib/libc/locale/setlocale.c:98)
>>> setlocale.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: wcsnrtombs
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(wcsnrtombs) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at wcsnrtombs.c:54 (/home/pkgbuild/worktrees/main/lib/libc/locale/wcsnrtombs.c:54)
>>> wcsnrtombs.o:(.text+0x40) in archive /usr/lib/libc.a
ld: error: duplicate symbol: getaddrinfo
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(getaddrinfo) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at getaddrinfo.c:391 (/home/pkgbuild/worktrees/main/lib/libc/net/getaddrinfo.c:391)
>>> getaddrinfo.o:(.text+0x40) in archive /usr/lib/libc.a
ld: error: duplicate symbol: getifaddrs
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(getifaddrs) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at getifaddrs.c:78 (/home/pkgbuild/worktrees/main/lib/libc/net/getifaddrs.c:78)
>>> getifaddrs.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: getprotoent
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(getprotoent) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at getprotoent.c:540 (/home/pkgbuild/worktrees/main/lib/libc/net/getprotoent.c:540)
>>> getprotoent.o:(.text+0xDC0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: fflush
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(fflush) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at fflush.c:50 (/home/pkgbuild/worktrees/main/lib/libc/stdio/fflush.c:50)
>>> fflush.o:(.text+0x0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: vfprintf
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(vfprintf) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at vfprintf.c:287 (/home/pkgbuild/worktrees/main/lib/libc/stdio/vfprintf.c:287)
>>> vfprintf.o:(.text+0x35D0) in archive /usr/lib/libc.a
ld: error: duplicate symbol: localtime
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(localtime) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at localtime.c:1681 (/home/pkgbuild/worktrees/main/contrib/tzcode/localtime.c:1681)
>>> localtime.o:(.text+0x300) in archive /usr/lib/libc.a
ld: error: duplicate symbol: localtime_r
>>> defined at tsan_interceptors_posix.cpp
>>> tsan_interceptors_posix.o:(localtime_r) in archive /usr/lib/clang/19/lib/freebsd/libclang_rt.tsan-x86_64.a
>>> defined at localtime.c:1708 (/home/pkgbuild/worktrees/main/contrib/tzcode/localtime.c:1708)
>>> localtime.o:(.text+0x460) in archive /usr/lib/libc.a
ld: error: too many errors emitted, stopping now (use --error-limit=0 to see
all errors)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [pkg-static] Error code 1
--
You are receiving this mail because:
You are the assignee for the bug.