From c527fd1f14c27855a37f2e8ac5346ce8d940ced2 Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Thu, 16 Oct 2014 03:05:19 +0200 Subject: initial commit for Enea Linux 4.0-140929 Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea --- meta/recipes-devtools/libtool/libtool-2.4.2.inc | 51 +++++++ .../libtool/libtool-cross_2.4.2.bb | 43 ++++++ .../libtool/libtool-native_2.4.2.bb | 25 ++++ .../avoid_absolute_paths_for_general_utils.patch | 39 +++++ .../libtool/libtool/dont-depend-on-help2man.patch | 24 +++ .../libtool/libtool/fix-final-rpath.patch | 38 +++++ .../libtool/libtool/fix-resolve-lt-sysroot.patch | 41 +++++ .../libtool/libtool/fix-rpath.patch | 63 ++++++++ .../libtool/libtool/fixinstall.patch | 101 +++++++++++++ .../libtool/libtool/norm-rpath.patch | 36 +++++ meta/recipes-devtools/libtool/libtool/prefix.patch | 111 ++++++++++++++ .../libtool/libtool/rename-with-sysroot.patch | 166 +++++++++++++++++++++ .../libtool/libtool/respect-fstack-protector.patch | 53 +++++++ .../libtool/libtool/trailingslash.patch | 34 +++++ .../libtool/libtool/use-sysroot-in-libpath.patch | 22 +++ meta/recipes-devtools/libtool/libtool_2.4.2.bb | 15 ++ .../libtool/nativesdk-libtool_2.4.2.bb | 35 +++++ 17 files changed, 897 insertions(+) create mode 100644 meta/recipes-devtools/libtool/libtool-2.4.2.inc create mode 100644 meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb create mode 100644 meta/recipes-devtools/libtool/libtool-native_2.4.2.bb create mode 100644 meta/recipes-devtools/libtool/libtool/avoid_absolute_paths_for_general_utils.patch create mode 100644 meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch create mode 100644 meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch create mode 100644 meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch create mode 100644 meta/recipes-devtools/libtool/libtool/fix-rpath.patch create mode 100644 meta/recipes-devtools/libtool/libtool/fixinstall.patch create mode 100644 meta/recipes-devtools/libtool/libtool/norm-rpath.patch create mode 100644 meta/recipes-devtools/libtool/libtool/prefix.patch create mode 100644 meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch create mode 100644 meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch create mode 100644 meta/recipes-devtools/libtool/libtool/trailingslash.patch create mode 100644 meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch create mode 100644 meta/recipes-devtools/libtool/libtool_2.4.2.bb create mode 100644 meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb (limited to 'meta/recipes-devtools/libtool') diff --git a/meta/recipes-devtools/libtool/libtool-2.4.2.inc b/meta/recipes-devtools/libtool/libtool-2.4.2.inc new file mode 100644 index 0000000000..d26982dc62 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool-2.4.2.inc @@ -0,0 +1,51 @@ +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=751419260aa954499f7abaabaa882bbe \ + file://libltdl/COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" + +INC_PR = "r6" + +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://avoid_absolute_paths_for_general_utils.patch \ + file://fix-rpath.patch \ + 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" +SRC_URI[sha256sum] = "b38de44862a987293cd3d8dfae1c409d514b6c4e794ebc93648febf9afc38918" + +do_compile_prepend () { + # Sometimes this file doesn't get rebuilt, force the issue + rm -f ${S}/libltdl/config/ltmain.sh + make libltdl/config/ltmain.sh + ./config.status +} + +inherit autotools +EXTRA_AUTORECONF = "--exclude=libtoolize" + +DEPENDS = "libtool-native" + +PACKAGES =+ "libltdl libltdl-dev libltdl-dbg libltdl-staticdev" +FILES_${PN} += "${datadir}/aclocal" +FILES_${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \ + ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \ + ${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la" + +#FILES_${PN}-dev := "${@oe_filter_out('${datadir}/aclocal', '${FILES_libtool-dev}', d)}" +FILES_libltdl = "${libdir}/libltdl${SOLIBS}" +FILES_libltdl-dev = "${libdir}/libltdl${SOLIBSDEV} ${includedir}" +FILES_libltdl-staticdev = "${libdir}/libltdl.a" +FILES_libltdl-dbg = "${libdir}/.debug/" diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb new file mode 100644 index 0000000000..72fad37eaf --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb @@ -0,0 +1,43 @@ +require libtool-${PV}.inc + +PR = "${INC_PR}.1" +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}/ + install -m 0755 libtoolize ${D}${bindir_crossscripts}/ + install -d ${D}${target_datadir}/libtool/config/ + install -d ${D}${target_datadir}/aclocal/ + install -c ${S}/libltdl/config/compile ${D}${target_datadir}/libtool/config/ + install -c ${S}/libltdl/config/config.guess ${D}${target_datadir}/libtool/config/ + install -c ${S}/libltdl/config/config.sub ${D}${target_datadir}/libtool/config/ + install -c ${S}/libltdl/config/depcomp ${D}${target_datadir}/libtool/config/ + install -c ${S}/libltdl/config/install-sh ${D}${target_datadir}/libtool/config/ + install -c ${S}/libltdl/config/missing ${D}${target_datadir}/libtool/config/ + install -c -m 0644 ${S}/libltdl/config/ltmain.sh ${D}${target_datadir}/libtool/config/ + install -c -m 0644 ${S}/libltdl/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" + +export CONFIG_SHELL="/bin/bash" diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb new file mode 100644 index 0000000000..f1051d84f3 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb @@ -0,0 +1,25 @@ +require libtool-${PV}.inc + +DEPENDS = "" + +PR = "${INC_PR}.1" +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 +} + +export CONFIG_SHELL="/bin/bash" diff --git a/meta/recipes-devtools/libtool/libtool/avoid_absolute_paths_for_general_utils.patch b/meta/recipes-devtools/libtool/libtool/avoid_absolute_paths_for_general_utils.patch new file mode 100644 index 0000000000..3c751ed0e2 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/avoid_absolute_paths_for_general_utils.patch @@ -0,0 +1,39 @@ +Upstream-Status: Pending + +On some distro the path of utils like sed, grep etc are different than the +buildhost system. + This was causing runtime issue while running libtoolize from the +libtool-nativesdk package. + This patch takes out the absolute paths of these utils, and put +responsibility on the end-user to set correct paths for these utilities to be +found out. + +Nitin A Kamble +2011/02/18 + + +Index: libtool-2.4.2/libltdl/config/general.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/general.m4sh ++++ libtool-2.4.2/libltdl/config/general.m4sh +@@ -45,15 +45,15 @@ progpath="$0" + M4SH_VERBATIM([[ + : ${CP="cp -f"} + test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +-: ${EGREP="@EGREP@"} +-: ${FGREP="@FGREP@"} +-: ${GREP="@GREP@"} +-: ${LN_S="@LN_S@"} ++: ${EGREP="egrep"} ++: ${FGREP="fgrep"} ++: ${GREP="grep"} ++: ${LN_S="ln -s"} + : ${MAKE="make"} + : ${MKDIR="mkdir"} + : ${MV="mv -f"} + : ${RM="rm -f"} +-: ${SED="@SED@"} ++: ${SED="sed"} + : ${SHELL="${CONFIG_SHELL-/bin/sh}"} + : ${Xsed="$SED -e 1s/^X//"} + diff --git a/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch b/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch new file mode 100644 index 0000000000..67552b0ff5 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/dont-depend-on-help2man.patch @@ -0,0 +1,24 @@ +Upstream-Status: Inappropriate + +Signed-off-by: Marko Lindqvist +diff -Nurd libtool-2.4.2/Makefile.am libtool-2.4.2/Makefile.am +--- libtool-2.4.2/Makefile.am 2011-10-17 13:17:04.000000000 +0300 ++++ libtool-2.4.2/Makefile.am 2013-01-01 22:03:36.865586811 +0200 +@@ -327,17 +327,6 @@ + cd $(srcdir)/doc && \ + $(MAKEINFO) --no-headers $(MAKEINFOFLAGS) -o notes.txt notes.texi + +-dist_man1_MANS = $(srcdir)/doc/libtool.1 $(srcdir)/doc/libtoolize.1 +-MAINTAINERCLEANFILES += $(dist_man1_MANS) +-update_mans = \ +- PATH=".$(PATH_SEPARATOR)$$PATH"; export PATH; \ +- $(HELP2MAN) --output=$@ +-$(srcdir)/doc/libtool.1: $(srcdir)/$(auxdir)/ltmain.sh +- $(update_mans) --help-option=--help-all libtool +-$(srcdir)/doc/libtoolize.1: $(srcdir)/libtoolize.in +- $(update_mans) libtoolize +- +- + ## ------------- ## + ## Installation. ## + ## ------------- ## diff --git a/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch b/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch new file mode 100644 index 0000000000..5c275ffd32 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch @@ -0,0 +1,38 @@ +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 +Signed-off-by: Scott Garman + +Index: libtool-2.4.2/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4.2/libltdl/config/ltmain.m4sh +@@ -7268,9 +7268,11 @@ EOF + test "$opt_mode" != relink && 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 +@@ -7999,6 +8001,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" 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 0000000000..44e9fe17ae --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/fix-resolve-lt-sysroot.patch @@ -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 +--- +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.]) diff --git a/meta/recipes-devtools/libtool/libtool/fix-rpath.patch b/meta/recipes-devtools/libtool/libtool/fix-rpath.patch new file mode 100644 index 0000000000..1571178a6a --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/fix-rpath.patch @@ -0,0 +1,63 @@ +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 + +Index: libtool-2.4.2/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4.2/libltdl/config/ltmain.m4sh +@@ -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/meta/recipes-devtools/libtool/libtool/fixinstall.patch b/meta/recipes-devtools/libtool/libtool/fixinstall.patch new file mode 100644 index 0000000000..279c07be37 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/fixinstall.patch @@ -0,0 +1,101 @@ +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 + +Index: libtool-2.4/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-11-16 14:50:01.070383779 +0000 ++++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-11-16 15:27:13.582310413 +0000 +@@ -2163,7 +2163,7 @@ + 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 +@@ -2202,7 +2202,7 @@ + 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" \ +@@ -5856,15 +5856,15 @@ + # 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 "*) ;; + *) +@@ -5930,15 +5930,15 @@ + # 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 "*) ;; + *) +@@ -6284,8 +6284,8 @@ + 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/meta/recipes-devtools/libtool/libtool/norm-rpath.patch b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch new file mode 100644 index 0000000000..dce1576c41 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch @@ -0,0 +1,36 @@ +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 +Upstream-Status: Pending + +diff -ur a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh +--- a/libltdl/config/ltmain.m4sh 2012-08-16 13:58:55.058900363 -0700 ++++ b/libltdl/config/ltmain.m4sh 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/meta/recipes-devtools/libtool/libtool/prefix.patch b/meta/recipes-devtools/libtool/libtool/prefix.patch new file mode 100644 index 0000000000..5e46e68f03 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/prefix.patch @@ -0,0 +1,111 @@ +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 + +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 + +Index: libtool-2.4.2/libltdl/m4/libtool.m4 +=================================================================== +--- libtool-2.4.2.orig/libltdl/m4/libtool.m4 ++++ libtool-2.4.2/libltdl/m4/libtool.m4 +@@ -94,7 +94,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 +@@ -206,7 +207,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, +Index: libtool-2.4.2/Makefile.am +=================================================================== +--- libtool-2.4.2.orig/Makefile.am ++++ libtool-2.4.2/Makefile.am +@@ -31,7 +31,7 @@ AM_LDFLAGS = + DIST_SUBDIRS = . + EXTRA_DIST = + +-BUILT_SOURCES = libtool libtoolize ++BUILT_SOURCES = $(host_alias)-libtool libtoolize + + CLEANFILES = + MOSTLYCLEANFILES = +@@ -72,7 +72,7 @@ EXTRA_DIST += bootstrap $(srcdir)/li + ChangeLog.2002 ChangeLog.2003 ChangeLog.2004 \ + ChangeLog.2005 ChangeLog.2006 ChangeLog.2007 \ + ChangeLog.2008 ChangeLog.2009 ChangeLog.2010 +-CLEANFILES += libtool libtoolize libtoolize.tmp \ ++CLEANFILES += $(host_alias)-libtool libtoolize libtoolize.tmp \ + $(auxdir)/ltmain.tmp $(m4dir)/ltversion.tmp + + ## These are the replacements that need to be made at bootstrap time, +@@ -231,7 +231,7 @@ configure_edit = sed \ + -e 's,@SED\@,$(SED),g' + + # The libtool distributor and the standalone libtool script. +-bin_SCRIPTS = libtoolize libtool ++bin_SCRIPTS = libtoolize $(host_alias)-libtool + + libtoolize: $(srcdir)/libtoolize.in $(top_builddir)/config.status + rm -f libtoolize.tmp libtoolize +@@ -244,8 +244,8 @@ libtoolize: $(srcdir)/libtoolize.in $(to + # 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: $(top_builddir)/config.status $(srcdir)/$(auxdir)/ltmain.sh ChangeLog +- @target=libtool; $(rebuild); \ ++$(host_alias)-libtool: $(top_builddir)/config.status $(srcdir)/$(auxdir)/ltmain.sh ChangeLog ++ @target=$(host_alias)-libtool; $(rebuild); \ + if test -f "$$target"; then \ + set dummy `./$$target --version | sed 1q`; actualver="$$5"; \ + test "$$actualver" = "$$correctver" && rebuild=false; \ +@@ -254,8 +254,8 @@ libtool: $(top_builddir)/config.status $ + case $$prereq in *ChangeLog);; *) rebuild=:;; esac; \ + done; \ + if $$rebuild; then \ +- echo $(SHELL) ./config.status $$target; \ +- cd $(top_builddir) && $(SHELL) ./config.status $$target; \ ++ echo $(SHELL) ./config.status libtool; \ ++ cd $(top_builddir) && $(SHELL) ./config.status libtool; \ + fi + + .PHONY: configure-subdirs +@@ -535,12 +535,12 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$ + + 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)/libltdl/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/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch b/meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch new file mode 100644 index 0000000000..c3e3e867aa --- /dev/null +++ b/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 + +Index: libtool-2.4.2/libltdl/m4/libtool.m4 +=================================================================== +--- libtool-2.4.2.orig/libltdl/m4/libtool.m4 ++++ libtool-2.4.2/libltdl/m4/libtool.m4 +@@ -1224,27 +1224,27 @@ _LT_DECL([], [ECHO], [1], [An echo progr + # ---------------- + AC_DEFUN([_LT_WITH_SYSROOT], + [AC_MSG_CHECKING([for sysroot]) +-AC_ARG_WITH([sysroot], +-[ --with-sysroot[=DIR] Search for dependent libraries within DIR ++AC_ARG_WITH([libtool-sysroot], ++[ --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 "$GCC" = yes; 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 +Index: libtool-2.4.2/tests/sysroot.at +=================================================================== +--- libtool-2.4.2.orig/tests/sysroot.at ++++ libtool-2.4.2/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 "$shlibpath_var" = PATH; 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) + ]]) +Index: libtool-2.4.2/tests/testsuite +=================================================================== +--- libtool-2.4.2.orig/tests/testsuite ++++ libtool-2.4.2/tests/testsuite +@@ -26676,7 +26676,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 "$shlibpath_var" = PATH; then +@@ -26874,7 +26874,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 +@@ -27051,7 +27051,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 +@@ -27392,7 +27392,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 "$shlibpath_var" = PATH; then +@@ -27590,7 +27590,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 +@@ -27767,7 +27767,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 +@@ -28108,7 +28108,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 "$shlibpath_var" = PATH; then +@@ -28306,7 +28306,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 +@@ -28483,7 +28483,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/meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch b/meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch new file mode 100644 index 0000000000..a82b2ec5a1 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/respect-fstack-protector.patch @@ -0,0 +1,53 @@ +Source: http://permalink.gmane.org/gmane.comp.gnu.libtool.bugs/7341 + +Bug confirmed. When code is compiled with -fstack-protector{,-all}, +GCC "emits extra code to check for buffer overflows, such as stack +smashing attacks". This extra code uses symbols from libssp, and +therefore (at least) Cygwin's GCC specs contain: + +*link_ssp: +%{fstack-protector|fstack-protector-all:-lssp_nonshared -lssp} + +Therefore, when libtool fails to pass -fstack-protector{,-all} at link +stage, the link fails. + +Patch attached. (Yes, I have a copyright assignment on file.) + +Yaakov +Cygwin/X + +From b79f4e117b6f73cc461a2e232063e08481d33300 Mon Sep 17 00:00:00 2001 +From: Yaakov Selkowitz users.sourceforge.net> +Date: Tue, 1 Jun 2010 22:18:51 -0500 +Subject: [PATCH] Fix linking with -fstack-protector + +* libltdl/config/ltmain.m4sh (func_mode_link): Pass -fstack-protector* +to the linker as it is required at link time to resolve libssp symbols. + +Signed-off-by: Yaakov Selkowitz users.sourceforge.net> +--- + libltdl/config/ltmain.m4sh | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +Signed-off-by: Khem Raj +Upstream-Status: Pending +Index: libtool-2.4.2/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/ltmain.m4sh 2012-06-01 12:35:44.089638130 -0700 ++++ libtool-2.4.2/libltdl/config/ltmain.m4sh 2012-06-01 12:37:25.789643055 -0700 +@@ -5067,13 +5067,14 @@ + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC ++ # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ +- -O*|-flto*|-fwhopr*|-fuse-linker-plugin) ++ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" diff --git a/meta/recipes-devtools/libtool/libtool/trailingslash.patch b/meta/recipes-devtools/libtool/libtool/trailingslash.patch new file mode 100644 index 0000000000..bb7a761e25 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool/trailingslash.patch @@ -0,0 +1,34 @@ +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 + +Date: 2010/07/12 +Nitin A Kamble + +Index: libtool-2.4.2/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4.2/libltdl/config/ltmain.m4sh +@@ -2167,8 +2167,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/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch b/meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch new file mode 100644 index 0000000000..0cd66ad524 --- /dev/null +++ b/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 + +Index: libtool-2.4.2/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.2.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4.2/libltdl/config/ltmain.m4sh +@@ -6138,7 +6138,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/meta/recipes-devtools/libtool/libtool_2.4.2.bb b/meta/recipes-devtools/libtool/libtool_2.4.2.bb new file mode 100644 index 0000000000..a2eb4ea437 --- /dev/null +++ b/meta/recipes-devtools/libtool/libtool_2.4.2.bb @@ -0,0 +1,15 @@ +require libtool-${PV}.inc + +PR = "${INC_PR}.0" + +# +# We want the results of libtool-cross preserved - don't stage anything ourselves. +# +SYSROOT_PREPROCESS_FUNCS += "libtool_sysroot_preprocess" + +libtool_sysroot_preprocess () { + rm -rf ${SYSROOT_DESTDIR}${bindir}/* + rm -rf ${SYSROOT_DESTDIR}${datadir}/aclocal/* + rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/config/* +} + diff --git a/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb new file mode 100644 index 0000000000..fff15e916d --- /dev/null +++ b/meta/recipes-devtools/libtool/nativesdk-libtool_2.4.2.bb @@ -0,0 +1,35 @@ +require libtool-${PV}.inc + +PR = "${INC_PR}.0" + +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 +} + +export CONFIG_SHELL="/bin/bash" -- cgit v1.2.3-54-g00ecf