diff --git a/external/bsd/nvi/Makefile.inc b/external/bsd/nvi/Makefile.inc index a43b70fcce3c..c8de9af1f2b2 100644 --- a/external/bsd/nvi/Makefile.inc +++ b/external/bsd/nvi/Makefile.inc @@ -2,6 +2,8 @@ .include +SANITIZER_RENAME_SYMBOL+= regcomp regerror regexec regfree + DIST= ${NETBSDSRCDIR}/external/bsd/nvi/dist .PATH: ${DIST} BINDIR=/usr/bin diff --git a/external/gpl2/diffutils/Makefile.inc b/external/gpl2/diffutils/Makefile.inc index 9e4083286718..32da5c0b640e 100644 --- a/external/gpl2/diffutils/Makefile.inc +++ b/external/gpl2/diffutils/Makefile.inc @@ -6,3 +6,5 @@ IDIST= ${NETBSDSRCDIR}/external/gpl2/diffutils/dist CPPFLAGS+= -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H \ -I${IDIST}/../include -I${IDIST}/lib + +SANITIZER_RENAME_SYMBOL+= regcomp regerror regexec regfree diff --git a/external/gpl2/grep/Makefile.inc b/external/gpl2/grep/Makefile.inc index e2744354f8fe..ac3778ba1a9a 100644 --- a/external/gpl2/grep/Makefile.inc +++ b/external/gpl2/grep/Makefile.inc @@ -2,6 +2,8 @@ .include +SANITIZER_RENAME_SYMBOL+= regcomp regerror regexec regfree + WARNS= 0 IDIST= ${NETBSDSRCDIR}/external/gpl2/grep/dist diff --git a/external/gpl2/xcvs/Makefile.inc b/external/gpl2/xcvs/Makefile.inc index 7fbaa11eacbb..9d6fbdda0968 100644 --- a/external/gpl2/xcvs/Makefile.inc +++ b/external/gpl2/xcvs/Makefile.inc @@ -24,3 +24,5 @@ COBJDIR!=cd $(.CURDIR)/../../lib/libcvs && ${PRINTOBJDIR} LIBDIFF= ${DOBJDIR}/libdiff.a LIBCVS= ${COBJDIR}/libcvs.a .endif + +SANITIZER_RENAME_SYMBOL+= regcomp regerror regexec regfree diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk index e7180611775d..edc33f0165f7 100644 --- a/share/mk/bsd.lib.mk +++ b/share/mk/bsd.lib.mk @@ -150,6 +150,11 @@ PICFLAGS ?= -fPIC .if ${MKPICLIB} != "no" CSHLIBFLAGS+= ${PICFLAGS} ${SANITIZERFLAGS} +. if ${MKSANITIZER:Uno} == "yes" && defined(SANITIZER_RENAME_SYMBOL) +. for _symbol in ${SANITIZER_RENAME_SYMBOL} +CSHLIBFLAGS+= -D${_symbol}=__mksanitizer_${_symbol} +. endfor +. endif .endif .if defined(CSHLIBFLAGS) && !empty(CSHLIBFLAGS) diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk index 3ef19b8ca325..e6df88e3e728 100644 --- a/share/mk/bsd.prog.mk +++ b/share/mk/bsd.prog.mk @@ -13,6 +13,13 @@ CFLAGS+= ${SANITIZERFLAGS} CXXFLAGS+= ${SANITIZERFLAGS} LDFLAGS+= ${SANITIZERFLAGS} +# Rename the local function definitions to not conflict with libc/rt/pthread/m. +.if ${MKSANITIZER:Uno} == "yes" && defined(SANITIZER_RENAME_SYMBOL) +. for _symbol in ${SANITIZER_RENAME_SYMBOL} +CPPFLAGS+= -D${_symbol}=__mksanitizer_${_symbol} +. endfor +.endif + # # Definitions and targets shared among all programs built by a single # Makefile. diff --git a/usr.bin/chpass/Makefile b/usr.bin/chpass/Makefile index fb7462fed212..3d2c9eed60d2 100644 --- a/usr.bin/chpass/Makefile +++ b/usr.bin/chpass/Makefile @@ -22,6 +22,11 @@ LDADD+= -lrpcsvc .else SRCS+= getpwent.c CPPFLAGS.getpwent.c=-UYP +SANITIZER_RENAME_SYMBOL+= __getpwent50 +SANITIZER_RENAME_SYMBOL+= __getpwnam50 +SANITIZER_RENAME_SYMBOL+= __getpwnam_r50 +SANITIZER_RENAME_SYMBOL+= __getpwuid50 +SANITIZER_RENAME_SYMBOL+= __getpwuid_r50 .endif DPADD+= ${LIBUTIL}