comparison configure.ac @ 1469:51043e868f55

Test for -Wno-pointer-sign, move CFLAGS tests into a macro
author Matt Johnston <matt@ucc.asn.au>
date Thu, 08 Feb 2018 22:21:47 +0800
parents a3479d0d7e79
children 67bcd5fa40c6
comparison
equal deleted inserted replaced
1468:b528e3753af4 1469:51043e868f55
7 7
8 AC_PREREQ(2.59) 8 AC_PREREQ(2.59)
9 AC_INIT 9 AC_INIT
10 AC_CONFIG_SRCDIR(buffer.c) 10 AC_CONFIG_SRCDIR(buffer.c)
11 11
12 OLDCFLAGS="$CFLAGS"
13 # Checks for programs. 12 # Checks for programs.
14 AC_PROG_CC 13 AC_PROG_CC
15 AC_PROG_MAKE_SET 14 AC_PROG_MAKE_SET
16 15
17 if test -z "$LD" ; then 16 if test -z "$LD" ; then
18 LD=$CC 17 LD=$CC
19 fi 18 fi
20 AC_SUBST(LD) 19 AC_SUBST(LD)
21 20
21 AC_DEFUN(DB_TRYADDCFLAGS,
22 [{
23 OLDFLAGS="$CFLAGS"
24 TESTFLAGS="$1"
25 CFLAGS="$CFLAGS $TESTFLAGS"
26 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
27 [AC_MSG_NOTICE([Setting $TESTFLAGS])],
28 [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDFLAGS" ]
29 )
30 }])
31
22 # set compile flags prior to other tests 32 # set compile flags prior to other tests
23 if test -z "$OLDCFLAGS" && test "$GCC" = "yes"; then 33 if test -z "$OLDCFLAGS" && test "$GCC" = "yes"; then
24 AC_MSG_NOTICE(No \$CFLAGS set... using "-Os -W -Wall" for GCC) 34 AC_MSG_NOTICE(No \$CFLAGS set... using "-Os -W -Wall" for GCC)
25 CFLAGS="-Os -W -Wall -Wno-pointer-sign" 35 CFLAGS="-Os -W -Wall"
26 fi 36 fi
27 37
28 AC_MSG_CHECKING([if compiler '$CC' supports -fno-strict-overflow]) 38 AC_MSG_NOTICE([Checking if compiler '$CC' supports -Wno-pointer-sign])
29 OLDCFLAGS="$CFLAGS" 39 DB_TRYADDCFLAGS([-Wno-pointer-sign])
30 CFLAGS="$CFLAGS -fno-strict-overflow" 40
31 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], 41 AC_MSG_NOTICE([Checking if compiler '$CC' supports -fno-strict-overflow])
32 [AC_MSG_RESULT(yes)], 42 DB_TRYADDCFLAGS([-fno-strict-overflow])
33 [AC_MSG_RESULT(no); CFLAGS="$OLDCFLAGS" ]
34 )
35 43
36 STATIC=0 44 STATIC=0
37 AC_ARG_ENABLE(static, 45 AC_ARG_ENABLE(static,
38 [ --enable-static Build static binaries], 46 [ --enable-static Build static binaries],
39 [ 47 [
57 if test "$hardenbuild" -eq 1; then 65 if test "$hardenbuild" -eq 1; then
58 AC_MSG_NOTICE(Checking for available hardened build flags:) 66 AC_MSG_NOTICE(Checking for available hardened build flags:)
59 # relocation flags don't make sense for static builds 67 # relocation flags don't make sense for static builds
60 if test "$STATIC" -ne 1; then 68 if test "$STATIC" -ne 1; then
61 # pie 69 # pie
62 OLDCFLAGS="$CFLAGS" 70 DB_TRYADDCFLAGS([-fPIE])
63 TESTFLAGS="-fPIE" 71
64 CFLAGS="$CFLAGS $TESTFLAGS"
65 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
66 [AC_MSG_NOTICE([Setting $TESTFLAGS])],
67 [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ]
68 )
69 OLDLDFLAGS="$LDFLAGS" 72 OLDLDFLAGS="$LDFLAGS"
70 TESTFLAGS="-Wl,-pie" 73 TESTFLAGS="-Wl,-pie"
71 LDFLAGS="$LDFLAGS $TESTFLAGS" 74 LDFLAGS="$LDFLAGS $TESTFLAGS"
72 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 75 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
73 [AC_MSG_NOTICE([Setting $TESTFLAGS])], 76 [AC_MSG_NOTICE([Setting $TESTFLAGS])],
105 [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ] 108 [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ]
106 ) 109 )
107 ] 110 ]
108 ) 111 )
109 # FORTIFY_SOURCE 112 # FORTIFY_SOURCE
110 OLDCFLAGS="$CFLAGS" 113 DB_TRYADDCFLAGS([-D_FORTIFY_SOURCE=2])
111 TESTFLAGS="-D_FORTIFY_SOURCE=2"
112 CFLAGS="$CFLAGS $TESTFLAGS"
113 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
114 [AC_MSG_NOTICE([Setting $TESTFLAGS])],
115 [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ]
116 )
117 fi 114 fi
118 115
119 # large file support is useful for scp 116 # large file support is useful for scp
120 AC_SYS_LARGEFILE 117 AC_SYS_LARGEFILE
121 118