diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 1a0870b7..37ae0fe6 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -81,6 +81,34 @@ AM_CONDITIONAL([HAVE_PO], [ test "$have_po" = yes ]) | |||
81 | 81 | ||
82 | 82 | ||
83 | 83 | ||
84 | |||
85 | # Adam shostack suggests the following for Windows: | ||
86 | # -D_FORTIFY_SOURCE=2 -fstack-protector-all | ||
87 | AC_ARG_ENABLE(gcc-hardening, | ||
88 | AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks), | ||
89 | [AS_IF([test x$enableval = xyes],[ | ||
90 | CFLAGS="$CFLAGS -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-all" | ||
91 | CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector" | ||
92 | CFLAGS="$CFLAGS --param ssp-buffer-size=1" | ||
93 | LDFLAGS="$LDFLAGS -pie" | ||
94 | ])]) | ||
95 | |||
96 | # Linker hardening options | ||
97 | # Currently these options are ELF specific - you can't use this with MacOSX | ||
98 | AC_ARG_ENABLE(linker-hardening, | ||
99 | AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups), | ||
100 | [AS_IF([test x$enableval = xyes], | ||
101 | [LDFLAGS="$LDFLAGS -z relro -z now"])]) | ||
102 | |||
103 | |||
104 | AC_ARG_ENABLE(sanitizer, | ||
105 | AS_HELP_STRING(--enable-sanitizer, enable Address Sanitizer and Undefined Behavior Sanitizer), | ||
106 | [AS_IF([test x$enableval = xyes],[ | ||
107 | LDFLAGS="$CFLAGS -fsanitize=address,undefined -fno-omit-frame-pointer" | ||
108 | ])]) | ||
109 | |||
110 | |||
111 | |||
84 | # Workaround for libgcrypt | 112 | # Workaround for libgcrypt |
85 | AS_IF([[test "x$lt_sysroot" != "x" && test "x$SYSROOT" = "x"]], [[SYSROOT="$lt_sysroot"]]) | 113 | AS_IF([[test "x$lt_sysroot" != "x" && test "x$SYSROOT" = "x"]], [[SYSROOT="$lt_sysroot"]]) |
86 | 114 | ||
@@ -812,7 +840,7 @@ AC_INCLUDES_DEFAULT | |||
812 | ] | 840 | ] |
813 | ) | 841 | ) |
814 | 842 | ||
815 | AC_CHECK_MEMBERS([struct sockaddr_in.sin_len, struct sockaddr_in6.sin6_len, | 843 | AC_CHECK_MEMBERS([struct sockaddr_in.sin_len, struct sockaddr_in6.sin6_len, |
816 | struct sockaddr_storage.ss_len], | 844 | struct sockaddr_storage.ss_len], |
817 | [], [], | 845 | [], [], |
818 | [ | 846 | [ |