diff --git a/build-aux/m4/buildsys.m4 b/build-aux/m4/buildsys.m4 index 8389a83..5e0c9af 100644 --- a/build-aux/m4/buildsys.m4 +++ b/build-aux/m4/buildsys.m4 @@ -209,6 +209,43 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [ AC_SUBST(PROG_IMPLIB_LDFLAGS) ]) +AC_DEFUN([BUILDSYS_PIE], [ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_MSG_CHECKING(for Position Independent Executable support) + + old_CFLAGS="$CFLAGS" + old_CXXFLAGS="$CXXFLAGS" + old_OBJCFLAGS="$OBJCFLAGS" + old_OBJCXXFLAGS="$OBJCXXFLAGS" + old_LDFLAGS="$LDFLAGS" + + CFLAGS="$CFLAGS -fPIE" + CXXFLAGS="$CXXFLAGS -fPIE" + OBJCFLAGS="$OBJCFLAGS -fPIE" + OBJCXXFLAGS="$OBJCXXFLAGS -fPIE" + LDFLAGS="$LDFLAGS -pie" + + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ + #include + ], [ + puts("PIE test"); + ]) + ], [ + AC_MSG_RESULT(yes) + AC_SUBST(PIE_CFLAGS, -fPIE) + AC_SUBST(PIE_LDFLAGS, -pie) + ], [ + AC_MSG_RESULT(no) + ]) + + CFLAGS="$old_CFLAGS" + CXXFLAGS="$old_CXXFLAGS" + OBJCFLAGS="$old_OBJCFLAGS" + OBJCXXFLAGS="$old_OBJCXXFLAGS" + 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 1cc634d..14caae0 100644 --- a/buildsys.mk.in +++ b/buildsys.mk.in @@ -47,6 +47,8 @@ PYTHON_FLAGS = @PYTHON_FLAGS@ PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@ PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@ PROG_SUFFIX = @EXEEXT@ +PIE_CFLAGS = @PIE_CFLAGS@ +PIE_LDFLAGS = @PIE_LDFLAGS@ LIB_CFLAGS = @LIB_CFLAGS@ LIB_LDFLAGS = @LIB_LDFLAGS@ LIB_LDFLAGS_INSTALL_NAME = @LIB_LDFLAGS_INSTALL_NAME@