- 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
This commit is contained in:
Jörg Mayer 2009-08-07 18:49:24 +00:00
parent 952cbd7902
commit b6cffe4050
2 changed files with 43 additions and 0 deletions

View File

@ -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
#

View File

@ -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