Added the ability to patch ltmain.sh based on version
There are two versions of ltmain.sh in use in the buildroot system, 1.5.x and 2.2.x. buildroot-libtool.patch would only patch 1.5.x, which meant that for 2.2.x, a separate patch for the affected package had to be maintained. Modified Makefile.autotools.in to check the version of ltmain.sh and apply the correct patch. Signed-off-by: Martin Banky <Martin.Banky@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
fda95b5b10
commit
83af822f7b
@ -139,10 +139,16 @@ $(2)_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
|
||||
#
|
||||
define LIBTOOL_PATCH_HOOK
|
||||
@$(call MESSAGE,"Patching libtool")
|
||||
$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES" -a \
|
||||
"$$($$(PKG)_AUTORECONF)" != "YES"; then \
|
||||
for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
|
||||
toolchain/patch-kernel.sh $$$${i%/*} package buildroot-libtool.patch; \
|
||||
$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES" \
|
||||
-a "$$($$(PKG)_AUTORECONF)" != "YES"; then \
|
||||
for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
|
||||
ltmain_version=`sed -n '/^[ ]*VERSION=/{s/^[ ]*VERSION=//;p;q;}' $$$$i | \
|
||||
sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
|
||||
if test $$$${ltmain_version} = '1.5'; then \
|
||||
toolchain/patch-kernel.sh $$$${i%/*} package buildroot-libtool-v1.5.patch; \
|
||||
elif test $$$${ltmain_version} = "2.2"; then\
|
||||
toolchain/patch-kernel.sh $$$${i%/*} package buildroot-libtool-v2.2.patch; \
|
||||
fi \
|
||||
done \
|
||||
fi
|
||||
endef
|
||||
@ -158,9 +164,14 @@ endif
|
||||
define AUTORECONF_HOOK
|
||||
@$(call MESSAGE,"Autoreconfiguring")
|
||||
$(Q)cd $$($$(PKG)_SRCDIR) && $(AUTORECONF) $$($$(PKG)_AUTORECONF_OPT)
|
||||
$(Q)if test "$($$(PKG)_LIBTOOL_PATCH)" = "YES"; then \
|
||||
$(Q)if test "$$($$(PKG)_LIBTOOL_PATCH)" = "YES"; then \
|
||||
for i in `find $$($$(PKG)_SRCDIR) -name ltmain.sh`; do \
|
||||
toolchain/patch-kernel.sh $${i%/*} package buildroot-libtool.patch; \
|
||||
ltmain_version=`sed -n '/^[ ]*VERSION=/{s/^[ ]*VERSION=//;p;q;}' $$$$i | sed 's/\([0-9].[0-9]*\).*/\1/'`; \
|
||||
if test $$$${ltmain_version} = "1.5"; then \
|
||||
toolchain/patch-kernel.sh $$$${i%/*} package buildroot-libtool-v1.5.patch; \
|
||||
elif test $$$${ltmain_version} = "2.2"; then\
|
||||
toolchain/patch-kernel.sh $$$${i%/*} package buildroot-libtool-v2.2.patch; \
|
||||
fi \
|
||||
done \
|
||||
fi
|
||||
endef
|
||||
|
64
package/buildroot-libtool-v2.2.patch
Normal file
64
package/buildroot-libtool-v2.2.patch
Normal file
@ -0,0 +1,64 @@
|
||||
--- a/ltmain.sh 2009-11-16 06:23:18.000000000 -0700
|
||||
+++ b/ltmain.sh 2010-09-18 20:25:06.000000000 -0700
|
||||
@@ -1048,8 +1048,8 @@ func_infer_tag ()
|
||||
# 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
|
||||
@@ -2018,8 +2018,11 @@ func_mode_install ()
|
||||
# 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.
|
||||
@@ -5412,8 +5415,14 @@ func_mode_link ()
|
||||
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
|
||||
@@ -5564,7 +5573,7 @@ func_mode_link ()
|
||||
*)
|
||||
if test "$installed" = no; then
|
||||
notinst_deplibs="$notinst_deplibs $lib"
|
||||
- need_relink=yes
|
||||
+ need_relink=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -8052,6 +8061,10 @@ EOF
|
||||
# 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"
|
Loading…
Reference in New Issue
Block a user