freebsd-src/lib/libc/tests/ssp/Makefile
Brooks Davis 99ea675731 lib{c,sys}: move auxargs more firmly into libsys
Continue to filter the public interface (elf_aux_info()), but entierly
relocate the private interfaces (_elf_aux_info(),
__init_elf_aux_vector(), and __elf_aux_vector) to libsys.

This ensures that rtld updates the correct (only) copy of
__elf_aux_vector.  After 968a18975a
updates were confused and __getosreldate was failing, causing
the system to fall back to compat compat12 syscalls in some cases.

Return to explicitly linking libc to libsys and link libthr with libc
and libsys (in that order).

Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D43910
2024-02-19 22:44:08 +00:00

61 lines
1.5 KiB
Makefile

.include <bsd.own.mk>
MK_WERROR= no
WARNS?= 2
CFLAGS.h_raw+= -fstack-protector-all -Wstack-protector
.if ${COMPILER_TYPE} == "clang"
# Only use -fsanitize=bounds when using clang. Otherwise we are not able to
# 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
.endif
NETBSD_ATF_TESTS_SH= ssp_test
BINDIR= ${TESTSDIR}
PROGS= h_fgets
PROGS+= h_gets
PROGS+= h_getcwd
PROGS+= h_memcpy
PROGS+= h_memmove
PROGS+= h_memset
# XXX: the h_raw/h_read testcases don't cause a SIGABRT with in-tree gcc right
# now on amd64 when it trips the stack bounds specified in t_ssp.sh . This
# probably needs to be fixed as it's currently hardcoded.
.if ${COMPILER_TYPE} == "clang" && !defined(_SKIP_BUILD) && \
(!defined(_RECURSING_PROGS) || ${PROG} == "h_raw")
.include "${SRCTOP}/lib/libclang_rt/compiler-rt-vars.mk"
_libclang_rt_ubsan= ${SYSROOT}${SANITIZER_LIBDIR}/libclang_rt.ubsan_standalone-${CRTARCH}.a
.if exists(${_libclang_rt_ubsan})
PROGS+= h_raw
LDADD.h_raw+= ${SANITIZER_LDFLAGS}
.else
.if make(all)
.info Could not find runtime library ${_libclang_rt_ubsan}, skipping h_raw
.endif
.endif
.endif
PROGS+= h_read
PROGS+= h_readlink
PROGS+= h_snprintf
PROGS+= h_sprintf
PROGS+= h_stpcpy
PROGS+= h_stpncpy
PROGS+= h_strcat
PROGS+= h_strcpy
PROGS+= h_strncat
PROGS+= h_strncpy
PROGS+= h_vsnprintf
PROGS+= h_vsprintf
.include "../Makefile.netbsd-tests"
.include <bsd.test.mk>