summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/libtool
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/libtool')
-rw-r--r--meta/recipes-devtools/libtool/libtool-2.4.6.inc49
-rw-r--r--meta/recipes-devtools/libtool/libtool-2.4.7.inc52
-rw-r--r--meta/recipes-devtools/libtool/libtool-cross_2.4.7.bb (renamed from meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb)12
-rw-r--r--meta/recipes-devtools/libtool/libtool-native_2.4.7.bb (renamed from meta/recipes-devtools/libtool/libtool-native_2.4.6.bb)6
-rw-r--r--meta/recipes-devtools/libtool/libtool/0001-libtool-Fix-support-for-NIOS2-processor.patch68
-rw-r--r--meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Handle-trailing-slashes-on-install-command.patch39
-rw-r--r--meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Parse-additional-clang-options.patch33
-rw-r--r--meta/recipes-devtools/libtool/libtool/0002-libtool.m4-Rename-the-with-sysroot-option-to-avoid-c.patch (renamed from meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch)62
-rw-r--r--meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch37
-rw-r--r--meta/recipes-devtools/libtool/libtool/0003-ltmain.in-Add-missing-sysroot-to-library-path.patch (renamed from meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch)16
-rw-r--r--meta/recipes-devtools/libtool/libtool/0004-ltmain.sh-Fix-sysroot-paths-being-encoded-into-RPATH.patch (renamed from meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch)34
-rw-r--r--meta/recipes-devtools/libtool/libtool/0005-ltmain.in-Don-t-encode-RATHS-which-match-default-lin.patch (renamed from meta/recipes-devtools/libtool/libtool/fix-rpath.patch)41
-rw-r--r--meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch38
-rw-r--r--meta/recipes-devtools/libtool/libtool/0007-libtool-Fix-support-for-NIOS2-processor.patch60
-rw-r--r--meta/recipes-devtools/libtool/libtool/0008-libtool-Check-for-static-libs-for-internal-compiler-.patch (renamed from meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch)22
-rw-r--r--meta/recipes-devtools/libtool/libtool/0009-Makefile.am-make-sure-autoheader-run-before-autoconf.patch31
-rw-r--r--meta/recipes-devtools/libtool/libtool/0010-Makefile.am-make-sure-autoheader-run-before-automake.patch33
-rw-r--r--meta/recipes-devtools/libtool/libtool/0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch37
-rw-r--r--meta/recipes-devtools/libtool/libtool/0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch29
-rwxr-xr-xmeta/recipes-devtools/libtool/libtool/debian-no_hostname.patch21
-rw-r--r--meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch3
-rw-r--r--meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch42
-rw-r--r--meta/recipes-devtools/libtool/libtool/fixinstall.patch6
-rw-r--r--meta/recipes-devtools/libtool/libtool/norm-rpath.patch38
-rw-r--r--meta/recipes-devtools/libtool/libtool/prefix.patch98
-rw-r--r--meta/recipes-devtools/libtool/libtool/trailingslash.patch35
-rw-r--r--meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch179
-rw-r--r--meta/recipes-devtools/libtool/libtool_2.4.7.bb (renamed from meta/recipes-devtools/libtool/libtool_2.4.6.bb)10
-rw-r--r--meta/recipes-devtools/libtool/nativesdk-libtool_2.4.7.bb (renamed from meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb)9
29 files changed, 509 insertions, 631 deletions
diff --git a/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/meta/recipes-devtools/libtool/libtool-2.4.6.inc
deleted file mode 100644
index 8e17b56d46..0000000000
--- a/meta/recipes-devtools/libtool/libtool-2.4.6.inc
+++ /dev/null
@@ -1,49 +0,0 @@
1SUMMARY = "Generic library support script"
2DESCRIPTION = "This is GNU libtool, a generic library support script. \
3Libtool hides the complexity of generating special library types \
4(such as shared libraries) behind a consistent interface."
5HOMEPAGE = "http://www.gnu.org/software/libtool/libtool.html"
6SECTION = "devel"
7LICENSE = "GPLv2 & LGPLv2.1"
8LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
9 file://libltdl/COPYING.LIB;md5=4fbd65380cdd255951079008b364516c "
10
11SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
12 file://trailingslash.patch \
13 file://rename-with-sysroot.patch \
14 file://use-sysroot-in-libpath.patch \
15 file://fix-final-rpath.patch \
16 file://fix-rpath.patch \
17 file://norm-rpath.patch \
18 file://dont-depend-on-help2man.patch \
19 file://fix-resolve-lt-sysroot.patch \
20 file://nohardcodepaths.patch \
21 file://unwind-opt-parsing.patch \
22 file://0001-libtool-Fix-support-for-NIOS2-processor.patch \
23 file://0001-libtool-Check-for-static-libs-for-internal-compiler-.patch \
24 "
25
26SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e"
27SRC_URI[sha256sum] = "e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3"
28
29do_compile_prepend () {
30 # Sometimes this file doesn't get rebuilt, force the issue
31 rm -f ${S}/build-aux/ltmain.sh
32 make build-aux/ltmain.sh
33 ./config.status
34}
35
36inherit autotools texinfo
37EXTRA_AUTORECONF = "--exclude=libtoolize"
38
39CACHED_CONFIGUREVARS += "ac_cv_path_GREP=grep"
40
41DEPENDS = "libtool-native"
42
43PACKAGES =+ "libltdl"
44FILES_${PN} += "${datadir}/aclocal"
45
46FILES_${PN}-dev_remove = "${datadir}/aclocal"
47FILES_libltdl = "${libdir}/libltdl${SOLIBS}"
48
49export CONFIG_SHELL="/bin/bash"
diff --git a/meta/recipes-devtools/libtool/libtool-2.4.7.inc b/meta/recipes-devtools/libtool/libtool-2.4.7.inc
new file mode 100644
index 0000000000..16bb10d48f
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool-2.4.7.inc
@@ -0,0 +1,52 @@
1SUMMARY = "Generic library support script"
2DESCRIPTION = "This is GNU libtool, a generic library support script. \
3Libtool hides the complexity of generating special library types \
4(such as shared libraries) behind a consistent interface."
5HOMEPAGE = "http://www.gnu.org/software/libtool/libtool.html"
6SECTION = "devel"
7LICENSE = "GPL-2.0-only & LGPL-2.1-only"
8LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
9 file://libltdl/COPYING.LIB;md5=4fbd65380cdd255951079008b364516c "
10
11SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
12 file://0001-ltmain.in-Handle-trailing-slashes-on-install-command.patch \
13 file://0002-libtool.m4-Rename-the-with-sysroot-option-to-avoid-c.patch \
14 file://0003-ltmain.in-Add-missing-sysroot-to-library-path.patch \
15 file://0004-ltmain.sh-Fix-sysroot-paths-being-encoded-into-RPATH.patch \
16 file://0005-ltmain.in-Don-t-encode-RATHS-which-match-default-lin.patch \
17 file://dont-depend-on-help2man.patch \
18 file://0003-libtool.m4-Cleanup-sysroot-trailing.patch \
19 file://0006-libtool.m4-Handle-as-a-sysroot-correctly.patch \
20 file://nohardcodepaths.patch \
21 file://0007-libtool-Fix-support-for-NIOS2-processor.patch \
22 file://0008-libtool-Check-for-static-libs-for-internal-compiler-.patch \
23 file://0009-Makefile.am-make-sure-autoheader-run-before-autoconf.patch \
24 file://0010-Makefile.am-make-sure-autoheader-run-before-automake.patch \
25 file://0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch \
26 file://0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch \
27 file://0001-ltmain.in-Parse-additional-clang-options.patch \
28 "
29
30SRC_URI[sha256sum] = "04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8"
31
32do_compile:prepend () {
33 # Sometimes this file doesn't get rebuilt, force the issue
34 rm -f ${S}/build-aux/ltmain.sh
35 make build-aux/ltmain.sh
36 ./config.status
37}
38
39inherit autotools texinfo
40EXTRA_AUTORECONF = "--exclude=libtoolize"
41
42CACHED_CONFIGUREVARS += "ac_cv_path_GREP=grep"
43
44DEPENDS = "libtool-native"
45
46PACKAGES =+ "libltdl"
47FILES:${PN} += "${datadir}/aclocal"
48
49FILES:${PN}-dev:remove = "${datadir}/aclocal"
50FILES:libltdl = "${libdir}/libltdl${SOLIBS}"
51
52export CONFIG_SHELL="/bin/bash"
diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.7.bb
index 02c6e152fc..93f1dd7825 100644
--- a/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.7.bb
@@ -1,14 +1,13 @@
1require libtool-${PV}.inc 1require libtool-${PV}.inc
2 2
3PACKAGES = "" 3PACKAGES = ""
4SRC_URI += "file://prefix.patch"
5SRC_URI += "file://fixinstall.patch" 4SRC_URI += "file://fixinstall.patch"
6 5
7datadir = "${STAGING_DIR_TARGET}${target_datadir}" 6datadir = "${STAGING_DIR_TARGET}${target_datadir}"
8 7
9inherit nopackages 8inherit nopackages
10 9
11do_configure_prepend () { 10do_configure:prepend () {
12 # Remove any existing libtool m4 since old stale versions would break 11 # Remove any existing libtool m4 since old stale versions would break
13 # any upgrade 12 # any upgrade
14 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 13 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4
@@ -22,15 +21,16 @@ do_configure_prepend () {
22# Find references to LTCC="ccache xxx-gcc" and CC="ccache xxx-gcc" 21# Find references to LTCC="ccache xxx-gcc" and CC="ccache xxx-gcc"
23# 22#
24do_install () { 23do_install () {
24 ln -s false ${D}
25 install -d ${D}${bindir_crossscripts}/ 25 install -d ${D}${bindir_crossscripts}/
26 install -m 0755 ${HOST_SYS}-libtool ${D}${bindir_crossscripts}/${HOST_SYS}-libtool 26 install -m 0755 libtool ${D}${bindir_crossscripts}/libtool
27 sed -e 's@^\(predep_objects="\).*@\1"@' \ 27 sed -e 's@^\(predep_objects="\).*@\1"@' \
28 -e 's@^\(postdep_objects="\).*@\1"@' \ 28 -e 's@^\(postdep_objects="\).*@\1"@' \
29 -e 's@^CC="ccache.@CC="@' \ 29 -e 's@^CC="ccache.@CC="@' \
30 -e 's@^LTCC="ccache.@LTCC="@' \ 30 -e 's@^LTCC="ccache.@LTCC="@' \
31 -i ${D}${bindir_crossscripts}/${HOST_SYS}-libtool 31 -i ${D}${bindir_crossscripts}/libtool
32 sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool 32 sed -i '/^archive_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
33 sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/${HOST_SYS}-libtool 33 sed -i '/^archive_expsym_cmds=/s/\-nostdlib//g' ${D}${bindir_crossscripts}/libtool
34 GREP='/bin/grep' SED='sed' ${S}/build-aux/inline-source libtoolize > ${D}${bindir_crossscripts}/libtoolize 34 GREP='/bin/grep' SED='sed' ${S}/build-aux/inline-source libtoolize > ${D}${bindir_crossscripts}/libtoolize
35 chmod 0755 ${D}${bindir_crossscripts}/libtoolize 35 chmod 0755 ${D}${bindir_crossscripts}/libtoolize
36 install -d ${D}${target_datadir}/libtool/build-aux/ 36 install -d ${D}${target_datadir}/libtool/build-aux/
diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.7.bb
index 4c5218ade0..19024f7830 100644
--- a/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/libtool-native_2.4.7.bb
@@ -2,13 +2,11 @@ require libtool-${PV}.inc
2 2
3DEPENDS = "" 3DEPENDS = ""
4 4
5SRC_URI += "file://prefix.patch"
6
7inherit native 5inherit native
8 6
9EXTRA_OECONF = " --with-libtool-sysroot=${STAGING_DIR_NATIVE}" 7EXTRA_OECONF = " --with-libtool-sysroot=${STAGING_DIR_NATIVE}"
10 8
11do_configure_prepend () { 9do_configure:prepend () {
12 # Remove any existing libtool m4 since old stale versions would break 10 # Remove any existing libtool m4 since old stale versions would break
13 # any upgrade 11 # any upgrade
14 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 12 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4
@@ -18,5 +16,5 @@ do_configure_prepend () {
18do_install () { 16do_install () {
19 autotools_do_install 17 autotools_do_install
20 install -d ${D}${bindir}/ 18 install -d ${D}${bindir}/
21 install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool 19 install -m 0755 libtool ${D}${bindir}/libtool
22} 20}
diff --git a/meta/recipes-devtools/libtool/libtool/0001-libtool-Fix-support-for-NIOS2-processor.patch b/meta/recipes-devtools/libtool/libtool/0001-libtool-Fix-support-for-NIOS2-processor.patch
deleted file mode 100644
index bbd36d8dc1..0000000000
--- a/meta/recipes-devtools/libtool/libtool/0001-libtool-Fix-support-for-NIOS2-processor.patch
+++ /dev/null
@@ -1,68 +0,0 @@
1From df2cd898e48208f26320d40c3ed6b19c75c27142 Mon Sep 17 00:00:00 2001
2From: Marek Vasut <marex@denx.de>
3Date: Thu, 17 Sep 2015 00:43:15 +0200
4Subject: [PATCH] libtool: Fix support for NIOS2 processor
5
6The name of the system contains the string "nios2". This string
7is caught by the some of the greedy checks for OS/2 in libtool,
8in particular the *os2* branches of switch statements match for
9the nios2 string, which results in incorrect behavior of libtool.
10
11This patch adds an explicit check for *nios2* before the *os2*
12checks to prevent the OS/2 check incorrectly trapping the nios2
13as well.
14
15Signed-off-by: Marek Vasut <marex@denx.de>
16Upstream-Status: Submitted
17---
18 build-aux/ltmain.in | 20 ++++++++++++++++++++
19 1 file changed, 20 insertions(+)
20
21diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
22index d5cf07a..4164284 100644
23--- a/build-aux/ltmain.in
24+++ b/build-aux/ltmain.in
25@@ -504,6 +504,12 @@ libtool_validate_options ()
26 test : = "$debug_cmd" || func_append preserve_args " --debug"
27
28 case $host in
29+ # For NIOS2, we want to make sure that it's not caught by the
30+ # more general OS/2 check below. Otherwise, NIOS2 is the same
31+ # as the default option.
32+ *nios2*)
33+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
34+ ;;
35 # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
36 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
37 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
38@@ -6220,6 +6226,15 @@ func_mode_link ()
39 if test -n "$library_names" &&
40 { test no = "$use_static_libs" || test -z "$old_library"; }; then
41 case $host in
42+ *nios2*)
43+ # For NIOS2, we want to make sure that it's not caught by the
44+ # more general OS/2 check below. Otherwise, NIOS2 is the same
45+ # as the default option.
46+ if test no = "$installed"; then
47+ func_append notinst_deplibs " $lib"
48+ need_relink=yes
49+ fi
50+ ;;
51 *cygwin* | *mingw* | *cegcc* | *os2*)
52 # No point in relinking DLLs because paths are not encoded
53 func_append notinst_deplibs " $lib"
54@@ -6290,6 +6305,11 @@ func_mode_link ()
55 elif test -n "$soname_spec"; then
56 # bleh windows
57 case $host in
58+ *nios2*)
59+ # For NIOS2, we want to make sure that it's not caught by the
60+ # more general OS/2 check below. Otherwise, NIOS2 is the same
61+ # as the default option.
62+ ;;
63 *cygwin* | mingw* | *cegcc* | *os2*)
64 func_arith $current - $age
65 major=$func_arith_result
66--
672.5.1
68
diff --git a/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Handle-trailing-slashes-on-install-command.patch b/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Handle-trailing-slashes-on-install-command.patch
new file mode 100644
index 0000000000..51c0c52da8
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Handle-trailing-slashes-on-install-command.patch
@@ -0,0 +1,39 @@
1From: Richard Purdie <richard.purdie@linuxfoundation.org>
2Subject: [PATCH 01/12] ltmain.in: Handle trailing slashes on install commands correctly
3
4A command like:
5
6libtool --mode=install /usr/bin/install -c gck-roots-store-standalone.la '/image/usr/lib/gnome-keyring/standalone/'
7
8where the path ends with a trailing slash currently fails. This occurs in
9software like gnome-keyring or pulseaudio and is because the comparision
10code doesn't see the paths as equal. Strip both paths to ensure this works
11reliably.
12
13Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
14
15Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00010.html]
16
17diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
18index a5f21a1..f884824 100644
19--- a/build-aux/ltmain.in
20+++ b/build-aux/ltmain.in
21@@ -2381,8 +2381,14 @@ func_mode_install ()
22 func_append dir "$objdir"
23
24 if test -n "$relink_command"; then
25+ # Strip any trailing slash from the destination.
26+ func_stripname '' '/' "$libdir"
27+ destlibdir=$func_stripname_result
28+ func_stripname '' '/' "$destdir"
29+ s_destdir=$func_stripname_result
30+
31 # Determine the prefix the user has applied to our future dir.
32- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
33+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
34
35 # Don't allow the user to place us outside of our expected
36 # location b/c this prevents finding dependent libraries that
37--
382.25.1
39
diff --git a/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Parse-additional-clang-options.patch b/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Parse-additional-clang-options.patch
new file mode 100644
index 0000000000..c52083327c
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0001-ltmain.in-Parse-additional-clang-options.patch
@@ -0,0 +1,33 @@
1ltmain.in: Parse additional clang options
2
3clang uses -rtlib and --unwindlib to select proper compiler
4runtime in some cases. Therefore pass these options to linker when found in
5ldflags
6
7* build-aux/ltmain.in: Handle clang linker options
8
9Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=725646bf095bf5c07c49ae38dd060f95bd95ae3c]
11
12---
13 build-aux/ltmain.in | 4 +++-
14 1 file changed, 3 insertions(+), 1 deletion(-)
15
16diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
17index 037f009..ba5c816 100644
18--- a/build-aux/ltmain.in
19+++ b/build-aux/ltmain.in
20@@ -5414,10 +5414,12 @@ func_mode_link ()
21 # -fsanitize=* Clang/GCC memory and address sanitizer
22 # -fuse-ld=* Linker select flags for GCC
23 # -f{file|debug|macro|profile}-prefix-map* needed for lto linking
24+ # -rtlib=* select c runtime lib with clang
25+ # --unwindlib=* select unwinder library with clang
26 # -Wa,* Pass flags directly to the assembler
27 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
28 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
29- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
30+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*|-rtlib=*|--unwindlib=*| \
31 -specs=*|-fsanitize=*|-fuse-ld=*|-ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*|-Wa,*)
32 func_quote_arg pretty "$arg"
33 arg=$func_quote_arg_result
diff --git a/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch b/meta/recipes-devtools/libtool/libtool/0002-libtool.m4-Rename-the-with-sysroot-option-to-avoid-c.patch
index ad2b110530..2126f82953 100644
--- a/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch
+++ b/meta/recipes-devtools/libtool/libtool/0002-libtool.m4-Rename-the-with-sysroot-option-to-avoid-c.patch
@@ -1,24 +1,26 @@
1Upstream-Status: Pending 1From: Khem Raj <raj.khem@gmail.com>
2Subject: [PATCH 02/12] libtool.m4: Rename the --with-sysroot option to avoid conflict with gcc/binutils
2 3
3This patch renames the --with-sysroot option to --with-libtool-sysroot 4This patch renames the --with-sysroot option to --with-libtool-sysroot
4to avoid namespace conflict with binutils, gcc and other toolchain 5to avoid namespace conflict with binutils, gcc and other toolchain
5components. 6components since these componets also add that option to configure
7and this becomes confusing and conflicting otherwise.
6 8
7I also reported the problem to libtool here 9Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
8 10
11Upstream report:
9http://lists.gnu.org/archive/html/libtool/2010-10/msg00048.html 12http://lists.gnu.org/archive/html/libtool/2010-10/msg00048.html
10 13
11-Khem Raj <raj.khem@gmail.com> 14Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00014.html]
12 15
13Updated by: Robert Yang <liezhi.yang@windriver.com> 16Index: libtool-2.4.7/m4/libtool.m4
14 17===================================================================
15diff --git a/m4/libtool.m4 b/m4/libtool.m4 18--- libtool-2.4.7.orig/m4/libtool.m4
16--- a/m4/libtool.m4 19+++ libtool-2.4.7/m4/libtool.m4
17+++ b/m4/libtool.m4 20@@ -1244,28 +1244,28 @@ _LT_DECL([], [ECHO], [1], [An echo progr
18@@ -1215,28 +1215,28 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
19 # ----------------
20 AC_DEFUN([_LT_WITH_SYSROOT], 21 AC_DEFUN([_LT_WITH_SYSROOT],
21 [AC_MSG_CHECKING([for sysroot]) 22 [m4_require([_LT_DECL_SED])dnl
23 AC_MSG_CHECKING([for sysroot])
22-AC_ARG_WITH([sysroot], 24-AC_ARG_WITH([sysroot],
23-[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], 25-[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
24+AC_ARG_WITH([libtool-sysroot], 26+AC_ARG_WITH([libtool-sysroot],
@@ -39,8 +41,8 @@ diff --git a/m4/libtool.m4 b/m4/libtool.m4
39 fi 41 fi
40 ;; #( 42 ;; #(
41 /*) 43 /*)
42- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` 44- lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
43+ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` 45+ lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
44 ;; #( 46 ;; #(
45 no|'') 47 no|'')
46 ;; #( 48 ;; #(
@@ -50,10 +52,11 @@ diff --git a/m4/libtool.m4 b/m4/libtool.m4
50 AC_MSG_ERROR([The sysroot must be an absolute path.]) 52 AC_MSG_ERROR([The sysroot must be an absolute path.])
51 ;; 53 ;;
52 esac 54 esac
53diff --git a/tests/sysroot.at b/tests/sysroot.at 55Index: libtool-2.4.7/tests/sysroot.at
54--- a/tests/sysroot.at 56===================================================================
55+++ b/tests/sysroot.at 57--- libtool-2.4.7.orig/tests/sysroot.at
56@@ -64,7 +64,7 @@ while read file; do 58+++ libtool-2.4.7/tests/sysroot.at
59@@ -65,7 +65,7 @@ while read file; do
57 done]) 60 done])
58 61
59 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" 62 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined"
@@ -62,7 +65,7 @@ diff --git a/tests/sysroot.at b/tests/sysroot.at
62 65
63 #??? 66 #???
64 if test PATH = "$shlibpath_var"; then 67 if test PATH = "$shlibpath_var"; then
65@@ -114,7 +114,7 @@ AM_INIT_AUTOMAKE([foreign]) 68@@ -115,7 +115,7 @@ AM_INIT_AUTOMAKE([foreign])
66 AC_PROG_CC 69 AC_PROG_CC
67 AC_CONFIG_SRCDIR([lib2.c]) 70 AC_CONFIG_SRCDIR([lib2.c])
68 LT_INIT 71 LT_INIT
@@ -71,7 +74,7 @@ diff --git a/tests/sysroot.at b/tests/sysroot.at
71 AC_SUBST([sysroot]) 74 AC_SUBST([sysroot])
72 AC_OUTPUT(Makefile) 75 AC_OUTPUT(Makefile)
73 ]]) 76 ]])
74@@ -155,7 +155,7 @@ AM_INIT_AUTOMAKE([foreign]) 77@@ -156,7 +156,7 @@ AM_INIT_AUTOMAKE([foreign])
75 AC_PROG_CC 78 AC_PROG_CC
76 AC_CONFIG_SRCDIR([prog.c]) 79 AC_CONFIG_SRCDIR([prog.c])
77 LT_INIT 80 LT_INIT
@@ -81,9 +84,10 @@ diff --git a/tests/sysroot.at b/tests/sysroot.at
81 AC_OUTPUT(Makefile) 84 AC_OUTPUT(Makefile)
82 ]]) 85 ]])
83diff --git a/tests/testsuite b/tests/testsuite 86diff --git a/tests/testsuite b/tests/testsuite
87index 24265e4..d388e3e 100755
84--- a/tests/testsuite 88--- a/tests/testsuite
85+++ b/tests/testsuite 89+++ b/tests/testsuite
86@@ -48945,7 +48945,7 @@ $at_traceon; } 90@@ -48997,7 +48997,7 @@ $at_traceon; }
87 91
88 92
89 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" 93 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined"
@@ -92,7 +96,7 @@ diff --git a/tests/testsuite b/tests/testsuite
92 96
93 #??? 97 #???
94 if test PATH = "$shlibpath_var"; then 98 if test PATH = "$shlibpath_var"; then
95@@ -49154,7 +49154,7 @@ AM_INIT_AUTOMAKE([foreign]) 99@@ -49211,7 +49211,7 @@ AM_INIT_AUTOMAKE([foreign])
96 AC_PROG_CC 100 AC_PROG_CC
97 AC_CONFIG_SRCDIR([lib2.c]) 101 AC_CONFIG_SRCDIR([lib2.c])
98 LT_INIT 102 LT_INIT
@@ -101,7 +105,7 @@ diff --git a/tests/testsuite b/tests/testsuite
101 AC_SUBST([sysroot]) 105 AC_SUBST([sysroot])
102 AC_OUTPUT(Makefile) 106 AC_OUTPUT(Makefile)
103 _ATEOF 107 _ATEOF
104@@ -49342,7 +49342,7 @@ AM_INIT_AUTOMAKE([foreign]) 108@@ -49404,7 +49404,7 @@ AM_INIT_AUTOMAKE([foreign])
105 AC_PROG_CC 109 AC_PROG_CC
106 AC_CONFIG_SRCDIR([prog.c]) 110 AC_CONFIG_SRCDIR([prog.c])
107 LT_INIT 111 LT_INIT
@@ -110,7 +114,7 @@ diff --git a/tests/testsuite b/tests/testsuite
110 AC_SUBST([sysroot]) 114 AC_SUBST([sysroot])
111 AC_OUTPUT(Makefile) 115 AC_OUTPUT(Makefile)
112 _ATEOF 116 _ATEOF
113@@ -49694,7 +49694,7 @@ $at_traceon; } 117@@ -49761,7 +49761,7 @@ $at_traceon; }
114 118
115 119
116 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" 120 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined"
@@ -119,7 +123,7 @@ diff --git a/tests/testsuite b/tests/testsuite
119 123
120 #??? 124 #???
121 if test PATH = "$shlibpath_var"; then 125 if test PATH = "$shlibpath_var"; then
122@@ -49903,7 +49903,7 @@ AM_INIT_AUTOMAKE([foreign]) 126@@ -49975,7 +49975,7 @@ AM_INIT_AUTOMAKE([foreign])
123 AC_PROG_CC 127 AC_PROG_CC
124 AC_CONFIG_SRCDIR([lib2.c]) 128 AC_CONFIG_SRCDIR([lib2.c])
125 LT_INIT 129 LT_INIT
@@ -128,7 +132,7 @@ diff --git a/tests/testsuite b/tests/testsuite
128 AC_SUBST([sysroot]) 132 AC_SUBST([sysroot])
129 AC_OUTPUT(Makefile) 133 AC_OUTPUT(Makefile)
130 _ATEOF 134 _ATEOF
131@@ -50091,7 +50091,7 @@ AM_INIT_AUTOMAKE([foreign]) 135@@ -50168,7 +50168,7 @@ AM_INIT_AUTOMAKE([foreign])
132 AC_PROG_CC 136 AC_PROG_CC
133 AC_CONFIG_SRCDIR([prog.c]) 137 AC_CONFIG_SRCDIR([prog.c])
134 LT_INIT 138 LT_INIT
@@ -137,7 +141,7 @@ diff --git a/tests/testsuite b/tests/testsuite
137 AC_SUBST([sysroot]) 141 AC_SUBST([sysroot])
138 AC_OUTPUT(Makefile) 142 AC_OUTPUT(Makefile)
139 _ATEOF 143 _ATEOF
140@@ -50443,7 +50443,7 @@ $at_traceon; } 144@@ -50525,7 +50525,7 @@ $at_traceon; }
141 145
142 146
143 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" 147 LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined"
@@ -146,7 +150,7 @@ diff --git a/tests/testsuite b/tests/testsuite
146 150
147 #??? 151 #???
148 if test PATH = "$shlibpath_var"; then 152 if test PATH = "$shlibpath_var"; then
149@@ -50652,7 +50652,7 @@ AM_INIT_AUTOMAKE([foreign]) 153@@ -50739,7 +50739,7 @@ AM_INIT_AUTOMAKE([foreign])
150 AC_PROG_CC 154 AC_PROG_CC
151 AC_CONFIG_SRCDIR([lib2.c]) 155 AC_CONFIG_SRCDIR([lib2.c])
152 LT_INIT 156 LT_INIT
@@ -155,7 +159,7 @@ diff --git a/tests/testsuite b/tests/testsuite
155 AC_SUBST([sysroot]) 159 AC_SUBST([sysroot])
156 AC_OUTPUT(Makefile) 160 AC_OUTPUT(Makefile)
157 _ATEOF 161 _ATEOF
158@@ -50840,7 +50840,7 @@ AM_INIT_AUTOMAKE([foreign]) 162@@ -50932,7 +50932,7 @@ AM_INIT_AUTOMAKE([foreign])
159 AC_PROG_CC 163 AC_PROG_CC
160 AC_CONFIG_SRCDIR([prog.c]) 164 AC_CONFIG_SRCDIR([prog.c])
161 LT_INIT 165 LT_INIT
diff --git a/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch b/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch
new file mode 100644
index 0000000000..6d922382ef
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0003-libtool.m4-Cleanup-sysroot-trailing.patch
@@ -0,0 +1,37 @@
1libtool.m4: Cleanup sysroot trailing "/"
2
3If $CC has --sysroot=/, it is a valid configuration however libtool will
4then set lt_sysroot to "/".
5
6This means references like $lt_sysroot$libdir become //usr/lib instead
7of the more normally expected /usr/lib. This may or may not break something
8but certainly is confusing to the user and gives confusing output. Making
9"/" simply unset lt_sysroot is much cleaner.
10
11Whilst here, trim any trailing '/' from sysroot paths to drop the duplication
12and result in cleaner/consistent output.
13
14* m4/libtool.m4: Cleanup sysroot trailing '/' handling
15
16Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=365805327c7b9bbdb0e622b954b6b0d8eaeb3f99]
17Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
18
19---
20 m4/libtool.m4 | 4 +++-
21 1 file changed, 3 insertions(+), 1 deletion(-)
22
23diff --git a/m4/libtool.m4 b/m4/libtool.m4
24index fa1ae91..2f31d24 100644
25--- a/m4/libtool.m4
26+++ b/m4/libtool.m4
27@@ -1256,7 +1256,9 @@ lt_sysroot=
28 case $with_libtool_sysroot in #(
29 yes)
30 if test yes = "$GCC"; then
31- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
32+ # Trim trailing / since we'll always append absolute paths and we want
33+ # to avoid //, if only for less confusing output for the user.
34+ lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`
35 fi
36 ;; #(
37 /*)
diff --git a/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch b/meta/recipes-devtools/libtool/libtool/0003-ltmain.in-Add-missing-sysroot-to-library-path.patch
index 6af99f327c..35f48ef906 100644
--- a/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch
+++ b/meta/recipes-devtools/libtool/libtool/0003-ltmain.in-Add-missing-sysroot-to-library-path.patch
@@ -1,17 +1,20 @@
1Upstream-Status: Pending 1From: Khem Raj <raj.khem@gmail.com>
2Subject: [PATCH 03/12] ltmain.in: Add missing sysroot to library path
2 3
3When using sysroot we should append it to libdir, which is helpful in 4When using a sysroot we should append it to libdir, which is helpful in
4cross builds as the system is staged in the sysroot. For normal builds, 5cross builds as the system is staged in the sysroot. For normal builds,
5i.e. when lt_sysroot is not set, it will still behave the same and add 6i.e. when lt_sysroot is not set, it will still behave the same and add
6-L/usr/lib to the relink command. 7-L/usr/lib to the relink command.
7 8
8-Khem Raj <raj.khem@gmail.com> 9Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9Updated by: Robert Yang <liezhi.yang@windriver.com> 10
11Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00017.html]
10 12
11diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in 13diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
14index f884824..25a91de 100644
12--- a/build-aux/ltmain.in 15--- a/build-aux/ltmain.in
13+++ b/build-aux/ltmain.in 16+++ b/build-aux/ltmain.in
14@@ -6421,7 +6421,7 @@ func_mode_link () 17@@ -6503,7 +6503,7 @@ func_mode_link ()
15 fi 18 fi
16 else 19 else
17 # We cannot seem to hardcode it, guess we'll fake it. 20 # We cannot seem to hardcode it, guess we'll fake it.
@@ -20,3 +23,6 @@ diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
20 # Try looking first in the location we're being installed to. 23 # Try looking first in the location we're being installed to.
21 if test -n "$inst_prefix_dir"; then 24 if test -n "$inst_prefix_dir"; then
22 case $libdir in 25 case $libdir in
26--
272.25.1
28
diff --git a/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch b/meta/recipes-devtools/libtool/libtool/0004-ltmain.sh-Fix-sysroot-paths-being-encoded-into-RPATH.patch
index 5c9f8cc9c0..9203302182 100644
--- a/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
+++ b/meta/recipes-devtools/libtool/libtool/0004-ltmain.sh-Fix-sysroot-paths-being-encoded-into-RPATH.patch
@@ -1,32 +1,33 @@
1Upstream-Status: Inappropriate [embedded specific] 1From: Richard Purdie <richard.purdie@linuxfoundation.org>
2Subject: [PATCH 04/12] ltmain.sh: Fix sysroot paths being encoded into RPATHs
2 3
3Enalbing sysroot support exposed a bug where the final library 4There is a bug where RPATHs could end up containing sysroot values when
4had an RPATH encoded into it which still pointed to the sysroot. 5cross compiling which is obviously incorrect. Strip out sysroot components
5This works around the issue until it gets sorted out upstream. 6from libdir when building RPATH values to avoid this.
6 7
7Fix suggested by Richard Purdie <richard.purdie@intel.com> 8Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
8Signed-off-by: Scott Garman <scott.a.garman@intel.com> 9
9Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> 10Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00009.html]
10Updated by: Robert Yang <liezhi.yang@windriver.com>
11 11
12diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in 12diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
13index 25a91de..40cb94a 100644
13--- a/build-aux/ltmain.in 14--- a/build-aux/ltmain.in
14+++ b/build-aux/ltmain.in 15+++ b/build-aux/ltmain.in
15@@ -7569,9 +7569,11 @@ EOF 16@@ -7682,9 +7682,11 @@ EOF
16 test relink = "$opt_mode" || rpath=$compile_rpath$rpath 17 test relink = "$opt_mode" || rpath=$compile_rpath$rpath
17 for libdir in $rpath; do 18 for libdir in $rpath; do
18 if test -n "$hardcode_libdir_flag_spec"; then 19 if test -n "$hardcode_libdir_flag_spec"; then
19+ func_replace_sysroot "$libdir" 20+ func_replace_sysroot "$libdir"
20+ libdir=$func_replace_sysroot_result 21+ libdir=$func_replace_sysroot_result
21+ func_stripname '=' '' "$libdir" 22+ func_stripname '=' '' "$libdir"
22+ libdir=$func_stripname_result 23+ libdir=$func_stripname_result
23 if test -n "$hardcode_libdir_separator"; then 24 if test -n "$hardcode_libdir_separator"; then
24- func_replace_sysroot "$libdir" 25- func_replace_sysroot "$libdir"
25- libdir=$func_replace_sysroot_result 26- libdir=$func_replace_sysroot_result
26 if test -z "$hardcode_libdirs"; then 27 if test -z "$hardcode_libdirs"; then
27 hardcode_libdirs=$libdir 28 hardcode_libdirs=$libdir
28 else 29 else
29@@ -8301,6 +8303,10 @@ EOF 30@@ -8414,6 +8416,10 @@ EOF
30 hardcode_libdirs= 31 hardcode_libdirs=
31 for libdir in $compile_rpath $finalize_rpath; do 32 for libdir in $compile_rpath $finalize_rpath; do
32 if test -n "$hardcode_libdir_flag_spec"; then 33 if test -n "$hardcode_libdir_flag_spec"; then
@@ -37,7 +38,7 @@ diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
37 if test -n "$hardcode_libdir_separator"; then 38 if test -n "$hardcode_libdir_separator"; then
38 if test -z "$hardcode_libdirs"; then 39 if test -z "$hardcode_libdirs"; then
39 hardcode_libdirs=$libdir 40 hardcode_libdirs=$libdir
40@@ -8352,6 +8358,10 @@ EOF 41@@ -8465,6 +8471,10 @@ EOF
41 hardcode_libdirs= 42 hardcode_libdirs=
42 for libdir in $finalize_rpath; do 43 for libdir in $finalize_rpath; do
43 if test -n "$hardcode_libdir_flag_spec"; then 44 if test -n "$hardcode_libdir_flag_spec"; then
@@ -48,3 +49,6 @@ diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
48 if test -n "$hardcode_libdir_separator"; then 49 if test -n "$hardcode_libdir_separator"; then
49 if test -z "$hardcode_libdirs"; then 50 if test -z "$hardcode_libdirs"; then
50 hardcode_libdirs=$libdir 51 hardcode_libdirs=$libdir
52--
532.25.1
54
diff --git a/meta/recipes-devtools/libtool/libtool/fix-rpath.patch b/meta/recipes-devtools/libtool/libtool/0005-ltmain.in-Don-t-encode-RATHS-which-match-default-lin.patch
index a2ec9473e7..8b6352b01b 100644
--- a/meta/recipes-devtools/libtool/libtool/fix-rpath.patch
+++ b/meta/recipes-devtools/libtool/libtool/0005-ltmain.in-Don-t-encode-RATHS-which-match-default-lin.patch
@@ -1,18 +1,22 @@
1We don't want to add RPATHS which match default linker 1From: Richard Purdie <richard.purdie@linuxfoundation.org>
2search paths, they're a waste of space. This patch 2Subject: [PATCH 05/12] ltmain.in: Don't encode RATHS which match default linker paths
3filters libtools list and removes the ones we don't need.
4 3
5RP 23/9/2011 4We don't want to add RPATHS which match default linker search paths, they're
5a waste of space. This patch filters libtools list of paths to encoode and
6removes the ones we don't need.
6 7
7Upstream-Status: Pending 8Libtool may be passed link paths of the form "/usr/lib/../lib" so normalize
9the paths before comparision.
8 10
9Updated by: Robert Yang <liezhi.yang@windriver.com> 11Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
10 12
11Index: libtool-2.4.2/build-aux/ltmain.in 13Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00013.html]
12=================================================================== 14
13--- libtool-2.4.2.orig/build-aux/ltmain.in 15diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
14+++ libtool-2.4.2/build-aux/ltmain.in 16index 40cb94a..2fa055e 100644
15@@ -7286,8 +7286,14 @@ EOF 17--- a/build-aux/ltmain.in
18+++ b/build-aux/ltmain.in
19@@ -7700,8 +7700,16 @@ EOF
16 esac 20 esac
17 fi 21 fi
18 else 22 else
@@ -20,8 +24,10 @@ Index: libtool-2.4.2/build-aux/ltmain.in
20- func_append dep_rpath " $flag" 24- func_append dep_rpath " $flag"
21+ # We only want to hardcode in an rpath if it isn't in the 25+ # We only want to hardcode in an rpath if it isn't in the
22+ # default dlsearch path. 26+ # default dlsearch path.
27+ func_normal_abspath "$libdir"
28+ libdir_norm=$func_normal_abspath_result
23+ case " $sys_lib_dlsearch_path " in 29+ case " $sys_lib_dlsearch_path " in
24+ *" $libdir "*) ;; 30+ *" $libdir_norm "*) ;;
25+ *) eval flag=\"$hardcode_libdir_flag_spec\" 31+ *) eval flag=\"$hardcode_libdir_flag_spec\"
26+ func_append dep_rpath " $flag" 32+ func_append dep_rpath " $flag"
27+ ;; 33+ ;;
@@ -29,7 +35,7 @@ Index: libtool-2.4.2/build-aux/ltmain.in
29 fi 35 fi
30 elif test -n "$runpath_var"; then 36 elif test -n "$runpath_var"; then
31 case "$perm_rpath " in 37 case "$perm_rpath " in
32@@ -8019,8 +8025,14 @@ EOF 38@@ -8434,8 +8442,16 @@ EOF
33 esac 39 esac
34 fi 40 fi
35 else 41 else
@@ -37,8 +43,10 @@ Index: libtool-2.4.2/build-aux/ltmain.in
37- func_append rpath " $flag" 43- func_append rpath " $flag"
38+ # We only want to hardcode in an rpath if it isn't in the 44+ # We only want to hardcode in an rpath if it isn't in the
39+ # default dlsearch path. 45+ # default dlsearch path.
46+ func_normal_abspath "$libdir"
47+ libdir_norm=$func_normal_abspath_result
40+ case " $sys_lib_dlsearch_path " in 48+ case " $sys_lib_dlsearch_path " in
41+ *" $libdir "*) ;; 49+ *" $libdir_norm "*) ;;
42+ *) eval flag=\"$hardcode_libdir_flag_spec\" 50+ *) eval flag=\"$hardcode_libdir_flag_spec\"
43+ rpath+=" $flag" 51+ rpath+=" $flag"
44+ ;; 52+ ;;
@@ -46,7 +54,7 @@ Index: libtool-2.4.2/build-aux/ltmain.in
46 fi 54 fi
47 elif test -n "$runpath_var"; then 55 elif test -n "$runpath_var"; then
48 case "$perm_rpath " in 56 case "$perm_rpath " in
49@@ -8070,8 +8082,14 @@ EOF 57@@ -8489,8 +8505,14 @@ EOF
50 esac 58 esac
51 fi 59 fi
52 else 60 else
@@ -63,3 +71,6 @@ Index: libtool-2.4.2/build-aux/ltmain.in
63 fi 71 fi
64 elif test -n "$runpath_var"; then 72 elif test -n "$runpath_var"; then
65 case "$finalize_perm_rpath " in 73 case "$finalize_perm_rpath " in
74--
752.25.1
76
diff --git a/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch b/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch
new file mode 100644
index 0000000000..c104e904cc
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0006-libtool.m4-Handle-as-a-sysroot-correctly.patch
@@ -0,0 +1,38 @@
1libtool.m4: Change libtool to handle sysroots by default
2
3Rather than using no sysroot by default, always query gcc to obtain the sysroot.
4
5Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6
7Upstream-Status: Inappropriate [Upstream are unlikely to accept this change of default]
8
9---
10 m4/libtool.m4 | 6 +++---
11 1 file changed, 3 insertions(+), 3 deletions(-)
12
13diff --git a/m4/libtool.m4 b/m4/libtool.m4
14index 2f31d24..bd90775 100644
15--- a/m4/libtool.m4
16+++ b/m4/libtool.m4
17@@ -1254,18 +1254,18 @@ dnl lt_sysroot will always be passed unquoted. We quote it here
18 dnl in case the user passed a directory name.
19 lt_sysroot=
20 case $with_libtool_sysroot in #(
21- yes)
22+ no)
23 if test yes = "$GCC"; then
24 # Trim trailing / since we'll always append absolute paths and we want
25 # to avoid //, if only for less confusing output for the user.
26 lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`
27 fi
28 ;; #(
29+ yes|''|/)
30+ ;; #(
31 /*)
32 lt_sysroot=`echo "$with_libtool_sysroot" | $SED -e "$sed_quote_subst"`
33 ;; #(
34- no|'')
35- ;; #(
36 *)
37 AC_MSG_RESULT([$with_libtool_sysroot])
38 AC_MSG_ERROR([The sysroot must be an absolute path.])
diff --git a/meta/recipes-devtools/libtool/libtool/0007-libtool-Fix-support-for-NIOS2-processor.patch b/meta/recipes-devtools/libtool/libtool/0007-libtool-Fix-support-for-NIOS2-processor.patch
new file mode 100644
index 0000000000..676ce7fd1b
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0007-libtool-Fix-support-for-NIOS2-processor.patch
@@ -0,0 +1,60 @@
1libtool: Fix support for NIOS2 processor
2
3The name of the system contains the string "nios2". This string
4is caught by the some of the greedy checks for OS/2 in libtool,
5in particular the *os2* branches of switch statements match for
6the nios2 string, which results in incorrect behavior of libtool.
7
8Switch to use $host_os instead of $host and tweak the patterns to
9match to avoid this problem for nios2.
10
11* build-aux/ltmain.in: Fix NIOS2 support
12---
13 build-aux/ltmain.in | 12 ++++++------
14 1 file changed, 6 insertions(+), 6 deletions(-)
15
16Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
17
18Submitted: https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00021.html
19Reworked and submitted: https://lists.gnu.org/archive/html/libtool-patches/2024-01/msg00068.html
20Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=49e6cb0d4dfdca2a59b909dc4532fe22dbc57ad5]
21
22Index: libtool-2.4.7/build-aux/ltmain.in
23===================================================================
24--- libtool-2.4.7.orig/build-aux/ltmain.in
25+++ libtool-2.4.7/build-aux/ltmain.in
26@@ -518,10 +518,10 @@ libtool_validate_options ()
27 # preserve --debug
28 test : = "$debug_cmd" || func_append preserve_args " --debug"
29
30- case $host in
31+ case $host_os in
32 # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
33 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
34- *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
35+ cygwin* | mingw* | pw32* | cegcc* | solaris2* | os2*)
36 # don't eliminate duplications in $postdeps and $predeps
37 opt_duplicate_compiler_generated_deps=:
38 ;;
39@@ -6273,8 +6273,8 @@ func_mode_link ()
40 fi
41 if test -n "$library_names" &&
42 { test no = "$use_static_libs" || test -z "$old_library"; }; then
43- case $host in
44- *cygwin* | *mingw* | *cegcc* | *os2*)
45+ case $host_os in
46+ cygwin* | mingw* | cegcc* | os2*)
47 # No point in relinking DLLs because paths are not encoded
48 func_append notinst_deplibs " $lib"
49 need_relink=no
50@@ -6343,8 +6343,8 @@ func_mode_link ()
51 soname=$dlname
52 elif test -n "$soname_spec"; then
53 # bleh windows
54- case $host in
55- *cygwin* | mingw* | *cegcc* | *os2*)
56+ case $host_os in
57+ cygwin* | mingw* | cegcc* | os2*)
58 func_arith $current - $age
59 major=$func_arith_result
60 versuffix=-$major
diff --git a/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch b/meta/recipes-devtools/libtool/libtool/0008-libtool-Check-for-static-libs-for-internal-compiler-.patch
index 8c7c39feb6..c151c3b481 100644
--- a/meta/recipes-devtools/libtool/libtool/0001-libtool-Check-for-static-libs-for-internal-compiler-.patch
+++ b/meta/recipes-devtools/libtool/libtool/0008-libtool-Check-for-static-libs-for-internal-compiler-.patch
@@ -1,8 +1,5 @@
1From 40a2da75e6d95cc7c498ebda95ab19ae0db2ebfb Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 1From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 26 Jan 2019 12:54:26 -0800 2Subject: [PATCH 08/12] libtool: Check for static libs for internal compiler libraries
4Subject: [PATCH] libtool: Check for static libs for internal compiler
5 libraries
6 3
7Libtool checks only for libraries linked as -l* when trying to 4Libtool checks only for libraries linked as -l* when trying to
8find internal compiler libraries. Clang, however uses the absolute 5find internal compiler libraries. Clang, however uses the absolute
@@ -10,20 +7,19 @@ path to link its internal libraries e.g. compiler_rt. This patch
10handles clang's statically linked libraries when finding internal 7handles clang's statically linked libraries when finding internal
11compiler libraries. 8compiler libraries.
12 9
13https://crbug.com/749263 10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
14 12
15Upstream-Status: Submitted [https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866] 13https://crbug.com/749263
14https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27866
16 15
17Signed-off-by: Khem Raj <raj.khem@gmail.com> 16Upstream-Status: Submitted [https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00016.html]
18---
19 m4/libtool.m4 | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21 17
22diff --git a/m4/libtool.m4 b/m4/libtool.m4 18diff --git a/m4/libtool.m4 b/m4/libtool.m4
23index d0389a0..9619c57 100644 19index bd90775..3794130 100644
24--- a/m4/libtool.m4 20--- a/m4/libtool.m4
25+++ b/m4/libtool.m4 21+++ b/m4/libtool.m4
26@@ -7536,7 +7536,7 @@ if AC_TRY_EVAL(ac_compile); then 22@@ -7556,7 +7556,7 @@ if AC_TRY_EVAL(ac_compile); then
27 for p in `eval "$output_verbose_link_cmd"`; do 23 for p in `eval "$output_verbose_link_cmd"`; do
28 case $prev$p in 24 case $prev$p in
29 25
@@ -33,5 +29,5 @@ index d0389a0..9619c57 100644
33 # Remove the space. 29 # Remove the space.
34 if test x-L = "$p" || 30 if test x-L = "$p" ||
35-- 31--
362.20.1 322.25.1
37 33
diff --git a/meta/recipes-devtools/libtool/libtool/0009-Makefile.am-make-sure-autoheader-run-before-autoconf.patch b/meta/recipes-devtools/libtool/libtool/0009-Makefile.am-make-sure-autoheader-run-before-autoconf.patch
new file mode 100644
index 0000000000..f51deecbef
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0009-Makefile.am-make-sure-autoheader-run-before-autoconf.patch
@@ -0,0 +1,31 @@
1From: Mingli Yu <mingli.yu@windriver.com>
2Subject: [PATCH 09/12] Makefile.am: make sure autoheader run before autoconf
3
4autoheader will update ../libtool-2.4.6/libltdl/config-h.in which
5autoconf needs, so there comes a race sometimes as below:
6 | configure.ac:45: error: required file 'config-h.in' not found
7 | touch '../libtool-2.4.6/libltdl/config-h.in'
8
9So make sure autoheader run before autoconf to avoid this race.
10
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
13
14Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=e7dc729dd27b367905cd0ce52b5466d91537857a]
15
16diff --git a/Makefile.am b/Makefile.am
17index c29860e..9c34bfd 100644
18--- a/Makefile.am
19+++ b/Makefile.am
20@@ -370,7 +370,7 @@ lt_configure_deps = $(lt_aclocal_m4) $(lt_aclocal_m4_deps)
21 $(lt_aclocal_m4): $(lt_aclocal_m4_deps)
22 $(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(ACLOCAL) -I ../m4
23
24-$(lt_configure): $(lt_configure_deps)
25+$(lt_configure): $(lt_configure_deps) $(lt_config_h_in)
26 $(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOCONF)
27
28 $(lt_config_h_in): $(lt_configure_deps)
29--
302.25.1
31
diff --git a/meta/recipes-devtools/libtool/libtool/0010-Makefile.am-make-sure-autoheader-run-before-automake.patch b/meta/recipes-devtools/libtool/libtool/0010-Makefile.am-make-sure-autoheader-run-before-automake.patch
new file mode 100644
index 0000000000..e451de59e3
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0010-Makefile.am-make-sure-autoheader-run-before-automake.patch
@@ -0,0 +1,33 @@
1From: Mingli Yu <mingli.yu@windriver.com>
2Subject: [PATCH 10/12] Makefile.am: make sure autoheader run before automake
3
4When use automake to generate Makefile.in from Makefile.am, there
5comes below race:
6 | configure.ac:45: error: required file 'config-h.in' not found
7
8It is because the file config-h.in in updating process by autoheader,
9so make automake run after autoheader to avoid the above race.
10
11Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
12Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
13
14Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=e01c0bfe5e041418d84460901a1a5b11b89d596f]
15
16Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
17
18diff --git a/Makefile.am b/Makefile.am
19index 9c34bfd..231ef3f 100644
20--- a/Makefile.am
21+++ b/Makefile.am
22@@ -333,7 +333,7 @@ EXTRA_DIST += $(lt_aclocal_m4) \
23 $(lt_obsolete_m4) \
24 $(stamp_mk)
25
26-$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4)
27+$(lt_Makefile_in): $(lt_Makefile_am) $(lt_aclocal_m4) $(lt_config_h_in)
28 $(AM_V_GEN)cd '$(srcdir)/$(ltdl_dir)' && $(AUTOMAKE) Makefile
29
30 # Don't let unused scripts leak into the libltdl Makefile
31--
322.25.1
33
diff --git a/meta/recipes-devtools/libtool/libtool/0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch b/meta/recipes-devtools/libtool/libtool/0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch
new file mode 100644
index 0000000000..4c6b6f05b4
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0011-ltmain.in-Handle-prefix-map-compiler-options-correct.patch
@@ -0,0 +1,37 @@
1ltmain.in: Handle prefix-map compiler options correctly
2
3If lto is enabled, we need the prefix-map variables to be passed to the linker
4to correctly link the objects using correctly mapped paths.
5
6Add these to the list of options libtool passes through.
7
8* build-aux/ltmain.in: Handle prefix-map compiler options
9
10Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
11
12https://lists.gnu.org/archive/html/libtool-patches/2021-10/msg00019.html
13https://lists.gnu.org/archive/html/libtool-patches/2024-01/msg00066.html
14Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=cdf4bf702f11d17e06569936e8a433a77f791228]
15
16---
17 build-aux/ltmain.in | 3 ++-
18 1 file changed, 2 insertions(+), 1 deletion(-)
19
20diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
21index 0a50f5b..037f009 100644
22--- a/build-aux/ltmain.in
23+++ b/build-aux/ltmain.in
24@@ -5413,11 +5413,12 @@ func_mode_link ()
25 # -stdlib=* select c++ std lib with clang
26 # -fsanitize=* Clang/GCC memory and address sanitizer
27 # -fuse-ld=* Linker select flags for GCC
28+ # -f{file|debug|macro|profile}-prefix-map* needed for lto linking
29 # -Wa,* Pass flags directly to the assembler
30 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
31 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
32 -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
33- -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*)
34+ -specs=*|-fsanitize=*|-fuse-ld=*|-ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*|-Wa,*)
35 func_quote_arg pretty "$arg"
36 arg=$func_quote_arg_result
37 func_append compile_command " $arg"
diff --git a/meta/recipes-devtools/libtool/libtool/0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch b/meta/recipes-devtools/libtool/libtool/0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch
new file mode 100644
index 0000000000..8469b8727e
--- /dev/null
+++ b/meta/recipes-devtools/libtool/libtool/0012-libtool.m4-For-reproducibility-stop-encoding-hostnam.patch
@@ -0,0 +1,29 @@
1From: Richard Purdie <richard.purdie@linuxfoundation.org>
2Subject: [PATCH 12/12] libtool.m4: For reproducibility stop encoding hostname in libtool script
3
4For reproducibilty, stop encoding the hostname into the libtool script, this isn't
5really adding much to debugging and most distros are carrying such a patch now as
6reproducibility is important.
7
8Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
9
10https://sources.debian.org/data/main/libt/libtool/2.4.6-10/debian/patches/
11 no_hostname.patch
12
13Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/libtool.git/commit/?id=bd826173c4c9c3fa8d77d92785754897cb4bfd89]
14
15diff --git a/m4/libtool.m4 b/m4/libtool.m4
16index 3794130..84a550c 100644
17--- a/m4/libtool.m4
18+++ b/m4/libtool.m4
19@@ -730,7 +730,6 @@ _LT_CONFIG_SAVE_COMMANDS([
20 cat <<_LT_EOF >> "$cfgfile"
21 #! $SHELL
22 # Generated automatically by $as_me ($PACKAGE) $VERSION
23-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
24 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
25
26 # Provide generalized library-building support services.
27--
282.25.1
29
diff --git a/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch b/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch
deleted file mode 100755
index 5add0cca3b..0000000000
--- a/meta/recipes-devtools/libtool/libtool/debian-no_hostname.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1libtool: remove host specific info from header file
2
3https://sources.debian.org/data/main/libt/libtool/2.4.6-10/debian/patches/
4 no_hostname.patch
5
6Upstream-Status: Inappropriate [not author]
7Signed-off-by: Joe Slater <joe.slater@windriver.com>
8
9---
10Index: libtool-2.4.6/m4/libtool.m4
11===================================================================
12--- libtool-2.4.6.orig/m4/libtool.m4
13+++ libtool-2.4.6/m4/libtool.m4
14@@ -728,7 +728,6 @@ _LT_CONFIG_SAVE_COMMANDS([
15 cat <<_LT_EOF >> "$cfgfile"
16 #! $SHELL
17 # Generated automatically by $as_me ($PACKAGE) $VERSION
18-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
19 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
20
21 # Provide generalized library-building support services.
diff --git a/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch b/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch
index fd4084c859..0013d16544 100644
--- a/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch
+++ b/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch
@@ -4,9 +4,10 @@ Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4Updated by: Robert Yang <liezhi.yang@windriver.com> 4Updated by: Robert Yang <liezhi.yang@windriver.com>
5 5
6diff --git a/Makefile.am b/Makefile.am 6diff --git a/Makefile.am b/Makefile.am
7index 7bd7f72..c29860e 100644
7--- a/Makefile.am 8--- a/Makefile.am
8+++ b/Makefile.am 9+++ b/Makefile.am
9@@ -404,21 +404,6 @@ $(notes_txt): $(notes_texi) 10@@ -411,21 +411,6 @@ $(notes_txt): $(notes_texi)
10 $(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \ 11 $(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \
11 $(MAKEINFOFLAGS) -o '$@' '$(notes_texi)' 12 $(MAKEINFOFLAGS) -o '$@' '$(notes_texi)'
12 13
diff --git a/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch b/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch
deleted file mode 100644
index 1bd95980c0..0000000000
--- a/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1Upstream-Status: Pending
2
3This patch updates libtool.m4 (and its output) to resolve a problem
4with variable 'lt_sysroot' not being properly updated if the option
5'--with[-libtool]-sysroot' is not provided when running the 'configure'
6script for a package.
7
8I have also reported the problem to libtool here
9
10http://lists.gnu.org/archive/html/bug-libtool/2013-09/msg00005.html
11
12Signed-off-by: Hans Beckerus <hans.beckerus at gmail.com>
13Updated by: Robert Yang <liezhi.yang@windriver.com>
14---
15diff --git a/m4/libtool.m4 b/m4/libtool.m4
16--- a/m4/libtool.m4
17+++ b/m4/libtool.m4
18@@ -1225,16 +1225,21 @@ dnl lt_sysroot will always be passed unquoted. We quote it here
19 dnl in case the user passed a directory name.
20 lt_sysroot=
21 case $with_libtool_sysroot in #(
22- yes)
23+ no)
24 if test yes = "$GCC"; then
25 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
26+ # Treat "/" the same a an unset sysroot. It seems to be more
27+ # compatible across host platforms that way!?
28+ if test "$lt_sysroot" = /; then
29+ lt_sysroot=
30+ fi
31 fi
32 ;; #(
33+ yes|''|/)
34+ ;; #(
35 /*)
36 lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
37 ;; #(
38- no|'')
39- ;; #(
40 *)
41 AC_MSG_RESULT([$with_libtool_sysroot])
42 AC_MSG_ERROR([The sysroot must be an absolute path.])
diff --git a/meta/recipes-devtools/libtool/libtool/fixinstall.patch b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
index 8f343bf436..48330d82fb 100644
--- a/meta/recipes-devtools/libtool/libtool/fixinstall.patch
+++ b/meta/recipes-devtools/libtool/libtool/fixinstall.patch
@@ -27,9 +27,9 @@ diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
27 27
28- if test -n "$relink_command"; then 28- if test -n "$relink_command"; then
29+ if test "$fast_install" = no && test -n "$relink_command"; then 29+ if test "$fast_install" = no && test -n "$relink_command"; then
30 # Strip any trailing slash from the destination. 30 # Strip any trailing slash from the destination.
31 func_stripname '' '/' "$libdir" 31 func_stripname '' '/' "$libdir"
32 destlibdir=$func_stripname_result 32 destlibdir=$func_stripname_result
33@@ -2394,7 +2394,7 @@ func_mode_install () 33@@ -2394,7 +2394,7 @@ func_mode_install ()
34 shift 34 shift
35 35
diff --git a/meta/recipes-devtools/libtool/libtool/norm-rpath.patch b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
deleted file mode 100644
index 1e4c65e024..0000000000
--- a/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
+++ /dev/null
@@ -1,38 +0,0 @@
1libtool: normalize link paths before considering for RPATH
2
3Libtool may be passed link paths of the form "/usr/lib/../lib", which
4fool its detection code into thinking it should be included as an
5RPATH in the generated binary. Normalize before comparision.
6
7Signed-off-by: Andy Ross <andy.ross@windriver.com>
8Upstream-Status: Pending
9
10Updated by: Robert Yang <liezhi.yang@windriver.com>
11
12diff -ur a/build-aux/ltmain.in b/build-aux/ltmain.in
13--- a/build-aux/ltmain.in 2012-08-16 13:58:55.058900363 -0700
14+++ b/build-aux/ltmain.in 2012-08-22 11:01:34.191345989 -0700
15@@ -7288,8 +7288,10 @@
16 else
17 # We only want to hardcode in an rpath if it isn't in the
18 # default dlsearch path.
19+ func_normal_abspath "$libdir"
20+ libdir_norm=$func_normal_abspath_result
21 case " $sys_lib_dlsearch_path " in
22- *" $libdir "*) ;;
23+ *" $libdir_norm "*) ;;
24 *) eval flag=\"$hardcode_libdir_flag_spec\"
25 func_append dep_rpath " $flag"
26 ;;
27@@ -8027,8 +8029,10 @@
28 else
29 # We only want to hardcode in an rpath if it isn't in the
30 # default dlsearch path.
31+ func_normal_abspath "$libdir"
32+ libdir_norm=$func_normal_abspath_result
33 case " $sys_lib_dlsearch_path " in
34- *" $libdir "*) ;;
35+ *" $libdir_norm "*) ;;
36 *) eval flag=\"$hardcode_libdir_flag_spec\"
37 rpath+=" $flag"
38 ;;
diff --git a/meta/recipes-devtools/libtool/libtool/prefix.patch b/meta/recipes-devtools/libtool/libtool/prefix.patch
deleted file mode 100644
index a73df2e4a7..0000000000
--- a/meta/recipes-devtools/libtool/libtool/prefix.patch
+++ /dev/null
@@ -1,98 +0,0 @@
1Upstream-Status: Inappropriate [embedded specific]
2
3Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure
4it can't be confused with the host libtool.
5
6Originally by: RP
7
8Updated: Date: 2010/06/28
9Nitin A Kamble <nitin.a.kamble@intel.com>
10
11It also adjusts libtool so that the header at the script is used for
12script execution and not thevalue of $SHELL. This is because many
13Makefiles change $SHELL so dash can get used to execute what is
14otherwise configured as a bash shell script. Since we don't need to
15execute scipts this way on any system I'm aware of us building upon,
16the simplest fix is just to remove $SHELL.
17
18Updated: Date: 2011/11/09
19RP
20
21Updated by: Robert Yang <liezhi.yang@windriver.com>
22
23diff --git a/Makefile.am b/Makefile.am
24--- a/Makefile.am
25+++ b/Makefile.am
26@@ -31,7 +31,7 @@ SUBDIRS = .
27 DIST_SUBDIRS = $(SUBDIRS)
28 EXTRA_DIST =
29
30-BUILT_SOURCES = libtool libtoolize
31+BUILT_SOURCES = $(host_alias)-libtool libtoolize
32
33 CLEANFILES =
34 MOSTLYCLEANFILES =
35@@ -67,7 +67,7 @@ build_scripts = $(srcdir)/$(aux_dir)/announce-gen \
36
37 EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \
38 GNUmakefile
39-CLEANFILES += libtool libtoolize
40+CLEANFILES += $(host_alias)-libtool libtoolize
41
42 ## If a file is named several times below, and especially if it
43 ## is a distributed file created during Libtool bootstrap, we
44@@ -276,7 +276,7 @@ configure_edit = $(bootstrap_edit) \
45 -e 's|@srcdir\@|$(srcdir)|g'
46
47 # The libtool distributor and the standalone libtool script.
48-bin_SCRIPTS = libtool
49+bin_SCRIPTS = $(host_alias)-libtool
50
51 libtoolize: $(libtoolize_in) $(config_status)
52 $(AM_V_at)rm -f '$@'
53@@ -287,7 +287,7 @@ libtoolize: $(libtoolize_in) $(config_status)
54 # We used to do this with a 'stamp-vcl' file, but non-gmake builds
55 # would rerun configure on every invocation, so now we manually
56 # check the version numbers from the build rule when necessary.
57-libtool: $(ltmain_sh) $(config_status) $(dotversion)
58+$(host_alias)-libtool: $(ltmain_sh) $(config_status) $(dotversion)
59 @$(rebuild); \
60 if test -f '$@'; then \
61 eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \
62@@ -731,12 +731,12 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
63
64 BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \
65 LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \
66- LIBTOOL="$(abs_top_builddir)/libtool" \
67+ LIBTOOL="$(abs_top_builddir)/$(host_alias)-libtool" \
68 tst_aclocaldir="$(abs_top_srcdir)/m4"
69
70 INSTALLCHECK_ENVIRONMENT = \
71 LIBTOOLIZE="$(bindir)/`echo libtoolize |$(SED) '$(program_transform_name)'`" \
72- LIBTOOL="$(bindir)/`echo libtool |$(SED) '$(program_transform_name)'`" \
73+ LIBTOOL="$(bindir)/`echo $(host_alias)-libtool |$(SED) '$(program_transform_name)'`" \
74 LTDLINCL="-I$(includedir)" \
75 LIBLTDL="$(libdir)/libltdl.la" \
76 tst_aclocaldir="$(aclocaldir)"
77diff --git a/m4/libtool.m4 b/m4/libtool.m4
78--- a/m4/libtool.m4
79+++ b/m4/libtool.m4
80@@ -86,7 +86,8 @@ _LT_SET_OPTIONS([$0], [$1])
81 LIBTOOL_DEPS=$ltmain
82
83 # Always use our own libtool.
84-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
85+LIBTOOL='$(top_builddir)'
86+LIBTOOL="$LIBTOOL/${host_alias}-libtool"
87 AC_SUBST(LIBTOOL)dnl
88
89 _LT_SETUP
90@@ -199,7 +200,7 @@ aix3*)
91 esac
92
93 # Global variables:
94-ofile=libtool
95+ofile=${host_alias}-libtool
96 can_build_shared=yes
97
98 # All known linkers require a '.a' archive for static linking (except MSVC,
diff --git a/meta/recipes-devtools/libtool/libtool/trailingslash.patch b/meta/recipes-devtools/libtool/libtool/trailingslash.patch
deleted file mode 100644
index e8824d7db9..0000000000
--- a/meta/recipes-devtools/libtool/libtool/trailingslash.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1Upstream-Status: Pending
2
3A 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)
4
5This is because libdir has a trailing slash which breaks the comparision.
6
7RP 2/1/10
8
9Merged a patch received from Gary Thomas <gary@mlbassoc.com>
10
11Date: 2010/07/12
12Nitin A Kamble <nitin.a.kamble@intel.com>
13
14Updated by: Robert Yang <liezhi.yang@windriver.com>
15
16diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
17--- a/build-aux/ltmain.in
18+++ b/build-aux/ltmain.in
19@@ -2356,8 +2356,15 @@ func_mode_install ()
20 func_append dir "$objdir"
21
22 if test -n "$relink_command"; then
23+ # Strip any trailing slash from the destination.
24+ func_stripname '' '/' "$libdir"
25+ destlibdir=$func_stripname_result
26+
27+ func_stripname '' '/' "$destdir"
28+ s_destdir=$func_stripname_result
29+
30 # Determine the prefix the user has applied to our future dir.
31- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
32+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
33
34 # Don't allow the user to place us outside of our expected
35 # location b/c this prevents finding dependent libraries that
diff --git a/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch b/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch
deleted file mode 100644
index b633bc41bb..0000000000
--- a/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch
+++ /dev/null
@@ -1,179 +0,0 @@
1Cut and paste the pieces of build-aux/options-parser inline into the main
2ltmain.sh code. This removes a performance degradation caused by the
3repeated calls to func_quote_for_eval, the mechanism funclib uses
4to construct the functions used for option parsing.
5
6Upstream-Status: Submitted [Being discussed on mailing list Feb 2015]
7
8diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
9index d5cf07a..0f54303 100644
10--- a/build-aux/ltmain.in
11+++ b/build-aux/ltmain.in
12@@ -342,11 +342,15 @@ _LT_EOF
13 # libtool_options_prep [ARG]...
14 # -----------------------------
15 # Preparation for options parsed by libtool.
16-libtool_options_prep ()
17-{
18+#libtool_options_prep ()
19+#{
20 $debug_mode
21
22 # Option defaults:
23+ opt_verbose=false
24+ opt_warning_types=
25+
26+ # Option defaults:
27 opt_config=false
28 opt_dlopen=
29 opt_dry_run=false
30@@ -382,19 +386,14 @@ libtool_options_prep ()
31 shift; set dummy --mode uninstall ${1+"$@"}; shift
32 ;;
33 esac
34-
35- # Pass back the list of options.
36- func_quote_for_eval ${1+"$@"}
37- libtool_options_prep_result=$func_quote_for_eval_result
38-}
39-func_add_hook func_options_prep libtool_options_prep
40+#}
41
42
43 # libtool_parse_options [ARG]...
44 # ---------------------------------
45 # Provide handling for libtool specific options.
46-libtool_parse_options ()
47-{
48+#libtool_parse_options ()
49+#{
50 $debug_cmd
51
52 # Perform our own loop to consume as many options as possible in
53@@ -474,29 +473,90 @@ libtool_parse_options ()
54 func_append preserve_args " $_G_opt"
55 ;;
56
57- # An option not handled by this hook function:
58- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
59- esac
60- done
61+ --debug|-x) debug_cmd='set -x'
62+ func_echo "enabling shell trace mode"
63+ $debug_cmd
64+ ;;
65
66+ --no-warnings|--no-warning|--no-warn)
67+ set dummy --warnings none ${1+"$@"}
68+ shift
69+ ;;
70
71- # save modified positional parameters for caller
72- func_quote_for_eval ${1+"$@"}
73- libtool_parse_options_result=$func_quote_for_eval_result
74-}
75-func_add_hook func_parse_options libtool_parse_options
76+ --warnings|--warning|-W)
77+ test $# = 0 && func_missing_arg $_G_opt && break
78+ case " $warning_categories $1" in
79+ *" $1 "*)
80+ # trailing space prevents matching last $1 above
81+ func_append_uniq opt_warning_types " $1"
82+ ;;
83+ *all)
84+ opt_warning_types=$warning_categories
85+ ;;
86+ *none)
87+ opt_warning_types=none
88+ warning_func=:
89+ ;;
90+ *error)
91+ opt_warning_types=$warning_categories
92+ warning_func=func_fatal_error
93+ ;;
94+ *)
95+ func_fatal_error \
96+ "unsupported warning category: '$1'"
97+ ;;
98+ esac
99+ shift
100+ ;;
101+
102+ --verbose|-v) opt_verbose=: ;;
103+ --version) func_version ;;
104+ -\?|-h) func_usage ;;
105+ --help) func_help ;;
106+
107+ # Separate optargs to long options (plugins may need this):
108+ --*=*) func_split_equals "$_G_opt"
109+ set dummy "$func_split_equals_lhs" \
110+ "$func_split_equals_rhs" ${1+"$@"}
111+ shift
112+ ;;
113+
114+ # Separate optargs to short options:
115+ -W*)
116+ func_split_short_opt "$_G_opt"
117+ set dummy "$func_split_short_opt_name" \
118+ "$func_split_short_opt_arg" ${1+"$@"}
119+ shift
120+ ;;
121+
122+ # Separate non-argument short options:
123+ -\?*|-h*|-v*|-x*)
124+ func_split_short_opt "$_G_opt"
125+ set dummy "$func_split_short_opt_name" \
126+ "-$func_split_short_opt_arg" ${1+"$@"}
127+ shift
128+ ;;
129+
130+ --) break ;;
131+ -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
132+ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
133+ esac
134+ done
135+#}
136
137+# Display all warnings if -W was not given.
138+test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
139
140
141 # libtool_validate_options [ARG]...
142 # ---------------------------------
143 # Perform any sanity checks on option settings and/or unconsumed
144 # arguments.
145-libtool_validate_options ()
146-{
147+#libtool_validate_options ()
148+#{
149 # save first non-option argument
150 if test 0 -lt $#; then
151- nonopt=$1
152+ nonopt=$_G_opt
153 shift
154 fi
155
156@@ -537,20 +597,10 @@ libtool_validate_options ()
157 generic_help=$help
158 help="Try '$progname --help --mode=$opt_mode' for more information."
159 }
160+#}
161
162- # Pass back the unparsed argument list
163- func_quote_for_eval ${1+"$@"}
164- libtool_validate_options_result=$func_quote_for_eval_result
165-}
166-func_add_hook func_validate_options libtool_validate_options
167-
168-
169-# Process options as early as possible so that --help and --version
170-# can return quickly.
171-func_options ${1+"$@"}
172-eval set dummy "$func_options_result"; shift
173-
174-
175+# Bail if the options were screwed!
176+$exit_cmd $EXIT_FAILURE
177
178 ## ----------- ##
179 ## Main. ##
diff --git a/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/meta/recipes-devtools/libtool/libtool_2.4.7.bb
index a5715faaa9..44a4950574 100644
--- a/meta/recipes-devtools/libtool/libtool_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/libtool_2.4.7.bb
@@ -1,21 +1,21 @@
1require libtool-${PV}.inc 1require libtool-${PV}.inc
2 2
3SRC_URI += "file://multilib.patch file://debian-no_hostname.patch" 3SRC_URI += "file://multilib.patch"
4 4
5RDEPENDS_${PN} += "bash" 5RDEPENDS:${PN} += "bash"
6 6
7# 7#
8# We want the results of libtool-cross preserved - don't stage anything ourselves. 8# We want the results of libtool-cross preserved - don't stage anything ourselves.
9# 9#
10SYSROOT_DIRS_BLACKLIST += " \ 10SYSROOT_DIRS_IGNORE += " \
11 ${bindir} \ 11 ${bindir} \
12 ${datadir}/aclocal \ 12 ${datadir}/aclocal \
13 ${datadir}/libtool/build-aux \ 13 ${datadir}/libtool/build-aux \
14" 14"
15 15
16ACLOCALEXTRAPATH_class-target = "" 16ACLOCALEXTRAPATH:class-target = ""
17 17
18do_install_append () { 18do_install:append () {
19 sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \ 19 sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \
20 -e "s@${DEBUG_PREFIX_MAP}@@g" \ 20 -e "s@${DEBUG_PREFIX_MAP}@@g" \
21 -e 's@${STAGING_DIR_HOST}@@g' \ 21 -e 's@${STAGING_DIR_HOST}@@g' \
diff --git a/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.7.bb
index 508eade326..86c55ded7b 100644
--- a/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.7.bb
@@ -2,15 +2,14 @@ require libtool-${PV}.inc
2 2
3FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" 3FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:"
4 4
5SRC_URI += "file://prefix.patch"
6SRC_URI += "file://fixinstall.patch" 5SRC_URI += "file://fixinstall.patch"
7 6
8inherit nativesdk 7inherit nativesdk
9 8
10S = "${WORKDIR}/libtool-${PV}" 9S = "${WORKDIR}/libtool-${PV}"
11FILES_${PN} += "${datadir}/libtool/*" 10FILES:${PN} += "${datadir}/libtool/*"
12 11
13do_configure_prepend () { 12do_configure:prepend () {
14 # Remove any existing libtool m4 since old stale versions would break 13 # Remove any existing libtool m4 since old stale versions would break
15 # any upgrade 14 # any upgrade
16 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 15 rm -f ${STAGING_DATADIR}/aclocal/libtool.m4
@@ -20,12 +19,12 @@ do_configure_prepend () {
20do_install () { 19do_install () {
21 autotools_do_install 20 autotools_do_install
22 install -d ${D}${bindir}/ 21 install -d ${D}${bindir}/
23 install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/ 22 install -m 0755 libtool ${D}${bindir}/
24} 23}
25 24
26SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess" 25SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess"
27 26
28libtoolnativesdk_sysroot_preprocess () { 27libtoolnativesdk_sysroot_preprocess () {
29 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ 28 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
30 install -m 755 ${D}${bindir}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/${HOST_SYS}-libtool 29 install -m 755 ${D}${bindir}/libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/libtool
31} 30}