diff options
author | Brooks Davis <brooks@FreeBSD.org> | 2024-02-19 22:44:08 +0000 |
---|---|---|
committer | Brooks Davis <brooks@FreeBSD.org> | 2024-02-19 22:44:08 +0000 |
commit | 99ea67573164637d633e8051eb0a5d52f1f9488e (patch) | |
tree | 4667fab344e8e566613ea269b999e3b37cc0d461 /lib | |
parent | ef75877fc2d93199aab2b509089136c433af1f20 (diff) | |
download | src-99ea67573164637d633e8051eb0a5d52f1f9488e.tar.gz src-99ea67573164637d633e8051eb0a5d52f1f9488e.zip |
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/Makefile | 1 | ||||
-rw-r--r-- | lib/libc/tests/ssp/Makefile | 1 | ||||
-rw-r--r-- | lib/libsys/Makefile | 3 | ||||
-rw-r--r-- | lib/libsys/Makefile.sys | 10 | ||||
-rw-r--r-- | lib/libsys/Symbol.map | 5 | ||||
-rw-r--r-- | lib/libsys/Symbol.sys.map | 2 | ||||
-rw-r--r-- | lib/libsys/libc_stubs.c | 11 | ||||
-rw-r--r-- | lib/libthr/Makefile | 2 |
8 files changed, 31 insertions, 4 deletions
diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 54748abfeff1..41cf0f6de72a 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -62,6 +62,7 @@ CFLAGS+= -ftls-model=initial-exec # LDFLAGS+= -nodefaultlibs LIBADD+= compiler_rt +LIBADD+= sys LDFLAGS+=-Wl,--auxiliary,libsys.so.7 diff --git a/lib/libc/tests/ssp/Makefile b/lib/libc/tests/ssp/Makefile index c6f850ec1a33..22f48d7dfe54 100644 --- a/lib/libc/tests/ssp/Makefile +++ b/lib/libc/tests/ssp/Makefile @@ -10,6 +10,7 @@ CFLAGS.h_raw+= -fstack-protector-all -Wstack-protector # override the sanitizer runtime libraries to be the ones installed on the # target system. CFLAGS.h_raw+= -fsanitize=bounds +LIBADD+=sys .elif ${COMPILER_TYPE} == "gcc" CFLAGS.h_raw+= --param ssp-buffer-size=1 LDADD+= -lssp diff --git a/lib/libsys/Makefile b/lib/libsys/Makefile index 897e033267a4..598962185dcf 100644 --- a/lib/libsys/Makefile +++ b/lib/libsys/Makefile @@ -57,6 +57,9 @@ MDASM= MIASM= NOASM= +SYM_MAPS+= ${LIBSYS_SRCTOP}/Symbol.map +SRCS+= auxv.c + .include "${LIBSYS_SRCTOP}/Makefile.sys" SYM_MAPS+= ${LIBSYS_SRCTOP}/Symbol.thr.map diff --git a/lib/libsys/Makefile.sys b/lib/libsys/Makefile.sys index b45aa3cf1aaf..cb9ca1749ba8 100644 --- a/lib/libsys/Makefile.sys +++ b/lib/libsys/Makefile.sys @@ -47,8 +47,6 @@ SRCS+= recv.c recvmmsg.c send.c sendmmsg.c NOASM+= sched_getcpu.o PSEUDO+= _sched_getcpu.o -SRCS+= auxv.c - SRCS+= brk.c SRCS+= closefrom.c SRCS+= pipe.c @@ -58,6 +56,14 @@ SRCS+= POSIX2x_Fork.c SRCS+= compat-stub.c +.if ${LIB} == "c" +# Trapping stubs in dynamic libc to be filtered by libsys. +SOBJS+= libc_stubs.pico + +# Link the full implementation of ELF auxargs for static libc. +STATICOBJS+= auxv.o +.endif + INTERPOSED = \ accept \ accept4 \ diff --git a/lib/libsys/Symbol.map b/lib/libsys/Symbol.map new file mode 100644 index 000000000000..4f72ea204039 --- /dev/null +++ b/lib/libsys/Symbol.map @@ -0,0 +1,5 @@ +FBSDprivate_1.0 { + __elf_aux_vector; + __init_elf_aux_vector; + _elf_aux_info; +}; diff --git a/lib/libsys/Symbol.sys.map b/lib/libsys/Symbol.sys.map index 73a1cf297ca0..d59ac8674669 100644 --- a/lib/libsys/Symbol.sys.map +++ b/lib/libsys/Symbol.sys.map @@ -433,12 +433,10 @@ FBSD_1.8 { FBSDprivate_1.0 { /* Add entries in sort(1) order */ - __elf_aux_vector; __libc_sigwait; __libsys_interposing_slot; __set_error_selector; __sigwait; - _elf_aux_info; gssd_syscall; nlm_syscall; rpctls_syscall; diff --git a/lib/libsys/libc_stubs.c b/lib/libsys/libc_stubs.c new file mode 100644 index 000000000000..41d69a9355c3 --- /dev/null +++ b/lib/libsys/libc_stubs.c @@ -0,0 +1,11 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2024 SRI International + */ + +#define STUB_FUNC(f) \ + void (f)(void); \ + void (f)(void) { __builtin_trap(); } + +STUB_FUNC(elf_aux_info); diff --git a/lib/libthr/Makefile b/lib/libthr/Makefile index 932650885dea..325a320d55ec 100644 --- a/lib/libthr/Makefile +++ b/lib/libthr/Makefile @@ -7,6 +7,8 @@ PACKAGE= clibs SHLIBDIR?= /lib +LIBADD= c sys + .include <src.opts.mk> MK_SSP= no |