Gustavo Zacarias | 4a28e35 | 2014-12-16 11:08:15 -0300 | [diff] [blame] | 1 | Libtool fixes for cross-compilation, many past contributors/authors. |
| 2 | Update based on libtool-2.4.4, useful for 2.4.3 as well but not 2.4.2. |
| 3 | |
| 4 | Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> |
| 5 | |
| 6 | --- a/ltmain.sh 2014-12-16 09:51:23.068441045 -0300 |
| 7 | +++ b/ltmain.sh 2014-12-16 09:57:10.509430339 -0300 |
| 8 | @@ -2687,8 +2687,8 @@ |
| 9 | # was found and let the user know that the "--tag" command |
| 10 | # line option must be used. |
| 11 | if test -z "$tagname"; then |
| 12 | - func_echo "unable to infer tagged configuration" |
| 13 | - func_fatal_error "specify a tag with '--tag'" |
| 14 | + func_echo "defaulting to \`CC'" |
| 15 | + func_echo "if this is not correct, specify a tag with \`--tag'" |
| 16 | # else |
| 17 | # func_verbose "using $tagname tagged configuration" |
| 18 | fi |
| 19 | @@ -4277,8 +4277,12 @@ |
| 20 | # At present, this check doesn't affect windows .dll's that |
| 21 | # are installed into $libdir/../bin (currently, that works fine) |
| 22 | # but it's something to keep an eye on. |
| 23 | - test "$inst_prefix_dir" = "$destdir" && \ |
| 24 | - func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" |
| 25 | + |
| 26 | + # |
| 27 | + # This breaks install into our staging area. -PB |
| 28 | + # |
| 29 | + #test "$inst_prefix_dir" = "$destdir" && \ |
| 30 | + # func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" |
| 31 | |
| 32 | if test -n "$inst_prefix_dir"; then |
| 33 | # Stick the inst_prefix_dir data into the link command. |
| 34 | @@ -6550,7 +6554,8 @@ |
| 35 | ;; |
| 36 | -all-static | -static | -static-libtool-libs) |
| 37 | case $arg in |
| 38 | - -all-static) |
| 39 | + # Make -static behave like -all-static -GZ |
| 40 | + -all-static | -static) |
| 41 | if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then |
| 42 | func_warning "complete static linking is impossible in this configuration" |
| 43 | fi |
| 44 | @@ -6559,12 +6564,6 @@ |
| 45 | fi |
| 46 | prefer_static_libs=yes |
| 47 | ;; |
| 48 | - -static) |
| 49 | - if test -z "$pic_flag" && test -n "$link_static_flag"; then |
| 50 | - dlopen_self=$dlopen_self_static |
| 51 | - fi |
| 52 | - prefer_static_libs=built |
| 53 | - ;; |
| 54 | -static-libtool-libs) |
| 55 | if test -z "$pic_flag" && test -n "$link_static_flag"; then |
| 56 | dlopen_self=$dlopen_self_static |
| 57 | @@ -6858,7 +6857,8 @@ |
| 58 | prevarg=$arg |
| 59 | |
| 60 | case $arg in |
| 61 | - -all-static) |
| 62 | + # Make -static behave like -all-static -GZ |
| 63 | + -all-static | -static) |
| 64 | if test -n "$link_static_flag"; then |
| 65 | # See comment for -static flag below, for more details. |
| 66 | func_append compile_command " $link_static_flag" |
| 67 | @@ -7149,7 +7149,7 @@ |
| 68 | continue |
| 69 | ;; |
| 70 | |
| 71 | - -static | -static-libtool-libs) |
| 72 | + -static-libtool-libs) |
| 73 | # The effects of -static are defined in a previous loop. |
| 74 | # We used to do the same as -all-static on platforms that |
| 75 | # didn't have a PIC flag, but the assumption that the effects |
| 76 | @@ -8112,7 +8112,7 @@ |
| 77 | *) |
| 78 | if test no = "$installed"; then |
| 79 | func_append notinst_deplibs " $lib" |
| 80 | - need_relink=yes |
| 81 | + need_relink=no |
| 82 | fi |
| 83 | ;; |
| 84 | esac |
| 85 | @@ -10710,6 +10710,10 @@ |
| 86 | # Replace all uninstalled libtool libraries with the installed ones |
| 87 | newdependency_libs= |
| 88 | for deplib in $dependency_libs; do |
| 89 | + # Replacing uninstalled with installed can easily break crosscompilation, |
| 90 | + # since the installed path is generally the wrong architecture. -CL |
| 91 | + newdependency_libs="$newdependency_libs $deplib" |
| 92 | + continue |
| 93 | case $deplib in |
| 94 | *.la) |
| 95 | func_basename "$deplib" |