aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2009-08-07 18:49:24 +0000
committerJörg Mayer <jmayer@loplof.de>2009-08-07 18:49:24 +0000
commitb6cffe405019da8259413cfcb829339712a098a7 (patch)
treeb6ed74fa34c5e2c15b24a5b53396dd9be211540a
parent952cbd7902acda684fc2c6c06e17d54af5ecb225 (diff)
downloadwireshark-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.m430
-rw-r--r--configure.in13
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