libtool: fix resolve of lt_sysroot

This patch updates libtool.m4 (and its output) to resolve a problem
with variable 'lt_sysroot' not being properly updated if the option
'--with[-libtool]-sysroot' is not provided when running the 'configure'
script for a package.

According to the help text ouput from 'configure':
--with-libtool-sysroot=DIR Search for dependent libraries within DIR
                        (or the compiler's sysrooot if not specified).

Due to mixed up cases in a switch statement, when checking if the option
was specified or not, wrong actions were taken resulting in an incorrect
sysroot and failures to properly locate e.g. .la files when using the
populated SDK toolchain.

For current upstream status see:
http://lists.gnu.org/archive/html/bug-libtool/2013-09/msg00005.html

(From OE-Core rev: f5cf7e1a5c85fb320faa9cbeef24f491706b4c1d)

Signed-off-by: Hans Beckerus <hans.beckerus at gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Hans Beckerus 2013-09-14 09:01:38 +00:00 committed by Richard Purdie
parent da470776f9
commit ac191eb964
2 changed files with 42 additions and 0 deletions

View File

@ -20,6 +20,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
file://respect-fstack-protector.patch \
file://norm-rpath.patch \
file://dont-depend-on-help2man.patch \
file://fix-resolve-lt-sysroot.patch \
"
SRC_URI[md5sum] = "d2f3b7d4627e69e13514a40e72a24d50"

View File

@ -0,0 +1,41 @@
Upstream-Status: Pending
This patch updates libtool.m4 (and its output) to resolve a problem
with variable 'lt_sysroot' not being properly updated if the option
'--with[-libtool]-sysroot' is not provided when running the 'configure'
script for a package.
I have also reported the problem to libtool here
http://lists.gnu.org/archive/html/bug-libtool/2013-09/msg00005.html
Signed-off-by: Hans Beckerus <hans.beckerus at gmail.com>
---
diff -ur libtool-2.4.2.orig/libltdl/m4/libtool.m4 libtool-2.4.2/libltdl/m4/libtool.m4
--- libtool-2.4.2.orig/libltdl/m4/libtool.m4 2013-09-13 22:37:43.647282945 +0200
+++ libtool-2.4.2/libltdl/m4/libtool.m4 2013-09-14 10:27:37.168178605 +0200
@@ -1234,16 +1234,21 @@
dnl in case the user passed a directory name.
lt_sysroot=
case ${with_libtool_sysroot} in #(
- yes)
+ no)
if test "$GCC" = yes; then
lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ # Treat "/" the same a an unset sysroot. It seems to be more
+ # compatible across host platforms that way!?
+ if test "$lt_sysroot" = /; then
+ lt_sysroot=
+ fi
fi
;; #(
+ yes|''|/)
+ ;; #(
/*)
lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
;; #(
- no|'')
- ;; #(
*)
AC_MSG_RESULT([${with_libtool_sysroot}])
AC_MSG_ERROR([The sysroot must be an absolute path.])