50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4
|
|
index 733b06c..bb770f0 100644
|
|
--- a/config-scripts/cups-compiler.m4
|
|
+++ b/config-scripts/cups-compiler.m4
|
|
@@ -123,21 +123,35 @@ if test -n "$GCC"; then
|
|
OPTIM="-fPIC $OPTIM"
|
|
fi
|
|
|
|
- # The -fstack-protector option is available with some versions of
|
|
- # GCC and adds "stack canaries" which detect when the return address
|
|
- # has been overwritten, preventing many types of exploit attacks.
|
|
- AC_MSG_CHECKING(whether compiler supports -fstack-protector)
|
|
+ # The -fstack-protector-strong and -fstack-protector options are available
|
|
+ # with some versions of# GCC and adds "stack canaries" which detect
|
|
+ # when the return address has been overwritten, preventing many types of exploit attacks.
|
|
+ # First check for -fstack-protector-strong, then for -fstack-protector...
|
|
+ AC_MSG_CHECKING([whether compiler supports -fstack-protector-strong])
|
|
OLDCFLAGS="$CFLAGS"
|
|
- CFLAGS="$CFLAGS -fstack-protector"
|
|
- AC_TRY_LINK(,,
|
|
+ CFLAGS="$CFLAGS -fstack-protector-strong"
|
|
+ AC_TRY_LINK(,,[
|
|
if test "x$LSB_BUILD" = xy; then
|
|
# Can't use stack-protector with LSB binaries...
|
|
OPTIM="$OPTIM -fno-stack-protector"
|
|
else
|
|
- OPTIM="$OPTIM -fstack-protector"
|
|
+ OPTIM="$OPTIM -fstack-protector-strong"
|
|
fi
|
|
- AC_MSG_RESULT(yes),
|
|
- AC_MSG_RESULT(no))
|
|
+ AC_MSG_RESULT(yes)
|
|
+ ], [
|
|
+ AC_MSG_CHECKING([whether compiler supports -fstack-protector])
|
|
+ CFLAGS="$OLDCFLAGS -fstack-protector"
|
|
+ AC_LINK_IFELSE([AC_LANG_PROGRAM()], [
|
|
+ AS_IF([test "x$LSB_BUILD" = xy], [
|
|
+ # Can't use stack-protector with LSB binaries...
|
|
+ OPTIM="$OPTIM -fno-stack-protector"
|
|
+ ], [
|
|
+ OPTIM="$OPTIM -fstack-protector"
|
|
+ ])
|
|
+ ], [
|
|
+ AC_MSG_RESULT([no])
|
|
+ ])
|
|
+ ])
|
|
CFLAGS="$OLDCFLAGS"
|
|
|
|
if test "x$LSB_BUILD" != xy; then
|