diff --git a/configure.ac b/configure.ac index be7c09c..ba47db9 100644 --- a/configure.ac +++ b/configure.ac @@ -63,6 +63,7 @@ AC_PROG_CXX AC_CHECK_CXXFLAG([Wall]) AC_CHECK_CXXFLAG([pedantic]) AC_CHECK_CXXFLAG([Wextra]) +AC_CHECK_LDFLAG([--as-needed]) AC_PROG_INSTALL diff --git a/m4/Makefile.am b/m4/Makefile.am index ea27c87..3aa7f41 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -23,6 +23,7 @@ # better if we don't install our macros... # -> aclocal_DATA = ... macros = compilerflags.m4 \ + linkingflags.m4 \ ac_python_devel.m4 \ ac_pkg_swig.m4 \ ac_python_module.m4 diff --git a/m4/linkingflags.m4 b/m4/linkingflags.m4 new file mode 100644 index 0000000..e1ace94 --- /dev/null +++ b/m4/linkingflags.m4 @@ -0,0 +1,26 @@ +dnl ************************************************** +dnl Copyright (C) 2004 Matteo Settenvini +dnl ************************************************** + +dnl ---------- AX_CHECK_LDFLAG --------------------- +dnl This macro checks if a particular flag for the +dnl C++ compiler works. If it is so, it adds the flag +dnl to the CXXFLAGS variable. +dnl Example of usage : AC_CHECK_LDFLAG([--as-needed]) +dnl ------------------------------------------------- +AC_DEFUN([AC_CHECK_LDFLAG], +[ AC_REQUIRE([AC_PROG_CC])dnl + AC_MSG_CHECKING([whether the linker supports the $1 flag]) + ac_check_ldflags=$LDFLAGS + LDFLAGS="-Wl,$1" + AC_LANG_PUSH([C]) + AC_LINK_IFELSE( + AC_LANG_PROGRAM([], [return 0;]), + [AC_MSG_RESULT([yes]) + LDFLAGS="-Wl,$1 $ac_check_ldflags" ], + [AC_MSG_RESULT([no]) + LDFLAGS=$ac_check_ldflags ] + ) + AC_LANG_POP +])dnl ------- AC_CHECK_LDFLAG ---------------------- + diff --git a/src/backend/Makefile.am b/src/backend/Makefile.am index 3e756ad..eaeec84 100644 --- a/src/backend/Makefile.am +++ b/src/backend/Makefile.am @@ -47,7 +47,7 @@ libbackend_la_LDFLAGS = $(PYTHON_EXTRA_LDFLAGS) \ # Please keep this in sorted order: libbackend_la_SOURCES = \ - history.cc \ + history.cc \ observed_subject.cc \ process.cc \ schedulable.cc \