Add support for Stack Protector
FossilOrigin-Name: 5e80ba800541b636d62ca53c912322ce1923153d0e8cd1ccf45365b379f00331
This commit is contained in:
parent
235c32d809
commit
28ed7cbfe1
2 changed files with 58 additions and 1 deletions
|
@ -209,6 +209,61 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
|
||||||
AC_SUBST(PROG_IMPLIB_LDFLAGS)
|
AC_SUBST(PROG_IMPLIB_LDFLAGS)
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([BUILDSYS_STACK_PROTECTOR], [
|
||||||
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_MSG_CHECKING(for Stack Protector)
|
||||||
|
|
||||||
|
old_CFLAGS="$CFLAGS"
|
||||||
|
old_CXXFLAGS="$CXXFLAGS"
|
||||||
|
old_OBJCFLAGS="$OBJCFLAGS"
|
||||||
|
old_OBJCXXFLAGS="$OBJCXXFLAGS"
|
||||||
|
old_LDFLAGS="$LDFLAGS"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -fstack-protector-strong"
|
||||||
|
CXXFLAGS="$CXXFLAGS -fstack-protector-strong"
|
||||||
|
OBJCFLAGS="$OBJCFLAGS -fstack-protector-strong"
|
||||||
|
OBJCXXFLAGS="$OBJCXXFLAGS -fstack-protector-strong"
|
||||||
|
LDFLAGS="$LDFLAGS -fstack-protector-strong"
|
||||||
|
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([
|
||||||
|
#include <stdio.h>
|
||||||
|
], [
|
||||||
|
puts("Stack Protector test");
|
||||||
|
])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(strong)
|
||||||
|
AC_SUBST(STACK_PROTECTOR_CFLAGS, -fstack-protector-strong)
|
||||||
|
AC_SUBST(STACK_PROTECTOR_LDFLAGS, -fstack-protector-strong)
|
||||||
|
], [
|
||||||
|
CFLAGS="$old_CFLAGS -fstack-protector"
|
||||||
|
CXXFLAGS="$old_CXXFLAGS -fstack-protector"
|
||||||
|
OBJCFLAGS="$old_OBJCFLAGS -fstack-protector"
|
||||||
|
OBJCXXFLAGS="$old_OBJCXXFLAGS -fstack-protector"
|
||||||
|
LDFLAGS="$old_LDFLAGS -fstack-protector"
|
||||||
|
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([
|
||||||
|
#include <stdio.h>
|
||||||
|
], [
|
||||||
|
puts("Stack Protector test");
|
||||||
|
])
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_SUBST(STACK_PROTECTOR_CFLAGS, -fstack-protector)
|
||||||
|
AC_SUBST(STACK_PROTECTOR_LDFLAGS, -fstack-protector)
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
CFLAGS="$old_CFLAGS"
|
||||||
|
CXXFLAGS="$old_CXXFLAGS"
|
||||||
|
OBJCFLAGS="$old_OBJCFLAGS"
|
||||||
|
OBJCXXFLAGS="$old_OBJCXXFLAGS"
|
||||||
|
LDFLAGS="$old_LDFLAGS"
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN([BUILDSYS_PIE], [
|
AC_DEFUN([BUILDSYS_PIE], [
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
AC_MSG_CHECKING(for Position Independent Executable support)
|
AC_MSG_CHECKING(for Position Independent Executable support)
|
||||||
|
|
|
@ -47,9 +47,11 @@ 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@
|
||||||
|
STACK_PROTECTOR_CFLAGS = @STACK_PROTECTOR_CFLAGS@
|
||||||
|
STACK_PROTECTOR_LDFLAGS = @STACK_PROTECTOR_LDFLAGS@
|
||||||
|
RELRO_LDFLAGS = @RELRO_LDFLAGS@
|
||||||
PIE_CFLAGS = @PIE_CFLAGS@
|
PIE_CFLAGS = @PIE_CFLAGS@
|
||||||
PIE_LDFLAGS = @PIE_LDFLAGS@
|
PIE_LDFLAGS = @PIE_LDFLAGS@
|
||||||
RELRO_LDFLAGS = @RELRO_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@
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue