58aed41
From 35e09ba633eb14cc207b59de7ce60324ea86554f Mon Sep 17 00:00:00 2001
14f0285
From: Robbie Harwood <rharwood@redhat.com>
14f0285
Date: Tue, 23 Aug 2016 16:45:26 -0400
821dac4
Subject: [PATCH] krb5-1.15-beta1-buildconf.patch
14f0285
Nalin Dahyabhai 2202e37
Build binaries in this package as RELRO PIEs, libraries as partial RELRO,
Nalin Dahyabhai 2202e37
and install shared libraries with the execute bit set on them.  Prune out
Nalin Dahyabhai 0fde11f
the -L/usr/lib* and PIE flags where they might leak out and affect
Nalin Dahyabhai 2202e37
apps which just want to link with the libraries. FIXME: needs to check and
Nalin Dahyabhai 2202e37
not just assume that the compiler supports using these flags.
14f0285
---
14f0285
 src/build-tools/krb5-config.in | 7 +++++++
14f0285
 src/config/pre.in              | 2 +-
14f0285
 src/config/shlib.conf          | 5 +++--
14f0285
 3 files changed, 11 insertions(+), 3 deletions(-)
d067ec2
14f0285
diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in
621f3cf
index c17cb5eb5..1891dea99 100755
14f0285
--- a/src/build-tools/krb5-config.in
14f0285
+++ b/src/build-tools/krb5-config.in
14f0285
@@ -226,6 +226,13 @@ if test -n "$do_libs"; then
d067ec2
 	    -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \
Nalin Dahyabhai 0fde11f
 	    -e 's#\$(CFLAGS)##'`
d067ec2
 
d067ec2
+    if test `dirname $libdir` = /usr ; then
d067ec2
+        lib_flags=`echo $lib_flags | sed -e "s#-L$libdir##" -e "s#$RPATH_FLAG$libdir##"`
d067ec2
+    fi
Nalin Dahyabhai 2202e37
+    lib_flags=`echo $lib_flags | sed -e "s#-fPIE##g" -e "s#-pie##g"`
Nalin Dahyabhai 2202e37
+    lib_flags=`echo $lib_flags | sed -e "s#-Wl,-z,relro##g"`
Nalin Dahyabhai 2202e37
+    lib_flags=`echo $lib_flags | sed -e "s#-Wl,-z,now##g"`
d067ec2
+
d067ec2
     if test $library = 'kdb'; then
d067ec2
 	lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB"
d067ec2
 	library=krb5
14f0285
diff --git a/src/config/pre.in b/src/config/pre.in
621f3cf
index fcea229bd..d961b5621 100644
14f0285
--- a/src/config/pre.in
14f0285
+++ b/src/config/pre.in
821dac4
@@ -185,7 +185,7 @@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ $(INSTALL_STRIP)
Nalin Dahyabhai 2ee39c5
 INSTALL_SCRIPT=@INSTALL_PROGRAM@
Nalin Dahyabhai 2ee39c5
 INSTALL_DATA=@INSTALL_DATA@
Nalin Dahyabhai 2ee39c5
 INSTALL_SHLIB=@INSTALL_SHLIB@
Nalin Dahyabhai 2ee39c5
-INSTALL_SETUID=$(INSTALL) $(INSTALL_STRIP) -m 4755 -o root
Nalin Dahyabhai 2ee39c5
+INSTALL_SETUID=$(INSTALL) $(INSTALL_STRIP) -m 4755
Nalin Dahyabhai 2ee39c5
 ## This is needed because autoconf will sometimes define @exec_prefix@ to be
Nalin Dahyabhai 2ee39c5
 ## ${prefix}.
Nalin Dahyabhai 2ee39c5
 prefix=@prefix@
14f0285
diff --git a/src/config/shlib.conf b/src/config/shlib.conf
621f3cf
index 3e4af6c02..2b20c3fda 100644
14f0285
--- a/src/config/shlib.conf
14f0285
+++ b/src/config/shlib.conf
821dac4
@@ -423,7 +423,7 @@ mips-*-netbsd*)
14f0285
 	# Linux ld doesn't default to stuffing the SONAME field...
14f0285
 	# Use objdump -x to examine the fields of the library
821dac4
 	# UNDEF_CHECK is suppressed by --enable-asan
821dac4
-	LDCOMBINE='$(CC) -shared -fPIC -Wl,-h,$(LIBPREFIX)$(LIBBASE)$(SHLIBSEXT) $(UNDEF_CHECK)'
821dac4
+	LDCOMBINE='$(CC) -shared -fPIC -Wl,-h,$(LIBPREFIX)$(LIBBASE)$(SHLIBSEXT) $(UNDEF_CHECK)  -Wl,-z,relro -Wl,--warn-shared-textrel'
821dac4
 	UNDEF_CHECK='-Wl,--no-undefined'
821dac4
 	# $(EXPORT_CHECK) runs export-check.pl when in maintainer mode.
821dac4
 	LDCOMBINE_TAIL='-Wl,--version-script binutils.versions $(EXPORT_CHECK)'
821dac4
@@ -435,7 +435,8 @@ mips-*-netbsd*)
14f0285
 	SHLIB_EXPFLAGS='$(SHLIB_RPATH_FLAGS) $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
14f0285
 	PROFFLAGS=-pg
14f0285
 	PROG_RPATH_FLAGS='$(RPATH_FLAG)$(PROG_RPATH)'
14f0285
-	CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
14f0285
+	CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) -pie -Wl,-z,relro -Wl,-z,now $(LDFLAGS)'
14f0285
+	INSTALL_SHLIB='${INSTALL} -m755'
14f0285
 	CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) $(CFLAGS) $(LDFLAGS)'
14f0285
 	CXX_LINK_SHARED='$(CXX) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CXXFLAGS) $(LDFLAGS)'
14f0285
 	CXX_LINK_STATIC='$(CXX) $(PROG_LIBPATH) $(CXXFLAGS) $(LDFLAGS)'