1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-27 17:55:55 +02:00

[backfire] backport libtool/libltdl split from trunk

git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@25741 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2011-02-26 20:14:58 +00:00
parent 864af4157e
commit 69bdbf2db4
12 changed files with 361 additions and 121 deletions

View File

@ -8,18 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libtool
PKG_VERSION:=1.5.26
PKG_VERSION:=2.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/libtool
PKG_MD5SUM:=aa9c5107f3ec9ef4200eb6556f3b3c29
PKG_MD5SUM:=b32b04148ecdd7344abc6fe8bd1bb021
HOST_PATCH_DIR=/dev/null
PATCH_DIR:=$(TOPDIR)/tools/libtool/patches
PKG_BUILD_DEPENDS:=libtool/host
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
CONFIGURE_PREFIX=$(STAGING_DIR)/host
@ -42,9 +39,6 @@ define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include
mv $(2)/lib/* $(1)/usr/lib/
mv $(2)/include/* $(1)/usr/include/
$(SED) 's,\(hardcode_into_libs\)=yes,\1=no,g' $(2)/bin/libtool
$(CP) $(2)/bin/libtool $(2)/bin/libtool-ucxx
$(SED) 's,-lstdc++,-luClibc++,g' $(2)/bin/libtool-ucxx
endef
define Package/libltdl/install
@ -52,5 +46,4 @@ define Package/libltdl/install
$(CP) $(PKG_BUILD_DIR)/libltdl/.libs/libltdl.so.* $(1)/usr/lib/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libltdl))

View File

@ -1,13 +0,0 @@
--- a/libltdl/acinclude.m4
+++ b/libltdl/acinclude.m4
@@ -6771,10 +6771,8 @@ AC_CACHE_CHECK([whether deplibs are load
;;
esac
])
-if test "$libltdl_cv_sys_dlopen_deplibs" != yes; then
AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
[Define if the OS needs help to load dependent libraries for dlopen().])
-fi
])# AC_LTDL_SYS_DLOPEN_DEPLIBS

View File

@ -1,49 +0,0 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -789,6 +789,7 @@ $(srcdir)/ltmain.sh: $(srcdir)/ltmain.in
-rm -f ltmain.shT
date=`$(SHELL) $(srcdir)/mkstamp < $(srcdir)/ChangeLog` && \
sed -e 's/@''PACKAGE@/@PACKAGE@/' -e 's/@''VERSION@/@VERSION@/' \
+ -e 's#@''GLOBAL_LIBDIR@#$(GLOBAL_LIBDIR)#' \
-e "s%@""TIMESTAMP@%$$date%" $(srcdir)/ltmain.in > ltmain.shT
mv -f ltmain.shT $@ || \
(rm -f $@ && cp ltmain.shT $@ && rm -f ltmain.shT)
--- a/ltmain.in
+++ b/ltmain.in
@@ -2827,7 +2827,7 @@ EOF
fi
else
# We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
+ add_dir="-L@GLOBAL_LIBDIR@"
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -5669,7 +5669,7 @@ fi\
$echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
exit $EXIT_FAILURE
fi
- newdependency_libs="$newdependency_libs $libdir/$name"
+ newdependency_libs="$newdependency_libs @GLOBAL_LIBDIR@/$name"
;;
*) newdependency_libs="$newdependency_libs $deplib" ;;
esac
@@ -5694,7 +5694,7 @@ fi\
$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
exit $EXIT_FAILURE
fi
- newdlprefiles="$newdlprefiles $libdir/$name"
+ newdlprefiles="$newdlprefiles @GLOBAL_LIBDIR@/$name"
done
dlprefiles="$newdlprefiles"
else
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,6 +67,7 @@ $(srcdir)/ltmain.sh: $(srcdir)/ltmain.in
-rm -f ltmain.shT
date=`$(SHELL) $(srcdir)/mkstamp < $(srcdir)/ChangeLog` && \
sed -e 's/@''PACKAGE@/@PACKAGE@/' -e 's/@''VERSION@/@VERSION@/' \
+ -e 's#@''GLOBAL_LIBDIR@#$(GLOBAL_LIBDIR)#' \
-e "s%@""TIMESTAMP@%$$date%" $(srcdir)/ltmain.in > ltmain.shT
mv -f ltmain.shT $@ || \
(rm -f $@ && cp ltmain.shT $@ && rm -f ltmain.shT)

View File

@ -1,30 +0,0 @@
Well, brute force to disable rpath.
Only
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+#hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
should be necessary....
--- a/libtool.m4
+++ b/libtool.m4
@@ -4601,16 +4601,16 @@ shlibpath_overrides_runpath=$shlibpath_o
hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
+hardcode_into_libs=no
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+hardcode_libdir_flag_spec=
# If ld is used when linking, flag to hardcode \$libdir into
# a binary during linking. This must work even if \$libdir does
# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+hardcode_libdir_flag_spec_ld=
# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)

View File

@ -1,19 +0,0 @@
--- a/ltmain.in
+++ b/ltmain.in
@@ -2444,8 +2444,14 @@ EOF
absdir="$abs_ladir"
libdir="$abs_ladir"
else
- dir="$libdir"
- absdir="$libdir"
+ # Adding 'libdir' from the .la file to our library search paths
+ # breaks crosscompilation horribly. We cheat here and don't add
+ # it, instead adding the path where we found the .la. -CL
+ dir="$abs_ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ #dir="$libdir"
+ #absdir="$libdir"
fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else

37
tools/libtool/Makefile Normal file
View File

@ -0,0 +1,37 @@
#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libtool
PKG_VERSION:=2.4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
PKG_MD5SUM:=b32b04148ecdd7344abc6fe8bd1bb021
include $(INCLUDE_DIR)/host-build.mk
HOST_CONFIGURE_VARS += \
lt_cv_sys_dlsearch_path=""
define Host/Compile
$(MAKE) -C $(HOST_BUILD_DIR)
endef
define Host/Install
$(MAKE) -C $(HOST_BUILD_DIR) install
$(SED) 's,\(hardcode_into_libs\)=yes,\1=no,g' $(STAGING_DIR_HOST)/bin/libtool
$(CP) $(STAGING_DIR_HOST)/bin/libtool $(STAGING_DIR_HOST)/bin/libtool-ucxx
$(SED) 's,-lstdc++,-luClibc++,g' $(STAGING_DIR_HOST)/bin/libtool-ucxx
endef
define Host/Clean
-$(MAKE) -C $(HOST_BUILD_DIR) uninstall
$(call Host/Clean/Default)
endef
$(eval $(call HostBuild))

View File

@ -0,0 +1,22 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -7261,7 +7261,7 @@ EOF
elif test -n "$runpath_var"; then
case "$perm_rpath " in
*" $libdir "*) ;;
- *) func_apped perm_rpath " $libdir" ;;
+ *) func_append perm_rpath " $libdir" ;;
esac
fi
done
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -8050,7 +8050,7 @@ EOF
elif test -n "$runpath_var"; then
case "$perm_rpath " in
*" $libdir "*) ;;
- *) func_apped perm_rpath " $libdir" ;;
+ *) func_append perm_rpath " $libdir" ;;
esac
fi
done

View File

@ -0,0 +1,94 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -5715,8 +5715,14 @@ func_mode_link ()
absdir="$abs_ladir"
libdir="$abs_ladir"
else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
+ # Adding 'libdir' from the .la file to our library search paths
+ # breaks crosscompilation horribly. We cheat here and don't add
+ # it, instead adding the path where we found the .la. -CL
+ dir="$lt_sysroot$abs_ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ #dir="$libdir"
+ #absdir="$lt_sysroot$libdir"
fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else
@@ -6114,8 +6120,6 @@ func_mode_link ()
add="$libdir/$linklib"
fi
else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -6270,7 +6274,17 @@ func_mode_link ()
fi
;;
*)
- path="-L$absdir/$objdir"
+ # OE sets installed=no in staging. We need to look in $objdir and $absdir,
+ # preferring $objdir. RP 31/04/2008
+ if test -f "$absdir/$objdir/$depdepl" ; then
+ depdepl="$absdir/$objdir/$depdepl"
+ path="-L$absdir/$objdir"
+ elif test -f "$absdir/$depdepl" ; then
+ depdepl="$absdir/$depdepl"
+ path="-L$absdir"
+ else
+ path="-L$absdir/$objdir"
+ fi
;;
esac
else
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -6504,8 +6504,14 @@ func_mode_link ()
absdir="$abs_ladir"
libdir="$abs_ladir"
else
- dir="$lt_sysroot$libdir"
- absdir="$lt_sysroot$libdir"
+ # Adding 'libdir' from the .la file to our library search paths
+ # breaks crosscompilation horribly. We cheat here and don't add
+ # it, instead adding the path where we found the .la. -CL
+ dir="$lt_sysroot$abs_ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ #dir="$libdir"
+ #absdir="$lt_sysroot$libdir"
fi
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
else
@@ -6903,8 +6909,6 @@ func_mode_link ()
add="$libdir/$linklib"
fi
else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -7059,7 +7063,17 @@ func_mode_link ()
fi
;;
*)
- path="-L$absdir/$objdir"
+ # OE sets installed=no in staging. We need to look in $objdir and $absdir,
+ # preferring $objdir. RP 31/04/2008
+ if test -f "$absdir/$objdir/$depdepl" ; then
+ depdepl="$absdir/$objdir/$depdepl"
+ path="-L$absdir/$objdir"
+ elif test -f "$absdir/$depdepl" ; then
+ depdepl="$absdir/$depdepl"
+ path="-L$absdir"
+ else
+ path="-L$absdir/$objdir"
+ fi
;;
esac
else

View File

@ -0,0 +1,20 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -6104,7 +6104,6 @@ func_mode_link ()
test "$hardcode_direct_absolute" = no; then
add="$libdir/$linklib"
elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
add="-l$name"
elif test "$hardcode_shlibpath_var" = yes; then
case :$finalize_shlibpath: in
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -6893,7 +6893,6 @@ func_mode_link ()
test "$hardcode_direct_absolute" = no; then
add="$libdir/$linklib"
elif test "$hardcode_minus_L" = yes; then
- add_dir="-L$libdir"
add="-l$name"
elif test "$hardcode_shlibpath_var" = yes; then
case :$finalize_shlibpath: in

View File

@ -0,0 +1,24 @@
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2183,6 +2183,9 @@ func_mode_install ()
relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
fi
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
+
func_warning "relinking \`$file'"
func_show_eval "$relink_command" \
'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -2972,6 +2972,9 @@ func_mode_install ()
relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
fi
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
+
func_warning "relinking \`$file'"
func_show_eval "$relink_command" \
'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'

View File

@ -0,0 +1,49 @@
A command like /bin/sh ../../i586-poky-linux-libtool --mode=install /usr/bin/install -c gck-roots-store-standalone.la '/media/data1/builds/poky1/tmp/work/core2-poky-linux/gnome-keyring-2.26.1-r1/image/usr/lib/gnome-keyring/standalone/' fails (e.g. gnome-keyring or pulseaudio)
This is because libdir has a trailing slash which breaks the comparision.
RP 2/1/10
Merged a patch received from Gary Thomas <gary@mlbassoc.com>
Date: 2010/07/12
Nitin A Kamble <nitin.a.kamble@intel.com>
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -2164,8 +2164,15 @@ func_mode_install ()
func_append dir "$objdir"
if test -n "$relink_command"; then
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$libdir"
+ destlibdir=$func_stripname_result
+
+ func_stripname '' '/' "$destdir"
+ s_destdir=$func_stripname_result
+
# Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
# Don't allow the user to place us outside of our expected
# location b/c this prevents finding dependent libraries that
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -2953,8 +2953,15 @@ func_mode_install ()
func_append dir "$objdir"
if test -n "$relink_command"; then
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$libdir"
+ destlibdir=$func_stripname_result
+
+ func_stripname '' '/' "$destdir"
+ s_destdir=$func_stripname_result
+
# Determine the prefix the user has applied to our future dir.
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
# Don't allow the user to place us outside of our expected
# location b/c this prevents finding dependent libraries that

View File

@ -0,0 +1,112 @@
--- a/libltdl/config/general.m4sh
+++ b/libltdl/config/general.m4sh
@@ -352,7 +352,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
}
# func_verbose arg...
@@ -378,14 +378,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
}
# func_warning arg...
# Echo program name prefixed warning message to standard error.
func_warning ()
{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
# bash bug again:
:
--- a/libltdl/config/ltmain.sh
+++ b/libltdl/config/ltmain.sh
@@ -443,7 +443,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
}
# func_verbose arg...
@@ -469,14 +469,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
}
# func_warning arg...
# Echo program name prefixed warning message to standard error.
func_warning ()
{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
# bash bug again:
:
--- a/libtoolize.in
+++ b/libtoolize.in
@@ -633,7 +633,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
}
# func_verbose arg...
@@ -659,14 +659,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
}
# func_warning arg...
# Echo program name prefixed warning message to standard error.
func_warning ()
{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
# bash bug again:
:
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -588,7 +588,7 @@ opt_warning=:
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
}
# func_verbose arg...
@@ -614,14 +614,14 @@ func_echo_all ()
# Echo program name prefixed message to standard error.
func_error ()
{
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
}
# func_warning arg...
# Echo program name prefixed warning message to standard error.
func_warning ()
{
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
# bash bug again:
: