git: 49d684369c66 - main - libthr: filter rather than link with libsys
Date: Wed, 07 Feb 2024 19:51:27 UTC
The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=49d684369c6682eebca325c55a6c96b7c03f5aeb commit 49d684369c6682eebca325c55a6c96b7c03f5aeb Author: Brooks Davis <brooks@FreeBSD.org> AuthorDate: 2024-02-07 19:38:16 +0000 Commit: Brooks Davis <brooks@FreeBSD.org> CommitDate: 2024-02-07 19:50:47 +0000 libthr: filter rather than link with libsys The allows gcc + GNU ld to link programs with -m32 -pthread without erroring out due to _umtx_op_err being undefined (unless -lsys is added to the link command. We now always link _umtx_op_err into libthr (not just when it's static) and filter it with libsys so we call that implementation. The dynamic implementations (at least the assembly ones) should likely become stubs as a further refinement. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D43783 --- lib/libthr/Makefile | 5 ++--- lib/libthr/pthread.map | 3 +++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/libthr/Makefile b/lib/libthr/Makefile index 1d34f5cb5f09..932650885dea 100644 --- a/lib/libthr/Makefile +++ b/lib/libthr/Makefile @@ -13,8 +13,6 @@ MK_SSP= no LIB=thr SHLIB_MAJOR= 3 -LIBADD= sys - NO_WTHREAD_SAFETY=1 NO_WCAST_ALIGN.gcc=1 # for gcc 4.2 CFLAGS+=-DPTHREAD_KERNEL @@ -47,6 +45,7 @@ CFLAGS+=-D_PTHREAD_FORCED_UNWIND .endif LDFLAGS+=-Wl,-znodelete +LDFLAGS+=-Wl,--auxiliary,libsys.so.7 VERSION_DEF=${SRCTOP}/lib/libc/Versions.def SYMBOL_MAPS=${.CURDIR}/pthread.map @@ -76,7 +75,7 @@ LIBSYS_SRCTOP= ${.CURDIR:H}/libsys .else .PATH: ${LIBSYS_SRCTOP} .endif -STATICOBJS+= _umtx_op_err.o +OBJS+= _umtx_op_err.o .if ${MK_INSTALLLIB} != "no" SYMLINKS+=lib${LIB}.a ${LIBDIR}/libpthread.a diff --git a/lib/libthr/pthread.map b/lib/libthr/pthread.map index 348fd48df398..aa9abb7e6114 100644 --- a/lib/libthr/pthread.map +++ b/lib/libthr/pthread.map @@ -298,6 +298,9 @@ FBSDprivate_1.0 { /* ABI bug workaround, indicate that pli->rtli_version is valid */ _pli_rtli_version; + + /* Expose stub for libsys filter */ + _umtx_op_err; }; FBSD_1.1 {