Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F163271827
D4750.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
22 KB
Referenced Files
None
Subscribers
None
D4750.id.diff
View Options
Index: Makefile.inc1
===================================================================
--- Makefile.inc1
+++ Makefile.inc1
@@ -1643,6 +1643,11 @@
.if ${MK_USB} != "no"
_usb_tools= sys/boot/usb/tools
.endif
+.if ${MK_ASAN} != "no"
+_asan_libs= lib/libclang_rt/asan-preinit \
+ lib/libclang_rt/asan \
+ lib/libclang_rt/asan_cxx
+.endif
cross-tools: .MAKE .PHONY
.for _tool in \
@@ -1654,7 +1659,8 @@
${_cc} \
${_btxld} \
${_crunchide} \
- ${_usb_tools}
+ ${_usb_tools} \
+ ${_asan_libs}
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \
cd ${.CURDIR}/${_tool}; \
${MAKE} DIRPRFX=${_tool}/ obj; \
Index: contrib/bmake/make.h
===================================================================
--- contrib/bmake/make.h
+++ contrib/bmake/make.h
@@ -435,7 +435,7 @@
* We cannot vfork() in a child of vfork().
* Most systems do not enforce this but some do.
*/
-#define vFork() ((getpid() == myPid) ? vfork() : fork())
+#define vFork() fork()
extern pid_t myPid;
#define MAKEFLAGS ".MAKEFLAGS"
Index: contrib/compiler-rt/lib/asan/asan_linux.cc
===================================================================
--- contrib/compiler-rt/lib/asan/asan_linux.cc
+++ contrib/compiler-rt/lib/asan/asan_linux.cc
@@ -94,6 +94,12 @@
if (!info->dlpi_name || info->dlpi_name[0] == 0)
return 0;
+ // The dl_iterate_phdr from FreeBSD iterates over all ELF objects,
+ // not only the shared objects. So we skip everything else which has
+ // not a PT_LOAD type.
+ if (info->dlpi_phdr->p_type != PT_LOAD)
+ return 0;
+
// Ignore vDSO
if (internal_strncmp(info->dlpi_name, "linux-", sizeof("linux-") - 1) == 0)
return 0;
Index: contrib/llvm/utils/TableGen/TableGen.cpp
===================================================================
--- contrib/llvm/utils/TableGen/TableGen.cpp
+++ contrib/llvm/utils/TableGen/TableGen.cpp
@@ -181,7 +181,7 @@
#ifdef __has_feature
#if __has_feature(address_sanitizer)
-#include <sanitizer/lsan_interface.h>
+//#include <sanitizer/lsan_interface.h>
// Disable LeakSanitizer for this binary as it has too many leaks that are not
// very interesting to fix. See compiler-rt/include/sanitizer/lsan_interface.h .
int __lsan_is_turned_off() { return 1; }
Index: contrib/mdocml/mdoc_macro.c
===================================================================
--- contrib/mdocml/mdoc_macro.c
+++ contrib/mdocml/mdoc_macro.c
@@ -31,6 +31,14 @@
#include "libmdoc.h"
#include "libmandoc.h"
+#define CHECK_TOK \
+ do { \
+ if (tok >= MDOC_MAX) { \
+ fprintf(stderr, "DIMDBG %s(%d) %s: tok=%d, MDOC_MAX=%d\n", \
+ __FILE__, __LINE__, __func__, tok, MDOC_MAX); \
+ } \
+ } while (0)
+
static void blk_full(MACRO_PROT_ARGS);
static void blk_exp_close(MACRO_PROT_ARGS);
static void blk_part_exp(MACRO_PROT_ARGS);
@@ -454,6 +462,7 @@
char *p;
enum mdoct ntok;
+ CHECK_TOK;
p = buf + ppos;
ntok = MDOC_MAX;
if (*p == '"')
@@ -1061,6 +1070,7 @@
continue;
}
+ CHECK_TOK;
if (macro_or_word(mdoc, tok, line, la, pos, buf, parsed))
break;
}
@@ -1152,6 +1162,7 @@
if (body == NULL)
body = mdoc_body_alloc(mdoc, line, ppos, tok);
+ CHECK_TOK;
if (macro_or_word(mdoc, tok, line, la, pos, buf, 1))
break;
}
@@ -1243,6 +1254,7 @@
continue;
}
+ CHECK_TOK;
if (macro_or_word(mdoc, tok, line, la, pos, buf, 1))
break;
}
@@ -1417,6 +1429,7 @@
la = *pos;
if (mdoc_args(mdoc, line, pos, buf, tok, NULL) == ARGS_EOLN)
return(0);
+ CHECK_TOK;
if (macro_or_word(mdoc, tok, line, la, pos, buf, 1))
return(1);
}
Index: gnu/usr.bin/diff/Makefile
===================================================================
--- gnu/usr.bin/diff/Makefile
+++ gnu/usr.bin/diff/Makefile
@@ -11,7 +11,7 @@
PROG= diff
SRCS= analyze.c context.c diff.c dir.c ed.c ifdef.c io.c \
normal.c side.c util.c \
- xmalloc.c strtoumax.c cmpbuf.c exitfail.c error.c quotesys.c \
+ xmalloc.c cmpbuf.c exitfail.c error.c quotesys.c \
strftime.c c-stack.c basename.c exclude.c hard-locale.c \
file-type.c posixver.c prepargs.c version-etc.c
Index: gnu/usr.bin/sdiff/Makefile
===================================================================
--- gnu/usr.bin/sdiff/Makefile
+++ gnu/usr.bin/sdiff/Makefile
@@ -7,7 +7,7 @@
PROG= sdiff
SRCS= sdiff.c version-etc.c \
- error.c xmalloc.c c-stack.c basename.c strtoumax.c \
+ error.c xmalloc.c c-stack.c basename.c \
exitfail.c
# Important for ctype macros!
Index: kerberos5/lib/libasn1/Makefile
===================================================================
--- kerberos5/lib/libasn1/Makefile
+++ kerberos5/lib/libasn1/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= asn1
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
INCS= asn1_err.h asn1-common.h heim_asn1.h der.h der-protos.h der-private.h
LIBADD= com_err roken
VERSION_MAP= ${.CURDIR}/version.map
Index: kerberos5/lib/libgssapi_krb5/Makefile
===================================================================
--- kerberos5/lib/libgssapi_krb5/Makefile
+++ kerberos5/lib/libgssapi_krb5/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= gssapi_krb5
-LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDFLAGS= -Wl,-Bsymbolic ${LD_NO_UNDEF}
LIBADD= gssapi krb5 crypto roken asn1 com_err
SHLIB_MAJOR= 10
Index: kerberos5/lib/libgssapi_ntlm/Makefile
===================================================================
--- kerberos5/lib/libgssapi_ntlm/Makefile
+++ kerberos5/lib/libgssapi_ntlm/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= gssapi_ntlm
-LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDFLAGS= -Wl,-Bsymbolic ${LD_NO_UNDEF}
LIBADD= crypto gssapi krb5 heimntlm roken
SHLIB_MAJOR= 10
Index: kerberos5/lib/libgssapi_spnego/Makefile
===================================================================
--- kerberos5/lib/libgssapi_spnego/Makefile
+++ kerberos5/lib/libgssapi_spnego/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= gssapi_spnego
-LDFLAGS= -Wl,-Bsymbolic -Wl,--no-undefined
+LDFLAGS= -Wl,-Bsymbolic ${LD_NO_UNDEF}
LIBADD= gssapi heimbase asn1 roken
SHLIB_MAJOR= 10
Index: kerberos5/lib/libhdb/Makefile
===================================================================
--- kerberos5/lib/libhdb/Makefile
+++ kerberos5/lib/libhdb/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= hdb
-LDFLAGS= -Wl,--no-undefined ${LDAPLDFLAGS}
+LDFLAGS= ${LD_NO_UNDEF} ${LDAPLDFLAGS}
VERSION_MAP= ${KRB5DIR}/lib/hdb/version-script.map
LIBADD= asn1 com_err krb5 roken sqlite3
LDADD= ${LDAPLDADD}
Index: kerberos5/lib/libheimbase/Makefile
===================================================================
--- kerberos5/lib/libheimbase/Makefile
+++ kerberos5/lib/libheimbase/Makefile
@@ -1,7 +1,7 @@
#$FreeBSD$
LIB= heimbase
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
LIBADD= pthread
VERSION_MAP= ${KRB5DIR}/base/version-script.map
Index: kerberos5/lib/libheimntlm/Makefile
===================================================================
--- kerberos5/lib/libheimntlm/Makefile
+++ kerberos5/lib/libheimntlm/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= heimntlm
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
LIBADD= crypto com_err krb5 roken
SRCS= ntlm.c ntlm_err.c
INCS= heimntlm.h heimntlm-protos.h ntlm_err.h
Index: kerberos5/lib/libhx509/Makefile
===================================================================
--- kerberos5/lib/libhx509/Makefile
+++ kerberos5/lib/libhx509/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= hx509
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
VERSION_MAP= ${KRB5DIR}/lib/hx509/version-script.map
LIBADD= asn1 com_err crypto roken wind
Index: kerberos5/lib/libkadm5clnt/Makefile
===================================================================
--- kerberos5/lib/libkadm5clnt/Makefile
+++ kerberos5/lib/libkadm5clnt/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= kadm5clnt
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
LIBADD= com_err krb5 roken
INCS= admin.h \
Index: kerberos5/lib/libkadm5srv/Makefile
===================================================================
--- kerberos5/lib/libkadm5srv/Makefile
+++ kerberos5/lib/libkadm5srv/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= kadm5srv
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
LIBADD= com_err hdb krb5 roken
VERSION_MAP= ${KRB5DIR}/lib/kadm5/version-script.map
MAN= kadm5_pwcheck.3
Index: kerberos5/lib/libkafs5/Makefile
===================================================================
--- kerberos5/lib/libkafs5/Makefile
+++ kerberos5/lib/libkafs5/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= kafs5
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
LIBADD= asn1 krb5 roken
INCS= kafs.h
MAN= kafs5.3
Index: kerberos5/lib/libkdc/Makefile
===================================================================
--- kerberos5/lib/libkdc/Makefile
+++ kerberos5/lib/libkdc/Makefile
@@ -1,7 +1,7 @@
#$FreeBSD$
LIB= kdc
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
VERSION_MAP= ${KRB5DIR}/kdc/version-script.map
LIBADD= roken hdb hx509 krb5 heimntlm asn1 crypto
Index: kerberos5/lib/libkrb5/Makefile
===================================================================
--- kerberos5/lib/libkrb5/Makefile
+++ kerberos5/lib/libkrb5/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
LIB= krb5
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
VERSION_MAP= ${KRB5DIR}/lib/krb5/version-script.map
LIBADD= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc
Index: kerberos5/lib/libwind/Makefile
===================================================================
--- kerberos5/lib/libwind/Makefile
+++ kerberos5/lib/libwind/Makefile
@@ -1,7 +1,7 @@
#$FreeBSD$
LIB= wind
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
VERSION_MAP= ${KRB5DIR}/lib/wind/version-script.map
LIBADD= com_err roken
Index: lib/libc/Makefile
===================================================================
--- lib/libc/Makefile
+++ lib/libc/Makefile
@@ -163,6 +163,8 @@
SUBDIR+= tests
.endif
+MK_ASAN= no
+
.include <bsd.lib.mk>
.if !defined(_SKIP_BUILD)
Index: lib/libclang_rt/Makefile.inc
===================================================================
--- lib/libclang_rt/Makefile.inc
+++ lib/libclang_rt/Makefile.inc
@@ -8,12 +8,12 @@
CLANGDIR=/usr/lib/clang/3.7.1
LIBDIR=${CLANGDIR}/lib/freebsd
-NO_PIC=
MK_PROFILE=no
+MK_SSP=no
+MK_ASAN=no
WARNS?=0
-SSP_CFLAGS=
CFLAGS+=-DNDEBUG
CFLAGS+=${PICFLAG}
CFLAGS+=-fno-builtin
Index: lib/libclang_rt/asan-dynamic/Makefile
===================================================================
--- lib/libclang_rt/asan-dynamic/Makefile
+++ lib/libclang_rt/asan-dynamic/Makefile
@@ -2,7 +2,7 @@
.include <bsd.init.mk>
-LIB= clang_rt.asan-${CRTARCH}
+SHLIB_NAME= libclang_rt.asan-${CRTARCH}.so
.PATH: ${CRTSRC}/lib/asan\
${CRTSRC}/lib/interception\
@@ -10,8 +10,7 @@
${CRTSRC}/lib/lsan\
${CRTSRC}/lib/ubsan
-SRCS= asan_preinit.cc\
- asan_allocator.cc\
+SRCS= asan_allocator.cc\
asan_activation.cc\
asan_debugging.cc\
asan_fake_stack.cc\
@@ -32,6 +31,11 @@
asan_suppressions.cc\
asan_thread.cc\
asan_win.cc\
+ asan_new_delete.cc\
+ ubsan_handlers_cxx.cc\
+ ubsan_type_hash.cc\
+ ubsan_type_hash_itanium.cc\
+ ubsan_type_hash_win.cc\
interception_linux.cc\
interception_mac.cc\
interception_win.cc\
@@ -85,4 +89,16 @@
ubsan_handlers.cc\
ubsan_value.cc
+# Kludge around a bsd.lib.mk shortcoming: when SHLIB_NAME is defined, but LIB
+# and LIB_CXX are undefined (which forces building only a shared library),
+# there is no way to tell it to use ${CXX} for linking. Since the files for
+# this library are all C++ anyway, simply set CC to CXX.
+CC= ${CXX}
+
.include <bsd.lib.mk>
+
+CXXFLAGS.ubsan_handlers_cxx.cc= -frtti
+CXXFLAGS.ubsan_type_hash.cc= -frtti
+CXXFLAGS.ubsan_type_hash_itanium.cc= -frtti
+CXXFLAGS.ubsan_type_hash_win.cc= -frtti
+CXXFLAGS+= ${CXXFLAGS.${.IMPSRC:T}}
Index: lib/libclang_rt/asan-preinit/Makefile
===================================================================
--- lib/libclang_rt/asan-preinit/Makefile
+++ lib/libclang_rt/asan-preinit/Makefile
@@ -2,7 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.asan-preinit-${CRTARCH}
+LIB_CXX=clang_rt.asan-preinit-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/asan
Index: lib/libclang_rt/asan/Makefile
===================================================================
--- lib/libclang_rt/asan/Makefile
+++ lib/libclang_rt/asan/Makefile
@@ -2,7 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.asan-${CRTARCH}
+LIB_CXX=clang_rt.asan-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/asan\
${CRTSRC}/lib/interception\
Index: lib/libclang_rt/asan_cxx/Makefile
===================================================================
--- lib/libclang_rt/asan_cxx/Makefile
+++ lib/libclang_rt/asan_cxx/Makefile
@@ -2,7 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.asan_cxx-${CRTARCH}
+LIB_CXX=clang_rt.asan_cxx-${CRTARCH}
+NO_PIC=
CXXFLAGS+=-frtti
Index: lib/libclang_rt/profile/Makefile
===================================================================
--- lib/libclang_rt/profile/Makefile
+++ lib/libclang_rt/profile/Makefile
@@ -3,6 +3,7 @@
.include <bsd.init.mk>
LIB= clang_rt.profile-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/profile
Index: lib/libclang_rt/safestack/Makefile
===================================================================
--- lib/libclang_rt/safestack/Makefile
+++ lib/libclang_rt/safestack/Makefile
@@ -2,7 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.safestack-${CRTARCH}
+LIB_CXX=clang_rt.safestack-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/interception\
${CRTSRC}/lib/sanitizer_common\
Index: lib/libclang_rt/ubsan_standalone/Makefile
===================================================================
--- lib/libclang_rt/ubsan_standalone/Makefile
+++ lib/libclang_rt/ubsan_standalone/Makefile
@@ -2,7 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.ubsan_standalone-${CRTARCH}
+LIB_CXX=clang_rt.ubsan_standalone-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/sanitizer_common\
${CRTSRC}/lib/ubsan
Index: lib/libclang_rt/ubsan_standalone_cxx/Makefile
===================================================================
--- lib/libclang_rt/ubsan_standalone_cxx/Makefile
+++ lib/libclang_rt/ubsan_standalone_cxx/Makefile
@@ -2,9 +2,8 @@
.include <bsd.init.mk>
-LIB= clang_rt.ubsan_standalone_cxx-${CRTARCH}
-
-CXXFLAGS+=-frtti
+LIB_CXX=clang_rt.ubsan_standalone_cxx-${CRTARCH}
+NO_PIC=
.PATH: ${CRTSRC}/lib/ubsan
@@ -13,4 +12,6 @@
ubsan_type_hash_itanium.cc\
ubsan_type_hash_win.cc
+CXXFLAGS+=-frtti
+
.include <bsd.lib.mk>
Index: lib/libcom_err/Makefile
===================================================================
--- lib/libcom_err/Makefile
+++ lib/libcom_err/Makefile
@@ -7,7 +7,7 @@
COM_ERRDIR= ${.CURDIR}/../../contrib/com_err
CFLAGS+= -I${COM_ERRDIR}
-LDFLAGS= -Wl,--no-undefined
+LDFLAGS= ${LD_NO_UNDEF}
VERSION_MAP= ${COM_ERRDIR}/version-script.map
.include <bsd.lib.mk>
Index: lib/libproc/tests/Makefile
===================================================================
--- lib/libproc/tests/Makefile
+++ lib/libproc/tests/Makefile
@@ -6,7 +6,7 @@
SRCS_target_prog= target_prog.c
BINDIR_target_prog= ${TESTSDIR}
-LIBADD= elf proc rtld_db util
+LIBADD= elf proc cxxrt rtld_db util
# Ensure that symbols aren't stripped from the test program, as they're needed
# for testing symbol lookup.
Index: lib/ncurses/config.mk
===================================================================
--- lib/ncurses/config.mk
+++ lib/ncurses/config.mk
@@ -4,6 +4,8 @@
NCURSES_DIR= ${.CURDIR}/../../../contrib/ncurses
+MK_ASAN= no
+
.if defined(ENABLE_WIDEC)
LIB_SUFFIX= w
CFLAGS+= -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC
Index: libexec/ftpd/Makefile
===================================================================
--- libexec/ftpd/Makefile
+++ libexec/ftpd/Makefile
@@ -33,4 +33,8 @@
LIBADD+= pam
.endif
+.if ${MK_ASAN} != "no"
+CFLAGS+=-Dgetline=get_line
+.endif
+
.include <bsd.prog.mk>
Index: rescue/rescue/Makefile
===================================================================
--- rescue/rescue/Makefile
+++ rescue/rescue/Makefile
@@ -5,6 +5,7 @@
MAN=
MK_SSP= no
+CRUNCHENV= MK_TESTS=no MK_SSP=no
PROG= rescue
BINDIR?=/rescue
Index: share/mk/bsd.lib.mk
===================================================================
--- share/mk/bsd.lib.mk
+++ share/mk/bsd.lib.mk
@@ -76,25 +76,25 @@
PO_FLAG=-pg
.c.o:
- ${CC} ${STATIC_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CC} ${STATIC_CFLAGS} ${CFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.c.po:
- ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CC} ${PO_FLAG} ${STATIC_CFLAGS} ${PO_CFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.c.So:
- ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.cc.o .C.o .cpp.o .cxx.o:
- ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CXX} ${STATIC_CXXFLAGS} ${CXXFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
.cc.po .C.po .cpp.po .cxx.po:
- ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
.cc.So .C.So .cpp.So .cxx.So:
- ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
.f.po:
${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC}
@@ -109,23 +109,23 @@
${CTFCONVERT_CMD}
.asm.po:
- ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS} \
- ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CC:N${CCACHE_BIN}} -x assembler-with-cpp -DPROF ${PO_CFLAGS:N-fsanitize=*} ${ACFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.asm.So:
- ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \
- ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET}
+ ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC ${CFLAGS:N-fsanitize=*} ${ACFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
+ ${CTFCONVERT_CMD}
+
+.S.o:
+ ${CC:N${CCACHE_BIN}} ${CFLAGS:N-fsanitize=*} ${ACFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.S.po:
- ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \
- -o ${.TARGET}
+ ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS:N-fsanitize=*} ${ACFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.S.So:
- ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \
- -c ${.IMPSRC} -o ${.TARGET}
+ ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS:N-fsanitize=*} ${ACFLAGS:N-fsanitize=*} -DASAN_IS_DISABLED_FOR_NOW -c ${.IMPSRC} -o ${.TARGET}
${CTFCONVERT_CMD}
.if !defined(_SKIP_BUILD)
Index: share/mk/bsd.sys.mk
===================================================================
--- share/mk/bsd.sys.mk
+++ share/mk/bsd.sys.mk
@@ -164,6 +164,17 @@
CFLAGS+= ${SSP_CFLAGS}
.endif # SSP && !ARM && !MIPS
+.if ${MK_ASAN} != "no" && ${MK_SSP} != "no" && ${SSP_CFLAGS} != "" && \
+ (!defined(NO_SHARED) || ${NO_SHARED} == "no" || ${NO_SHARED} == "NO")
+ASANFLAGS?= -fsanitize=address
+CFLAGS+= ${ASANFLAGS}
+CXXFLAGS+= ${ASANFLAGS}
+LDFLAGS+= ${ASANFLAGS}
+LD_NO_UNDEF=
+.else
+LD_NO_UNDEF= -Wl,--no-undefined
+.endif
+
# Allow user-specified additional warning flags, plus compiler specific flag overrides.
# Unless we've overriden this...
.if ${MK_WARNS} != "no"
Index: share/mk/src.libnames.mk
===================================================================
--- share/mk/src.libnames.mk
+++ share/mk/src.libnames.mk
@@ -282,7 +282,7 @@
_DP_ucl= m
_DP_vmmapi= util
_DP_ctf= z
-_DP_dtrace= ctf elf proc pthread rtld_db
+_DP_dtrace= ctf elf proc cxxrt pthread rtld_db
_DP_xo= util
# The libc dependencies are not strictly needed but are defined to make the
# assert happy.
Index: share/mk/src.opts.mk
===================================================================
--- share/mk/src.opts.mk
+++ share/mk/src.opts.mk
@@ -175,6 +175,7 @@
ZONEINFO
__DEFAULT_NO_OPTIONS = \
+ ASAN \
BSD_GREP \
CLANG_EXTRAS \
DTRACE_TESTS \
Index: share/mk/sys.mk
===================================================================
--- share/mk/sys.mk
+++ share/mk/sys.mk
@@ -172,8 +172,8 @@
LFLAGS ?=
LD ?= ld
-LDFLAGS ?= # LDFLAGS is for CC,
-_LDFLAGS = ${LDFLAGS:S/-Wl,//g} # strip -Wl, for LD
+LDFLAGS ?= # LDFLAGS is for CC,
+_LDFLAGS = ${LDFLAGS:N-fsanitize=*:S/-Wl,//g} # strip -Wl, for LD
LINT ?= lint
LINTFLAGS ?= -cghapbx
Index: usr.bin/ctags/Makefile
===================================================================
--- usr.bin/ctags/Makefile
+++ usr.bin/ctags/Makefile
@@ -1,8 +1,14 @@
# @(#)Makefile 8.1 (Berkeley) 6/6/93
# $FreeBSD$
+.include <src.opts.mk>
+
PROG= ctags
SRCS= C.c ctags.c fortran.c lisp.c print.c tree.c yacc.c
CFLAGS+=-I${.CURDIR}
+.if ${MK_ASAN} != "no"
+CFLAGS+=-Dgetline=get_line
+.endif
+
.include <bsd.prog.mk>
Index: usr.bin/tar/tests/Makefile
===================================================================
--- usr.bin/tar/tests/Makefile
+++ usr.bin/tar/tests/Makefile
@@ -5,9 +5,9 @@
ATF_TESTS_SH+= functional_test
BINDIR= ${TESTSDIR}
+NO_SHARED=
CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -static
CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR}
CFLAGS+= -I${_LIBARCHIVEDIR}/tar -I${_LIBARCHIVEDIR}/test_utils
Index: usr.sbin/ftp-proxy/Makefile
===================================================================
--- usr.sbin/ftp-proxy/Makefile
+++ usr.sbin/ftp-proxy/Makefile
@@ -1,5 +1,7 @@
# $FreeBSD$
+.include <src.opts.mk>
+
.PATH: ${.CURDIR}/../../contrib/pf/ftp-proxy
PROG= ftp-proxy
@@ -9,6 +11,10 @@
CFLAGS+=-I${.CURDIR}/../../contrib/pf/libevent
+.if ${MK_ASAN} != "no"
+CFLAGS+=-Dgetline=get_line
+.endif
+
LIBADD= event
WARNS?= 3
Index: usr.sbin/lpr/Makefile.inc
===================================================================
--- usr.sbin/lpr/Makefile.inc
+++ usr.sbin/lpr/Makefile.inc
@@ -6,4 +6,8 @@
CFLAGS+= -DINET6
.endif
+.if ${MK_ASAN} != "no"
+CFLAGS+=-Dgetline=get_line
+.endif
+
.include "../Makefile.inc"
Index: usr.sbin/rpc.lockd/lockd_lock.c
===================================================================
--- usr.sbin/rpc.lockd/lockd_lock.c
+++ usr.sbin/rpc.lockd/lockd_lock.c
@@ -215,7 +215,6 @@
enum nlm_stats do_unlock(struct file_lock *fl);
enum nlm_stats do_lock(struct file_lock *fl);
void do_clear(const char *hostname);
-size_t strnlen(const char *, size_t);
void
debuglog(char const *fmt, ...)
@@ -371,17 +370,6 @@
dest->l_len = src->l_len;
}
-
-size_t
-strnlen(const char *s, size_t len)
-{
- size_t n;
-
- for (n = 0; s[n] != 0 && n < len; n++)
- ;
- return n;
-}
-
/*
* allocate_file_lock: Create a lock with the given parameters
*/
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jul 22, 3:21 PM (15 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35369280
Default Alt Text
D4750.id.diff (22 KB)
Attached To
Mode
D4750: Rough first draft of WITH_ASAN support, DO NOT USE FOR ANYTHING SERIOUS
Attached
Detach File
Event Timeline
Log In to Comment