From b6cffe405019da8259413cfcb829339712a098a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Mayer?= Date: Fri, 7 Aug 2009 18:49:24 +0000 Subject: [PATCH] - 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 --- acinclude.m4 | 30 ++++++++++++++++++++++++++++++ configure.in | 13 +++++++++++++ 2 files changed, 43 insertions(+) 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