1738bfc
commit c20c5f082162ff6c0c2931f456897334aa002e83
1738bfc
Author: Simo Sorce <idra@samba.org>
1738bfc
Date:   Fri Mar 7 11:33:26 2008 -0500
1738bfc
1738bfc
    Enable use of Relocations Read-Only, if supported, for enhanced security.
1738bfc
1738bfc
diff --git a/source/Makefile.in b/source/Makefile.in
1738bfc
index ac33a11..376d24c 100644
1738bfc
--- a/source/Makefile.in
1738bfc
+++ b/source/Makefile.in
1738bfc
@@ -43,8 +43,8 @@ CPPFLAGS=-DHAVE_CONFIG_H @CPPFLAGS@
1738bfc
 
1738bfc
 EXEEXT=@EXEEXT@
1738bfc
 AR=@AR@
1738bfc
-LDSHFLAGS=@LDSHFLAGS@ @LDFLAGS@
1738bfc
-LDFLAGS=@PIE_LDFLAGS@ @LDFLAGS@
1738bfc
+LDSHFLAGS=@LDSHFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@
1738bfc
+LDFLAGS=@PIE_LDFLAGS@ @RELRO_LDFLAGS@ @LDFLAGS@
1738bfc
 
1738bfc
 WINBIND_NSS_LDSHFLAGS=@WINBIND_NSS_LDSHFLAGS@ @LDFLAGS@
1738bfc
 AWK=@AWK@
1738bfc
diff --git a/source/configure.in b/source/configure.in
1738bfc
index 056c0f8..f884d93 100644
1738bfc
--- a/source/configure.in
1738bfc
+++ b/source/configure.in
1738bfc
@@ -73,6 +73,7 @@ AC_SUBST(HOST_OS)
1738bfc
 AC_SUBST(PICFLAG)
1738bfc
 AC_SUBST(PIE_CFLAGS)
1738bfc
 AC_SUBST(PIE_LDFLAGS)
1738bfc
+AC_SUBST(RELRO_LDFLAGS)
1738bfc
 AC_SUBST(SHLIBEXT)
1738bfc
 AC_SUBST(INSTALLLIBCMD_SH)
1738bfc
 AC_SUBST(INSTALLLIBCMD_A)
1738bfc
@@ -1513,6 +1514,32 @@ EOF
1738bfc
 	fi
1738bfc
 fi
1738bfc
 
1738bfc
+# Set defaults
1738bfc
+RELRO_LDFLAGS=""
1738bfc
+AC_ARG_ENABLE(relro, [AS_HELP_STRING([--enable-relro], [Turn on Relocations Read-Only (relro) support if available (default=yes)])])
1738bfc
+
1738bfc
+if test "x$enable_relro" != xno
1738bfc
+then
1738bfc
+	AC_CACHE_CHECK([for -Wl,-z,relro], samba_cv_relro,
1738bfc
+	[
1738bfc
+		cat > conftest.c <
1738bfc
+int foo;
1738bfc
+main () { return 0;}
1738bfc
+EOF
1738bfc
+		if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -Wl,-z,relro -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1738bfc
+		then
1738bfc
+			samba_cv_relro=yes
1738bfc
+		else
1738bfc
+			samba_cv_relro=no
1738bfc
+		fi
1738bfc
+		rm -f conftest*
1738bfc
+	])
1738bfc
+	if test x"${samba_cv_relro}" = x"yes"
1738bfc
+	then
1738bfc
+		RELRO_LDFLAGS="-Wl,-z,relro"
1738bfc
+	fi
1738bfc
+fi
1738bfc
+
1738bfc
 # Assume non-shared by default and override below
1738bfc
 BLDSHARED="false"
1738bfc