Libtool fixes for cross-compilation, many past contributors/authors. Update based on libtool-2.4.4, useful for 2.4.3 as well but not 2.4.2. Signed-off-by: Gustavo Zacarias --- a/ltmain.sh 2014-12-16 09:51:23.068441045 -0300 +++ b/ltmain.sh 2014-12-16 09:57:10.509430339 -0300 @@ -2687,8 +2687,8 @@ # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then - func_echo "unable to infer tagged configuration" - func_fatal_error "specify a tag with '--tag'" + func_echo "defaulting to \`CC'" + func_echo "if this is not correct, specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi @@ -4277,8 +4277,12 @@ # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. - test "$inst_prefix_dir" = "$destdir" && \ - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + # + # This breaks install into our staging area. -PB + # + #test "$inst_prefix_dir" = "$destdir" && \ + # func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. @@ -6550,7 +6554,8 @@ ;; -all-static | -static | -static-libtool-libs) case $arg in - -all-static) + # Make -static behave like -all-static -GZ + -all-static | -static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi @@ -6559,12 +6564,6 @@ fi prefer_static_libs=yes ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static @@ -6858,7 +6857,8 @@ prevarg=$arg case $arg in - -all-static) + # Make -static behave like -all-static -GZ + -all-static | -static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" @@ -7149,7 +7149,7 @@ continue ;; - -static | -static-libtool-libs) + -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -8112,7 +8112,7 @@ *) if test no = "$installed"; then func_append notinst_deplibs " $lib" - need_relink=yes + need_relink=no fi ;; esac @@ -10710,6 +10710,10 @@ # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do + # Replacing uninstalled with installed can easily break crosscompilation, + # since the installed path is generally the wrong architecture. -CL + newdependency_libs="$newdependency_libs $deplib" + continue case $deplib in *.la) func_basename "$deplib"