support/libtool: improve version 1.5 static patching

Alter the libtool 1.5.x support patch to accomodate for wildly different
versions of ltmain.sh
Just make it alter incoming args from -static to -all-static which seems
to apply to all the different variants out there since argument parsing
is unlikely to change much.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Gustavo Zacarias 2014-07-31 11:19:45 -03:00 committed by Thomas Petazzoni
parent e573f5d326
commit 8b691cec63

View File

@ -1,6 +1,6 @@
--- a/ltmain.sh 2008-02-01 17:39:51.000000000 +0100 --- a/ltmain.sh 2014-07-31 10:43:01.634568799 -0300
+++ b/ltmain.sh 2014-07-30 22:36:00.544715335 +0200 +++ b/ltmain.sh 2014-07-31 10:44:14.032018999 -0300
@@ -297,8 +297,9 @@ @@ -226,8 +226,9 @@
# line option must be used. # line option must be used.
if test -z "$tagname"; then if test -z "$tagname"; then
$echo "$modename: unable to infer tagged configuration" $echo "$modename: unable to infer tagged configuration"
@ -12,30 +12,19 @@
# else # else
# $echo "$modename: using $tagname tagged configuration" # $echo "$modename: using $tagname tagged configuration"
fi fi
@@ -1178,7 +1179,8 @@ @@ -247,6 +248,11 @@
arg="$1"
shift
+ # Make -static behave as -all-static
+ case $arg in
+ -static) arg="-all-static" ;;
+ esac
+
case $arg in case $arg in
-all-static | -static | -static-libtool-libs) -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
case $arg in *) optarg= ;;
- -all-static) @@ -1238,7 +1244,8 @@
+ # Make -static behave like -all-static
+ -all-static | -static)
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
fi
@@ -1187,12 +1189,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
@@ -1482,7 +1478,8 @@
prevarg="$arg" prevarg="$arg"
case $arg in case $arg in
@ -45,16 +34,7 @@
if test -n "$link_static_flag"; then if test -n "$link_static_flag"; then
compile_command="$compile_command $link_static_flag" compile_command="$compile_command $link_static_flag"
finalize_command="$finalize_command $link_static_flag" finalize_command="$finalize_command $link_static_flag"
@@ -1765,7 +1762,7 @@ @@ -2146,8 +2153,14 @@
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
@@ -2462,8 +2459,14 @@
absdir="$abs_ladir" absdir="$abs_ladir"
libdir="$abs_ladir" libdir="$abs_ladir"
else else
@ -69,10 +49,10 @@
+ #dir="$libdir" + #dir="$libdir"
+ #absdir="$libdir" + #absdir="$libdir"
fi fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else else
@@ -2602,7 +2605,7 @@ dir="$ladir/$objdir"
{ test "$use_static_libs" = no || test -z "$old_library"; }; then @@ -2272,7 +2285,7 @@
{ test "$prefer_static_libs" = no || test -z "$old_library"; }; then
if test "$installed" = no; then if test "$installed" = no; then
notinst_deplibs="$notinst_deplibs $lib" notinst_deplibs="$notinst_deplibs $lib"
- need_relink=yes - need_relink=yes
@ -80,7 +60,7 @@
fi fi
# This is a shared library # This is a shared library
@@ -5687,6 +5690,10 @@ @@ -5169,6 +5182,10 @@
# Replace all uninstalled libtool libraries with the installed ones # Replace all uninstalled libtool libraries with the installed ones
newdependency_libs= newdependency_libs=
for deplib in $dependency_libs; do for deplib in $dependency_libs; do
@ -91,7 +71,7 @@
case $deplib in case $deplib in
*.la) *.la)
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
@@ -6008,10 +6015,13 @@ @@ -5487,10 +5504,13 @@
# At present, this check doesn't affect windows .dll's that # At present, this check doesn't affect windows .dll's that
# are installed into $libdir/../bin (currently, that works fine) # are installed into $libdir/../bin (currently, that works fine)
# but it's something to keep an eye on. # but it's something to keep an eye on.