From 235c32d8096ccea44709d9dd7656943b9e042056 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Fri, 28 Mar 2025 19:27:53 +0000 Subject: [PATCH] Add support for RELRO FossilOrigin-Name: ae2a4a9b7145e3aeb8da0e285b46a93ca245eeba4b49105e5f0434900652a081 --- build-aux/m4/buildsys.m4 | 23 +++++++++++++++++++++++ buildsys.mk.in | 1 + 2 files changed, 24 insertions(+) diff --git a/build-aux/m4/buildsys.m4 b/build-aux/m4/buildsys.m4 index da32038..0d872af 100644 --- a/build-aux/m4/buildsys.m4 +++ b/build-aux/m4/buildsys.m4 @@ -246,6 +246,29 @@ AC_DEFUN([BUILDSYS_PIE], [ LDFLAGS="$old_LDFLAGS" ]) +AC_DEFUN([BUILDSYS_RELRO], [ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_MSG_CHECKING(for RELRO support) + + old_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now" + + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + #include + ], [ + puts("RELRO test"); + ]) + ], [ + AC_MSG_RESULT(yes) + AC_SUBST(RELRO_LDFLAGS, [-Wl,-z,relro,-z,now]) + ], [ + AC_MSG_RESULT(no) + ]) + + LDFLAGS="$old_LDFLAGS" +]) + AC_DEFUN([BUILDSYS_SHARED_LIB], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([BUILDSYS_CHECK_IOS]) diff --git a/buildsys.mk.in b/buildsys.mk.in index 14caae0..c8317c2 100644 --- a/buildsys.mk.in +++ b/buildsys.mk.in @@ -49,6 +49,7 @@ PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@ PROG_SUFFIX = @EXEEXT@ PIE_CFLAGS = @PIE_CFLAGS@ PIE_LDFLAGS = @PIE_LDFLAGS@ +RELRO_LDFLAGS = @RELRO_LDFLAGS@ LIB_CFLAGS = @LIB_CFLAGS@ LIB_LDFLAGS = @LIB_LDFLAGS@ LIB_LDFLAGS_INSTALL_NAME = @LIB_LDFLAGS_INSTALL_NAME@