blob: 29f0f21884373a7584af0753b784171232624056 [file] [log] [blame]
# libnih
#
# linker.m4 - autoconf macros for linker settings
#
# Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
# Copyright © 2009 Canonical Ltd.
#
# This file is free software; the author gives unlimited permission to
# copy and/or distribute it, with or without modifications, as long as
# this notice is preserved.
# NIH_LINKER_OPTIMISATIONS
# ------------------------
# Add configure option to disable linker optimisations.
AC_DEFUN([NIH_LINKER_OPTIMISATIONS],
[AC_ARG_ENABLE(linker-optimisations,
AS_HELP_STRING([--disable-linker-optimisations],
[Disable linker optimisations]),
[AS_IF([test "x$enable_linker_optimisations" = "xno"],
[LDFLAGS=`echo "$LDFLAGS" | sed -e "s/ -Wl,-O[0-9]*\b//g"`],
[LDFLAGS="$LDFLAGS -Wl,-O1"])
])dnl
])# NIH_LINKER_OPTIMISATIONS
# NIH_LINKER_VERSION_SCRIPT
# -------------------------
# Detect whether the linker supports version scripts
AC_DEFUN([NIH_LINKER_VERSION_SCRIPT],
[AC_CACHE_CHECK([for linker version script argument], [nih_cv_version_script],
[nih_cv_version_script=none
for nih_try_arg in "-Wl,--version-script"; do
nih_old_libs="$LIBS"
LIBS="$LIBS $nih_try_arg=conftest.ver"
cat >conftest.ver <<EOF
TEST {
global:
*;
};
EOF
AC_TRY_LINK([], [], [
rm -f conftest.ver
LIBS="$nih_old_libs"
nih_cv_version_script="$nih_try_arg"
break
])
rm -f conftest.ver
LIBS="$nih_old_libs"
done])
AS_IF([test "x$nih_cv_version_script" != "xnone"],
[AC_SUBST(VERSION_SCRIPT_ARG, [$nih_cv_version_script])])
AM_CONDITIONAL(HAVE_VERSION_SCRIPT_ARG,
[test "x$nih_cv_version_script" != "xnone"])
])# NIH_LINKER_VERSION_SCRIPT
# NIH_LINKER_SYMBOLIC_FUNCTIONS
# -----------------------------
# Detect whether the linker supports symbolic functions
AC_DEFUN([NIH_LINKER_SYMBOLIC_FUNCTIONS],
[AC_CACHE_CHECK([for linker symbolic functions argument],
[nih_cv_symbolic_functions],
[nih_cv_symbolic_functions=none
for nih_try_arg in "-Wl,-Bsymbolic-functions"; do
nih_old_ldflags="$LDFLAGS"
LDFLAGS="$LDFLAGS $nih_try_arg"
AC_TRY_LINK([], [], [
LDFLAGS="$nih_old_ldflags"
nih_cv_symbolic_functions="$nih_try_arg"
break
])
LDFLAGS="$nih_old_ldflags"
done])
AS_IF([test "x$nih_cv_symbolic_functions" != "xnone"],
[LDFLAGS="$LDFLAGS $nih_cv_symbolic_functions"])dnl
])# NIH_LINKER_SYMBOLIC_FUNCTIONS