Add support for PIE

FossilOrigin-Name: 53f278138f2e1e4ef3b8b60b27b35b150e74395caeafc218801ba87e36622993
This commit is contained in:
Jonathan Schleifer 2025-03-22 23:38:53 +00:00
parent f1642bd767
commit 502d993bd7
2 changed files with 39 additions and 0 deletions

View file

@ -209,6 +209,43 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
AC_SUBST(PROG_IMPLIB_LDFLAGS) 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 <stdio.h>
], [
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_DEFUN([BUILDSYS_SHARED_LIB], [
AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([BUILDSYS_CHECK_IOS]) AC_REQUIRE([BUILDSYS_CHECK_IOS])

View file

@ -47,6 +47,8 @@ PYTHON_FLAGS = @PYTHON_FLAGS@
PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@ PROG_IMPLIB_NEEDED = @PROG_IMPLIB_NEEDED@
PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@ PROG_IMPLIB_LDFLAGS = @PROG_IMPLIB_LDFLAGS@
PROG_SUFFIX = @EXEEXT@ PROG_SUFFIX = @EXEEXT@
PIE_CFLAGS = @PIE_CFLAGS@
PIE_LDFLAGS = @PIE_LDFLAGS@
LIB_CFLAGS = @LIB_CFLAGS@ LIB_CFLAGS = @LIB_CFLAGS@
LIB_LDFLAGS = @LIB_LDFLAGS@ LIB_LDFLAGS = @LIB_LDFLAGS@
LIB_LDFLAGS_INSTALL_NAME = @LIB_LDFLAGS_INSTALL_NAME@ LIB_LDFLAGS_INSTALL_NAME = @LIB_LDFLAGS_INSTALL_NAME@