[lttng-dev] [PATCH lttng-ust] Fix: Libtool fails to find dependent libraries when cross-compiling lttng-ust
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Thu Aug 2 17:07:50 EDT 2012
* Christian Babeux (christian.babeux at efficios.com) wrote:
> This problem arise when cross compiling and linking libraries with
> indirect libraries dependencies (such as liblttng-ust). This "bug" is
> caused by an upstream modification in the libtool package on Debian
> system. The libtool "link_all_deplibs" flag is set to "no" by default
> on linux targets (AFAIK, other distros set it to "unknown").
>
> The chosen solution is to detect such cases via the configure script
> and automagically patch the libtool.m4 by forcing the "link_all_deplibs"
> to "unknown".
>
> This fixup can be disabled with the appropriate configure flag:
>
> ./configure --disable-libtool-linkdep-fixup
>
> Sample configure output on affected systems:
>
> checking for occurence(s) of link_all_deplibs = no in
> ./config/libtool.m4... 3
> configure: WARNING: the detected libtool will not link all
> dependencies, forcing link_all_deplibs = unknown
>
> Fixes: #321
>
> Signed-off-by: Christian Babeux <christian.babeux at efficios.com>
> ---
> configure.ac | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/configure.ac b/configure.ac
> index 4d40f75..8a93896 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -39,6 +39,31 @@ version_description="New type of beer, 100% from Quebec, flavored with sapin bea
> AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], [UST version name])
> AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description"], [UST version description])
>
> +AC_PROG_GREP
> +# libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
> +AC_ARG_ENABLE(libtool-linkdep-fixup,
> + AS_HELP_STRING([--disable-libtool-linkdep-fixup],
> + [disable the libtool fixup for linking all dependent libraries (link_all_deplibs)]),
> + libtool_fixup=$enableval,
> + libtool_fixup=yes)
> +
> +AS_IF([test "x$libtool_fixup" = "xyes"],
> + [
> + libtool_m4="$srcdir/config/libtool.m4"
> + libtool_flag_pattern=".*link_all_deplibs,.*\$1)"
> + AC_MSG_CHECKING([for occurence(s) of link_all_deplibs = no in $libtool_m4])
> + libtool_flag_pattern_count=$(grep -c "$libtool_flag_pattern=no" $libtool_m4)
> + AS_IF([test $libtool_flag_pattern_count -ne 0],
> + [
> + AC_MSG_RESULT([$libtool_flag_pattern_count])
> + AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
> + sed -i "s/\($libtool_flag_pattern\)=no/\1=unknown/g" $libtool_m4
Could you modify your patch to tabs and spaces around "=" would be also
accepted ?
Thanks,
Mathieu
> + ],
> + [
> + AC_MSG_RESULT([none])
> + ])
> + ])
> +
> # Checks for programs.
> AC_PROG_CC
> AC_PROG_CXX
> --
> 1.7.11.3
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list