Skip to content

Commit 6030fd3

Browse files
committed
Both the compiler and the linker have to accept -fstack-protector
1 parent 1672f5d commit 6030fd3

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

configure.ac

+14-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,20 @@ AS_IF([echo `(uname -s) 2>/dev/null` | $GREP "CYGWIN" > /dev/null], [
4242
AX_CHECK_LINK_FLAG([-Wl,--nxcompat], [LDFLAGS="$LDFLAGS -Wl,--nxcompat"])
4343
], [
4444
AS_IF([test `(uname -s) 2>/dev/null` = "DragonFly"],
45-
[AX_CHECK_COMPILE_FLAG([-fstack-protector], [CFLAGS="$CFLAGS -fstack-protector"])],
46-
[AX_CHECK_COMPILE_FLAG([-fstack-protector-all], [CFLAGS="$CFLAGS -fstack-protector-all"])]
45+
[
46+
AX_CHECK_COMPILE_FLAG([-fstack-protector], [
47+
AX_CHECK_LINK_FLAG([-fstack-protector],
48+
[CFLAGS="$CFLAGS -fstack-protector"]
49+
)
50+
])
51+
],
52+
[
53+
AX_CHECK_COMPILE_FLAG([-fstack-protector-all], [
54+
AX_CHECK_LINK_FLAG([-fstack-protector-all],
55+
[CFLAGS="$CFLAGS -fstack-protector-all"]
56+
)
57+
])
58+
]
4759
)
4860
AS_IF([test "x$ac_compiler_gnu" = "xyes"],[
4961
AS_IF([$CC --version 2>/dev/null | $GREP "Free Software Foundation" > /dev/null 2>&1],[

m4/ax_check_link_flag.m4

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ AC_DEFUN([AX_CHECK_LINK_FLAG],
6060
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
6161
ax_check_save_flags=$LDFLAGS
6262
LDFLAGS="$LDFLAGS $4 $1"
63-
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
63+
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
64+
[[char x[42U];if (fgets(x,1000,stdin)) puts(x)]])],
6465
[AS_VAR_SET(CACHEVAR,[yes])],
6566
[AS_VAR_SET(CACHEVAR,[no])])
6667
LDFLAGS=$ax_check_save_flags])

0 commit comments

Comments
 (0)