summaryrefslogtreecommitdiff
path: root/mk/compiler
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2021-11-02 08:14:58 +0000
committernia <nia@pkgsrc.org>2021-11-02 08:14:58 +0000
commite742f7f0f8e036590c90389b042a41276004607b (patch)
tree1ceb3f0569145b08a0897adca140edbcad0dc43f /mk/compiler
parentf5a85dca2239586798e5b1baf5c224c56072c1c2 (diff)
downloadpkgsrc-e742f7f0f8e036590c90389b042a41276004607b.tar.gz
mk: Make it possible for a package to fall back to partial RELRO.
This helps certain X.Org modules.
Diffstat (limited to 'mk/compiler')
-rw-r--r--mk/compiler/clang.mk11
-rw-r--r--mk/compiler/gcc.mk11
2 files changed, 12 insertions, 10 deletions
diff --git a/mk/compiler/clang.mk b/mk/compiler/clang.mk
index 55fedbadeb0..e6bcdce47a2 100644
--- a/mk/compiler/clang.mk
+++ b/mk/compiler/clang.mk
@@ -1,4 +1,4 @@
-# $NetBSD: clang.mk,v 1.28 2021/10/04 14:21:21 nia Exp $
+# $NetBSD: clang.mk,v 1.29 2021/11/02 08:14:58 nia Exp $
#
# This is the compiler definition for the clang compiler.
#
@@ -55,11 +55,12 @@ _COMPILER_RPATH_FLAG= ${_COMPILER_LD_FLAG}${_LINKER_RPATH_FLAG}
_CTF_CFLAGS= -gdwarf-2
-# The user can choose the level of RELRO.
-.if ${PKGSRC_USE_RELRO} == "partial"
-_RELRO_LDFLAGS= -Wl,-zrelro
-.else
+# The user or package can choose the level of RELRO.
+.if ${PKGSRC_USE_RELRO} != "partial" && \
+ ${RELRO_SUPPORTED:Uyes:tl} != "partial"
_RELRO_LDFLAGS= -Wl,-zrelro -Wl,-znow
+.else
+_RELRO_LDFLAGS= -Wl,-zrelro
.endif
# The user can choose the level of stack smashing protection.
diff --git a/mk/compiler/gcc.mk b/mk/compiler/gcc.mk
index 417694e7d88..14c0e8768a8 100644
--- a/mk/compiler/gcc.mk
+++ b/mk/compiler/gcc.mk
@@ -1,4 +1,4 @@
-# $NetBSD: gcc.mk,v 1.229 2021/10/08 16:35:57 nia Exp $
+# $NetBSD: gcc.mk,v 1.230 2021/11/02 08:14:58 nia Exp $
#
# This is the compiler definition for the GNU Compiler Collection.
#
@@ -385,11 +385,12 @@ _GCC_CFLAGS+= ${_FORTIFY_CFLAGS}
CWRAPPERS_APPEND.cc+= ${_FORTIFY_CFLAGS}
.endif
-# The user can choose the level of RELRO.
-.if ${PKGSRC_USE_RELRO} == "partial"
-_RELRO_LDFLAGS= -Wl,-zrelro
-.else
+# The user or package can choose the level of RELRO.
+.if ${PKGSRC_USE_RELRO} != "partial" && \
+ ${RELRO_SUPPORTED:Uyes:tl} != "partial"
_RELRO_LDFLAGS= -Wl,-zrelro -Wl,-znow
+.else
+_RELRO_LDFLAGS= -Wl,-zrelro
.endif
_STACK_CHECK_CFLAGS= -fstack-check