7bc797e3f3
This adds two new options WITH_ASAN/WITH_UBSAN that can be set to enable instrumentation of all binaries with AddressSanitizer and/or UndefinedBehaviourSanitizer. This current patch is almost sufficient to get a complete buildworld with sanitizer instrumentation but in order to actually build and boot a system it depends on a few more follow-up commits. Reviewed By: brooks, kib, markj Differential Revision: https://reviews.freebsd.org/D31043
59 lines
1.4 KiB
Makefile
59 lines
1.4 KiB
Makefile
# $FreeBSD$
|
|
|
|
PACKAGE= clibs
|
|
SHLIB_NAME= libgcc_s.so.1
|
|
SHLIBDIR?= /lib
|
|
|
|
# Enabling UBSan triggers "undefined reference to vtable for __cxxabiv1::__function_type_info"
|
|
MK_UBSAN:= no
|
|
|
|
.include <bsd.opts.mk>
|
|
|
|
MK_SSP= no
|
|
WARNS?= 2
|
|
|
|
LDFLAGS+= -nodefaultlibs
|
|
LIBADD+= c
|
|
|
|
VERSION_DEF= ${.CURDIR}/Versions.def
|
|
SYMBOL_MAPS= ${.CURDIR}/Symbol.map
|
|
# Export ARM AEABI unwind routines needed by libc and libthr.
|
|
.if exists(${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map)
|
|
SYMBOL_MAPS+= ${.CURDIR}/${MACHINE_CPUARCH}/Symbol.map
|
|
.else
|
|
SYMBOL_MAPS+= ${.CURDIR}/SymbolDefault.map
|
|
.endif
|
|
|
|
.include "../libcompiler_rt/Makefile.inc"
|
|
.include "../libgcc_eh/Makefile.inc"
|
|
|
|
# gcc has incompatible internal declarations for __divtc3 and __multc3, but has
|
|
# no option to silence its warning, so make warnings non-fatal.
|
|
MK_WERROR.gcc= no
|
|
|
|
LIBCSRCDIR= ${SRCTOP}/lib/libc
|
|
LIBMSRCDIR= ${SRCTOP}/lib/msun/src
|
|
CFLAGS+= -I${LIBCSRCDIR}/include -I${LIBCSRCDIR}/${MACHINE_CPUARCH}
|
|
CFLAGS+= -I${LIBMSRCDIR}
|
|
.PATH: ${LIBMSRCDIR}
|
|
SRCS+= s_fabs.c
|
|
SRCS+= s_fabsf.c
|
|
SRCS+= s_fabsl.c
|
|
SRCS+= s_fmax.c
|
|
SRCS+= s_fmaxf.c
|
|
SRCS+= s_logb.c
|
|
SRCS+= s_logbf.c
|
|
SRCS+= s_scalbn.c
|
|
SRCS+= s_scalbnf.c
|
|
|
|
# Don't include long double routines on architectures where long double
|
|
# is the same size as double.
|
|
.if ${MACHINE_CPUARCH} != "mips" && ${MACHINE_CPUARCH} != "arm" && \
|
|
${MACHINE_CPUARCH} != "powerpc"
|
|
SRCS+= s_fmaxl.c
|
|
SRCS+= s_logbl.c
|
|
SRCS+= s_scalbnl.c
|
|
.endif
|
|
|
|
.include <bsd.lib.mk>
|