I will commit a new patch. I just discovered a minor flaw in it. In an attempt to handle also the case that someone provides --with-libtool-sysroot ="/" the switch cases have wrong precedence since "/*" hits before "/". Sorry for overlooking this. Even if the chance of someone actually hitting this problem is slim, it think should be corrected.
Thanks. Hans On 2013-09-14 12:39, Hans Beckerus wrote: > 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 > > Signed-off-by: Hans Beckerus <hans.beckerus at gmail.com> > --- > meta/recipes-devtools/libtool/libtool-2.4.2.inc | 1 + > .../libtool/libtool/fix-resolve-lt-sysroot.patch | 40 > ++++++++++++++++++++ > 2 files changed, 41 insertions(+) > create mode 100644 > meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch > > diff --git a/meta/recipes-devtools/libtool/libtool-2.4.2.inc > b/meta/recipes-devtools/libtool/libtool-2.4.2.inc > index bb4ddf0..92e4949 100644 > --- a/meta/recipes-devtools/libtool/libtool-2.4.2.inc > +++ b/meta/recipes-devtools/libtool/libtool-2.4.2.inc > @@ -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" > diff --git > a/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch > b/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch > new file mode 100644 > index 0000000..9f9f22e > --- /dev/null > +++ b/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch > @@ -0,0 +1,40 @@ > + > +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-13 22:40:07.535285985 > +0200 > +@@ -1234,15 +1234,20 @@ > + 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 > + ;; #( > + /*) > + lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` > + ;; #( > +- no|'') > ++ yes|''|/) > + ;; #( > + *) > + AC_MSG_RESULT([${with_libtool_sysroot}]) _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
