Module Name:    src
Committed By:   kamil
Date:           Mon Jun 25 17:58:36 UTC 2018

Modified Files:
        src/share/mk: bsd.lib.mk bsd.prog.mk

Log Message:
Add a framework for renaming symbols in libc&co for MKSANITIZER

A new keyword SANITIZER_RENAME_SYMBOL. It's a variable that has specified
a list of symbols to be renamed in a processor in order to remove naming
conflicts with public symbols in libc/m/pthread/rt.

This renaming will occur for libraries and programs.
A symbol with a conflicting 'name', will be renamed to '__mksanitizer_name'.

Based on an idea by <christos>


To generate a diff of this commit:
cvs rdiff -u -r1.375 -r1.376 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.314 -r1.315 src/share/mk/bsd.prog.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/mk/bsd.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.375 src/share/mk/bsd.lib.mk:1.376
--- src/share/mk/bsd.lib.mk:1.375	Thu Jun 21 11:24:38 2018
+++ src/share/mk/bsd.lib.mk	Mon Jun 25 17:58:36 2018
@@ -1,9 +1,17 @@
-#	$NetBSD: bsd.lib.mk,v 1.375 2018/06/21 11:24:38 kamil Exp $
+#	$NetBSD: bsd.lib.mk,v 1.376 2018/06/25 17:58:36 kamil Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
 .include <bsd.shlib.mk>
 .include <bsd.gcc.mk>
+
+# 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
+
 # Pull in <bsd.sys.mk> here so we can override its .c.o rule
 .include <bsd.sys.mk>
 

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.314 src/share/mk/bsd.prog.mk:1.315
--- src/share/mk/bsd.prog.mk:1.314	Thu Jun 21 11:24:38 2018
+++ src/share/mk/bsd.prog.mk	Mon Jun 25 17:58:36 2018
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.314 2018/06/21 11:24:38 kamil Exp $
+#	$NetBSD: bsd.prog.mk,v 1.315 2018/06/25 17:58:36 kamil Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -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.

Reply via email to