diff options
Diffstat (limited to 'yocto-poky/meta/recipes-devtools/libtool')
17 files changed, 1019 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/yocto-poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc new file mode 100644 index 000000000..a977c7370 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc @@ -0,0 +1,45 @@ +SUMMARY = "Generic library support script" +DESCRIPTION = "This is GNU libtool, a generic library support script. \ +Libtool hides the complexity of generating special library types \ +(such as shared libraries) behind a consistent interface." +HOMEPAGE = "http://www.gnu.org/software/libtool/libtool.html" +SECTION = "devel" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://libltdl/COPYING.LIB;md5=4fbd65380cdd255951079008b364516c " + +SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ + file://trailingslash.patch \ + file://rename-with-sysroot.patch \ + file://use-sysroot-in-libpath.patch \ + file://fix-final-rpath.patch \ + file://fix-rpath.patch \ + file://norm-rpath.patch \ + file://dont-depend-on-help2man.patch \ + file://fix-resolve-lt-sysroot.patch \ + file://nohardcodepaths.patch \ + file://unwind-opt-parsing.patch \ + " + +SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e" +SRC_URI[sha256sum] = "e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3" + +do_compile_prepend () { + # Sometimes this file doesn't get rebuilt, force the issue + rm -f ${S}/build-aux/ltmain.sh + make build-aux/ltmain.sh + ./config.status +} + +inherit autotools texinfo +EXTRA_AUTORECONF = "--exclude=libtoolize" + +DEPENDS = "libtool-native" + +PACKAGES =+ "libltdl" +FILES_${PN} += "${datadir}/aclocal" + +FILES_${PN}-dev_remove = "${datadir}/aclocal" +FILES_libltdl = "${libdir}/libltdl${SOLIBS}" + +export CONFIG_SHELL="/bin/bash" diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb b/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb new file mode 100644 index 000000000..847880270 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb @@ -0,0 +1,41 @@ +require libtool-${PV}.inc + +PACKAGES = "" +SRC_URI += "file://prefix.patch" +SRC_URI += "file://fixinstall.patch" + +datadir = "${STAGING_DIR_TARGET}${target_datadir}" + +do_configure_prepend () { + # Remove any existing libtool m4 since old stale versions would break + # any upgrade + rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 + rm -f ${STAGING_DATADIR}/aclocal/lt*.m4 +} + +do_install () { + install -d ${D}${bindir_crossscripts}/ + install -m 0755 ${HOST_SYS}-libtool ${D}${bindir_crossscripts}/${HOST_SYS}-libtool + install -d ${D}${bindir_crossscripts}/ + GREP='/bin/grep' SED='sed' ${S}/build-aux/inline-source libtoolize > ${D}${bindir_crossscripts}/libtoolize + chmod 0755 ${D}${bindir_crossscripts}/libtoolize + install -d ${D}${target_datadir}/libtool/build-aux/ + install -d ${D}${target_datadir}/aclocal/ + install -c ${S}/build-aux/compile ${D}${target_datadir}/libtool/build-aux/ + install -c ${S}/build-aux/config.guess ${D}${target_datadir}/libtool/build-aux/ + install -c ${S}/build-aux/config.sub ${D}${target_datadir}/libtool/build-aux/ + install -c ${S}/build-aux/depcomp ${D}${target_datadir}/libtool/build-aux/ + install -c ${S}/build-aux/install-sh ${D}${target_datadir}/libtool/build-aux/ + install -c ${S}/build-aux/missing ${D}${target_datadir}/libtool/build-aux/ + install -c -m 0644 ${S}/build-aux/ltmain.sh ${D}${target_datadir}/libtool/build-aux/ + install -c -m 0644 ${S}/m4/*.m4 ${D}${target_datadir}/aclocal/ +} + +SYSROOT_PREPROCESS_FUNCS += "libtoolcross_sysroot_preprocess" + +libtoolcross_sysroot_preprocess () { + sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} + sysroot_stage_dir ${D}${target_datadir} ${SYSROOT_DESTDIR}${target_datadir} +} + +SSTATE_SCAN_FILES += "libtoolize *-libtool" diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb b/yocto-poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb new file mode 100644 index 000000000..4c5218ade --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb @@ -0,0 +1,22 @@ +require libtool-${PV}.inc + +DEPENDS = "" + +SRC_URI += "file://prefix.patch" + +inherit native + +EXTRA_OECONF = " --with-libtool-sysroot=${STAGING_DIR_NATIVE}" + +do_configure_prepend () { + # Remove any existing libtool m4 since old stale versions would break + # any upgrade + rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 + rm -f ${STAGING_DATADIR}/aclocal/lt*.m4 +} + +do_install () { + autotools_do_install + install -d ${D}${bindir}/ + install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool +} diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch new file mode 100644 index 000000000..fd4084c85 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch @@ -0,0 +1,30 @@ +Upstream-Status: Inappropriate + +Signed-off-by: Marko Lindqvist <cazfi74@gmail.com> +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/Makefile.am b/Makefile.am +--- a/Makefile.am ++++ b/Makefile.am +@@ -404,21 +404,6 @@ $(notes_txt): $(notes_texi) + $(AM_V_GEN)$(MAKEINFO) -P '$(srcdir)/doc' --no-headers \ + $(MAKEINFOFLAGS) -o '$@' '$(notes_texi)' + +-dist_man1_MANS = $(libtool_1) $(libtoolize_1) +-MAINTAINERCLEANFILES += $(dist_man1_MANS) +-update_mans = \ +- PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \ +- $(HELP2MAN) --output='$@' +- +-# It's wrong to make distributed files (e.g. $(libtool_1)) rely on +-# files created in the build tree, so instead we regenerate the +-# manual pages if the sources for the build-tree files we want to +-# run have changed. +-$(libtool_1): $(ltmain_sh) +- $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool +-$(libtoolize_1): $(libtoolize_in) +- $(AM_V_GEN)$(update_mans) libtoolize +- + + ## ------------- ## + ## Installation. ## diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch new file mode 100644 index 000000000..5c9f8cc9c --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch @@ -0,0 +1,50 @@ +Upstream-Status: Inappropriate [embedded specific] + +Enalbing sysroot support exposed a bug where the final library +had an RPATH encoded into it which still pointed to the sysroot. +This works around the issue until it gets sorted out upstream. + +Fix suggested by Richard Purdie <richard.purdie@intel.com> +Signed-off-by: Scott Garman <scott.a.garman@intel.com> +Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -7569,9 +7569,11 @@ EOF + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ func_stripname '=' '' "$libdir" ++ libdir=$func_stripname_result + if test -n "$hardcode_libdir_separator"; then +- func_replace_sysroot "$libdir" +- libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else +@@ -8301,6 +8303,10 @@ EOF + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ func_stripname '=' '' "$libdir" ++ libdir=$func_stripname_result + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir +@@ -8352,6 +8358,10 @@ EOF + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then ++ func_replace_sysroot "$libdir" ++ libdir=$func_replace_sysroot_result ++ func_stripname '=' '' "$libdir" ++ libdir=$func_stripname_result + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch new file mode 100644 index 000000000..1bd95980c --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch @@ -0,0 +1,42 @@ +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> +Updated by: Robert Yang <liezhi.yang@windriver.com> +--- +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -1225,16 +1225,21 @@ dnl lt_sysroot will always be passed unquoted. We quote it here + dnl in case the user passed a directory name. + lt_sysroot= + case $with_libtool_sysroot in #( +- yes) ++ no) + if test yes = "$GCC"; 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.]) diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-rpath.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-rpath.patch new file mode 100644 index 000000000..a2ec9473e --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/fix-rpath.patch @@ -0,0 +1,65 @@ +We don't want to add RPATHS which match default linker +search paths, they're a waste of space. This patch +filters libtools list and removes the ones we don't need. + +RP 23/9/2011 + +Upstream-Status: Pending + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +Index: libtool-2.4.2/build-aux/ltmain.in +=================================================================== +--- libtool-2.4.2.orig/build-aux/ltmain.in ++++ libtool-2.4.2/build-aux/ltmain.in +@@ -7286,8 +7286,14 @@ EOF + esac + fi + else +- eval flag=\"$hardcode_libdir_flag_spec\" +- func_append dep_rpath " $flag" ++ # We only want to hardcode in an rpath if it isn't in the ++ # default dlsearch path. ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append dep_rpath " $flag" ++ ;; ++ esac + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in +@@ -8019,8 +8025,14 @@ EOF + esac + fi + else +- eval flag=\"$hardcode_libdir_flag_spec\" +- func_append rpath " $flag" ++ # We only want to hardcode in an rpath if it isn't in the ++ # default dlsearch path. ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) eval flag=\"$hardcode_libdir_flag_spec\" ++ rpath+=" $flag" ++ ;; ++ esac + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in +@@ -8070,8 +8082,14 @@ EOF + esac + fi + else +- eval flag=\"$hardcode_libdir_flag_spec\" +- func_append rpath " $flag" ++ # We only want to hardcode in an rpath if it isn't in the ++ # default dlsearch path. ++ case " $sys_lib_dlsearch_path " in ++ *" $libdir "*) ;; ++ *) eval flag=\"$hardcode_libdir_flag_spec\" ++ func_append rpath " $flag" ++ ;; ++ esac + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/fixinstall.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/fixinstall.patch new file mode 100644 index 000000000..8f343bf43 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/fixinstall.patch @@ -0,0 +1,102 @@ +There is no point in having "executable" binaries in the .libs +directory linked with different rpaths to the target which +could concivably be run on the build system when cross compiling. + +This patch removes the extra rpaths ($compile_rpath) so that the +output from the "link" stage can be used on the target. We can then +avoid having to "relink" during the install stage. + +This saves some build time (do_install is over 2 minutes faster for +pulseaudio). + +This patch also removes an annoying "seems to be moved" warning +which is totally bogus in the sysroot case. + +Upstream-Status: Inappropriate [upstream are unlikely to take a patch like this] + +RP 2011/11/16 + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -2355,7 +2355,7 @@ func_mode_install () + dir=$func_dirname_result + func_append dir "$objdir" + +- if test -n "$relink_command"; then ++ if test "$fast_install" = no && test -n "$relink_command"; then + # Strip any trailing slash from the destination. + func_stripname '' '/' "$libdir" + destlibdir=$func_stripname_result +@@ -2394,7 +2394,7 @@ func_mode_install () + shift + + srcname=$realname +- test -n "$relink_command" && srcname=${realname}T ++ test "$fast_install" = no && test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ +@@ -6162,15 +6162,15 @@ func_mode_link () + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. +- case " $sys_lib_dlsearch_path " in +- *" $absdir "*) ;; +- *) +- case "$compile_rpath " in +- *" $absdir "*) ;; +- *) func_append compile_rpath " $absdir" ;; +- esac +- ;; +- esac ++ #case " $sys_lib_dlsearch_path " in ++ #*" $absdir "*) ;; ++ #*) ++ # case "$compile_rpath " in ++ # *" $absdir "*) ;; ++ # *) func_append compile_rpath " $absdir" ;; ++ # esac ++ # ;; ++ #esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) +@@ -6236,15 +6236,15 @@ func_mode_link () + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. +- case " $sys_lib_dlsearch_path " in +- *" $absdir "*) ;; +- *) +- case "$compile_rpath " in +- *" $absdir "*) ;; +- *) func_append compile_rpath " $absdir" ;; +- esac +- ;; +- esac ++ #case " $sys_lib_dlsearch_path " in ++ #*" $absdir "*) ;; ++ #*) ++ # case "$compile_rpath " in ++ # *" $absdir "*) ;; ++ # *) func_append compile_rpath " $absdir" ;; ++ # esac ++ # ;; ++ #esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) +@@ -6590,8 +6590,8 @@ func_mode_link () + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" +- test "$absdir" != "$libdir" && \ +- func_warning "'$deplib' seems to be moved" ++ #test "$absdir" != "$libdir" && \ ++ # func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/nohardcodepaths.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/nohardcodepaths.patch new file mode 100644 index 000000000..b2239fbad --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/nohardcodepaths.patch @@ -0,0 +1,27 @@ +If for example you build on a machine with /bin/grep, then restore that sstate +onto a machine with /usr/bin/grep, things will fail. Simply don't bother +hardcoding paths. + +RP 2015/2/3 + +Index: libtool-2.4.5/libtoolize.in +=================================================================== +--- libtool-2.4.5.orig/libtoolize.in ++++ libtool-2.4.5/libtoolize.in +@@ -40,11 +40,11 @@ + + : ${AUTOCONF="autoconf"} + : ${AUTOMAKE="automake"} +-: ${EGREP="@EGREP@"} +-: ${FGREP="@FGREP@"} +-: ${GREP="@GREP@"} +-: ${LN_S="@LN_S@"} +-: ${SED="@SED@"} ++: ${EGREP="egrep"} ++: ${FGREP="fgrep"} ++: ${GREP="grep"} ++: ${LN_S="ln -s"} ++: ${SED="sed"} + + + ## -------------------------- ## diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/norm-rpath.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/norm-rpath.patch new file mode 100644 index 000000000..1e4c65e02 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/norm-rpath.patch @@ -0,0 +1,38 @@ +libtool: normalize link paths before considering for RPATH + +Libtool may be passed link paths of the form "/usr/lib/../lib", which +fool its detection code into thinking it should be included as an +RPATH in the generated binary. Normalize before comparision. + +Signed-off-by: Andy Ross <andy.ross@windriver.com> +Upstream-Status: Pending + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff -ur a/build-aux/ltmain.in b/build-aux/ltmain.in +--- a/build-aux/ltmain.in 2012-08-16 13:58:55.058900363 -0700 ++++ b/build-aux/ltmain.in 2012-08-22 11:01:34.191345989 -0700 +@@ -7288,8 +7288,10 @@ + else + # We only want to hardcode in an rpath if it isn't in the + # default dlsearch path. ++ func_normal_abspath "$libdir" ++ libdir_norm=$func_normal_abspath_result + case " $sys_lib_dlsearch_path " in +- *" $libdir "*) ;; ++ *" $libdir_norm "*) ;; + *) eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + ;; +@@ -8027,8 +8029,10 @@ + else + # We only want to hardcode in an rpath if it isn't in the + # default dlsearch path. ++ func_normal_abspath "$libdir" ++ libdir_norm=$func_normal_abspath_result + case " $sys_lib_dlsearch_path " in +- *" $libdir "*) ;; ++ *" $libdir_norm "*) ;; + *) eval flag=\"$hardcode_libdir_flag_spec\" + rpath+=" $flag" + ;; diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/prefix.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/prefix.patch new file mode 100644 index 000000000..a73df2e4a --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/prefix.patch @@ -0,0 +1,98 @@ +Upstream-Status: Inappropriate [embedded specific] + +Renames "libtool" -> "${TARGET_PREFIX}libtool" which makes sure +it can't be confused with the host libtool. + +Originally by: RP + +Updated: Date: 2010/06/28 +Nitin A Kamble <nitin.a.kamble@intel.com> + +It also adjusts libtool so that the header at the script is used for +script execution and not thevalue of $SHELL. This is because many +Makefiles change $SHELL so dash can get used to execute what is +otherwise configured as a bash shell script. Since we don't need to +execute scipts this way on any system I'm aware of us building upon, +the simplest fix is just to remove $SHELL. + +Updated: Date: 2011/11/09 +RP + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/Makefile.am b/Makefile.am +--- a/Makefile.am ++++ b/Makefile.am +@@ -31,7 +31,7 @@ SUBDIRS = . + DIST_SUBDIRS = $(SUBDIRS) + EXTRA_DIST = + +-BUILT_SOURCES = libtool libtoolize ++BUILT_SOURCES = $(host_alias)-libtool libtoolize + + CLEANFILES = + MOSTLYCLEANFILES = +@@ -67,7 +67,7 @@ build_scripts = $(srcdir)/$(aux_dir)/announce-gen \ + + EXTRA_DIST += bootstrap bootstrap.conf $(build_scripts) cfg.mk maint.mk \ + GNUmakefile +-CLEANFILES += libtool libtoolize ++CLEANFILES += $(host_alias)-libtool libtoolize + + ## If a file is named several times below, and especially if it + ## is a distributed file created during Libtool bootstrap, we +@@ -276,7 +276,7 @@ configure_edit = $(bootstrap_edit) \ + -e 's|@srcdir\@|$(srcdir)|g' + + # The libtool distributor and the standalone libtool script. +-bin_SCRIPTS = libtool ++bin_SCRIPTS = $(host_alias)-libtool + + libtoolize: $(libtoolize_in) $(config_status) + $(AM_V_at)rm -f '$@' +@@ -287,7 +287,7 @@ libtoolize: $(libtoolize_in) $(config_status) + # We used to do this with a 'stamp-vcl' file, but non-gmake builds + # would rerun configure on every invocation, so now we manually + # check the version numbers from the build rule when necessary. +-libtool: $(ltmain_sh) $(config_status) $(dotversion) ++$(host_alias)-libtool: $(ltmain_sh) $(config_status) $(dotversion) + @$(rebuild); \ + if test -f '$@'; then \ + eval `'$(SED)' -n '/^package_revision=/p' '$@'`; \ +@@ -731,12 +731,12 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ + + BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir="$(abs_top_srcdir)" \ + LIBTOOLIZE="$(abs_top_builddir)/libtoolize" \ +- LIBTOOL="$(abs_top_builddir)/libtool" \ ++ LIBTOOL="$(abs_top_builddir)/$(host_alias)-libtool" \ + tst_aclocaldir="$(abs_top_srcdir)/m4" + + INSTALLCHECK_ENVIRONMENT = \ + LIBTOOLIZE="$(bindir)/`echo libtoolize |$(SED) '$(program_transform_name)'`" \ +- LIBTOOL="$(bindir)/`echo libtool |$(SED) '$(program_transform_name)'`" \ ++ LIBTOOL="$(bindir)/`echo $(host_alias)-libtool |$(SED) '$(program_transform_name)'`" \ + LTDLINCL="-I$(includedir)" \ + LIBLTDL="$(libdir)/libltdl.la" \ + tst_aclocaldir="$(aclocaldir)" +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -86,7 +86,8 @@ _LT_SET_OPTIONS([$0], [$1]) + LIBTOOL_DEPS=$ltmain + + # Always use our own libtool. +-LIBTOOL='$(SHELL) $(top_builddir)/libtool' ++LIBTOOL='$(top_builddir)' ++LIBTOOL="$LIBTOOL/${host_alias}-libtool" + AC_SUBST(LIBTOOL)dnl + + _LT_SETUP +@@ -199,7 +200,7 @@ aix3*) + esac + + # Global variables: +-ofile=libtool ++ofile=${host_alias}-libtool + can_build_shared=yes + + # All known linkers require a '.a' archive for static linking (except MSVC, diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch new file mode 100644 index 000000000..ad2b11053 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch @@ -0,0 +1,166 @@ +Upstream-Status: Pending + +This patch renames the --with-sysroot option to --with-libtool-sysroot +to avoid namespace conflict with binutils, gcc and other toolchain +components. + +I also reported the problem to libtool here + +http://lists.gnu.org/archive/html/libtool/2010-10/msg00048.html + +-Khem Raj <raj.khem@gmail.com> + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/m4/libtool.m4 b/m4/libtool.m4 +--- a/m4/libtool.m4 ++++ b/m4/libtool.m4 +@@ -1215,28 +1215,28 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) + # ---------------- + AC_DEFUN([_LT_WITH_SYSROOT], + [AC_MSG_CHECKING([for sysroot]) +-AC_ARG_WITH([sysroot], +-[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], ++AC_ARG_WITH([libtool-sysroot], ++[AS_HELP_STRING([--with-libtool-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +-[], [with_sysroot=no]) ++[], [with_libtool_sysroot=no]) + + dnl lt_sysroot will always be passed unquoted. We quote it here + dnl in case the user passed a directory name. + lt_sysroot= +-case $with_sysroot in #( ++case $with_libtool_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) +- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ++ lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) +- AC_MSG_RESULT([$with_sysroot]) ++ AC_MSG_RESULT([$with_libtool_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; + esac +diff --git a/tests/sysroot.at b/tests/sysroot.at +--- a/tests/sysroot.at ++++ b/tests/sysroot.at +@@ -64,7 +64,7 @@ while read file; do + done]) + + LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" +-configure_options="$configure_options --with-sysroot=$sysroot --prefix=$prefix" ++configure_options="$configure_options --with-libtool-sysroot=$sysroot --prefix=$prefix" + + #??? + if test PATH = "$shlibpath_var"; then +@@ -114,7 +114,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([lib2.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + ]]) +@@ -155,7 +155,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([prog.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + ]]) +diff --git a/tests/testsuite b/tests/testsuite +--- a/tests/testsuite ++++ b/tests/testsuite +@@ -48945,7 +48945,7 @@ $at_traceon; } + + + LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" +-configure_options="$configure_options --with-sysroot=$sysroot --prefix=$prefix" ++configure_options="$configure_options --with-libtool-sysroot=$sysroot --prefix=$prefix" + + #??? + if test PATH = "$shlibpath_var"; then +@@ -49154,7 +49154,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([lib2.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF +@@ -49342,7 +49342,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([prog.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF +@@ -49694,7 +49694,7 @@ $at_traceon; } + + + LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" +-configure_options="$configure_options --with-sysroot=$sysroot --prefix=$prefix" ++configure_options="$configure_options --with-libtool-sysroot=$sysroot --prefix=$prefix" + + #??? + if test PATH = "$shlibpath_var"; then +@@ -49903,7 +49903,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([lib2.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF +@@ -50091,7 +50091,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([prog.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF +@@ -50443,7 +50443,7 @@ $at_traceon; } + + + LDFLAGS="$LDFLAGS --sysroot=$sysroot -no-undefined" +-configure_options="$configure_options --with-sysroot=$sysroot --prefix=$prefix" ++configure_options="$configure_options --with-libtool-sysroot=$sysroot --prefix=$prefix" + + #??? + if test PATH = "$shlibpath_var"; then +@@ -50652,7 +50652,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([lib2.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF +@@ -50840,7 +50840,7 @@ AM_INIT_AUTOMAKE([foreign]) + AC_PROG_CC + AC_CONFIG_SRCDIR([prog.c]) + LT_INIT +-sysroot=$with_sysroot ++sysroot=$with_libtool_sysroot + AC_SUBST([sysroot]) + AC_OUTPUT(Makefile) + _ATEOF diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/trailingslash.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/trailingslash.patch new file mode 100644 index 000000000..e8824d7db --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/trailingslash.patch @@ -0,0 +1,35 @@ +Upstream-Status: Pending + +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> + +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -2356,8 +2356,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 diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch new file mode 100644 index 000000000..b633bc41b --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/unwind-opt-parsing.patch @@ -0,0 +1,179 @@ +Cut and paste the pieces of build-aux/options-parser inline into the main +ltmain.sh code. This removes a performance degradation caused by the +repeated calls to func_quote_for_eval, the mechanism funclib uses +to construct the functions used for option parsing. + +Upstream-Status: Submitted [Being discussed on mailing list Feb 2015] + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index d5cf07a..0f54303 100644 +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -342,11 +342,15 @@ _LT_EOF + # libtool_options_prep [ARG]... + # ----------------------------- + # Preparation for options parsed by libtool. +-libtool_options_prep () +-{ ++#libtool_options_prep () ++#{ + $debug_mode + + # Option defaults: ++ opt_verbose=false ++ opt_warning_types= ++ ++ # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false +@@ -382,19 +386,14 @@ libtool_options_prep () + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac +- +- # Pass back the list of options. +- func_quote_for_eval ${1+"$@"} +- libtool_options_prep_result=$func_quote_for_eval_result +-} +-func_add_hook func_options_prep libtool_options_prep ++#} + + + # libtool_parse_options [ARG]... + # --------------------------------- + # Provide handling for libtool specific options. +-libtool_parse_options () +-{ ++#libtool_parse_options () ++#{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in +@@ -474,29 +473,90 @@ libtool_parse_options () + func_append preserve_args " $_G_opt" + ;; + +- # An option not handled by this hook function: +- *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +- esac +- done ++ --debug|-x) debug_cmd='set -x' ++ func_echo "enabling shell trace mode" ++ $debug_cmd ++ ;; + ++ --no-warnings|--no-warning|--no-warn) ++ set dummy --warnings none ${1+"$@"} ++ shift ++ ;; + +- # save modified positional parameters for caller +- func_quote_for_eval ${1+"$@"} +- libtool_parse_options_result=$func_quote_for_eval_result +-} +-func_add_hook func_parse_options libtool_parse_options ++ --warnings|--warning|-W) ++ test $# = 0 && func_missing_arg $_G_opt && break ++ case " $warning_categories $1" in ++ *" $1 "*) ++ # trailing space prevents matching last $1 above ++ func_append_uniq opt_warning_types " $1" ++ ;; ++ *all) ++ opt_warning_types=$warning_categories ++ ;; ++ *none) ++ opt_warning_types=none ++ warning_func=: ++ ;; ++ *error) ++ opt_warning_types=$warning_categories ++ warning_func=func_fatal_error ++ ;; ++ *) ++ func_fatal_error \ ++ "unsupported warning category: '$1'" ++ ;; ++ esac ++ shift ++ ;; ++ ++ --verbose|-v) opt_verbose=: ;; ++ --version) func_version ;; ++ -\?|-h) func_usage ;; ++ --help) func_help ;; ++ ++ # Separate optargs to long options (plugins may need this): ++ --*=*) func_split_equals "$_G_opt" ++ set dummy "$func_split_equals_lhs" \ ++ "$func_split_equals_rhs" ${1+"$@"} ++ shift ++ ;; ++ ++ # Separate optargs to short options: ++ -W*) ++ func_split_short_opt "$_G_opt" ++ set dummy "$func_split_short_opt_name" \ ++ "$func_split_short_opt_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ # Separate non-argument short options: ++ -\?*|-h*|-v*|-x*) ++ func_split_short_opt "$_G_opt" ++ set dummy "$func_split_short_opt_name" \ ++ "-$func_split_short_opt_arg" ${1+"$@"} ++ shift ++ ;; ++ ++ --) break ;; ++ -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; ++ *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; ++ esac ++ done ++#} + ++# Display all warnings if -W was not given. ++test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + + # libtool_validate_options [ARG]... + # --------------------------------- + # Perform any sanity checks on option settings and/or unconsumed + # arguments. +-libtool_validate_options () +-{ ++#libtool_validate_options () ++#{ + # save first non-option argument + if test 0 -lt $#; then +- nonopt=$1 ++ nonopt=$_G_opt + shift + fi + +@@ -537,20 +597,10 @@ libtool_validate_options () + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } ++#} + +- # Pass back the unparsed argument list +- func_quote_for_eval ${1+"$@"} +- libtool_validate_options_result=$func_quote_for_eval_result +-} +-func_add_hook func_validate_options libtool_validate_options +- +- +-# Process options as early as possible so that --help and --version +-# can return quickly. +-func_options ${1+"$@"} +-eval set dummy "$func_options_result"; shift +- +- ++# Bail if the options were screwed! ++$exit_cmd $EXIT_FAILURE + + ## ----------- ## + ## Main. ## diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch b/yocto-poky/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch new file mode 100644 index 000000000..6af99f327 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch @@ -0,0 +1,22 @@ +Upstream-Status: Pending + +When using sysroot we should append it to libdir, which is helpful in +cross builds as the system is staged in the sysroot. For normal builds, +i.e. when lt_sysroot is not set, it will still behave the same and add +-L/usr/lib to the relink command. + +-Khem Raj <raj.khem@gmail.com> +Updated by: Robert Yang <liezhi.yang@windriver.com> + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +--- a/build-aux/ltmain.in ++++ b/build-aux/ltmain.in +@@ -6421,7 +6421,7 @@ func_mode_link () + fi + else + # We cannot seem to hardcode it, guess we'll fake it. +- add_dir=-L$libdir ++ add_dir="-L$lt_sysroot$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in diff --git a/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb new file mode 100644 index 000000000..45f1b2f3a --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb @@ -0,0 +1,26 @@ +require libtool-${PV}.inc + +RDEPENDS_${PN} += "bash" + +# +# We want the results of libtool-cross preserved - don't stage anything ourselves. +# +SYSROOT_PREPROCESS_FUNCS += "libtool_sysroot_preprocess" + +do_install_append () { + sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \ + -e 's@${STAGING_DIR_HOST}@@g' \ + -e 's@^\(sys_lib_search_path_spec="\).*@\1${libdir} ${base_libdir}"@' \ + -e 's@^\(compiler_lib_search_dirs="\).*@\1${libdir} ${base_libdir}"@' \ + -e 's@^\(compiler_lib_search_path="\).*@\1${libdir} ${base_libdir}"@' \ + -e 's@^\(predep_objects="\).*@\1"@' \ + -e 's@^\(postdep_objects="\).*@\1"@' \ + -i ${D}${bindir}/libtool +} + +libtool_sysroot_preprocess () { + rm -rf ${SYSROOT_DESTDIR}${bindir}/* + rm -rf ${SYSROOT_DESTDIR}${datadir}/aclocal/* + rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/build-aux/* +} + diff --git a/yocto-poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb b/yocto-poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb new file mode 100644 index 000000000..508eade32 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.6.bb @@ -0,0 +1,31 @@ +require libtool-${PV}.inc + +FILESEXTRAPATHS =. "${FILE_DIRNAME}/libtool:" + +SRC_URI += "file://prefix.patch" +SRC_URI += "file://fixinstall.patch" + +inherit nativesdk + +S = "${WORKDIR}/libtool-${PV}" +FILES_${PN} += "${datadir}/libtool/*" + +do_configure_prepend () { + # Remove any existing libtool m4 since old stale versions would break + # any upgrade + rm -f ${STAGING_DATADIR}/aclocal/libtool.m4 + rm -f ${STAGING_DATADIR}/aclocal/lt*.m4 +} + +do_install () { + autotools_do_install + install -d ${D}${bindir}/ + install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/ +} + +SYSROOT_PREPROCESS_FUNCS += "libtoolnativesdk_sysroot_preprocess" + +libtoolnativesdk_sysroot_preprocess () { + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${bindir_crossscripts}/${HOST_SYS}-libtool +} |