diff options
author | Jörg Mayer <jmayer@loplof.de> | 2009-08-07 18:49:24 +0000 |
---|---|---|
committer | Jörg Mayer <jmayer@loplof.de> | 2009-08-07 18:49:24 +0000 |
commit | b6cffe405019da8259413cfcb829339712a098a7 (patch) | |
tree | b6ed74fa34c5e2c15b24a5b53396dd9be211540a | |
parent | 952cbd7902acda684fc2c6c06e17d54af5ecb225 (diff) | |
download | wireshark-b6cffe405019da8259413cfcb829339712a098a7.tar.gz wireshark-b6cffe405019da8259413cfcb829339712a098a7.tar.bz2 wireshark-b6cffe405019da8259413cfcb829339712a098a7.zip |
- Add an AC macro to test linker flags.
- Test whether the linker supports --as-needed and if so,
adds it to LDFLAGS
svn path=/trunk/; revision=29327
-rw-r--r-- | acinclude.m4 | 30 | ||||
-rw-r--r-- | configure.in | 13 |
2 files changed, 43 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 9709c8bc39..489cd81ecc 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1642,6 +1642,36 @@ AC_DEFUN([AC_WIRESHARK_GEOIP_CHECK], fi ]) +#AC_WIRESHARK_GCC_LDFLAGS_CHECK +# +# $1 : ldflag(s) to test +# +# The macro first determines if the compiler is GCC. Then compile with the +# defined ldflags. The defined flags are added to LDFLAGS only if the +# compilation succeeds. +# +AC_DEFUN([AC_WIRESHARK_GCC_LDFLAGS_CHECK], +[GCC_OPTION="$1" +AC_MSG_CHECKING(whether we can add $GCC_OPTION to LDFLAGS) +if test "x$GCC" != "x"; then + LDFLAGS_saved="$CFLAGS" + LDFLAGS="$LDFLAGS $GCC_OPTION" + AC_LINK_IFELSE([ + AC_LANG_SOURCE([[ + main() { return; } + ]])], + [ + AC_MSG_RESULT(yes) + ], + [ + AC_MSG_RESULT(no) + LDFLAGS="$LDFLAGS_saved" + ]) +else + AC_MSG_RESULT(no) +fi +]) + # # AC_WIRESHARK_GCC_CFLAGS_CHECK # diff --git a/configure.in b/configure.in index dea2305f9a..aa235d1e3c 100644 --- a/configure.in +++ b/configure.in @@ -230,9 +230,20 @@ AC_ARG_ENABLE(extra-gcc-checks, AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings) # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4) # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code) +# AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla) # # epan/dissectors/packet-ncp2222.inc blocks this one # for now. @@ -260,6 +271,8 @@ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security) +AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed]) + # # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well, # so we can use _U_ to flag unused function arguments and not get warnings |