Module Name: src
Committed By: christos
Date: Sun Jan 31 15:30:14 UTC 2016
Modified Files:
src/share/mk: bsd.lib.mk bsd.own.mk bsd.prog.mk bsd.sys.mk
Log Message:
Introduce NOPIE and NOCTF so that standalone programs build properly.
To generate a diff of this commit:
cvs rdiff -u -r1.362 -r1.363 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.889 -r1.890 src/share/mk/bsd.own.mk
cvs rdiff -u -r1.294 -r1.295 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.250 -r1.251 src/share/mk/bsd.sys.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.362 src/share/mk/bsd.lib.mk:1.363
--- src/share/mk/bsd.lib.mk:1.362 Tue Sep 8 12:06:42 2015
+++ src/share/mk/bsd.lib.mk Sun Jan 31 10:30:14 2016
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.lib.mk,v 1.362 2015/09/08 16:06:42 uebayasi Exp $
+# $NetBSD: bsd.lib.mk,v 1.363 2016/01/31 15:30:14 christos Exp $
# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94
.include <bsd.init.mk>
@@ -42,7 +42,7 @@ realinstall: checkver libinstall
# XXX: This is needed for programs that link with .a libraries
# Perhaps a more correct solution is to always generate _pic.a
# files or always have a shared library.
-.if defined(MKPIE) && (${MKPIE} != "no")
+.if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE)
CFLAGS+= ${PIE_CFLAGS}
AFLAGS+= ${PIE_AFLAGS}
.endif
Index: src/share/mk/bsd.own.mk
diff -u src/share/mk/bsd.own.mk:1.889 src/share/mk/bsd.own.mk:1.890
--- src/share/mk/bsd.own.mk:1.889 Fri Jan 29 10:33:51 2016
+++ src/share/mk/bsd.own.mk Sun Jan 31 10:30:14 2016
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.own.mk,v 1.889 2016/01/29 15:33:51 christos Exp $
+# $NetBSD: bsd.own.mk,v 1.890 2016/01/31 15:30:14 christos Exp $
# This needs to be before bsd.init.mk
.if defined(BSD_MK_COMPAT_FILE)
@@ -528,6 +528,13 @@ TOOL_ZIC= zic
.endif # USETOOLS != yes # }
+# Standalone code should not be compiled with PIE or CTF
+# Should create a better test
+.if defined(BINDIR) && ${BINDIR} == "/usr/mdec"
+NOPIE= # defined
+NOCTF= # defined
+.endif
+
# Fallback to ensure that all variables are defined to something
TOOL_CC.false= false
TOOL_CPP.false= false
Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.294 src/share/mk/bsd.prog.mk:1.295
--- src/share/mk/bsd.prog.mk:1.294 Sat Jan 23 16:22:47 2016
+++ src/share/mk/bsd.prog.mk Sun Jan 31 10:30:14 2016
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.prog.mk,v 1.294 2016/01/23 21:22:47 christos Exp $
+# $NetBSD: bsd.prog.mk,v 1.295 2016/01/31 15:30:14 christos Exp $
# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
.ifndef HOSTPROG
@@ -48,7 +48,7 @@ CLEANFILES+=strings
@rm -f x.cc
.endif
-.if defined(MKPIE) && (${MKPIE} != "no")
+.if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE)
CFLAGS+= ${PIE_CFLAGS}
AFLAGS+= ${PIE_AFLAGS}
LDFLAGS+= ${PIE_LDFLAGS}
Index: src/share/mk/bsd.sys.mk
diff -u src/share/mk/bsd.sys.mk:1.250 src/share/mk/bsd.sys.mk:1.251
--- src/share/mk/bsd.sys.mk:1.250 Sun Jan 10 11:22:57 2016
+++ src/share/mk/bsd.sys.mk Sun Jan 31 10:30:14 2016
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.sys.mk,v 1.250 2016/01/10 16:22:57 christos Exp $
+# $NetBSD: bsd.sys.mk,v 1.251 2016/01/31 15:30:14 christos Exp $
#
# Build definitions used for NetBSD source tree builds.
@@ -174,7 +174,7 @@ CPUFLAGS+= -Wa,--fatal-warnings
CFLAGS+= ${CPUFLAGS}
AFLAGS+= ${CPUFLAGS}
-.if !defined(LDSTATIC) || ${LDSTATIC} != "-static"
+.if !defined(NOPIE) && (!defined(LDSTATIC) || ${LDSTATIC} != "-static")
# Position Independent Executable flags
PIE_CFLAGS?= -fPIC
PIE_LDFLAGS?= -Wl,-pie ${${ACTIVE_CC} == "gcc":? -shared-libgcc :}