Date: Mon, 5 Feb 2024 20:52:36 +0000 From: Jessica Clarke <jrtc27@freebsd.org> To: Brooks Davis <brooks@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 0d4f7723bc43 - main - libc: link libsys as a auxiliary filter library Message-ID: <68B8B759-E01F-498A-850B-23EAE4A3DABC@freebsd.org> In-Reply-To: <202402052038.415KckEC069716@gitrepo.freebsd.org> References: <202402052038.415KckEC069716@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 Feb 2024, at 20:38, Brooks Davis <brooks@FreeBSD.org> wrote: >=20 > The branch main has been updated by brooks: >=20 > URL: = https://cgit.FreeBSD.org/src/commit/?id=3D0d4f7723bc43e06ca22025740cb826a7= f282ea11 >=20 > commit 0d4f7723bc43e06ca22025740cb826a7f282ea11 > Author: Brooks Davis <brooks@FreeBSD.org> > AuthorDate: 2023-11-15 23:35:16 +0000 > Commit: Brooks Davis <brooks@FreeBSD.org> > CommitDate: 2024-02-05 20:34:56 +0000 >=20 > libc: link libsys as a auxiliary filter library >=20 > At runtime, when rtld loads libc it will also load libsys. For = each > symbol that is present in both, the libsys one will override the = libc > one. It continues to be the case that program need only link = against > libc (usually implicitly). The linkage to libsys is automatic. >=20 > Reviewed by: kib, emaste, imp > Pull Request: https://github.com/freebsd/freebsd-src/pull/908 > --- > Makefile.inc1 | 2 ++ > UPDATING | 6 ++++++ > lib/Makefile | 2 +- > lib/libc/Makefile | 3 +++ > share/mk/src.libnames.mk | 2 +- > 5 files changed, 13 insertions(+), 2 deletions(-) >=20 > diff --git a/Makefile.inc1 b/Makefile.inc1 > index 7a9917fd8a74..f97e53cc7f9a 100644 > --- a/Makefile.inc1 > +++ b/Makefile.inc1 > @@ -3125,10 +3125,12 @@ _startup_libs=3D lib/csu > _startup_libs+=3D lib/libc > _startup_libs+=3D lib/libc_nonshared > _startup_libs+=3D lib/libcxxrt > +_startup_libs+=3D lib/libsys >=20 > _prereq_libs+=3D lib/libgcc_eh lib/libgcc_s > _startup_libs+=3D lib/libgcc_eh lib/libgcc_s >=20 > +lib/libc__L: lib/libsys__L > lib/libgcc_s__L: lib/libc__L > lib/libgcc_s__L: lib/libc_nonshared__L > lib/libcxxrt__L: lib/libgcc_s__L > diff --git a/UPDATING b/UPDATING > index 33bae2a42b9d..aae30936a8b5 100644 > --- a/UPDATING > +++ b/UPDATING > @@ -27,6 +27,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW: > world, or to merely disable the most expensive debugging functionality > at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) >=20 > +20240205: > + For dynamically linked programs, system calls are now made from > + libsys rather than libc. No change in linkage is required as > + libsys is an auxiliary filter for libc. People building custom > + images must ensure that libsys.so.7 is included. > + > 20240202: > Loader now also read configuration files listed in = local_loader_conf_files. > Files listed here are the last ones read. And /boot/loader.conf.local = was > diff --git a/lib/Makefile b/lib/Makefile > index db07883e2b10..9d2531820c8b 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -123,7 +123,7 @@ SUBDIR_DEPEND_libbsnmp=3D ${_libnetgraph} > SUBDIR_DEPEND_libc++:=3D libcxxrt > # libssp_nonshared doesn't need to be linked into libc on every arch, = but it is > # small enough to build that this bit of serialization is likely = insignificant. > -SUBDIR_DEPEND_libc=3D libcompiler_rt libssp_nonshared > +SUBDIR_DEPEND_libc=3D libsys libcompiler_rt libssp_nonshared > SUBDIR_DEPEND_libcam=3D libsbuf > SUBDIR_DEPEND_libcasper=3D libnv > SUBDIR_DEPEND_libdevstat=3D libkvm > diff --git a/lib/libc/Makefile b/lib/libc/Makefile > index 72300e88d3d7..6a54f7641087 100644 > --- a/lib/libc/Makefile > +++ b/lib/libc/Makefile > @@ -62,6 +62,9 @@ CFLAGS+=3D -ftls-model=3Dinitial-exec > # > LDFLAGS+=3D -nodefaultlibs > LIBADD+=3D compiler_rt > +LIBADD+=3D sys > + > +LDFLAGS+=3D-Wl,--auxiliary,libsys.so =46rom reading documentation and implementation code (LLD + rtld), = should this not be the soname, i.e. libsys.so.7? Jess > .if ${MK_SSP} !=3D "no" && \ > (${LIBC_ARCH} =3D=3D "i386" || ${LIBC_ARCH:Mpowerpc*} !=3D "") > diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk > index 5a6932614b29..3c19a4c45da3 100644 > --- a/share/mk/src.libnames.mk > +++ b/share/mk/src.libnames.mk > @@ -393,7 +393,7 @@ _DP_xo=3D util > _DP_ztest=3D geom m nvpair umem zpool pthread avl zfs_core spl zutil = zfs uutil icp > # The libc dependencies are not strictly needed but are defined to = make the > # assert happy. > -_DP_c=3D compiler_rt > +_DP_c=3D sys compiler_rt > # Use libssp_nonshared only on i386 and power*. Other archs emit = direct calls > # to __stack_chk_fail, not __stack_chk_fail_local provided by = libssp_nonshared. > .if ${MK_SSP} !=3D "no" && \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?68B8B759-E01F-498A-850B-23EAE4A3DABC>