Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Feb 2024 17:57:57 GMT
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: baa7d0741b9a - main - libsys: link symbolic
Message-ID:  <202402231757.41NHvvVs018213@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=baa7d0741b9a2117410d558c6715906980723eed

commit baa7d0741b9a2117410d558c6715906980723eed
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-02-22 21:13:02 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-02-23 17:39:42 +0000

    libsys: link symbolic
    
    so that libc/libthr do not preempt libsys symbols, esp. errno-related.
    
    The issue is, if libsys is linked with DT_BIND_NOW flag, and then loaded
    as filter, rtld tries to relocate its PLT symbols immediately, not as
    filter.  There, during symbol lookup, rtld finds filtering symbols in
    libc, and since libc is in loading filters mode, the resolution stops
    there.  The end result is that libsys links to libc.
    
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    Differential revision:  https://reviews.freebsd.org/D44027
---
 lib/libsys/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/libsys/Makefile b/lib/libsys/Makefile
index 5e8c39deb463..aefa19f35193 100644
--- a/lib/libsys/Makefile
+++ b/lib/libsys/Makefile
@@ -43,6 +43,7 @@ CFLAGS+= -ftls-model=initial-exec
 # Link with static libcompiler_rt.a.
 #
 LDFLAGS+= -nodefaultlibs
+LDFLAGS+= -Wl,-Bsymbolic
 LIBADD+=	compiler_rt
 
 .if ${MK_SSP} != "no" && \



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202402231757.41NHvvVs018213>