diff options
| author | Jim Barlow <jim@purplerock.ca> | 2014-12-30 15:13:19 -0800 |
|---|---|---|
| committer | Jim Barlow <jim@purplerock.ca> | 2014-12-30 15:13:19 -0800 |
| commit | 2dc0a6ac3cdcaca3031bb5eb5a457f6a1ef0d27f (patch) | |
| tree | bfd894a2c5fe4c19357bebef96c8b59af683af3e | |
| parent | c0a8ddc163859ec7cbfe42cc163cc0a863b017f4 (diff) | |
| parent | 9adc6d64588e32b6becf3c94f30c0a1b05702687 (diff) | |
| download | portable-2dc0a6ac3cdcaca3031bb5eb5a457f6a1ef0d27f.tar.gz portable-2dc0a6ac3cdcaca3031bb5eb5a457f6a1ef0d27f.tar.bz2 portable-2dc0a6ac3cdcaca3031bb5eb5a457f6a1ef0d27f.zip | |
Merge recent upstream changes with compiler hardening
Conflicts:
configure.ac
| -rw-r--r-- | configure.ac | 23 | ||||
| -rwxr-xr-x | update.sh | 10 |
2 files changed, 29 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 3d93d12..3a2d511 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -45,6 +45,12 @@ case $host_os in | |||
| 45 | *) ;; | 45 | *) ;; |
| 46 | esac | 46 | esac |
| 47 | 47 | ||
| 48 | case $host_cpu in | ||
| 49 | *sparc*) | ||
| 50 | CFLAGS="$CFLAGS -D__STRICT_ALIGNMENT" | ||
| 51 | ;; | ||
| 52 | esac | ||
| 53 | |||
| 48 | AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin]) | 54 | AM_CONDITIONAL([HOST_DARWIN], [test x$HOST_OS = xdarwin]) |
| 49 | AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd]) | 55 | AM_CONDITIONAL([HOST_FREEBSD], [test x$HOST_OS = xfreebsd]) |
| 50 | AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux]) | 56 | AM_CONDITIONAL([HOST_LINUX], [test x$HOST_OS = xlinux]) |
| @@ -57,7 +63,6 @@ AC_CHECK_FUNC([clock_gettime],, | |||
| 57 | AC_CHECK_FUNC([dl_iterate_phdr],, | 63 | AC_CHECK_FUNC([dl_iterate_phdr],, |
| 58 | [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])]) | 64 | [AC_SEARCH_LIBS([dl_iterate_phdr],[dl])]) |
| 59 | 65 | ||
| 60 | AM_PROG_AS | ||
| 61 | AC_PROG_CC | 66 | AC_PROG_CC |
| 62 | AC_PROG_LIBTOOL | 67 | AC_PROG_LIBTOOL |
| 63 | AC_PROG_CC_STDC | 68 | AC_PROG_CC_STDC |
| @@ -73,6 +78,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ | |||
| 73 | [CLANG=no] | 78 | [CLANG=no] |
| 74 | ) | 79 | ) |
| 75 | AC_MSG_RESULT([CLANG]) | 80 | AC_MSG_RESULT([CLANG]) |
| 81 | AS_IF([test "x$CLANG" == "xyes"], [CLANG_FLAGS=-Qunused-arguments]) | ||
| 76 | 82 | ||
| 77 | # We want to check for compiler flag support, but there is no way to make | 83 | # We want to check for compiler flag support, but there is no way to make |
| 78 | # clang's "argument unused" warning fatal. So we invoke the compiler through a | 84 | # clang's "argument unused" warning fatal. So we invoke the compiler through a |
| @@ -146,9 +152,18 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], | |||
| 146 | ) | 152 | ) |
| 147 | CFLAGS="$save_cflags $AM_CFLAGS" | 153 | CFLAGS="$save_cflags $AM_CFLAGS" |
| 148 | 154 | ||
| 149 | # TODO: note CFLAGS=...CLANG_CFLAGS has no effect since the latter is undefined | 155 | save_cflags="$CFLAGS" |
| 150 | # investigate its effect | 156 | CFLAGS= |
| 151 | AS_IF([test "x$CLANG" == "xyes"], [CLANG_FLAGS=-Qunused-arguments]) | 157 | AC_MSG_CHECKING([whether AS supports .note.GNU-stack]) |
| 158 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | ||
| 159 | __asm__(".section .note.GNU-stack,\"\",@progbits");]])], | ||
| 160 | [AC_MSG_RESULT([yes])] | ||
| 161 | [AM_CFLAGS=-DHAVE_GNU_STACK], | ||
| 162 | [AC_MSG_RESULT([no])] | ||
| 163 | ) | ||
| 164 | CFLAGS="$save_cflags $AM_CFLAGS" | ||
| 165 | AM_PROG_AS | ||
| 166 | |||
| 152 | CFLAGS="$CFLAGS $CLANG_CFLAGS" | 167 | CFLAGS="$CFLAGS $CLANG_CFLAGS" |
| 153 | LDFLAGS="$LDFLAGS $CLANG_FLAGS" | 168 | LDFLAGS="$LDFLAGS $CLANG_FLAGS" |
| 154 | 169 | ||
| @@ -125,10 +125,20 @@ $CP crypto/compat/ui_openssl_win.c crypto/ui | |||
| 125 | asm_src=$libssl_src/src/crypto | 125 | asm_src=$libssl_src/src/crypto |
| 126 | gen_asm_stdout() { | 126 | gen_asm_stdout() { |
| 127 | perl $asm_src/$2 $1 > $3.tmp | 127 | perl $asm_src/$2 $1 > $3.tmp |
| 128 | [[ $1 == "elf" ]] && cat <<-EOF >> $3.tmp | ||
| 129 | #if defined(HAVE_GNU_STACK) | ||
| 130 | .section .note.GNU-stack,"",%progbits | ||
| 131 | #endif | ||
| 132 | EOF | ||
| 128 | $MV $3.tmp $3 | 133 | $MV $3.tmp $3 |
| 129 | } | 134 | } |
| 130 | gen_asm() { | 135 | gen_asm() { |
| 131 | perl $asm_src/$2 $1 $3.tmp | 136 | perl $asm_src/$2 $1 $3.tmp |
| 137 | [[ $1 == "elf" ]] && cat <<-EOF >> $3.tmp | ||
| 138 | #if defined(HAVE_GNU_STACK) | ||
| 139 | .section .note.GNU-stack,"",%progbits | ||
| 140 | #endif | ||
| 141 | EOF | ||
| 132 | $MV $3.tmp $3 | 142 | $MV $3.tmp $3 |
| 133 | } | 143 | } |
| 134 | for abi in elf macosx; do | 144 | for abi in elf macosx; do |
