libtool 2.4 sysroot support [v2]
cover libtool 2.4 sysroot support [v2]
Hi Saul,
This patch series enables sysroot support in libtool, a new feature that was added in libtool 2.4. Countless thanks to Khem Raj, who got this working in OpenEmbedded recently - just about everything here is based on his work, with a couple of additional tweaks courtesy of Richard Purdie.
This is a respin of my previous pull request, which includes some changes to the libtool recipe changes that Richard raised concerns with and forward-ports the binutils poison patch that I had forgotten to include in my last pull request.
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: sgarman/libtool-sysroot-rev2
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=sgarman/libtool-sysroot-rev2
Thanks,
Scott Garman <[email protected]>
---
Richard Purdie (1):
libtool: Move common version specific data to a common include file
Scott Garman (11):
libtool: Small cleanups of metadata
libtool: Changes to enable sysroot support
libtool: fix library RPATHs
autotools.bbclass: libtool sysroot support changes staging.bbclass, utils.bbclass: remove la mangling code insane.bbclass: skip checks on .la installed status
binutils: upgrade to 2.21 and add libtool sysroot support
binutils: forward-port the binutils-poison.patch
binutils: Fix QA staging errors for target binutils
binutils: fix library RPATHs
poky-default.inc: bump binutils preferred version to 2.21
meta/classes/autotools.bbclass | 25 +-
meta/classes/insane.bbclass | 5 -
meta/classes/staging.bbclass | 14 -
meta/classes/utils.bbclass | 15 +-
meta/conf/distro/include/poky-default.inc | 2 +-
.../binutils-2.20.1/binutils-2.16.1-e300c2c3.patch | 18 -
.../binutils-2.20.1/binutils-libtool.patch | 67 -
.../binutils-2.20.1/binutils-mips-pie.patch | 29 -
.../binutils/binutils-2.20.1/binutils-poison.patch | 253 -
.../110-arm-eabi-conf.patch | 0
.../binutils-2.21/binutils-2.19.1-ld-sysroot.patch | 37 +
.../binutils/binutils-2.21/binutils-poison.patch | 245 +
.../binutils-uclibc-100-uclibc-conf.patch | 0
...binutils-uclibc-300-001_ld_makefile_patch.patch | 0
...binutils-uclibc-300-006_better_file_error.patch | 0
...ils-uclibc-300-012_check_ldrunpath_length.patch | 19 +-
.../binutils-uclibc-gas-needs-libm.patch | 0
.../binutils-x86_64_i386_biarch.patch | 0
.../libiberty_path_fix.patch | 0
.../binutils-2.21/libtool-2.4-update.patch |18719 ++++++++++++++++++++
.../binutils/binutils-2.21/libtool-rpath-fix.patch | 36 +
...n_2.20.1.bb => binutils-cross-canadian_2.21.bb} | 2 +-
...tils-cross_2.20.1.bb => binutils-cross_2.21.bb} | 1 -
...rosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} | 2 +-
.../{binutils_2.20.1.bb => binutils_2.21.bb} | 18 +-
meta/recipes-devtools/libtool/libtool-2.4.inc | 13 +
meta/recipes-devtools/libtool/libtool-cross_2.4.bb | 9 +-
.../recipes-devtools/libtool/libtool-native_2.4.bb | 11 +-
.../libtool/libtool-nativesdk_2.4.bb | 7 +-
meta/recipes-devtools/libtool/libtool.inc | 22 +-
.../libtool/libtool/cross_compile.patch | 38 -
.../libtool/libtool/fix-final-rpath.patch | 36 +
.../libtool/libtool/rename-with-sysroot.patch | 824 +
.../libtool/libtool/resolve-sysroot.patch | 40 +
.../libtool/libtool/use-sysroot-in-libpath.patch | 20 +
meta/recipes-devtools/libtool/libtool_2.4.bb | 31 +-
36 files changed, 20034 insertions(+), 524 deletions(-)
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-2.16.1-e300c2c3.patch
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-libtool.patch
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-mips-pie.patch
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/110-arm-eabi-conf.patch (100%)
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/binutils-2.19.1-ld-sysroot.patch
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/binutils-poison.patch
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-100-uclibc-conf.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-001_ld_makefile_patch.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-006_better_file_error.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-012_check_ldrunpath_length.patch (70%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-gas-needs-libm.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-x86_64_i386_biarch.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/libiberty_path_fix.patch (100%)
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/libtool-2.4-update.patch
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch
rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.20.1.bb => binutils-cross-canadian_2.21.bb} (86%)
rename meta/recipes-devtools/binutils/{binutils-cross_2.20.1.bb => binutils-cross_2.21.bb} (98%)
rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} (96%)
rename meta/recipes-devtools/binutils/{binutils_2.20.1.bb => binutils_2.21.bb} (75%)
create mode 100644 meta/recipes-devtools/libtool/libtool-2.4.inc
delete mode 100644 meta/recipes-devtools/libtool/libtool/cross_compile.patch
create mode 100644 meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
create mode 100644 meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch
create mode 100644 meta/recipes-devtools/libtool/libtool/resolve-sysroot.patch
create mode 100644 meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patchPATCH 1/12 libtool: Small cleanups of metadata
[based on sections of a patch by Scott Garman extracted by Richard]
--- .../recipes-devtools/libtool/libtool-native_2.4.bb | 2 -- meta/recipes-devtools/libtool/libtool.inc | 16 ++++++++++++---- meta/recipes-devtools/libtool/libtool_2.4.bb | 10 ---------- 3 files changed, 12 insertions(+), 16 deletions(-)
meta/recipes-devtools/libtool/libtool-native_2.4.bb +0 -2
@@ -21,5 +21,3 @@ do_install () { install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool } -SRC_URI[md5sum] = "b32b04148ecdd7344abc6fe8bd1bb021" -SRC_URI[sha256sum] = "13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e"
meta/recipes-devtools/libtool/libtool.inc +12 -4
@@ -1,14 +1,22 @@ 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." +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 " + file://libltdl/COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06" SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://trailingslash.patch \ file://prefix-manpage-fix.patch " +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 +} + +inherit autotools +EXTRA_AUTORECONF = "--exclude=libtoolize"
meta/recipes-devtools/libtool/libtool_2.4.bb +0 -10
@@ -9,16 +9,6 @@ FILES_libltdl = "${libdir}/libltdl.so.*" FILES_libltdl-dev = "${libdir}/libltdl.* ${includedir}/ltdl.h" FILES_libltdl-dbg = "${libdir}/.debug/" -inherit autotools - -EXTRA_AUTORECONF = "--exclude=libtoolize" - -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 -} - # # We want the results of libtool-cross preserved - don't stage anything ourselves. #
Signature · 1 line
1.7.1
PATCH 2/12 libtool: Move common version specific data to a common include file
In reply to Scott Garman--- meta/recipes-devtools/libtool/libtool-2.4.inc | 11 +++++++++++ meta/recipes-devtools/libtool/libtool-cross_2.4.bb | 4 +--- .../recipes-devtools/libtool/libtool-native_2.4.bb | 2 +- .../libtool/libtool-nativesdk_2.4.bb | 2 +- meta/recipes-devtools/libtool/libtool_2.4.bb | 19 ++++--------------- 5 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool-2.4.inc
meta/recipes-devtools/libtool/libtool-2.4.inc new file +11 -0
@@ -0,0 +1,11 @@ +require libtool.inc +DEPENDS = "libtool-native" + +PACKAGES =+ "libltdl libltdl-dev libltdl-dbg" +FILES_${PN} += "${datadir}/aclocal*" +FILES_libltdl = "${libdir}/libltdl.so.*" +FILES_libltdl-dev = "${libdir}/libltdl.* ${includedir}/ltdl.h" +FILES_libltdl-dbg = "${libdir}/.debug/" + +SRC_URI[md5sum] = "b32b04148ecdd7344abc6fe8bd1bb021" +SRC_URI[sha256sum] = "13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e"
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +1 -3
@@ -1,12 +1,10 @@ -require libtool_${PV}.bb +require libtool-${PV}.inc PR = "r0" PACKAGES = "" SRC_URI_append = " file://cross_compile.patch \ file://prefix.patch " -DEPENDS += "libtool-native" - do_configure_prepend () { # Remove any existing libtool m4 since old stale versions would break # any upgrade
meta/recipes-devtools/libtool/libtool-native_2.4.bb +1 -1
@@ -1,4 +1,4 @@ -require libtool_${PV}.bb +require libtool-${PV}.inc DEPENDS = ""
meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb +1 -1
@@ -1,4 +1,4 @@ -require libtool_${PV}.bb +require libtool-${PV}.inc PR = "r0" SRC_URI_append = " file://cross_compile.patch \
meta/recipes-devtools/libtool/libtool_2.4.bb +4 -15
@@ -1,26 +1,15 @@ -require libtool.inc -DEPENDS = "libtool-native" +require libtool-${PV}.inc PR = "r0" -PACKAGES =+ "libltdl libltdl-dev libltdl-dbg" -FILES_${PN} += "${datadir}/aclocal*" -FILES_libltdl = "${libdir}/libltdl.so.*" -FILES_libltdl-dev = "${libdir}/libltdl.* ${includedir}/ltdl.h" -FILES_libltdl-dbg = "${libdir}/.debug/" - # # We want the results of libtool-cross preserved - don't stage anything ourselves. # SYSROOT_PREPROCESS_FUNCS += "libtool_sysroot_preprocess" libtool_sysroot_preprocess () { - if [ "${PN}" == "libtool" ]; then - rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${bindir}/* - rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${datadir}/aclocal/* - rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${datadir}/libtool/config/* - fi + rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${bindir}/* + rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${datadir}/aclocal/* + rm -rf ${SYSROOT_DESTDIR}${STAGING_DIR_TARGET}${datadir}/libtool/config/* } -SRC_URI[md5sum] = "b32b04148ecdd7344abc6fe8bd1bb021" -SRC_URI[sha256sum] = "13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e"
Signature · 1 line
1.7.1
PATCH 3/12 libtool: Changes to enable sysroot support
In reply to Scott Garman* Added OE patches by Khem Raj which enable sysroot support and rename the command line option --with-sysroot to --with-libtool-sysroot to avoid conflicts with binutils and gcc
* Removed obsolete cross_compile.patch
* Changed SRC_URI_append to SRC_URI +=
* PR bump for all recipes
--- meta/recipes-devtools/libtool/libtool-2.4.inc | 2 + meta/recipes-devtools/libtool/libtool-cross_2.4.bb | 5 +- .../recipes-devtools/libtool/libtool-native_2.4.bb | 7 +- .../libtool/libtool-nativesdk_2.4.bb | 5 +- meta/recipes-devtools/libtool/libtool.inc | 5 +- .../libtool/libtool/cross_compile.patch | 38 - .../libtool/libtool/rename-with-sysroot.patch | 824 ++++++++++++++++++++ .../libtool/libtool/resolve-sysroot.patch | 40 + .../libtool/libtool/use-sysroot-in-libpath.patch | 20 + meta/recipes-devtools/libtool/libtool_2.4.bb | 2 +- 10 files changed, 899 insertions(+), 49 deletions(-) delete mode 100644 meta/recipes-devtools/libtool/libtool/cross_compile.patch create mode 100644 meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch create mode 100644 meta/recipes-devtools/libtool/libtool/resolve-sysroot.patch create mode 100644 meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch
meta/recipes-devtools/libtool/libtool-2.4.inc +2 -0
@@ -9,3 +9,5 @@ FILES_libltdl-dbg = "${libdir}/.debug/" SRC_URI[md5sum] = "b32b04148ecdd7344abc6fe8bd1bb021" SRC_URI[sha256sum] = "13df57ab63a94e196c5d6e95d64e53262834fe780d5e82c28f177f9f71ddf62e" + +EXTRA_OECONF = "--with-sysroot"
meta/recipes-devtools/libtool/libtool-cross_2.4.bb +2 -3
@@ -1,9 +1,8 @@ require libtool-${PV}.inc -PR = "r0" +PR = "r1" PACKAGES = "" -SRC_URI_append = " file://cross_compile.patch \ - file://prefix.patch " +SRC_URI += "file://prefix.patch" do_configure_prepend () { # Remove any existing libtool m4 since old stale versions would break
meta/recipes-devtools/libtool/libtool-native_2.4.bb +4 -3
@@ -2,12 +2,13 @@ require libtool-${PV}.inc DEPENDS = "" -PR = "r0" -SRC_URI_append = " file://cross_compile.patch \ - file://prefix.patch " +PR = "r1" +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
meta/recipes-devtools/libtool/libtool-nativesdk_2.4.bb +2 -3
@@ -1,8 +1,7 @@ require libtool-${PV}.inc -PR = "r0" -SRC_URI_append = " file://cross_compile.patch \ - file://prefix.patch " +PR = "r1" +SRC_URI += "file://prefix.patch" inherit nativesdk
meta/recipes-devtools/libtool/libtool.inc +4 -1
@@ -10,7 +10,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://trailingslash.patch \ - file://prefix-manpage-fix.patch " + file://prefix-manpage-fix.patch \ + file://rename-with-sysroot.patch \ + file://resolve-sysroot.patch \ + file://use-sysroot-in-libpath.patch" do_compile_prepend () { # Sometimes this file doesn't get rebuilt, force the issue
meta/recipes-devtools/libtool/libtool/cross_compile.patch deleted +0 -38
@@ -1,38 +0,0 @@ -Tweaks to make cross-compiling work combined and updated from various -older patches, some by Chris Larson. -Not upstreable in this form. - -RP - 01/05/2008 - -Index: libtool-2.4/libltdl/config/ltmain.m4sh -=================================================================== ---- libtool-2.4.orig/libltdl/config/ltmain.m4sh -+++ libtool-2.4/libltdl/config/ltmain.m4sh -@@ -6121,8 +6121,6 @@ func_mode_link () - add="$libdir/$linklib" - fi - else -- # We cannot seem to hardcode it, guess we'll fake it. -- add_dir="-L$libdir" - # Try looking first in the location we're being installed to. - if test -n "$inst_prefix_dir"; then - case $libdir in -@@ -6277,7 +6275,17 @@ func_mode_link () - fi - ;; - *) -- path="-L$absdir/$objdir" -+ # OE sets installed=no in staging. We need to look in $objdir and $absdir, -+ # preferring $objdir. RP 31/04/2008 -+ if test -f "$absdir/$objdir/$depdepl" ; then -+ depdepl="$absdir/$objdir/$depdepl" -+ path="-L$absdir/$objdir" -+ elif test -f "$absdir/$depdepl" ; then -+ depdepl="$absdir/$depdepl" -+ path="-L$absdir" -+ else -+ path="-L$absdir/$objdir" -+ fi - ;; - esac - else
meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch new file +824 -0
824 lines not on this page · raw message
meta/recipes-devtools/libtool/libtool/resolve-sysroot.patch new file +40 -0
@@ -0,0 +1,40 @@ +Sometimes .las have =/a/b/c.la in dependency_libs. This should be +resolved to sysroot. + +-Khem Raj <[email protected]> + +Index: libtool-2.4/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4/libltdl/config/ltmain.m4sh +@@ -8479,7 +8479,8 @@ EOF + *.la) + func_basename "$deplib" + name="$func_basename_result" +- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` ++ func_resolve_sysroot "$deplib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" +@@ -8505,7 +8506,9 @@ EOF + *.la) + func_basename "$lib" + name="$func_basename_result" +- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ func_resolve_sysroot "$lib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` ++ + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" +@@ -8524,7 +8527,8 @@ EOF + # the library: + func_basename "$lib" + name="$func_basename_result" +- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` ++ func_resolve_sysroot "$lib" ++ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch new file +20 -0
@@ -0,0 +1,20 @@ +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 <[email protected]> + +Index: libtool-2.4/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.orig/libltdl/config/ltmain.m4sh ++++ libtool-2.4/libltdl/config/ltmain.m4sh +@@ -6122,7 +6122,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
meta/recipes-devtools/libtool/libtool_2.4.bb +1 -1
@@ -1,6 +1,6 @@ require libtool-${PV}.inc -PR = "r0" +PR = "r1" # # We want the results of libtool-cross preserved - don't stage anything ourselves.
Signature · 1 line
1.7.1
PATCH 4/12 libtool: fix library RPATHs
In reply to Scott GarmanEnabling 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 <[email protected]>
--- meta/recipes-devtools/libtool/libtool.inc | 3 +- .../libtool/libtool/fix-final-rpath.patch | 36 ++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
meta/recipes-devtools/libtool/libtool.inc +2 -1
@@ -13,7 +13,8 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \ file://prefix-manpage-fix.patch \ file://rename-with-sysroot.patch \ file://resolve-sysroot.patch \ - file://use-sysroot-in-libpath.patch" + file://use-sysroot-in-libpath.patch \ + file://fix-final-rpath.patch" do_compile_prepend () { # Sometimes this file doesn't get rebuilt, force the issue
meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch new file +36 -0
@@ -0,0 +1,36 @@ +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 <[email protected]> +Signed-off-by: Scott Garman <[email protected]> + +Index: libtool-2.4/libltdl/config/ltmain.m4sh +=================================================================== +--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-01-13 14:10:14.580025108 +0000 ++++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-01-13 15:10:18.540025113 +0000 +@@ -7246,9 +7246,11 @@ + 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 +@@ -7981,6 +7983,10 @@ + 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"
Signature · 1 line
1.7.1
PATCH 5/12 autotools.bbclass: libtool sysroot support changes
In reply to Scott GarmanWe do not do it for native recipes, as the native compiler should fall back to a prefix of /usr and not solely depend on the sysroot. Otherwise we end up staging everything in the native sysroot before we start to build target recipes.
Also remove la mangling code, which is no longer necessary.
Commit derived from Khem Raj's OE commits.
--- meta/classes/autotools.bbclass | 25 +++++++++---------------- 1 files changed, 9 insertions(+), 16 deletions(-)
meta/classes/autotools.bbclass +9 -16
@@ -38,6 +38,12 @@ def autotools_set_crosscompiling(d): return " cross_compiling=yes" return "" +def append_libtool_sysroot(d): + # Only supply libtool sysroot option for non-native packages + if not bb.data.inherits_class('native', d): + return '--with-libtool-sysroot=${STAGING_DIR_HOST}' + return "" + # EXTRA_OECONF_append = "${@autotools_set_crosscompiling(d)}" CONFIGUREOPTS = " --build=${BUILD_SYS} \
@@ -56,14 +62,13 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \ --includedir=${includedir} \ --oldincludedir=${oldincludedir} \ --infodir=${infodir} \ - --mandir=${mandir}" + --mandir=${mandir} \ + ${@append_libtool_sysroot(d)}" oe_runconf () { if [ -x ${S}/configure ] ; then cfgcmd="${S}/configure \ - ${CONFIGUREOPTS} \ - ${EXTRA_OECONF} \ - $@" + ${CONFIGUREOPTS} ${EXTRA_OECONF} $@" oenote "Running $cfgcmd..." $cfgcmd || oefatal "oe_runconf failed" else
@@ -152,18 +157,6 @@ autotools_do_install() { oe_runmake 'DESTDIR=${D}' install } -PACKAGE_PREPROCESS_FUNCS += "autotools_prepackage_lamangler" - -autotools_prepackage_lamangler () { - for i in `find ${PKGD} -name "*.la"` ; do \ - sed -i -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ - -e 's:${D}::g;' \ - -e 's:-I${WORKDIR}\S*: :g;' \ - -e 's:-L${WORKDIR}\S*: :g;' \ - $i - done -} - autotools_stage_dir() { sysroot_stage_dir $1 $2 }
Signature · 1 line
1.7.1
PATCH 6/12 staging.bbclass, utils.bbclass: remove la mangling code
In reply to Scott Garmanlibtool v2.4 --with-libtool-sysroot eliminates the need for la mangling.
Based on Khem Raj's OE commits.
--- meta/classes/staging.bbclass | 14 -------------- meta/classes/utils.bbclass | 15 ++------------- 2 files changed, 2 insertions(+), 27 deletions(-)
meta/classes/staging.bbclass +0 -14
@@ -26,20 +26,6 @@ sysroot_stage_libdir() { dest="$2" sysroot_stage_dir $src $dest - - olddir=`pwd` - cd $dest - las=$(find . -name \*.la -type f) - cd $olddir - echo "Found la files: $las" - for i in $las - do - sed -e 's/^installed=yes$/installed=no/' \ - -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \ - -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \ - -e "/^dependency_libs=/s,\([[:space:]']\)${base_libdir},\1${STAGING_DIR_HOST}${base_libdir},g" \ - -i $dest/$i - done } sysroot_stage_dirs() {
meta/classes/utils.bbclass +2 -13
@@ -199,19 +199,8 @@ oe_libinstall() { __runcmd install -m 0644 $dota $destpath/ fi if [ -f "$dotlai" -a -n "$libtool" ]; then - if test -n "$staging_install" - then - # stop libtool using the final directory name for libraries - # in staging: - __runcmd rm -f $destpath/$libname.la - __runcmd sed -e 's/^installed=yes$/installed=no/' \ - -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \ - -e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \ - $dotlai >$destpath/$libname.la - else - rm -f $destpath/$libname.la - __runcmd install -m 0644 $dotlai $destpath/$libname.la - fi + rm -f $destpath/$libname.la + __runcmd install -m 0644 $dotlai $destpath/$libname.la fi for name in $library_names; do
Signature · 1 line
1.7.1
PATCH 7/12 insane.bbclass: skip checks on .la installed status
In reply to Scott GarmanEnabling libtool sysroot support triggers these errors but they are a valid change in behavior.
--- meta/classes/insane.bbclass | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-)
meta/classes/insane.bbclass +0 -5
@@ -427,11 +427,6 @@ def package_qa_check_staged(path,d): path = os.path.join(root,file) if file.endswith(".la"): file_content = open(path).read() - # Don't check installed status for native/cross packages - if not bb.data.inherits_class("native", d) and not bb.data.inherits_class("cross", d): - if installed in file_content: - error_msg = "%s failed sanity test (installed) in path %s" % (file,root) - sane = package_qa_handle_error(5, error_msg, "staging", path, d) if workdir in file_content: error_msg = "%s failed sanity test (workdir) in path %s" % (file,root) sane = package_qa_handle_error(8, error_msg, "staging", path, d)
Signature · 1 line
1.7.1
PATCH 8/12 binutils: upgrade to 2.21 and add libtool sysroot support
In reply to Scott Garman* Upgraded binutils to v2.21
* Incorporated libtool sysroot patches from OE
* Removed patches no longer needed or obsoleted by OE patches
---
.../binutils-2.20.1/binutils-2.16.1-e300c2c3.patch | 18 -
.../binutils-2.20.1/binutils-libtool.patch | 67 -
.../binutils-2.20.1/binutils-mips-pie.patch | 29 -
.../110-arm-eabi-conf.patch | 0
.../binutils-2.21/binutils-2.19.1-ld-sysroot.patch | 37 +
.../binutils-poison.patch | 0
.../binutils-uclibc-100-uclibc-conf.patch | 0
...binutils-uclibc-300-001_ld_makefile_patch.patch | 0
...binutils-uclibc-300-006_better_file_error.patch | 0
...ils-uclibc-300-012_check_ldrunpath_length.patch | 19 +-
.../binutils-uclibc-gas-needs-libm.patch | 0
.../binutils-x86_64_i386_biarch.patch | 0
.../libiberty_path_fix.patch | 0
.../binutils-2.21/libtool-2.4-update.patch |18675 ++++++++++++++++++++
...n_2.20.1.bb => binutils-cross-canadian_2.21.bb} | 2 +-
...tils-cross_2.20.1.bb => binutils-cross_2.21.bb} | 1 -
...rosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} | 2 +-
.../{binutils_2.20.1.bb => binutils_2.21.bb} | 20 +-
18 files changed, 18732 insertions(+), 138 deletions(-)
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-2.16.1-e300c2c3.patch
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-libtool.patch
delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-mips-pie.patch
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/110-arm-eabi-conf.patch (100%)
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/binutils-2.19.1-ld-sysroot.patch
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-poison.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-100-uclibc-conf.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-001_ld_makefile_patch.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-006_better_file_error.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-012_check_ldrunpath_length.patch (70%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-gas-needs-libm.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-x86_64_i386_biarch.patch (100%)
rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/libiberty_path_fix.patch (100%)
create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/libtool-2.4-update.patch
rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.20.1.bb => binutils-cross-canadian_2.21.bb} (86%)
rename meta/recipes-devtools/binutils/{binutils-cross_2.20.1.bb => binutils-cross_2.21.bb} (98%)
rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} (96%)
rename meta/recipes-devtools/binutils/{binutils_2.20.1.bb => binutils_2.21.bb} (72%)meta/recipes-devtools/binutils/binutils-2.20.1/binutils-2.16.1-e300c2c3.patch deleted +0 -18
@@ -1,18 +0,0 @@ -Adds support for Freescale Power architecture e300c2 and e300c3 cores. -http://www.bitshrine.org/gpp/tc-fsl-x86lnx-e300c3-nptl-4.0.2-2.src.rpm - -Leon Woestenberg <[email protected]> - -Index: binutils-2.19.51.0.3/opcodes/ppc-dis.c -=================================================================== ---- binutils-2.19.51.0.3.orig/opcodes/ppc-dis.c 2009-04-16 00:38:45.000000000 -0700 -+++ binutils-2.19.51.0.3/opcodes/ppc-dis.c 2009-04-16 00:43:56.000000000 -0700 -@@ -132,6 +132,8 @@ - | PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC - | PPC_OPCODE_VSX), - 0 }, -+ { "pmr", (PPC_OPCODE_PMR), -+ 0 }, - { "ppc", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32), - 0 }, - { "ppc32", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32),
meta/recipes-devtools/binutils/binutils-2.20.1/binutils-libtool.patch deleted +0 -67
67 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils-2.20.1/binutils-mips-pie.patch deleted +0 -29
@@ -1,29 +0,0 @@ -# "-fPIE" always triggers segmentation fault in ld.so.1 on mips platform, -# which was first saw on dbus-daemon. Below borrow the binutils fix from -# binutils bugzilla: -# -# http://sourceware.org/bugzilla/show_bug.cgi?id=10858 -# -# Its commit message says: -# * elfxx-mips.c (mips_elf_create_dynamic_relocation): Use section -# sym dynindx for relocs against defined syms in PIEs. -# -# It's in upstream CVS now (rev 1.267), but not in current release -# -# By Kevin Tian <[email protected]>, 2010-07-15 - -diff --git a/elfxx-mips.c b/elfxx-mips.c -index 3a1c8ba..f6c2c1c 100644 ---- binutils-2.20.1.orig/bfd/elfxx-mips.c -+++ binutils-2.20.1/bfd/elfxx-mips.c -@@ -5688,9 +5688,7 @@ mips_elf_create_dynamic_relocation (bfd *output_bfd, - - /* We must now calculate the dynamic symbol table index to use - in the relocation. */ -- if (h != NULL -- && (!h->root.def_regular -- || (info->shared && !info->symbolic && !h->root.forced_local))) -+ if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root)) - { - indx = h->root.dynindx; - if (SGI_COMPAT (output_bfd))
meta/recipes-devtools/binutils/binutils-2.21/110-arm-eabi-conf.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/110-arm-eabi-conf.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-2.19.1-ld-sysroot.patch new file +37 -0
@@ -0,0 +1,37 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=10340 + +Signed-off-by: Sven Rebhan <[email protected]> + +Always try to prepend the sysroot prefix to absolute filenames first. + +Index: binutils-2.21/ld/ldfile.c +=================================================================== +--- binutils-2.21.orig/ld/ldfile.c ++++ binutils-2.21/ld/ldfile.c +@@ -372,18 +372,24 @@ ldfile_open_file_search (const char *arc + directory first. */ + if (! entry->is_archive) + { +- if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename)) ++ /* For absolute pathnames, try to always open the file in the ++ sysroot first. If this fails, try to open the file at the ++ given location. */ ++ entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE); ++ if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted) + { + char *name = concat (ld_sysroot, entry->filename, + (const char *) NULL); + if (ldfile_try_open_bfd (name, entry)) + { + entry->filename = name; ++ entry->sysrooted = TRUE; + return TRUE; + } + free (name); + } +- else if (ldfile_try_open_bfd (entry->filename, entry)) ++ ++ if (ldfile_try_open_bfd (entry->filename, entry)) + { + entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename) + && is_sysrooted_pathname (entry->filename, TRUE);
meta/recipes-devtools/binutils/binutils-2.21/binutils-poison.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-uclibc-100-uclibc-conf.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-uclibc-100-uclibc-conf.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-uclibc-300-001_ld_makefile_patch.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-uclibc-300-001_ld_makefile_patch.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-uclibc-300-006_better_file_error.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-uclibc-300-006_better_file_error.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-uclibc-300-012_check_ldrunpath_length.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-uclibc-300-012_check_ldrunpath_length.patch +10 -9
@@ -24,10 +24,11 @@ esac exit 0 @DPATCH@ -diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em ---- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100 -+++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100 -@@ -692,6 +692,8 @@ +Index: src/ld/emultempl/elf32.em +=================================================================== +--- src.orig/ld/emultempl/elf32.em 2009-09-23 06:54:28.000000000 -0700 ++++ src/ld/emultempl/elf32.em 2009-10-06 10:58:16.883414592 -0700 +@@ -1237,6 +1237,8 @@ fragment <<EOF && command_line.rpath == NULL) { lib_path = (const char *) getenv ("LD_RUN_PATH");
@@ -36,12 +37,12 @@ diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/ if (gld${EMULATION_NAME}_search_needed (lib_path, &n, force)) break; -@@ -871,6 +873,8 @@ +@@ -1463,6 +1465,8 @@ gld${EMULATION_NAME}_before_allocation ( rpath = command_line.rpath; if (rpath == NULL) rpath = (const char *) getenv ("LD_RUN_PATH"); + if ((rpath) && (strlen (rpath) == 0)) -+ rpath = NULL; - if (! (bfd_elf_size_dynamic_sections - (output_bfd, command_line.soname, rpath, - command_line.filter_shlib, ++ rpath = NULL; + + for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next) + {
meta/recipes-devtools/binutils/binutils-2.21/binutils-uclibc-gas-needs-libm.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-uclibc-gas-needs-libm.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/binutils-x86_64_i386_biarch.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/binutils-x86_64_i386_biarch.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/libiberty_path_fix.patch renamed from meta/recipes-devtools/binutils/binutils-2.20.1/libiberty_path_fix.patch +0 -0
meta/recipes-devtools/binutils/binutils-2.21/libtool-2.4-update.patch new file +18675 -0
2,817 lines not on this page · raw message
meta/recipes-devtools/binutils/binutils-cross-canadian_2.21.bb renamed from meta/recipes-devtools/binutils/binutils-cross-canadian_2.20.1.bb +1 -1
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/binutils/binutils-cross_2.21.bb renamed from meta/recipes-devtools/binutils/binutils-cross_2.20.1.bb +0 -1
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/binutils/binutils-crosssdk_2.21.bb renamed from meta/recipes-devtools/binutils/binutils-crosssdk_2.20.1.bb +1 -1
Lines of this file are not shown. View the raw message.
meta/recipes-devtools/binutils/binutils_2.21.bb renamed from meta/recipes-devtools/binutils/binutils_2.20.1.bb +8 -12
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Signature · 1 line
1.7.1
Part of the diff is not shown here. View the raw message.
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
Op 20 jan 2011, om 01:39 heeft Scott Garman het volgende geschreven:
Quoted 5 lines
* Upgraded binutils to v2.21
* Incorporated libtool sysroot patches from OE
* Removed patches no longer needed or obsoleted by OE patchesSigned-off-by Scott Garman <[email protected]>
Hmmm. This patch seriers creates a lot of headaches for the angstrom layer for several reasons:
1) it removes a pinned binutils version and 2 days are not enough to test such a vital component
2) at the same time it introduces other changes like the libtool sysroot changes
3) on armv7a you can't use the smc instruction anymore without using special ASFLAGS, so the TI BSP overlay doesn't build anymore
4) With my TI hat on: changing toolchains is fairly traumatic, especially binutils. Getting our software ready for 2.20 with the changed linkerscript behaviour already cost me a few months to integrate into OE and still isn't 100% there. And that is with the TI SB folks having already fixed 90% of the problems in recent releases of their components. Imagine doing that "on your own" if your component teams don't have fixes already.
I'm a bit concerned how fast these changed get applied to the repository, especially with so little discussion.
Since incremental builds broke as well I had 2 choices to fix angstrom:
1) remove pseudone, sstate-cache, tmp, rebuild and hope for the best
2) remove pseudone, sstate-cache, tmp, import binutils 2.20.1 into the meta-oe layer, backport changes from the 2.21.0 recipes, rebuild and hope for the best.
I decided to go with option one, which broke because the TI 2.6.32 kernel tries to use secure mode for omap3 and breaks with
Error: selected processor does not support ARM mode `smc #0'
To fix that I can change the ASFLAGS to have '-march=armv7-a+sec' or add '.arch_extension sec' to the .S files, but I was cranky allready due to low blood sugar. After eating a cookie and having some coffee, I decided to go with option 2), which is now running through a build cycle.
After the caffeine and the sugar wore off, I was venting my annoyance to Philip Balister and he said:
"Send a polite email to the yoctopus pointing this out, they need to learn these sorts of things. As they acquire users, more of these things will occur."
So here it is :) Having said all that, binutils 2.21 is neat, since it adds TMS320C6000 support, but that's a different (uclinux involving) story.
I'm not sure what to suggest to improve this situation, since moving forward is an important part of any buildsystem, but it shouldn't be the most important one. I have a few concrete suggestions, though:
1) keep binutils N-1, just like you keep gcc N-1
2) Be more communicative about these changes, I didn't parse "upgrade to 2.21" as "remove 2.20.1 while I'm at it"
3) work out an agreement with "3rd parties" who have layers with version pinnings on what to do. I'm saying that yocto should keep all pinned versions, but checking layers and sending a heads up would be a good start. Ideally people who want to keep N-1 agree to help with 'backporting' fixes from version N to N-1 to lessen the support burden.
Binutils is especially nasty, the previous angstrom release used 4 different binutils: one from armv7a, one for the other arms, one for ppc603e and one for avr32. We didn't have skilled binutils hackers who could port fixes from one release into the other to get at least one version for arm or try to forward port the atmel patches for avr32.
Provided my updated 2.20.1 recipes work, can the go "back" into the core layer if I keep them working till angstrom switches to a newer version? This layer thing has the potential to turn into a huge silo mentality (I couldn't find a direct translation for the dutch phrasing, but according to the interwebs this comes close enough), which isn't a good thing in my book.
If this comes accross as too cranky, my apologies, I do need another cookie, I'm not used to writing long emails right before dinner :)
regards,
Koen
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
Op 22 jan 2011, om 17:52 heeft Koen Kooi het volgende geschreven:
Quoted 1 line
Provided my updated 2.20.1 recipes work, can the go "back" into the core layer if I keep them working till angstrom switches to a newer version?
console-image built fine, so should I send a patch to add it back?
regards,
Koen
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
In reply to Koen KooiQuoted 48 lines · Koen Kooi
Op 20 jan 2011, om 01:39 heeft Scott Garman het volgende geschreven:
Quoted 5 lines
* Upgraded binutils to v2.21
* Incorporated libtool sysroot patches from OE
* Removed patches no longer needed or obsoleted by OE patchesSigned-off-by Scott Garman <[email protected]>Hmmm. This patch seriers creates a lot of headaches for the angstrom layer for several reasons:
1) it removes a pinned binutils version and 2 days are not enough to test such a vital component
2) at the same time it introduces other changes like the libtool sysroot changes
3) on armv7a you can't use the smc instruction anymore without using special ASFLAGS, so the TI BSP overlay doesn't build anymore
4) With my TI hat on: changing toolchains is fairly traumatic, especially binutils. Getting our software ready for 2.20 with the changed linkerscript behaviour already cost me a few months to integrate into OE and still isn't 100% there. And that is with the TI SB folks having already fixed 90% of the problems in recent releases of their components. Imagine doing that "on your own" if your component teams don't have fixes already.I'm a bit concerned how fast these changed get applied to the repository, especially with so little discussion.
Since incremental builds broke as well I had 2 choices to fix angstrom:
1) remove pseudone, sstate-cache, tmp, rebuild and hope for the best
2) remove pseudone, sstate-cache, tmp, import binutils 2.20.1 into the meta-oe layer, backport changes from the 2.21.0 recipes, rebuild and hope for the best.
I decided to go with option one, which broke because the TI 2.6.32 kernel tries to use secure mode for omap3 and breaks with
Error: selected processor does not support ARM mode `smc #0'
To fix that I can change the ASFLAGS to have '-march=armv7-a+sec' or add '.arch_extension sec' to the .S files, but I was cranky allready due to low blood sugar. After eating a cookie and having some coffee, I decided to go with option 2), which is now running through a build cycle.
Quoted 6 lines
After the caffeine and the sugar wore off, I was venting my annoyance to Philip Balister and he said:
"Send a polite email to the yoctopus pointing this out, they need to
learn these sorts of things. As they acquire users, more of these things will occur."
We do need to establish an understanding of how to handle this, yes.
Quoted 31 lines
So here it is :) Having said all that, binutils 2.21 is neat, since it adds TMS320C6000 support, but that's a different (uclinux involving) story.
I'm not sure what to suggest to improve this situation, since moving forward is an important part of any buildsystem, but it shouldn't be the most important one. I have a few concrete suggestions, though:
1) keep binutils N-1, just like you keep gcc N-1
2) Be more communicative about these changes, I didn't parse "upgrade to 2.21" as "remove 2.20.1 while I'm at it"
3) work out an agreement with "3rd parties" who have layers with version pinnings on what to do. I'm saying that yocto should keep all pinned versions, but checking layers and sending a heads up would be a good start. Ideally people who want to keep N-1 agree to help with 'backporting' fixes from version N to N-1 to lessen the support burden.Binutils is especially nasty, the previous angstrom release used 4 different binutils: one from armv7a, one for the other arms, one for ppc603e and one for avr32. We didn't have skilled binutils hackers who could port fixes from one release into the other to get at least one version for arm or try to forward port the atmel patches for avr32.
Provided my updated 2.20.1 recipes work, can the go "back" into the core layer if I keep them working till angstrom switches to a newer version? This layer thing has the potential to turn into a huge silo mentality (I couldn't find a direct translation for the dutch phrasing, but according to the interwebs this comes close enough), which isn't a good thing in my book.
Quoted 2 lines
If this comes accross as too cranky, my apologies, I do need another cookie, I'm not used to writing long emails right before dinner :)
Firstly, I'm sorry this change caused pain. I was under the impressive binutils was a little more stable these days but I guess I have that wrong. Certainly my past few experiences of upgrading it were a lot better than the bad old days but I guess I was lucky.
Requiring Yocto to check some set of other layers and figure out which versions of a given package they're using isn't going to be particularly easy to do and it doesn't cover those with private layers either. It also doesn't help understand whether a given layer can or can't upgrade.
One cornerstone principle of Yocto is to provide a consistent set of high quality metadata known to build over 4 architectures and pass the test cases we have. Having N and N-1 versions of everything would imply we'd test the N and the N-1 versions which we don't have the resources for. I also seriously doubt we'd be able to keep it to N and N-1 since there would be requests for N-2 which would be needed by some other user, another would need N-3 and before you know it, we end up with many versions.
The trouble appears to be people expecting the behaviour of stable branch whilst also wanting the latest and greatest when its convenient to them. I know Koen appreciates the differences more than most but a lot of people don't recognise these are two competing goals.
Yocto is going to go through some pretty defined cycles, at times active development and aggressively moving forward on versions and features, at other times stabilising and releasing. Directly working off master during a development window is going to have drawbacks as you're observing. I can imagine a model where people work off the last stable release, they then around the stabilisation time period look at updating to the new "core". If pinned versions disappeared, they'd migrate them into their layer if the needed them. We could even write tools to handle that.
I don't think this is a clear cut issue, I suspect the answer may involve layer handling tooling we don't currently have to allow "upgraded" versions to be preserved/restored in layers that need them. This is definitely a discussion we need to have though.
Cheers,
Richard
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
2011/1/23 Richard Purdie <[email protected]>:
Quoted 126 lines · Koen Kooi
Quoted 48 lines
Op 20 jan 2011, om 01:39 heeft Scott Garman het volgende geschreven:
Quoted 5 lines
* Upgraded binutils to v2.21
* Incorporated libtool sysroot patches from OE
* Removed patches no longer needed or obsoleted by OE patchesSigned-off-by Scott Garman <[email protected]>Hmmm. This patch seriers creates a lot of headaches for the angstrom layer for several reasons:
1) it removes a pinned binutils version and 2 days are not enough to test such a vital component
2) at the same time it introduces other changes like the libtool sysroot changes
3) on armv7a you can't use the smc instruction anymore without using special ASFLAGS, so the TI BSP overlay doesn't build anymore
4) With my TI hat on: changing toolchains is fairly traumatic, especially binutils. Getting our software ready for 2.20 with the changed linkerscript behaviour already cost me a few months to integrate into OE and still isn't 100% there. And that is with the TI SB folks having already fixed 90% of the problems in recent releases of their components. Imagine doing that "on your own" if your component teams don't have fixes already.I'm a bit concerned how fast these changed get applied to the repository, especially with so little discussion.
Since incremental builds broke as well I had 2 choices to fix angstrom:
1) remove pseudone, sstate-cache, tmp, rebuild and hope for the best
2) remove pseudone, sstate-cache, tmp, import binutils 2.20.1 into the meta-oe layer, backport changes from the 2.21.0 recipes, rebuild and hope for the best.
I decided to go with option one, which broke because the TI 2.6.32 kernel tries to use secure mode for omap3 and breaks with
Error: selected processor does not support ARM mode `smc #0'
To fix that I can change the ASFLAGS to have '-march=armv7-a+sec' or add '.arch_extension sec' to the .S files, but I was cranky allready due to low blood sugar. After eating a cookie and having some coffee, I decided to go with option 2), which is now running through a build cycle.
Quoted 6 lines
After the caffeine and the sugar wore off, I was venting my annoyance to Philip Balister and he said:
"Send a polite email to the yoctopus pointing this out, they need to learn these sorts of things. As they acquire users, more of these things will occur."
We do need to establish an understanding of how to handle this, yes.
Quoted 31 lines
So here it is :) Having said all that, binutils 2.21 is neat, since it adds TMS320C6000 support, but that's a different (uclinux involving) story.
I'm not sure what to suggest to improve this situation, since moving forward is an important part of any buildsystem, but it shouldn't be the most important one. I have a few concrete suggestions, though:
1) keep binutils N-1, just like you keep gcc N-1
2) Be more communicative about these changes, I didn't parse "upgrade to 2.21" as "remove 2.20.1 while I'm at it"
3) work out an agreement with "3rd parties" who have layers with version pinnings on what to do. I'm saying that yocto should keep all pinned versions, but checking layers and sending a heads up would be a good start. Ideally people who want to keep N-1 agree to help with 'backporting' fixes from version N to N-1 to lessen the support burden.Binutils is especially nasty, the previous angstrom release used 4 different binutils: one from armv7a, one for the other arms, one for ppc603e and one for avr32. We didn't have skilled binutils hackers who could port fixes from one release into the other to get at least one version for arm or try to forward port the atmel patches for avr32.
Provided my updated 2.20.1 recipes work, can the go "back" into the core layer if I keep them working till angstrom switches to a newer version? This layer thing has the potential to turn into a huge silo mentality (I couldn't find a direct translation for the dutch phrasing, but according to the interwebs this comes close enough), which isn't a good thing in my book.
Quoted 2 lines
If this comes accross as too cranky, my apologies, I do need another cookie, I'm not used to writing long emails right before dinner :)
Firstly, I'm sorry this change caused pain. I was under the impressive binutils was a little more stable these days but I guess I have that wrong. Certainly my past few experiences of upgrading it were a lot better than the bad old days but I guess I was lucky.
Requiring Yocto to check some set of other layers and figure out which versions of a given package they're using isn't going to be particularly easy to do and it doesn't cover those with private layers either. It also doesn't help understand whether a given layer can or can't upgrade.
One cornerstone principle of Yocto is to provide a consistent set of high quality metadata known to build over 4 architectures and pass the test cases we have. Having N and N-1 versions of everything would imply we'd test the N and the N-1 versions which we don't have the resources for. I also seriously doubt we'd be able to keep it to N and N-1 since there would be requests for N-2 which would be needed by some other user, another would need N-3 and before you know it, we end up with many versions.
The trouble appears to be people expecting the behaviour of stable branch whilst also wanting the latest and greatest when its convenient to them. I know Koen appreciates the differences more than most but a lot of people don't recognise these are two competing goals.
Yocto is going to go through some pretty defined cycles, at times active development and aggressively moving forward on versions and features, at other times stabilising and releasing. Directly working off master during a development window is going to have drawbacks as you're observing. I can imagine a model where people work off the last stable release, they then around the stabilisation time period look at updating to the new "core". If pinned versions disappeared, they'd migrate them into their layer if the needed them. We could even write tools to handle that.
Quoted 8 lines
I don't think this is a clear cut issue, I suspect the answer may involve layer handling tooling we don't currently have to allow "upgraded" versions to be preserved/restored in layers that need them. This is definitely a discussion we need to have though.
Cheers,
Richard
Richard, I understand and agree with your reasoning (so I won't ask you to support binutils 2.17.50.0..12, which is the latest binutils version that supports nios2).
Also testing-wise having multiple versions become a combinatioral nightmare.
Then again I feel it would help if
- toolchain upgrades were announced some time in advance
- there would be a policy to keep the last version around for say a month, after adding a new version.(for toolchain and maybe some other key recipes, not as a default rule).
The latter would allow testing to be done on the newest version while giving out-of-yocto layers some time to adapt to the latest version without having to go through the hassle of fetching the old version back, putting it in a private layer etc.
Of course a release would go with only one version.
Keep up the good work! Frans
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
In reply to Richard PurdieOp 23 jan 2011, om 01:51 heeft Richard Purdie het volgende geschreven:
Quoted 97 lines · Koen Kooi
Quoted 48 lines
Op 20 jan 2011, om 01:39 heeft Scott Garman het volgende geschreven:
Quoted 5 lines
* Upgraded binutils to v2.21
* Incorporated libtool sysroot patches from OE
* Removed patches no longer needed or obsoleted by OE patchesSigned-off-by Scott Garman <[email protected]>Hmmm. This patch seriers creates a lot of headaches for the angstrom layer for several reasons:
1) it removes a pinned binutils version and 2 days are not enough to test such a vital component
2) at the same time it introduces other changes like the libtool sysroot changes
3) on armv7a you can't use the smc instruction anymore without using special ASFLAGS, so the TI BSP overlay doesn't build anymore
4) With my TI hat on: changing toolchains is fairly traumatic, especially binutils. Getting our software ready for 2.20 with the changed linkerscript behaviour already cost me a few months to integrate into OE and still isn't 100% there. And that is with the TI SB folks having already fixed 90% of the problems in recent releases of their components. Imagine doing that "on your own" if your component teams don't have fixes already.I'm a bit concerned how fast these changed get applied to the repository, especially with so little discussion.
Since incremental builds broke as well I had 2 choices to fix angstrom:
1) remove pseudone, sstate-cache, tmp, rebuild and hope for the best
2) remove pseudone, sstate-cache, tmp, import binutils 2.20.1 into the meta-oe layer, backport changes from the 2.21.0 recipes, rebuild and hope for the best.
I decided to go with option one, which broke because the TI 2.6.32 kernel tries to use secure mode for omap3 and breaks with
Error: selected processor does not support ARM mode `smc #0'
To fix that I can change the ASFLAGS to have '-march=armv7-a+sec' or add '.arch_extension sec' to the .S files, but I was cranky allready due to low blood sugar. After eating a cookie and having some coffee, I decided to go with option 2), which is now running through a build cycle.
Quoted 6 lines
After the caffeine and the sugar wore off, I was venting my annoyance to Philip Balister and he said:
"Send a polite email to the yoctopus pointing this out, they need to learn these sorts of things. As they acquire users, more of these things will occur."
We do need to establish an understanding of how to handle this, yes.
Quoted 31 lines
So here it is :) Having said all that, binutils 2.21 is neat, since it adds TMS320C6000 support, but that's a different (uclinux involving) story.
I'm not sure what to suggest to improve this situation, since moving forward is an important part of any buildsystem, but it shouldn't be the most important one. I have a few concrete suggestions, though:
1) keep binutils N-1, just like you keep gcc N-1
2) Be more communicative about these changes, I didn't parse "upgrade to 2.21" as "remove 2.20.1 while I'm at it"
3) work out an agreement with "3rd parties" who have layers with version pinnings on what to do. I'm saying that yocto should keep all pinned versions, but checking layers and sending a heads up would be a good start. Ideally people who want to keep N-1 agree to help with 'backporting' fixes from version N to N-1 to lessen the support burden.Binutils is especially nasty, the previous angstrom release used 4 different binutils: one from armv7a, one for the other arms, one for ppc603e and one for avr32. We didn't have skilled binutils hackers who could port fixes from one release into the other to get at least one version for arm or try to forward port the atmel patches for avr32.
Provided my updated 2.20.1 recipes work, can the go "back" into the core layer if I keep them working till angstrom switches to a newer version? This layer thing has the potential to turn into a huge silo mentality (I couldn't find a direct translation for the dutch phrasing, but according to the interwebs this comes close enough), which isn't a good thing in my book.
Quoted 2 lines
If this comes accross as too cranky, my apologies, I do need another cookie, I'm not used to writing long emails right before dinner :)
Firstly, I'm sorry this change caused pain. I was under the impressive binutils was a little more stable these days but I guess I have that wrong. Certainly my past few experiences of upgrading it were a lot better than the bad old days but I guess I was lucky.
Quoted 4 lines
Requiring Yocto to check some set of other layers and figure out which versions of a given package they're using isn't going to be particularly easy to do and it doesn't cover those with private layers either. It also doesn't help understand whether a given layer can or can't upgrade.
Yocto doesn't exist in a vacuum, so completely ignoring other peoples layers isn't good way to proceed. That doesn't mean you need to hand-hold everyone and their dog, but posting "binutils 2.20.x will be gone in 7 days" to the list would help a lot. In this case the final version of this patchset was posted to the list and without warning or reply it got pushed to master 2 days later. I'm closely following development, but I am not telepathic :)
Quoted 3 lines
One cornerstone principle of Yocto is to provide a consistent set of high quality metadata known to build over 4 architectures and pass the test cases we have.
I think you're currently closer to "4 machines covering 4 archs" than "4 archs", since armv7a stops working with the security extension change with certain kernels and other lowlevel asm.
Quoted 6 lines
Having N and N-1 versions of everything would imply
we'd test the N and the N-1 versions which we don't have the resources for. I also seriously doubt we'd be able to keep it to N and N-1 since there would be requests for N-2 which would be needed by some other user, another would need N-3 and before you know it, we end up with many versions.
Slippery slope, I know. But "high quality metadata" doesn't mean anything when it suddenly stops working for people. 'Suddenly' being the operative word in this case. And I'm not saying keeping 2 versions of everything, but binutils and gcc would sure be good candidates.
Quoted 5 lines
The trouble appears to be people expecting the behaviour of stable branch whilst also wanting the latest and greatest when its convenient to them. I know Koen appreciates the differences more than most but a lot of people don't recognise these are two competing goals.
Quoted 9 lines
Yocto is going to go through some pretty defined cycles, at times active development and aggressively moving forward on versions and features, at other times stabilising and releasing. Directly working off master during a development window is going to have drawbacks as you're observing. I can imagine a model where people work off the last stable release, they then around the stabilisation time period look at updating to the new "core". If pinned versions disappeared, they'd migrate them into their layer if the needed them. We could even write tools to handle that.
To make this easier, patches shouldn't mix behaviour changes and upgrades, that makes it real hard to migrate old versions to layers. In this case I got lucky because OE already had the needed patches for 2.20.1, but that won't be the case for everything.
Quoted 4 lines
I don't think this is a clear cut issue, I suspect the answer may involve layer handling tooling we don't currently have to allow "upgraded" versions to be preserved/restored in layers that need them. This is definitely a discussion we need to have though.
The easiest way out is to split those 'upgrade' commits into 2, the first adds the new version, the second deletes the old one. They can be spaced a few days apart to allow testing and have an easier way for people to compare behaviour.
regards,
Koen
Re: [PATCH 08/12] binutils: upgrade to 2.21 and add libtool sysroot support
Quoted 8 lines · Koen Kooi
Op 23 jan 2011, om 01:51 heeft Richard Purdie het volgende geschreven:
Quoted 7 lines · Koen Kooi
Firstly, I'm sorry this change caused pain. I was under the impressive binutils was a little more stable these days but I guess I have that wrong. Certainly my past few experiences of upgrading it were a lot better than the bad old days but I guess I was lucky.
Quoted 7 lines
Quoted 4 lines
Requiring Yocto to check some set of other layers and figure out which versions of a given package they're using isn't going to be particularly easy to do and it doesn't cover those with private layers either. It also doesn't help understand whether a given layer can or can't upgrade.
Yocto doesn't exist in a vacuum, so completely ignoring other peoples layers isn't good way to proceed.
Which is why nowhere did I suggest this and we're still exchanging emails ;-).
Quoted 3 lines
That doesn't mean you need to hand-hold everyone and their dog, but
posting "binutils 2.20.x will be gone in 7 days" to the list would help a lot.
What I'd like to do is try and find a way to whereby Yocto can get the information it needs, and/or get people using it the information about whats changing better. It sounds like getting this on the mailing list clearly and waiting a while for feedback would be desired. This part of the solution is straightforward and I hope Saul+team are taking notes! :) The only question is which components this applies to? All versions or just "core" components like binutils/gcc/libtool and then for minor version increments or major ones?
At the back of my mind I'm also wondering if we can automate collection of "pinned" versions somehow, maybe by standardising on a location/naming of .inc file and then scripting something to collect data.
What I'm trying to do here is work out what information people need to share, then make it as simple as possible for everyone to have access to that information as I think this is primarily an information problem.
Quoted 3 lines
In this case the final version of this patchset was posted to the list and without warning or reply it got pushed to master 2 days later. I'm closely following development, but I am not telepathic :)
We need to improve this, we've just got a little eager and the development phase is drawing to an end, sorry. I will also warn there are a few more invasive patches likely to merge this week to do with the toolchain bootstrap process, the bitbake fetchers and machine specific sysroots (but not toolchain versions changes).
Quoted 7 lines
Quoted 3 lines
One cornerstone principle of Yocto is to provide a consistent set of high quality metadata known to build over 4 architectures and pass the test cases we have.
I think you're currently closer to "4 machines covering 4 archs" than "4 archs", since armv7a stops working with the security extension change with certain kernels and other lowlevel asm.
The indication here is that we should perhaps make qemuarm a v7 type machine since those are more likely to break than the stabilised older versions?
Quoted 11 lines
Quoted 6 lines
Having N and N-1 versions of everything would imply
we'd test the N and the N-1 versions which we don't have the resources for. I also seriously doubt we'd be able to keep it to N and N-1 since there would be requests for N-2 which would be needed by some other user, another would need N-3 and before you know it, we end up with many versions.Slippery slope, I know. But "high quality metadata" doesn't mean anything when it suddenly stops working for people. 'Suddenly' being the operative word in this case. And I'm not saying keeping 2 versions of everything, but binutils and gcc would sure be good candidates.
I'd like to try and work out a process for handling this kind of problem, its that process question which worries me a lot more tbh.
Quoted 15 lines
Quoted 5 lines
The trouble appears to be people expecting the behaviour of stable branch whilst also wanting the latest and greatest when its convenient to them. I know Koen appreciates the differences more than most but a lot of people don't recognise these are two competing goals.
Quoted 9 lines
Yocto is going to go through some pretty defined cycles, at times active development and aggressively moving forward on versions and features, at other times stabilising and releasing. Directly working off master during a development window is going to have drawbacks as you're observing. I can imagine a model where people work off the last stable release, they then around the stabilisation time period look at updating to the new "core". If pinned versions disappeared, they'd migrate them into their layer if the needed them. We could even write tools to handle that.
Quoted 4 lines
To make this easier, patches shouldn't mix behaviour changes and upgrades, that makes it real hard to migrate old versions to layers. In this case I got lucky because OE already had the needed patches for 2.20.1, but that won't be the case for everything.
Agreed, I was partially under the impression that we needed binutils as updating the older one to the latest libtool was painful but that doesn't appear to be the case. We'll separate that out in future.
As it happens, using binutils 2.21 is needed for the gcc version and patches in Poky as there is an issue with dso linking that version resolves.
Quoted 9 lines
Quoted 4 lines
I don't think this is a clear cut issue, I suspect the answer may involve layer handling tooling we don't currently have to allow "upgraded" versions to be preserved/restored in layers that need them. This is definitely a discussion we need to have though.
The easiest way out is to split those 'upgrade' commits into 2, the first adds the new version, the second deletes the old one. They can be spaced a few days apart to allow testing and have an easier way for people to compare behaviour.
So we have binutils and gcc as cases where we need this, what others?
Cheers,
Richard
PATCH 9/12 binutils: forward-port the binutils-poison.patch
In reply to Scott GarmanUpdate the binutils-poison.patch to apply cleanly on binutils 2.21
--- .../binutils/binutils-2.21/binutils-poison.patch | 314 ++++++++++---------- meta/recipes-devtools/binutils/binutils_2.21.bb | 3 +- 2 files changed, 154 insertions(+), 163 deletions(-)
meta/recipes-devtools/binutils/binutils-2.21/binutils-poison.patch +153 -161
@@ -1,57 +1,58 @@ -This patch is recived from Mark Hatle +Patch originally created by Mark Hatle, forward-ported to +binutils 2.21 by Scott Garman. purpose: warn for uses of system directories when cross linking -Signed-Off-By: Mark Hatle <[email protected]> - Code Merged from Sourcery G++ binutils 2.19 - 4.4-277 2008-07-02 Joseph Myers <[email protected]> - ld/ - * ld.h (args_type): Add error_poison_system_directories. - * ld.texinfo (--error-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.error_poison_system_directories. - * ldmain.c (main): Initialize - command_line.error_poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --error-poison-system-directories. - (parse_args): Handle new option. + ld/ + * ld.h (args_type): Add error_poison_system_directories. + * ld.texinfo (--error-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.error_poison_system_directories. + * ldmain.c (main): Initialize + command_line.error_poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --error-poison-system-directories. + (parse_args): Handle new option. 2007-06-13 Joseph Myers <[email protected]> - ld/ - * config.in: Regenerate. - * ld.h (args_type): Add poison_system_directories. - * ld.texinfo (--no-poison-system-directories): Document. - * ldfile.c (ldfile_add_library_path): Check - command_line.poison_system_directories. - * ldmain.c (main): Initialize - command_line.poison_system_directories. - * lexsup.c (enum option_values): Add - OPTION_NO_POISON_SYSTEM_DIRECTORIES. - (ld_options): Add --no-poison-system-directories. - (parse_args): Handle new option. + ld/ + * config.in: Regenerate. + * ld.h (args_type): Add poison_system_directories. + * ld.texinfo (--no-poison-system-directories): Document. + * ldfile.c (ldfile_add_library_path): Check + command_line.poison_system_directories. + * ldmain.c (main): Initialize + command_line.poison_system_directories. + * lexsup.c (enum option_values): Add + OPTION_NO_POISON_SYSTEM_DIRECTORIES. + (ld_options): Add --no-poison-system-directories. + (parse_args): Handle new option. 2007-04-20 Joseph Myers <[email protected]> - Merge from Sourcery G++ binutils 2.17: + Merge from Sourcery G++ binutils 2.17: + + 2007-03-20 Joseph Myers <[email protected]> + Based on patch by Mark Hatle <[email protected]>. + ld/ + * configure.in (--enable-poison-system-directories): New option. + * configure, config.in: Regenerate. + * ldfile.c (ldfile_add_library_path): If + ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, + /usr/lib, /usr/local/lib or /usr/X11R6/lib. - 2007-03-20 Joseph Myers <[email protected]> - Based on patch by Mark Hatle <[email protected]>. - ld/ - * configure.in (--enable-poison-system-directories): New option. - * configure, config.in: Regenerate. - * ldfile.c (ldfile_add_library_path): If - ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib, - /usr/lib, /usr/local/lib or /usr/X11R6/lib. +Signed-off-by: Mark Hatle <[email protected]> +Signed-off-by: Scott Garman <[email protected]> -Index: binutils-2.20.1/ld/config.in -=================================================================== ---- binutils-2.20.1.orig/ld/config.in -+++ binutils-2.20.1/ld/config.in +diff -urN binutils-2.21.orig//ld/config.in binutils-2.21/ld/config.in +--- binutils-2.21.orig//ld/config.in 2010-11-05 03:34:27.000000000 -0700 ++++ binutils-2.21/ld/config.in 2011-01-19 10:48:15.147301022 -0800 @@ -4,6 +4,9 @@ language is requested. */ #undef ENABLE_NLS
@@ -62,32 +63,96 @@ Index: binutils-2.20.1/ld/config.in /* Additional extension a shared object might have. */ #undef EXTRA_SHLIB_EXTENSION -Index: binutils-2.20.1/ld/configure.in -=================================================================== ---- binutils-2.20.1.orig/ld/configure.in -+++ binutils-2.20.1/ld/configure.in -@@ -69,6 +69,16 @@ AC_SUBST(use_sysroot) +diff -urN binutils-2.21.orig//ld/configure binutils-2.21/ld/configure +--- binutils-2.21.orig//ld/configure 2011-01-19 10:46:46.997571921 -0800 ++++ binutils-2.21/ld/configure 2011-01-19 11:03:50.577832729 -0800 +@@ -768,6 +768,7 @@ + enable_targets + enable_64_bit_bfd + with_sysroot ++enable_poison_system_directories + enable_gold + enable_got + enable_werror +@@ -1418,6 +1419,8 @@ + (and sometimes confusing) to the casual installer + --enable-targets alternative target configurations + --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) ++ --enable-poison-system-directories ++ warn for use of native system library directories + --enable-gold[=ARG] build gold [ARG={default,yes,no}] + --enable-got=<type> GOT handling scheme (target, single, negative, + multigot) +@@ -4203,7 +4206,18 @@ + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then + ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi + + # Check whether --enable-got was given. + if test "${enable_got+set}" = set; then : +diff -urN binutils-2.21.orig//ld/configure.in binutils-2.21/ld/configure.in +--- binutils-2.21.orig//ld/configure.in 2010-11-23 05:50:32.000000000 -0800 ++++ binutils-2.21/ld/configure.in 2011-01-19 10:50:57.378398946 -0800 +@@ -69,6 +69,16 @@ AC_SUBST(TARGET_SYSTEM_ROOT) AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) +AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system library directories]),, -+ [enable_poison_system_directories=no]) ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system library directories]),, ++ [enable_poison_system_directories=no]) +if test "x${enable_poison_system_directories}" = "xyes"; then + AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system library directories]) ++ [1], ++ [Define to warn for use of native system library directories]) +fi + - AC_ARG_ENABLE([got], - AS_HELP_STRING([--enable-got=<type>], - [GOT handling scheme (target, single, negative, multigot)]), -Index: binutils-2.20.1/ld/ld.h -=================================================================== ---- binutils-2.20.1.orig/ld/ld.h -+++ binutils-2.20.1/ld/ld.h -@@ -176,6 +176,14 @@ typedef struct { + dnl Use --enable-gold to decide if this linker should be the default. + dnl "install_as_default" is set to false if gold is the default linker. + dnl "installed_linker" is the installed BFD linker name. +diff -urN binutils-2.21.orig//ld/ldfile.c binutils-2.21/ld/ldfile.c +--- binutils-2.21.orig//ld/ldfile.c 2011-01-19 10:46:47.157553281 -0800 ++++ binutils-2.21/ld/ldfile.c 2011-01-19 10:58:30.035468447 -0800 +@@ -124,6 +124,23 @@ + { + new_dirs->name = xstrdup (name); + new_dirs->sysrooted = is_sysrooted_pathname (name, FALSE); ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (command_line.poison_system_directories ++ && ((!strncmp (name, "/lib", 4)) ++ || (!strncmp (name, "/usr/lib", 8)) ++ || (!strncmp (name, "/usr/local/lib", 14)) ++ || (!strncmp (name, "/usr/X11R6/lib", 14)))) ++ { ++ if (command_line.error_poison_system_directories) ++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ else ++ einfo (_("%P: warning: library search path \"%s\" is unsafe for " ++ "cross-compilation\n"), name); ++ } ++#endif ++ + } + } + +diff -urN binutils-2.21.orig//ld/ld.h binutils-2.21/ld/ld.h +--- binutils-2.21.orig//ld/ld.h 2009-11-26 05:45:25.000000000 -0800 ++++ binutils-2.21/ld/ld.h 2011-01-19 10:52:54.814716478 -0800 +@@ -198,6 +198,14 @@ input files. */ bfd_boolean accept_unknown_input_arch;
@@ -102,11 +167,22 @@ Index: binutils-2.20.1/ld/ld.h /* Big or little endian as set on command line. */ enum endian_enum endian; -Index: binutils-2.20.1/ld/ld.texinfo -=================================================================== ---- binutils-2.20.1.orig/ld/ld.texinfo -+++ binutils-2.20.1/ld/ld.texinfo -@@ -2084,6 +2084,18 @@ string identifying the original linked f +diff -urN binutils-2.21.orig//ld/ldmain.c binutils-2.21/ld/ldmain.c +--- binutils-2.21.orig//ld/ldmain.c 2010-11-05 00:20:07.000000000 -0700 ++++ binutils-2.21/ld/ldmain.c 2011-01-19 10:59:18.579767697 -0800 +@@ -259,6 +259,8 @@ + command_line.warn_search_mismatch = TRUE; + command_line.check_section_addresses = -1; + command_line.disable_target_specific_optimizations = -1; ++ command_line.poison_system_directories = TRUE; ++ command_line.error_poison_system_directories = FALSE; + + /* We initialize DEMANGLING based on the environment variable + COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the +diff -urN binutils-2.21.orig//ld/ld.texinfo binutils-2.21/ld/ld.texinfo +--- binutils-2.21.orig//ld/ld.texinfo 2010-10-28 04:40:26.000000000 -0700 ++++ binutils-2.21/ld/ld.texinfo 2011-01-19 10:56:04.452567113 -0800 +@@ -2133,6 +2133,18 @@ Passing @code{none} for @var{style} disables the setting from any @code{--build-id} options earlier on the command line.
@@ -125,63 +201,19 @@ Index: binutils-2.20.1/ld/ld.texinfo @end table @c man end -Index: binutils-2.20.1/ld/ldfile.c -=================================================================== ---- binutils-2.20.1.orig/ld/ldfile.c -+++ binutils-2.20.1/ld/ldfile.c -@@ -120,6 +120,23 @@ ldfile_add_library_path (const char *nam - { - new_dirs->name = xstrdup (name); - new_dirs->sysrooted = is_sysrooted_pathname (name, FALSE); -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (command_line.poison_system_directories -+ && ((!strncmp (name, "/lib", 4)) -+ || (!strncmp (name, "/usr/lib", 8)) -+ || (!strncmp (name, "/usr/local/lib", 14)) -+ || (!strncmp (name, "/usr/X11R6/lib", 14)))) -+ { -+ if (command_line.error_poison_system_directories) -+ einfo (_("%X%P: error: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ else -+ einfo (_("%P: warning: library search path \"%s\" is unsafe for " -+ "cross-compilation\n"), name); -+ } -+#endif -+ - } - } - -Index: binutils-2.20.1/ld/ldmain.c -=================================================================== ---- binutils-2.20.1.orig/ld/ldmain.c -+++ binutils-2.20.1/ld/ldmain.c -@@ -252,6 +252,8 @@ main (int argc, char **argv) - command_line.warn_mismatch = TRUE; - command_line.warn_search_mismatch = TRUE; - command_line.check_section_addresses = -1; -+ command_line.poison_system_directories = TRUE; -+ command_line.error_poison_system_directories = FALSE; - - /* We initialize DEMANGLING based on the environment variable - COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the -Index: binutils-2.20.1/ld/lexsup.c -=================================================================== ---- binutils-2.20.1.orig/ld/lexsup.c -+++ binutils-2.20.1/ld/lexsup.c -@@ -166,7 +166,9 @@ enum option_values - OPTION_WARN_SHARED_TEXTREL, - OPTION_WARN_ALTERNATE_EM, - OPTION_REDUCE_MEMORY_OVERHEADS, -- OPTION_DEFAULT_SCRIPT -+ OPTION_DEFAULT_SCRIPT, +diff -urN binutils-2.21.orig//ld/lexsup.c binutils-2.21/ld/lexsup.c +--- binutils-2.21.orig//ld/lexsup.c 2010-10-27 23:45:33.000000000 -0700 ++++ binutils-2.21/ld/lexsup.c 2011-01-19 11:02:07.799898432 -0800 +@@ -175,6 +175,8 @@ + OPTION_PLUGIN_OPT, + #endif /* ENABLE_PLUGINS */ + OPTION_DEFAULT_SCRIPT, + OPTION_NO_POISON_SYSTEM_DIRECTORIES, + OPTION_ERROR_POISON_SYSTEM_DIRECTORIES }; /* The long options. This structure is used for both the option -@@ -575,6 +577,14 @@ static const struct ld_option ld_options +@@ -603,6 +605,14 @@ TWO_DASHES }, { {"wrap", required_argument, NULL, OPTION_WRAP}, '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
@@ -196,58 +228,18 @@ Index: binutils-2.20.1/ld/lexsup.c }; #define OPTION_COUNT ARRAY_SIZE (ld_options) -@@ -1480,6 +1490,14 @@ parse_args (unsigned argc, char **argv) +@@ -1518,6 +1528,14 @@ einfo (_("%P%X: --hash-size needs a numeric argument\n")); } break; + -+ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: -+ command_line.poison_system_directories = FALSE; -+ break; ++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES: ++ command_line.poison_system_directories = FALSE; ++ break; + -+ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: -+ command_line.error_poison_system_directories = TRUE; -+ break; ++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES: ++ command_line.error_poison_system_directories = TRUE; ++ break; } } -diff -ur binutils-2.20.1.orig/ld/configure binutils-2.20.1/ld/configure ---- binutils-2.20.1.orig/ld/configure 2010-03-03 08:06:22.000000000 -0600 -+++ binutils-2.20.1/ld/configure 2010-09-30 11:19:35.776990594 -0500 -@@ -901,6 +904,7 @@ - enable_targets - enable_64_bit_bfd - with_sysroot -+enable_poison_system_directories - enable_got - enable_werror - enable_build_warnings -@@ -1548,6 +1552,8 @@ - (and sometimes confusing) to the casual installer - --enable-targets alternative target configurations - --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes) -+ --enable-poison-system-directories -+ warn for use of native system library directories - --enable-got=<type> GOT handling scheme (target, single, negative, - multigot) - --enable-werror treat compile warnings as errors -@@ -4302,6 +4334,19 @@ - - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Check whether --enable-got was given. - if test "${enable_got+set}" = set; then : - enableval=$enable_got; case "${enableval}" in
meta/recipes-devtools/binutils/binutils_2.21.bb +1 -2
@@ -27,8 +27,7 @@ SRC_URI = "\ file://libtool-2.4-update.patch \ file://binutils-2.19.1-ld-sysroot.patch \ file://libiberty_path_fix.patch \ -# Need to consult w/ Mark Hatle to get this patch updated: -# file://binutils-poison.patch \ + file://binutils-poison.patch \ " SRC_URI[md5sum] = "c84c5acc9d266f1a7044b51c85a823f5"
Signature · 1 line
1.7.1
PATCH 10/12 binutils: Fix QA staging errors for target binutils
In reply to Scott Garman* The spurious paths were caused by a -L on commandline which pointed to build dir. So we dont use -L <wordir> -liberty instead use the libiberty.a directly on commandline effects are same but .la does not have the workdir path in deplibs
Patch obtained from OpenEmbedded, written by Khem Raj.
--- .../binutils-2.21/libtool-2.4-update.patch | 1648 ++++++++++---------- 1 files changed, 846 insertions(+), 802 deletions(-)
meta/recipes-devtools/binutils/binutils-2.21/libtool-2.4-update.patch +846 -802
@@ -1,7 +1,7 @@ Index: binutils-2.21/libtool.m4 =================================================================== ---- binutils-2.21.orig/libtool.m4 -+++ binutils-2.21/libtool.m4 +--- binutils-2.21.orig/libtool.m4 2010-01-09 13:11:31.000000000 -0800 ++++ binutils-2.21/libtool.m4 2011-01-07 10:49:16.396101000 -0800 @@ -1,7 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- #
@@ -22,7 +22,7 @@ Index: binutils-2.21/libtool.m4 # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. -@@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl +@@ -37,7 +39,7 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ])
@@ -31,7 +31,7 @@ Index: binutils-2.21/libtool.m4 # LT_PREREQ(VERSION) -@@ -92,7 +94,8 @@ _LT_SET_OPTIONS([$0], [$1]) +@@ -92,7 +94,8 @@ LIBTOOL_DEPS="$ltmain" # Always use our own libtool.
@@ -41,7 +41,7 @@ Index: binutils-2.21/libtool.m4 AC_SUBST(LIBTOOL)dnl _LT_SETUP -@@ -166,10 +169,13 @@ _LT_DECL([], [exeext], [0], [Executable +@@ -166,10 +169,13 @@ dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl
@@ -55,7 +55,7 @@ Index: binutils-2.21/libtool.m4 _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our -@@ -199,7 +205,7 @@ aix3*) +@@ -199,7 +205,7 @@ esac # Global variables:
@@ -64,7 +64,7 @@ Index: binutils-2.21/libtool.m4 can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_ +@@ -632,7 +638,7 @@ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING.
@@ -73,7 +73,7 @@ Index: binutils-2.21/libtool.m4 This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." -@@ -746,15 +752,12 @@ _LT_EOF +@@ -746,15 +752,12 @@ # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too?
@@ -93,7 +93,7 @@ Index: binutils-2.21/libtool.m4 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], -@@ -980,6 +983,8 @@ _LT_EOF +@@ -980,6 +983,8 @@ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
@@ -102,7 +102,7 @@ Index: binutils-2.21/libtool.m4 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF -@@ -1069,30 +1074,41 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], +@@ -1069,30 +1074,41 @@ fi ])
@@ -160,7 +160,7 @@ Index: binutils-2.21/libtool.m4 ])# _LT_SYS_MODULE_PATH_AIX -@@ -1117,7 +1133,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO +@@ -1117,7 +1133,7 @@ AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present.
@@ -169,7 +169,7 @@ Index: binutils-2.21/libtool.m4 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -1161,6 +1177,39 @@ _LT_DECL([], [ECHO], [1], [An echo progr +@@ -1161,6 +1177,39 @@ ])# _LT_PROG_ECHO_BACKSLASH
@@ -209,7 +209,7 @@ Index: binutils-2.21/libtool.m4 # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], -@@ -1307,14 +1356,47 @@ need_locks="$enable_libtool_lock" +@@ -1307,14 +1356,47 @@ ])# _LT_ENABLE_LOCK
@@ -262,7 +262,7 @@ Index: binutils-2.21/libtool.m4 AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: -@@ -1610,7 +1692,7 @@ else +@@ -1610,7 +1692,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF
@@ -271,7 +271,7 @@ Index: binutils-2.21/libtool.m4 #include "confdefs.h" #if HAVE_DLFCN_H -@@ -1654,10 +1736,10 @@ else +@@ -1654,10 +1736,10 @@ /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -284,7 +284,7 @@ Index: binutils-2.21/libtool.m4 int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); -@@ -2197,8 +2279,9 @@ cygwin* | mingw* | pw32* | cegcc*) +@@ -2197,8 +2279,9 @@ need_version=no need_lib_prefix=no
@@ -296,7 +296,7 @@ Index: binutils-2.21/libtool.m4 library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ -@@ -2231,13 +2314,71 @@ m4_if([$1], [],[ +@@ -2231,13 +2314,71 @@ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac
@@ -369,7 +369,7 @@ Index: binutils-2.21/libtool.m4 # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; -@@ -2333,7 +2474,7 @@ haiku*) +@@ -2333,7 +2474,7 @@ soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes
@@ -378,7 +378,7 @@ Index: binutils-2.21/libtool.m4 hardcode_into_libs=yes ;; -@@ -2941,6 +3082,11 @@ case $reload_flag in +@@ -2941,6 +3082,11 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in
@@ -390,7 +390,7 @@ Index: binutils-2.21/libtool.m4 darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -3007,7 +3153,8 @@ mingw* | pw32*) +@@ -3007,7 +3153,8 @@ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else
@@ -400,7 +400,7 @@ Index: binutils-2.21/libtool.m4 lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -@@ -3158,6 +3305,21 @@ tpf*) +@@ -3158,6 +3305,21 @@ ;; esac ])
@@ -422,7 +422,7 @@ Index: binutils-2.21/libtool.m4 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -3165,7 +3327,11 @@ test -z "$deplibs_check_method" && depli +@@ -3165,7 +3327,11 @@ _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1],
@@ -435,7 +435,7 @@ Index: binutils-2.21/libtool.m4 ])# _LT_CHECK_MAGIC_METHOD -@@ -3268,6 +3434,67 @@ dnl aclocal-1.4 backwards compatibility: +@@ -3268,6 +3434,67 @@ dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], [])
@@ -503,7 +503,7 @@ Index: binutils-2.21/libtool.m4 # LT_LIB_M # -------- -@@ -3394,8 +3621,8 @@ esac +@@ -3394,8 +3621,8 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address
@@ -514,7 +514,7 @@ Index: binutils-2.21/libtool.m4 # Handle CRLF in mingw tool chain opt_cr= -@@ -3431,6 +3658,7 @@ for ac_symprfx in "" "_"; do +@@ -3431,6 +3658,7 @@ else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi
@@ -522,7 +522,7 @@ Index: binutils-2.21/libtool.m4 # Check to see that the pipe works correctly. pipe_works=no -@@ -3464,6 +3692,18 @@ _LT_EOF +@@ -3464,6 +3692,18 @@ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext
@@ -541,7 +541,7 @@ Index: binutils-2.21/libtool.m4 #ifdef __cplusplus extern "C" { #endif -@@ -3475,7 +3715,7 @@ _LT_EOF +@@ -3475,7 +3715,7 @@ cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */
@@ -550,7 +550,7 @@ Index: binutils-2.21/libtool.m4 const char *name; void *address; } -@@ -3501,15 +3741,15 @@ static const void *lt_preloaded_setup() +@@ -3501,15 +3741,15 @@ _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext
@@ -570,7 +570,7 @@ Index: binutils-2.21/libtool.m4 else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi -@@ -3542,6 +3782,13 @@ else +@@ -3542,6 +3782,13 @@ AC_MSG_RESULT(ok) fi
@@ -584,7 +584,7 @@ Index: binutils-2.21/libtool.m4 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], -@@ -3552,6 +3799,8 @@ _LT_DECL([global_symbol_to_c_name_addres +@@ -3552,6 +3799,8 @@ _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed])
@@ -593,7 +593,7 @@ Index: binutils-2.21/libtool.m4 ]) # _LT_CMD_GLOBAL_SYMBOLS -@@ -3563,7 +3812,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= +@@ -3563,7 +3812,6 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)=
@@ -601,7 +601,7 @@ Index: binutils-2.21/libtool.m4 m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then -@@ -3668,6 +3916,12 @@ m4_if([$1], [CXX], [ +@@ -3668,6 +3916,12 @@ ;; esac ;;
@@ -614,7 +614,7 @@ Index: binutils-2.21/libtool.m4 dgux*) case $cc_basename in ec++*) -@@ -3820,7 +4074,7 @@ m4_if([$1], [CXX], [ +@@ -3820,7 +4074,7 @@ ;; solaris*) case $cc_basename in
@@ -623,7 +623,7 @@ Index: binutils-2.21/libtool.m4 # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' -@@ -4042,6 +4296,12 @@ m4_if([$1], [CXX], [ +@@ -4042,6 +4296,12 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;;
@@ -636,7 +636,7 @@ Index: binutils-2.21/libtool.m4 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) -@@ -4104,7 +4364,7 @@ m4_if([$1], [CXX], [ +@@ -4104,7 +4364,7 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in
@@ -645,7 +645,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; -@@ -4161,9 +4421,11 @@ case $host_os in +@@ -4161,9 +4421,11 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac
@@ -660,7 +660,7 @@ Index: binutils-2.21/libtool.m4 # # Check to make sure the PIC flag actually works. -@@ -4182,6 +4444,8 @@ fi +@@ -4182,6 +4444,8 @@ _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects])
@@ -669,7 +669,7 @@ Index: binutils-2.21/libtool.m4 # # Check to make sure the static flag actually works. # -@@ -4202,6 +4466,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog +@@ -4202,6 +4466,7 @@ m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl
@@ -677,7 +677,7 @@ Index: binutils-2.21/libtool.m4 m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl -@@ -4210,6 +4475,7 @@ m4_require([_LT_TAG_COMPILER])dnl +@@ -4210,6 +4475,7 @@ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -685,7 +685,7 @@ Index: binutils-2.21/libtool.m4 case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. -@@ -4224,15 +4490,20 @@ m4_if([$1], [CXX], [ +@@ -4224,15 +4490,20 @@ ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
@@ -711,7 +711,7 @@ Index: binutils-2.21/libtool.m4 ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= -@@ -4400,7 +4671,8 @@ _LT_EOF +@@ -4400,7 +4671,8 @@ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
@@ -721,7 +721,7 @@ Index: binutils-2.21/libtool.m4 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' -@@ -4448,7 +4720,7 @@ _LT_EOF +@@ -4448,7 +4720,7 @@ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then
@@ -730,7 +730,7 @@ Index: binutils-2.21/libtool.m4 tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler -@@ -4499,12 +4771,12 @@ _LT_EOF +@@ -4499,12 +4771,12 @@ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
@@ -745,7 +745,7 @@ Index: binutils-2.21/libtool.m4 fi ;; esac -@@ -4518,8 +4790,8 @@ _LT_EOF +@@ -4518,8 +4790,8 @@ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else
@@ -756,7 +756,7 @@ Index: binutils-2.21/libtool.m4 fi ;; -@@ -4537,8 +4809,8 @@ _LT_EOF +@@ -4537,8 +4809,8 @@ _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -767,7 +767,7 @@ Index: binutils-2.21/libtool.m4 else _LT_TAGVAR(ld_shlibs, $1)=no fi -@@ -4584,8 +4856,8 @@ _LT_EOF +@@ -4584,8 +4856,8 @@ *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -778,7 +778,7 @@ Index: binutils-2.21/libtool.m4 else _LT_TAGVAR(ld_shlibs, $1)=no fi -@@ -4715,7 +4987,7 @@ _LT_EOF +@@ -4715,7 +4987,7 @@ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable.
@@ -787,7 +787,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else -@@ -4726,7 +4998,7 @@ _LT_EOF +@@ -4726,7 +4998,7 @@ else # Determine the default libpath from the value encoded in an # empty executable.
@@ -796,7 +796,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. -@@ -4770,20 +5042,63 @@ _LT_EOF +@@ -4770,20 +5042,63 @@ # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs.
@@ -874,7 +874,7 @@ Index: binutils-2.21/libtool.m4 ;; darwin* | rhapsody*) -@@ -4821,7 +5136,7 @@ _LT_EOF +@@ -4821,7 +5136,7 @@ # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*)
@@ -883,7 +883,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no -@@ -4829,7 +5144,7 @@ _LT_EOF +@@ -4829,7 +5144,7 @@ hpux9*) if test "$GCC" = yes; then
@@ -892,7 +892,7 @@ Index: binutils-2.21/libtool.m4 else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi -@@ -4845,7 +5160,7 @@ _LT_EOF +@@ -4845,7 +5160,7 @@ hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -901,7 +901,7 @@ Index: binutils-2.21/libtool.m4 else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi -@@ -4869,10 +5184,10 @@ _LT_EOF +@@ -4869,10 +5184,10 @@ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*)
@@ -914,7 +914,7 @@ Index: binutils-2.21/libtool.m4 ;; esac else -@@ -4919,16 +5234,31 @@ _LT_EOF +@@ -4919,16 +5234,31 @@ irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then
@@ -953,7 +953,7 @@ Index: binutils-2.21/libtool.m4 else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' -@@ -5013,7 +5343,7 @@ _LT_EOF +@@ -5013,7 +5343,7 @@ osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
@@ -962,7 +962,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' -@@ -5032,9 +5362,9 @@ _LT_EOF +@@ -5032,9 +5362,9 @@ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}'
@@ -974,7 +974,7 @@ Index: binutils-2.21/libtool.m4 else case `$CC -V 2>&1` in *"Compilers 5.0"*) -@@ -5306,8 +5636,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], +@@ -5306,8 +5636,6 @@ to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries])
@@ -983,7 +983,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], -@@ -5318,6 +5646,8 @@ _LT_TAGDECL([], [include_expsyms], [1], +@@ -5318,6 +5646,8 @@ [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates])
@@ -992,7 +992,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented -@@ -5419,6 +5749,7 @@ CC="$lt_save_CC" +@@ -5419,6 +5749,7 @@ m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl
@@ -1000,7 +1000,7 @@ Index: binutils-2.21/libtool.m4 if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then -@@ -5480,6 +5811,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5480,6 +5811,7 @@ # Allow CC to be a program name with arguments. lt_save_CC=$CC
@@ -1008,7 +1008,7 @@ Index: binutils-2.21/libtool.m4 lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX -@@ -5497,6 +5829,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5497,6 +5829,7 @@ fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"}
@@ -1016,7 +1016,7 @@ Index: binutils-2.21/libtool.m4 compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) -@@ -5518,8 +5851,8 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5518,8 +5851,8 @@ # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then
@@ -1027,7 +1027,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' -@@ -5660,7 +5993,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5660,7 +5993,7 @@ _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable.
@@ -1036,7 +1036,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" -@@ -5672,7 +6005,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5672,7 +6005,7 @@ else # Determine the default libpath from the value encoded in an # empty executable.
@@ -1045,7 +1045,7 @@ Index: binutils-2.21/libtool.m4 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. -@@ -5714,29 +6047,75 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5714,29 +6047,75 @@ ;; cygwin* | mingw* | pw32* | cegcc*)
@@ -1144,7 +1144,7 @@ Index: binutils-2.21/libtool.m4 darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; -@@ -5811,7 +6190,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5811,7 +6190,7 @@ ;; *) if test "$GXX" = yes; then
@@ -1153,7 +1153,7 @@ Index: binutils-2.21/libtool.m4 else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no -@@ -5882,10 +6261,10 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5882,10 +6261,10 @@ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*)
@@ -1166,7 +1166,7 @@ Index: binutils-2.21/libtool.m4 ;; esac fi -@@ -5926,9 +6305,9 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5926,9 +6305,9 @@ *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then
@@ -1178,7 +1178,7 @@ Index: binutils-2.21/libtool.m4 fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes -@@ -5998,20 +6377,20 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -5998,20 +6377,20 @@ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
@@ -1203,7 +1203,7 @@ Index: binutils-2.21/libtool.m4 ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' -@@ -6206,7 +6585,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -6206,7 +6585,7 @@ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *)
@@ -1212,7 +1212,7 @@ Index: binutils-2.21/libtool.m4 ;; esac -@@ -6252,7 +6631,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -6252,7 +6631,7 @@ solaris*) case $cc_basename in
@@ -1221,7 +1221,7 @@ Index: binutils-2.21/libtool.m4 # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' -@@ -6293,9 +6672,9 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -6293,9 +6672,9 @@ if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then
@@ -1233,7 +1233,7 @@ Index: binutils-2.21/libtool.m4 # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when -@@ -6424,6 +6803,7 @@ if test "$_lt_caught_CXX_error" != yes; +@@ -6424,6 +6803,7 @@ fi # test -n "$compiler" CC=$lt_save_CC
@@ -1241,7 +1241,7 @@ Index: binutils-2.21/libtool.m4 LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC -@@ -6438,6 +6818,29 @@ AC_LANG_POP +@@ -6438,6 +6818,29 @@ ])# _LT_LANG_CXX_CONFIG
@@ -1271,7 +1271,7 @@ Index: binutils-2.21/libtool.m4 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose -@@ -6446,6 +6849,7 @@ AC_LANG_POP +@@ -6446,6 +6849,7 @@ # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
@@ -1279,7 +1279,7 @@ Index: binutils-2.21/libtool.m4 # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= -@@ -6496,6 +6900,13 @@ public class foo { +@@ -6496,6 +6900,13 @@ }; _LT_EOF ])
@@ -1293,7 +1293,7 @@ Index: binutils-2.21/libtool.m4 dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then -@@ -6507,7 +6918,7 @@ if AC_TRY_EVAL(ac_compile); then +@@ -6507,7 +6918,7 @@ pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do
@@ -1302,7 +1302,7 @@ Index: binutils-2.21/libtool.m4 -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. -@@ -6516,13 +6927,22 @@ if AC_TRY_EVAL(ac_compile); then +@@ -6516,13 +6927,22 @@ test $p = "-R"; then prev=$p continue
@@ -1329,7 +1329,7 @@ Index: binutils-2.21/libtool.m4 # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. -@@ -6542,8 +6962,10 @@ if AC_TRY_EVAL(ac_compile); then +@@ -6542,8 +6962,10 @@ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi
@@ -1340,7 +1340,7 @@ Index: binutils-2.21/libtool.m4 *.$objext) # This assumes that the test object file only shows up # once in the compiler output. -@@ -6579,6 +7001,7 @@ else +@@ -6579,6 +7001,7 @@ fi $RM -f confest.$objext
@@ -1348,7 +1348,7 @@ Index: binutils-2.21/libtool.m4 # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], -@@ -6615,7 +7038,7 @@ linux*) +@@ -6615,7 +7038,7 @@ solaris*) case $cc_basename in
@@ -1357,7 +1357,7 @@ Index: binutils-2.21/libtool.m4 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as -@@ -6728,7 +7151,9 @@ if test "$_lt_disable_F77" != yes; then +@@ -6728,7 +7151,9 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC
@@ -1367,7 +1367,7 @@ Index: binutils-2.21/libtool.m4 compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) -@@ -6782,6 +7207,7 @@ if test "$_lt_disable_F77" != yes; then +@@ -6782,6 +7207,7 @@ GCC=$lt_save_GCC CC="$lt_save_CC"
@@ -1375,7 +1375,7 @@ Index: binutils-2.21/libtool.m4 fi # test "$_lt_disable_F77" != yes AC_LANG_POP -@@ -6858,7 +7284,9 @@ if test "$_lt_disable_FC" != yes; then +@@ -6858,7 +7284,9 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC
@@ -1385,7 +1385,7 @@ Index: binutils-2.21/libtool.m4 compiler=$CC GCC=$ac_cv_fc_compiler_gnu -@@ -6914,7 +7342,8 @@ if test "$_lt_disable_FC" != yes; then +@@ -6914,7 +7342,8 @@ fi # test -n "$compiler" GCC=$lt_save_GCC
@@ -1395,7 +1395,7 @@ Index: binutils-2.21/libtool.m4 fi # test "$_lt_disable_FC" != yes AC_LANG_POP -@@ -6951,10 +7380,12 @@ _LT_COMPILER_BOILERPLATE +@@ -6951,10 +7380,12 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments.
@@ -1409,7 +1409,7 @@ Index: binutils-2.21/libtool.m4 compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" -@@ -6985,7 +7416,8 @@ fi +@@ -6985,7 +7416,8 @@ AC_LANG_RESTORE GCC=$lt_save_GCC
@@ -1419,7 +1419,7 @@ Index: binutils-2.21/libtool.m4 ])# _LT_LANG_GCJ_CONFIG -@@ -7020,9 +7452,11 @@ _LT_LINKER_BOILERPLATE +@@ -7020,9 +7452,11 @@ # Allow CC to be a program name with arguments. lt_save_CC="$CC"
@@ -1431,7 +1431,7 @@ Index: binutils-2.21/libtool.m4 compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) -@@ -7035,7 +7469,8 @@ fi +@@ -7035,7 +7469,8 @@ GCC=$lt_save_GCC AC_LANG_RESTORE
@@ -1441,7 +1441,7 @@ Index: binutils-2.21/libtool.m4 ])# _LT_LANG_RC_CONFIG -@@ -7094,6 +7529,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object +@@ -7094,6 +7529,15 @@ AC_SUBST([OBJDUMP]) ])
@@ -1457,7 +1457,7 @@ Index: binutils-2.21/libtool.m4 # _LT_DECL_SED # ------------ -@@ -7187,8 +7631,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], +@@ -7187,8 +7631,8 @@ # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c"
@@ -1468,7 +1468,7 @@ Index: binutils-2.21/libtool.m4 && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes -@@ -7227,206 +7671,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn +@@ -7227,206 +7671,162 @@ ])# _LT_CHECK_SHELL_FEATURES
@@ -1823,8 +1823,8 @@ Index: binutils-2.21/libtool.m4 +])# _LT_PATH_CONVERSION_FUNCTIONS Index: binutils-2.21/ltmain.sh =================================================================== ---- binutils-2.21.orig/ltmain.sh -+++ binutils-2.21/ltmain.sh +--- binutils-2.21.orig/ltmain.sh 2010-01-09 13:11:32.000000000 -0800 ++++ binutils-2.21/ltmain.sh 2011-01-07 10:49:16.406101000 -0800 @@ -1,10 +1,9 @@ -# Generated from ltmain.m4sh.
@@ -1870,7 +1870,7 @@ Index: binutils-2.21/ltmain.sh # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -@@ -106,9 +106,6 @@ _LTECHO_EOF' +@@ -106,9 +106,6 @@ } # NLS nuisances: We save the old values to restore during execute mode.
@@ -1880,7 +1880,7 @@ Index: binutils-2.21/ltmain.sh lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES -@@ -121,15 +118,13 @@ do +@@ -121,15 +118,13 @@ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done
@@ -1899,7 +1899,7 @@ Index: binutils-2.21/ltmain.sh # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special -@@ -140,7 +135,7 @@ progpath="$0" +@@ -140,7 +135,7 @@ : ${CP="cp -f"}
@@ -1908,7 +1908,7 @@ Index: binutils-2.21/ltmain.sh : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} -@@ -149,7 +144,7 @@ progpath="$0" +@@ -149,7 +144,7 @@ : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"}
@@ -1917,7 +1917,7 @@ Index: binutils-2.21/ltmain.sh : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} -@@ -169,6 +164,27 @@ IFS=" $lt_nl" +@@ -169,6 +164,27 @@ dirname="s,/[^/]*$,," basename="s,^.*/,,"
@@ -1945,7 +1945,7 @@ Index: binutils-2.21/ltmain.sh # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: -@@ -183,17 +199,31 @@ basename="s,^.*/,," +@@ -183,17 +199,31 @@ # those functions but instead duplicate the functionality here. func_dirname_and_basename () {
@@ -1987,7 +1987,7 @@ Index: binutils-2.21/ltmain.sh # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' -@@ -376,6 +406,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' +@@ -376,6 +406,15 @@ # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g'
@@ -2003,7 +2003,7 @@ Index: binutils-2.21/ltmain.sh # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. -@@ -404,7 +443,7 @@ opt_warning=: +@@ -404,7 +443,7 @@ # name if it has been set yet. func_echo () {
@@ -2012,7 +2012,7 @@ Index: binutils-2.21/ltmain.sh } # func_verbose arg... -@@ -430,14 +469,14 @@ func_echo_all () +@@ -430,14 +469,14 @@ # Echo program name prefixed message to standard error. func_error () {
@@ -2029,7 +2029,7 @@ Index: binutils-2.21/ltmain.sh # bash bug again: : -@@ -656,19 +695,35 @@ func_show_eval_locale () +@@ -656,19 +695,35 @@ fi }
@@ -2068,7 +2068,7 @@ Index: binutils-2.21/ltmain.sh b more } :go -@@ -685,7 +740,9 @@ func_version () +@@ -685,7 +740,9 @@ # Echo short help message to standard output and exit. func_usage () {
@@ -2079,7 +2079,7 @@ Index: binutils-2.21/ltmain.sh s/^# // s/^# *$// s/\$progname/'$progname'/ -@@ -701,7 +758,10 @@ func_usage () +@@ -701,7 +758,10 @@ # unless 'noexit' is passed as argument. func_help () {
@@ -2090,7 +2090,7 @@ Index: binutils-2.21/ltmain.sh s/^# // s/^# *$// s*\$progname*'$progname'* -@@ -714,7 +774,11 @@ func_help () +@@ -714,7 +774,11 @@ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p
@@ -2103,7 +2103,7 @@ Index: binutils-2.21/ltmain.sh ret=$? if test -z "$1"; then exit $ret -@@ -726,12 +790,39 @@ func_help () +@@ -726,12 +790,39 @@ # exit_cmd. func_missing_arg () {
@@ -2145,7 +2145,7 @@ Index: binutils-2.21/ltmain.sh -@@ -741,26 +832,64 @@ magic="%%%MAGIC variable%%%" +@@ -741,26 +832,64 @@ magic_exe="%%%MAGIC EXE variable%%%" # Global variables.
@@ -2218,7 +2218,7 @@ Index: binutils-2.21/ltmain.sh # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. -@@ -850,130 +979,204 @@ func_enable_tag () +@@ -850,130 +979,204 @@ esac }
@@ -2517,7 +2517,7 @@ Index: binutils-2.21/ltmain.sh case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) -@@ -981,82 +1184,44 @@ func_enable_tag () +@@ -981,82 +1184,44 @@ opt_duplicate_compiler_generated_deps=: ;; *)
@@ -2624,7 +2624,7 @@ Index: binutils-2.21/ltmain.sh # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. -@@ -1121,12 +1286,9 @@ func_ltwrapper_executable_p () +@@ -1121,12 +1286,9 @@ # temporary ltwrapper_script. func_ltwrapper_scriptname () {
@@ -2640,7 +2640,7 @@ Index: binutils-2.21/ltmain.sh } # func_ltwrapper_p file -@@ -1149,7 +1311,7 @@ func_execute_cmds () +@@ -1149,7 +1311,7 @@ save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs
@@ -2649,7 +2649,7 @@ Index: binutils-2.21/ltmain.sh func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs -@@ -1172,6 +1334,37 @@ func_source () +@@ -1172,6 +1334,37 @@ }
@@ -2687,7 +2687,7 @@ Index: binutils-2.21/ltmain.sh # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. -@@ -1184,8 +1377,7 @@ func_infer_tag () +@@ -1184,8 +1377,7 @@ if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do
@@ -2697,7 +2697,7 @@ Index: binutils-2.21/ltmain.sh done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1204,8 +1396,7 @@ func_infer_tag () +@@ -1204,8 +1396,7 @@ CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters.
@@ -2707,7 +2707,7 @@ Index: binutils-2.21/ltmain.sh done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` -@@ -1274,6 +1465,486 @@ EOF +@@ -1274,6 +1465,486 @@ } }
@@ -3194,7 +3194,7 @@ Index: binutils-2.21/ltmain.sh # func_mode_compile arg... func_mode_compile () { -@@ -1314,12 +1985,12 @@ func_mode_compile () +@@ -1314,12 +1985,12 @@ ;; -pie | -fpie | -fPIE)
@@ -3209,7 +3209,7 @@ Index: binutils-2.21/ltmain.sh continue ;; -@@ -1340,15 +2011,14 @@ func_mode_compile () +@@ -1340,15 +2011,14 @@ save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs"
@@ -3227,7 +3227,7 @@ Index: binutils-2.21/ltmain.sh continue ;; -@@ -1364,8 +2034,7 @@ func_mode_compile () +@@ -1364,8 +2034,7 @@ esac # case $arg_mode # Aesthetically quote the previous argument.
@@ -3237,7 +3237,7 @@ Index: binutils-2.21/ltmain.sh done # for arg case $arg_mode in -@@ -1496,17 +2165,16 @@ compiler." +@@ -1496,17 +2165,16 @@ $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi
@@ -3259,7 +3259,7 @@ Index: binutils-2.21/ltmain.sh func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result -@@ -1526,7 +2194,7 @@ compiler." +@@ -1526,7 +2194,7 @@ if test -z "$output_obj"; then # Place PIC objects in $objdir
@@ -3268,7 +3268,7 @@ Index: binutils-2.21/ltmain.sh fi func_show_eval_locale "$command" \ -@@ -1573,11 +2241,11 @@ compiler." +@@ -1573,11 +2241,11 @@ command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then
@@ -3282,7 +3282,7 @@ Index: binutils-2.21/ltmain.sh func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' -@@ -1622,13 +2290,13 @@ compiler." +@@ -1622,13 +2290,13 @@ } $opt_help || {
@@ -3298,7 +3298,7 @@ Index: binutils-2.21/ltmain.sh "") # Generic help is extracted from the usage comments # at the start of this file. -@@ -1659,8 +2327,8 @@ This mode accepts the following addition +@@ -1659,8 +2327,8 @@ -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes
@@ -3309,7 +3309,7 @@ Index: binutils-2.21/ltmain.sh -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler -@@ -1804,7 +2472,7 @@ Otherwise, only FILE itself is deleted u +@@ -1804,7 +2472,7 @@ ;; *)
@@ -3318,7 +3318,7 @@ Index: binutils-2.21/ltmain.sh ;; esac -@@ -1819,13 +2487,13 @@ if $opt_help; then +@@ -1819,13 +2487,13 @@ else { func_help noexit
@@ -3334,7 +3334,7 @@ Index: binutils-2.21/ltmain.sh echo func_mode_help done -@@ -1854,13 +2522,16 @@ func_mode_execute () +@@ -1854,13 +2522,16 @@ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately.
@@ -3352,7 +3352,7 @@ Index: binutils-2.21/ltmain.sh # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" -@@ -1882,7 +2553,7 @@ func_mode_execute () +@@ -1882,7 +2553,7 @@ dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then
@@ -3361,7 +3361,7 @@ Index: binutils-2.21/ltmain.sh else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" -@@ -1907,10 +2578,10 @@ func_mode_execute () +@@ -1907,10 +2578,10 @@ test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var.
@@ -3375,7 +3375,7 @@ Index: binutils-2.21/ltmain.sh fi done -@@ -1939,8 +2610,7 @@ func_mode_execute () +@@ -1939,8 +2610,7 @@ ;; esac # Quote arguments (to preserve shell metacharacters).
@@ -3385,7 +3385,7 @@ Index: binutils-2.21/ltmain.sh done if test "X$opt_dry_run" = Xfalse; then -@@ -1972,22 +2642,59 @@ func_mode_execute () +@@ -1972,22 +2642,59 @@ fi }
@@ -3452,7 +3452,7 @@ Index: binutils-2.21/ltmain.sh for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. -@@ -1997,7 +2704,7 @@ func_mode_finish () +@@ -1997,7 +2704,7 @@ if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\"
@@ -3461,7 +3461,7 @@ Index: binutils-2.21/ltmain.sh $cmds" fi done -@@ -2006,53 +2713,55 @@ func_mode_finish () +@@ -2006,53 +2713,55 @@ # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS
@@ -3559,7 +3559,7 @@ Index: binutils-2.21/ltmain.sh # func_mode_install arg... -@@ -2077,7 +2786,7 @@ func_mode_install () +@@ -2077,7 +2786,7 @@ # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg"
@@ -3568,7 +3568,7 @@ Index: binutils-2.21/ltmain.sh install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; -@@ -2097,7 +2806,7 @@ func_mode_install () +@@ -2097,7 +2806,7 @@ do arg2= if test -n "$dest"; then
@@ -3577,7 +3577,7 @@ Index: binutils-2.21/ltmain.sh dest=$arg continue fi -@@ -2135,11 +2844,11 @@ func_mode_install () +@@ -2135,11 +2844,11 @@ # Aesthetically quote the argument. func_quote_for_eval "$arg"
@@ -3591,7 +3591,7 @@ Index: binutils-2.21/ltmain.sh done test -z "$install_prog" && \ -@@ -2151,7 +2860,7 @@ func_mode_install () +@@ -2151,7 +2860,7 @@ if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode"
@@ -3600,7 +3600,7 @@ Index: binutils-2.21/ltmain.sh fi fi -@@ -2209,10 +2918,13 @@ func_mode_install () +@@ -2209,10 +2918,13 @@ case $file in *.$libext) # Do the static libraries later.
@@ -3615,7 +3615,7 @@ Index: binutils-2.21/ltmain.sh # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" -@@ -2226,23 +2938,30 @@ func_mode_install () +@@ -2226,23 +2938,30 @@ if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;;
@@ -3650,7 +3650,7 @@ Index: binutils-2.21/ltmain.sh # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that -@@ -2315,7 +3034,7 @@ func_mode_install () +@@ -2315,7 +3034,7 @@ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too.
@@ -3659,7 +3659,7 @@ Index: binutils-2.21/ltmain.sh ;; *.lo) -@@ -2503,7 +3222,7 @@ func_mode_install () +@@ -2503,7 +3222,7 @@ test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'"
@@ -3668,7 +3668,7 @@ Index: binutils-2.21/ltmain.sh # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' -@@ -2512,7 +3231,7 @@ func_mode_install () +@@ -2512,7 +3231,7 @@ fi }
@@ -3677,7 +3677,7 @@ Index: binutils-2.21/ltmain.sh # func_generate_dlsyms outputname originator pic_p -@@ -2559,6 +3278,18 @@ extern \"C\" { +@@ -2559,6 +3278,18 @@ #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif
@@ -3696,7 +3696,7 @@ Index: binutils-2.21/ltmain.sh /* External symbol declarations for the compiler. */\ " -@@ -2570,21 +3301,22 @@ extern \"C\" { +@@ -2570,21 +3301,22 @@ # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do
@@ -3725,7 +3725,7 @@ Index: binutils-2.21/ltmain.sh } fi -@@ -2593,23 +3325,23 @@ extern \"C\" { +@@ -2593,23 +3325,23 @@ export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols
@@ -3757,7 +3757,7 @@ Index: binutils-2.21/ltmain.sh ;; esac } -@@ -2620,10 +3352,52 @@ extern \"C\" { +@@ -2620,10 +3352,52 @@ func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result"
@@ -3814,7 +3814,7 @@ Index: binutils-2.21/ltmain.sh done $opt_dry_run || { -@@ -2661,26 +3435,9 @@ typedef struct { +@@ -2661,26 +3435,9 @@ const char *name; void *address; } lt_dlsymlist;
@@ -3843,7 +3843,7 @@ Index: binutils-2.21/ltmain.sh lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," -@@ -2736,7 +3493,7 @@ static const void *lt_preloaded_setup() +@@ -2736,7 +3493,7 @@ for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;;
@@ -3852,7 +3852,7 @@ Index: binutils-2.21/ltmain.sh esac done -@@ -2796,9 +3553,11 @@ func_win32_libid () +@@ -2796,9 +3553,11 @@ win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static
@@ -3867,7 +3867,7 @@ Index: binutils-2.21/ltmain.sh $SED -n -e ' 1,100{ / I /{ -@@ -2827,6 +3586,131 @@ func_win32_libid () +@@ -2827,6 +3586,131 @@ $ECHO "$win32_libid_type" }
@@ -3999,7 +3999,7 @@ Index: binutils-2.21/ltmain.sh # func_extract_an_archive dir oldlib -@@ -2917,7 +3801,7 @@ func_extract_archives () +@@ -2917,7 +3801,7 @@ darwin_file= darwin_files= for darwin_file in $darwin_filelist; do
@@ -4008,7 +4008,7 @@ Index: binutils-2.21/ltmain.sh $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ -@@ -2932,7 +3816,7 @@ func_extract_archives () +@@ -2932,7 +3816,7 @@ func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac
@@ -4017,7 +4017,7 @@ Index: binutils-2.21/ltmain.sh done func_extract_archives_result="$my_oldobjs" -@@ -3014,7 +3898,110 @@ func_fallback_echo () +@@ -3014,7 +3898,110 @@ _LTECHO_EOF' } ECHO=\"$qECHO\"
@@ -4129,7 +4129,7 @@ Index: binutils-2.21/ltmain.sh # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` -@@ -3078,7 +4065,7 @@ _LTECHO_EOF' +@@ -3078,7 +4065,7 @@ # relink executable if necessary if test -n \"\$relink_command\"; then
@@ -4138,7 +4138,7 @@ Index: binutils-2.21/ltmain.sh else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" -@@ -3102,6 +4089,18 @@ _LTECHO_EOF' +@@ -3102,6 +4089,18 @@ if test -f \"\$progdir/\$program\"; then"
@@ -4157,7 +4157,7 @@ Index: binutils-2.21/ltmain.sh # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ -@@ -3116,35 +4115,10 @@ _LTECHO_EOF' +@@ -3116,35 +4115,10 @@ " fi
@@ -4194,7 +4194,7 @@ Index: binutils-2.21/ltmain.sh fi else # The program doesn't exist. -@@ -3158,166 +4132,6 @@ fi\ +@@ -3158,166 +4132,6 @@ }
@@ -4361,7 +4361,7 @@ Index: binutils-2.21/ltmain.sh # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because -@@ -3334,10 +4148,6 @@ func_emit_cwrapperexe_src () +@@ -3334,10 +4148,6 @@ This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly.
@@ -4372,7 +4372,7 @@ Index: binutils-2.21/ltmain.sh */ EOF cat <<"EOF" -@@ -3462,22 +4272,13 @@ int setenv (const char *, const char *, +@@ -3462,22 +4272,13 @@ if (stale) { free ((void *) stale); stale = 0; } \ } while (0)
@@ -4399,7 +4399,7 @@ Index: binutils-2.21/ltmain.sh void *xmalloc (size_t num); char *xstrdup (const char *string); -@@ -3487,7 +4288,10 @@ char *chase_symlinks (const char *pathsp +@@ -3487,7 +4288,10 @@ int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat);
@@ -4411,7 +4411,7 @@ Index: binutils-2.21/ltmain.sh void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); -@@ -3497,14 +4301,14 @@ void lt_dump_script (FILE *f); +@@ -3497,14 +4301,14 @@ EOF cat <<EOF
@@ -4429,7 +4429,7 @@ Index: binutils-2.21/ltmain.sh EOF else cat <<"EOF" -@@ -3513,10 +4317,10 @@ EOF +@@ -3513,10 +4317,10 @@ fi if test -n "$dllsearchpath"; then
@@ -4442,7 +4442,7 @@ Index: binutils-2.21/ltmain.sh EOF else cat <<"EOF" -@@ -3539,12 +4343,10 @@ EOF +@@ -3539,12 +4343,10 @@ cat <<"EOF" #define LTWRAPPER_OPTION_PREFIX "--lt-"
@@ -4456,7 +4456,7 @@ Index: binutils-2.21/ltmain.sh int main (int argc, char *argv[]) -@@ -3561,10 +4363,13 @@ main (int argc, char *argv[]) +@@ -3561,10 +4363,13 @@ int i; program_name = (char *) xstrdup (base_name (argv[0]));
@@ -4473,7 +4473,7 @@ Index: binutils-2.21/ltmain.sh for (i = 1; i < argc; i++) { if (strcmp (argv[i], dumpscript_opt) == 0) -@@ -3581,21 +4386,54 @@ EOF +@@ -3581,21 +4386,54 @@ lt_dump_script (stdout); return 0; }
@@ -4535,7 +4535,7 @@ Index: binutils-2.21/ltmain.sh strendzap (actual_cwrapper_path, actual_cwrapper_name); /* wrapper name transforms */ -@@ -3613,8 +4451,9 @@ EOF +@@ -3613,8 +4451,9 @@ target_name = tmp_pathspec; tmp_pathspec = 0;
@@ -4547,7 +4547,7 @@ Index: binutils-2.21/ltmain.sh EOF cat <<EOF -@@ -3664,35 +4503,19 @@ EOF +@@ -3664,35 +4503,19 @@ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
@@ -4592,7 +4592,7 @@ Index: binutils-2.21/ltmain.sh } EOF -@@ -3706,7 +4529,9 @@ EOF +@@ -3706,7 +4529,9 @@ if (rval == -1) { /* failed to start process */
@@ -4603,7 +4603,7 @@ Index: binutils-2.21/ltmain.sh return 127; } return rval; -@@ -3728,7 +4553,7 @@ xmalloc (size_t num) +@@ -3728,7 +4553,7 @@ { void *p = (void *) malloc (num); if (!p)
@@ -4612,7 +4612,7 @@ Index: binutils-2.21/ltmain.sh return p; } -@@ -3762,8 +4587,8 @@ check_executable (const char *path) +@@ -3762,8 +4587,8 @@ { struct stat st;
@@ -4623,7 +4623,7 @@ Index: binutils-2.21/ltmain.sh if ((!path) || (!*path)) return 0; -@@ -3780,8 +4605,8 @@ make_executable (const char *path) +@@ -3780,8 +4605,8 @@ int rval = 0; struct stat st;
@@ -4634,7 +4634,7 @@ Index: binutils-2.21/ltmain.sh if ((!path) || (!*path)) return 0; -@@ -3807,8 +4632,8 @@ find_executable (const char *wrapper) +@@ -3807,8 +4632,8 @@ int tmp_len; char *concat_name;
@@ -4645,7 +4645,7 @@ Index: binutils-2.21/ltmain.sh if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; -@@ -3861,7 +4686,8 @@ find_executable (const char *wrapper) +@@ -3861,7 +4686,8 @@ { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL)
@@ -4655,7 +4655,7 @@ Index: binutils-2.21/ltmain.sh tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); -@@ -3886,7 +4712,8 @@ find_executable (const char *wrapper) +@@ -3886,7 +4712,8 @@ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL)
@@ -4665,7 +4665,7 @@ Index: binutils-2.21/ltmain.sh tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); -@@ -3912,8 +4739,9 @@ chase_symlinks (const char *pathspec) +@@ -3912,8 +4739,9 @@ int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) {
@@ -4677,7 +4677,7 @@ Index: binutils-2.21/ltmain.sh if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) -@@ -3935,8 +4763,9 @@ chase_symlinks (const char *pathspec) +@@ -3935,8 +4763,9 @@ } else {
@@ -4689,7 +4689,7 @@ Index: binutils-2.21/ltmain.sh } } XFREE (tmp_pathspec); -@@ -3949,7 +4778,8 @@ chase_symlinks (const char *pathspec) +@@ -3949,7 +4778,8 @@ tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) {
@@ -4699,7 +4699,7 @@ Index: binutils-2.21/ltmain.sh } return xstrdup (tmp_pathspec); #endif -@@ -3975,11 +4805,25 @@ strendzap (char *str, const char *pat) +@@ -3975,11 +4805,25 @@ return str; }
@@ -4727,7 +4727,7 @@ Index: binutils-2.21/ltmain.sh vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); -@@ -3988,20 +4832,32 @@ lt_error_core (int exit_status, const ch +@@ -3988,20 +4832,32 @@ } void
@@ -4765,7 +4765,7 @@ Index: binutils-2.21/ltmain.sh { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ -@@ -4049,9 +4905,9 @@ lt_extend_str (const char *orig_value, c +@@ -4049,9 +4905,9 @@ void lt_update_exe_path (const char *name, const char *value) {
@@ -4778,7 +4778,7 @@ Index: binutils-2.21/ltmain.sh if (name && *name && value && *value) { -@@ -4070,9 +4926,9 @@ lt_update_exe_path (const char *name, co +@@ -4070,9 +4926,9 @@ void lt_update_lib_path (const char *name, const char *value) {
@@ -4791,7 +4791,7 @@ Index: binutils-2.21/ltmain.sh if (name && *name && value && *value) { -@@ -4222,7 +5078,7 @@ EOF +@@ -4222,7 +5078,7 @@ func_win32_import_lib_p () { $opt_debug
@@ -4800,7 +4800,7 @@ Index: binutils-2.21/ltmain.sh *import*) : ;; *) false ;; esac -@@ -4401,9 +5257,9 @@ func_mode_link () +@@ -4401,9 +5257,9 @@ ;; *) if test "$prev" = dlfiles; then
@@ -4812,7 +4812,7 @@ Index: binutils-2.21/ltmain.sh fi prev= continue -@@ -4427,7 +5283,7 @@ func_mode_link () +@@ -4427,7 +5283,7 @@ *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;;
@@ -4821,7 +4821,7 @@ Index: binutils-2.21/ltmain.sh ;; esac ;; -@@ -4446,7 +5302,7 @@ func_mode_link () +@@ -4446,7 +5302,7 @@ moreargs= for fil in `cat "$save_arg"` do
@@ -4830,7 +4830,7 @@ Index: binutils-2.21/ltmain.sh arg=$fil # A libtool-controlled object. -@@ -4475,7 +5331,7 @@ func_mode_link () +@@ -4475,7 +5331,7 @@ if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
@@ -4839,7 +4839,7 @@ Index: binutils-2.21/ltmain.sh prev= continue else -@@ -4487,7 +5343,7 @@ func_mode_link () +@@ -4487,7 +5343,7 @@ # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object.
@@ -4848,7 +4848,7 @@ Index: binutils-2.21/ltmain.sh prev= fi -@@ -4557,12 +5413,12 @@ func_mode_link () +@@ -4557,12 +5413,12 @@ if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;;
@@ -4863,7 +4863,7 @@ Index: binutils-2.21/ltmain.sh esac fi prev= -@@ -4574,28 +5430,28 @@ func_mode_link () +@@ -4574,28 +5430,28 @@ continue ;; weak)
@@ -4898,7 +4898,7 @@ Index: binutils-2.21/ltmain.sh prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" -@@ -4686,15 +5542,16 @@ func_mode_link () +@@ -4686,15 +5542,16 @@ ;; -L*)
@@ -4918,7 +4918,7 @@ Index: binutils-2.21/ltmain.sh # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; -@@ -4706,10 +5563,16 @@ func_mode_link () +@@ -4706,10 +5563,16 @@ ;; esac case "$deplibs " in
@@ -4938,7 +4938,7 @@ Index: binutils-2.21/ltmain.sh ;; esac case $host in -@@ -4718,12 +5581,12 @@ func_mode_link () +@@ -4718,12 +5581,12 @@ case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;;
@@ -4953,7 +4953,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -4747,7 +5610,7 @@ func_mode_link () +@@ -4747,7 +5610,7 @@ ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework
@@ -4962,7 +4962,7 @@ Index: binutils-2.21/ltmain.sh continue ;; *-*-sco3.2v5* | *-*-sco5v6*) -@@ -4758,9 +5621,6 @@ func_mode_link () +@@ -4758,9 +5621,6 @@ # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;;
@@ -4972,7 +4972,7 @@ Index: binutils-2.21/ltmain.sh esac elif test "X$arg" = "X-lc_r"; then case $host in -@@ -4770,7 +5630,7 @@ func_mode_link () +@@ -4770,7 +5630,7 @@ ;; esac fi
@@ -4981,7 +4981,7 @@ Index: binutils-2.21/ltmain.sh continue ;; -@@ -4782,8 +5642,8 @@ func_mode_link () +@@ -4782,8 +5642,8 @@ # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture.
@@ -4992,7 +4992,7 @@ Index: binutils-2.21/ltmain.sh func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler -@@ -4791,12 +5651,12 @@ func_mode_link () +@@ -4791,12 +5651,12 @@ ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
@@ -5007,7 +5007,7 @@ Index: binutils-2.21/ltmain.sh esac continue ;; -@@ -4863,13 +5723,17 @@ func_mode_link () +@@ -4863,13 +5723,17 @@ # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -5026,7 +5026,7 @@ Index: binutils-2.21/ltmain.sh esac continue ;; -@@ -4922,8 +5786,8 @@ func_mode_link () +@@ -4922,8 +5786,8 @@ for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag"
@@ -5037,7 +5037,7 @@ Index: binutils-2.21/ltmain.sh done IFS="$save_ifs" func_stripname ' ' '' "$arg" -@@ -4938,9 +5802,9 @@ func_mode_link () +@@ -4938,9 +5802,9 @@ for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag"
@@ -5050,7 +5050,7 @@ Index: binutils-2.21/ltmain.sh done IFS="$save_ifs" func_stripname ' ' '' "$arg" -@@ -4968,24 +5832,27 @@ func_mode_link () +@@ -4968,24 +5832,27 @@ arg="$func_quote_for_eval_result" ;;
@@ -5091,7 +5091,7 @@ Index: binutils-2.21/ltmain.sh continue ;; -@@ -4997,7 +5864,7 @@ func_mode_link () +@@ -4997,7 +5864,7 @@ *.$objext) # A standard object.
@@ -5100,7 +5100,7 @@ Index: binutils-2.21/ltmain.sh ;; *.lo) -@@ -5028,7 +5895,7 @@ func_mode_link () +@@ -5028,7 +5895,7 @@ if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
@@ -5109,7 +5109,7 @@ Index: binutils-2.21/ltmain.sh prev= continue else -@@ -5040,7 +5907,7 @@ func_mode_link () +@@ -5040,7 +5907,7 @@ # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object.
@@ -5118,7 +5118,7 @@ Index: binutils-2.21/ltmain.sh prev= fi -@@ -5085,24 +5952,25 @@ func_mode_link () +@@ -5085,24 +5952,25 @@ *.$libext) # An archive.
@@ -5149,7 +5149,7 @@ Index: binutils-2.21/ltmain.sh fi continue ;; -@@ -5127,7 +5995,7 @@ func_mode_link () +@@ -5127,7 +5995,7 @@ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
@@ -5158,7 +5158,7 @@ Index: binutils-2.21/ltmain.sh func_append compile_command " $arg" func_append finalize_command " $arg" fi -@@ -5144,11 +6012,13 @@ func_mode_link () +@@ -5144,11 +6012,13 @@ else shlib_search_path= fi
@@ -5174,7 +5174,7 @@ Index: binutils-2.21/ltmain.sh # Create the object directory. func_mkdir_p "$output_objdir" -@@ -5169,12 +6039,12 @@ func_mode_link () +@@ -5169,12 +6039,12 @@ # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do
@@ -5190,7 +5190,7 @@ Index: binutils-2.21/ltmain.sh done if test "$linkmode" = lib; then -@@ -5187,9 +6057,9 @@ func_mode_link () +@@ -5187,9 +6057,9 @@ if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in
@@ -5202,7 +5202,7 @@ Index: binutils-2.21/ltmain.sh done fi pre_post_deps= -@@ -5256,8 +6126,9 @@ func_mode_link () +@@ -5256,8 +6126,9 @@ for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs=
@@ -5213,7 +5213,7 @@ Index: binutils-2.21/ltmain.sh esac # Collect preopened libtool deplibs, except any this library -@@ -5267,7 +6138,7 @@ func_mode_link () +@@ -5267,7 +6138,7 @@ deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;;
@@ -5222,7 +5222,7 @@ Index: binutils-2.21/ltmain.sh esac done done -@@ -5288,11 +6159,11 @@ func_mode_link () +@@ -5288,11 +6159,11 @@ compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else
@@ -5236,7 +5236,7 @@ Index: binutils-2.21/ltmain.sh esac fi fi -@@ -5377,7 +6248,7 @@ func_mode_link () +@@ -5377,7 +6248,7 @@ if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;;
@@ -5245,7 +5245,7 @@ Index: binutils-2.21/ltmain.sh esac fi fi -@@ -5390,7 +6261,8 @@ func_mode_link () +@@ -5390,7 +6261,8 @@ test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib"
@@ -5255,7 +5255,7 @@ Index: binutils-2.21/ltmain.sh ;; prog) if test "$pass" = conv; then -@@ -5404,7 +6276,8 @@ func_mode_link () +@@ -5404,7 +6276,8 @@ finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib"
@@ -5265,7 +5265,7 @@ Index: binutils-2.21/ltmain.sh ;; *) func_warning "\`-L' is ignored for archives/objects" -@@ -5415,17 +6288,21 @@ func_mode_link () +@@ -5415,17 +6288,21 @@ -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib"
@@ -5290,7 +5290,7 @@ Index: binutils-2.21/ltmain.sh *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" -@@ -5488,11 +6365,11 @@ func_mode_link () +@@ -5488,11 +6365,11 @@ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload.
@@ -5304,7 +5304,7 @@ Index: binutils-2.21/ltmain.sh fi fi continue -@@ -5538,7 +6415,7 @@ func_mode_link () +@@ -5538,7 +6415,7 @@ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;;
@@ -5313,7 +5313,7 @@ Index: binutils-2.21/ltmain.sh esac done fi -@@ -5546,8 +6423,8 @@ func_mode_link () +@@ -5546,8 +6423,8 @@ if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then
@@ -5324,7 +5324,7 @@ Index: binutils-2.21/ltmain.sh fi if test "$pass" = conv; then -@@ -5558,20 +6435,20 @@ func_mode_link () +@@ -5558,20 +6435,20 @@ func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects.
@@ -5350,7 +5350,7 @@ Index: binutils-2.21/ltmain.sh done continue fi # $pass = conv -@@ -5579,9 +6456,15 @@ func_mode_link () +@@ -5579,9 +6456,15 @@ # Get the name of the library we link against. linklib=
@@ -5369,7 +5369,7 @@ Index: binutils-2.21/ltmain.sh if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi -@@ -5598,9 +6481,9 @@ func_mode_link () +@@ -5598,9 +6481,9 @@ # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase.
@@ -5381,7 +5381,7 @@ Index: binutils-2.21/ltmain.sh fi continue fi # $pass = dlopen -@@ -5622,14 +6505,14 @@ func_mode_link () +@@ -5622,14 +6505,14 @@ # Find the relevant object directory and library name. if test "X$installed" = Xyes; then
@@ -5399,7 +5399,7 @@ Index: binutils-2.21/ltmain.sh fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else -@@ -5637,12 +6520,12 @@ func_mode_link () +@@ -5637,12 +6520,12 @@ dir="$ladir" absdir="$abs_ladir" # Remove this search path later
@@ -5414,7 +5414,7 @@ Index: binutils-2.21/ltmain.sh fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" -@@ -5653,20 +6536,46 @@ func_mode_link () +@@ -5653,20 +6536,46 @@ if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi
@@ -5475,7 +5475,7 @@ Index: binutils-2.21/ltmain.sh fi # $pass = dlpreopen if test -z "$libdir"; then -@@ -5684,7 +6593,7 @@ func_mode_link () +@@ -5684,7 +6593,7 @@ if test "$linkmode" = prog && test "$pass" != link; then
@@ -5484,7 +5484,7 @@ Index: binutils-2.21/ltmain.sh deplibs="$lib $deplibs" linkalldeplibs=no -@@ -5697,7 +6606,8 @@ func_mode_link () +@@ -5697,7 +6606,8 @@ for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib"
@@ -5494,7 +5494,7 @@ Index: binutils-2.21/ltmain.sh ;; esac # Need to link against all dependency_libs? -@@ -5708,12 +6618,12 @@ func_mode_link () +@@ -5708,12 +6618,12 @@ # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi
@@ -5510,7 +5510,7 @@ Index: binutils-2.21/ltmain.sh done # for deplib continue fi # $linkmode = prog... -@@ -5728,7 +6638,7 @@ func_mode_link () +@@ -5728,7 +6638,7 @@ # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;;
@@ -5519,7 +5519,7 @@ Index: binutils-2.21/ltmain.sh esac fi -@@ -5740,7 +6650,7 @@ func_mode_link () +@@ -5740,7 +6650,7 @@ *) case "$compile_rpath " in *" $absdir "*) ;;
@@ -5528,7 +5528,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -5749,7 +6659,7 @@ func_mode_link () +@@ -5749,7 +6659,7 @@ *) case "$finalize_rpath " in *" $libdir "*) ;;
@@ -5537,7 +5537,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -5774,12 +6684,12 @@ func_mode_link () +@@ -5774,12 +6684,12 @@ case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded
@@ -5552,7 +5552,7 @@ Index: binutils-2.21/ltmain.sh need_relink=yes fi ;; -@@ -5814,7 +6724,7 @@ func_mode_link () +@@ -5814,7 +6724,7 @@ *) case "$compile_rpath " in *" $absdir "*) ;;
@@ -5561,7 +5561,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -5823,7 +6733,7 @@ func_mode_link () +@@ -5823,7 +6733,7 @@ *) case "$finalize_rpath " in *" $libdir "*) ;;
@@ -5570,7 +5570,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -5835,7 +6745,7 @@ func_mode_link () +@@ -5835,7 +6745,7 @@ shift realname="$1" shift
@@ -5579,7 +5579,7 @@ Index: binutils-2.21/ltmain.sh # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" -@@ -5848,7 +6758,7 @@ func_mode_link () +@@ -5848,7 +6758,7 @@ versuffix="-$major" ;; esac
@@ -5588,7 +5588,7 @@ Index: binutils-2.21/ltmain.sh else soname="$realname" fi -@@ -5877,7 +6787,7 @@ func_mode_link () +@@ -5877,7 +6787,7 @@ linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds"
@@ -5597,7 +5597,7 @@ Index: binutils-2.21/ltmain.sh add_shlibpath= add_dir= add= -@@ -5933,7 +6843,7 @@ func_mode_link () +@@ -5933,7 +6843,7 @@ if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*)
@@ -5606,7 +5606,7 @@ Index: binutils-2.21/ltmain.sh ;; esac fi -@@ -5955,7 +6865,7 @@ func_mode_link () +@@ -5955,7 +6865,7 @@ if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;;
@@ -5615,7 +5615,7 @@ Index: binutils-2.21/ltmain.sh esac fi if test "$linkmode" = prog; then -@@ -5969,13 +6879,13 @@ func_mode_link () +@@ -5969,13 +6879,13 @@ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;;
@@ -5631,7 +5631,7 @@ Index: binutils-2.21/ltmain.sh add_shlibpath= add_dir= add= -@@ -5989,7 +6899,7 @@ func_mode_link () +@@ -5989,7 +6899,7 @@ elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;;
@@ -5640,7 +5640,7 @@ Index: binutils-2.21/ltmain.sh esac add="-l$name" elif test "$hardcode_automatic" = yes; then -@@ -6001,12 +6911,12 @@ func_mode_link () +@@ -6001,12 +6911,12 @@ fi else # We cannot seem to hardcode it, guess we'll fake it.
@@ -5655,7 +5655,7 @@ Index: binutils-2.21/ltmain.sh ;; esac fi -@@ -6083,27 +6993,33 @@ func_mode_link () +@@ -6083,27 +6993,33 @@ temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;;
@@ -5695,7 +5695,7 @@ Index: binutils-2.21/ltmain.sh done if test "$link_all_deplibs" != no; then -@@ -6113,8 +7029,10 @@ func_mode_link () +@@ -6113,8 +7029,10 @@ case $deplib in -L*) path="$deplib" ;; *.la)
@@ -5707,7 +5707,7 @@ Index: binutils-2.21/ltmain.sh # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; -@@ -6130,7 +7048,7 @@ func_mode_link () +@@ -6130,7 +7048,7 @@ case $host in *-*-darwin*) depdepl=
@@ -5716,7 +5716,7 @@ Index: binutils-2.21/ltmain.sh if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp -@@ -6141,8 +7059,8 @@ func_mode_link () +@@ -6141,8 +7059,8 @@ if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi
@@ -5727,7 +5727,7 @@ Index: binutils-2.21/ltmain.sh path= fi fi -@@ -6152,7 +7070,7 @@ func_mode_link () +@@ -6152,7 +7070,7 @@ ;; esac else
@@ -5736,7 +5736,7 @@ Index: binutils-2.21/ltmain.sh test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ -@@ -6192,7 +7110,7 @@ func_mode_link () +@@ -6192,7 +7110,7 @@ for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;;
@@ -5745,7 +5745,7 @@ Index: binutils-2.21/ltmain.sh esac done newlib_search_path= -@@ -6205,7 +7123,7 @@ func_mode_link () +@@ -6205,7 +7123,7 @@ fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order
@@ -5754,7 +5754,7 @@ Index: binutils-2.21/ltmain.sh new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so -@@ -6250,13 +7168,13 @@ func_mode_link () +@@ -6250,13 +7168,13 @@ -L*) case " $tmp_libs " in *" $deplib "*) ;;
@@ -5771,7 +5771,7 @@ Index: binutils-2.21/ltmain.sh done # for var fi # Last step: remove runtime libs from dependency_libs -@@ -6269,7 +7187,7 @@ func_mode_link () +@@ -6269,7 +7187,7 @@ ;; esac if test -n "$i" ; then
@@ -5780,7 +5780,7 @@ Index: binutils-2.21/ltmain.sh fi done dependency_libs=$tmp_libs -@@ -6310,7 +7228,7 @@ func_mode_link () +@@ -6310,7 +7228,7 @@ # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output"
@@ -5789,7 +5789,7 @@ Index: binutils-2.21/ltmain.sh ;; lib) -@@ -6319,8 +7237,8 @@ func_mode_link () +@@ -6319,8 +7237,8 @@ lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result
@@ -5800,7 +5800,7 @@ Index: binutils-2.21/ltmain.sh ;; *) test "$module" = no && \ -@@ -6330,8 +7248,8 @@ func_mode_link () +@@ -6330,8 +7248,8 @@ # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result
@@ -5811,7 +5811,7 @@ Index: binutils-2.21/ltmain.sh else func_stripname '' '.la' "$outputname" libname=$func_stripname_result -@@ -6346,7 +7264,7 @@ func_mode_link () +@@ -6346,7 +7264,7 @@ echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!"
@@ -5820,7 +5820,7 @@ Index: binutils-2.21/ltmain.sh fi fi -@@ -6544,7 +7462,7 @@ func_mode_link () +@@ -6544,7 +7462,7 @@ done # Make executables depend on our current version.
@@ -5829,7 +5829,7 @@ Index: binutils-2.21/ltmain.sh ;; qnx) -@@ -6612,10 +7530,10 @@ func_mode_link () +@@ -6612,10 +7530,10 @@ fi func_generate_dlsyms "$libname" "$libname" "yes"
@@ -5842,7 +5842,7 @@ Index: binutils-2.21/ltmain.sh # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= -@@ -6631,7 +7549,7 @@ func_mode_link () +@@ -6631,7 +7549,7 @@ continue fi fi
@@ -5851,7 +5851,7 @@ Index: binutils-2.21/ltmain.sh ;; *) ;; esac -@@ -6642,7 +7560,7 @@ func_mode_link () +@@ -6642,7 +7560,7 @@ # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
@@ -5860,7 +5860,7 @@ Index: binutils-2.21/ltmain.sh # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` -@@ -6659,10 +7577,11 @@ func_mode_link () +@@ -6659,10 +7577,11 @@ # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do
@@ -5874,7 +5874,7 @@ Index: binutils-2.21/ltmain.sh esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then -@@ -6676,7 +7595,7 @@ func_mode_link () +@@ -6676,7 +7595,7 @@ for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;;
@@ -5883,7 +5883,7 @@ Index: binutils-2.21/ltmain.sh esac done -@@ -6686,7 +7605,7 @@ func_mode_link () +@@ -6686,7 +7605,7 @@ for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;;
@@ -5892,7 +5892,7 @@ Index: binutils-2.21/ltmain.sh esac done -@@ -6698,7 +7617,7 @@ func_mode_link () +@@ -6698,7 +7617,7 @@ ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework
@@ -5901,7 +5901,7 @@ Index: binutils-2.21/ltmain.sh ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. -@@ -6715,7 +7634,7 @@ func_mode_link () +@@ -6715,7 +7634,7 @@ *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then
@@ -5910,7 +5910,7 @@ Index: binutils-2.21/ltmain.sh fi ;; esac -@@ -6764,18 +7683,18 @@ EOF +@@ -6764,18 +7683,18 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*)
@@ -5933,7 +5933,7 @@ Index: binutils-2.21/ltmain.sh else droppeddeps=yes echo -@@ -6789,7 +7708,7 @@ EOF +@@ -6789,7 +7708,7 @@ fi ;; *)
@@ -5942,7 +5942,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done -@@ -6807,18 +7726,18 @@ EOF +@@ -6807,18 +7726,18 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*)
@@ -5965,7 +5965,7 @@ Index: binutils-2.21/ltmain.sh else droppeddeps=yes echo -@@ -6840,7 +7759,7 @@ EOF +@@ -6840,7 +7759,7 @@ fi ;; *)
@@ -5974,7 +5974,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done -@@ -6857,15 +7776,27 @@ EOF +@@ -6857,15 +7776,27 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*)
@@ -6005,7 +6005,7 @@ Index: binutils-2.21/ltmain.sh for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | -@@ -6885,10 +7816,10 @@ EOF +@@ -6885,10 +7816,10 @@ *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done
@@ -6018,7 +6018,7 @@ Index: binutils-2.21/ltmain.sh a_deplib="" break 2 fi -@@ -6913,7 +7844,7 @@ EOF +@@ -6913,7 +7844,7 @@ ;; *) # Add a -L argument.
@@ -6027,7 +6027,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done # Gone through all deplibs. -@@ -6929,20 +7860,20 @@ EOF +@@ -6929,20 +7860,20 @@ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*)
@@ -6051,7 +6051,7 @@ Index: binutils-2.21/ltmain.sh a_deplib="" break 2 fi -@@ -6967,7 +7898,7 @@ EOF +@@ -6967,7 +7898,7 @@ ;; *) # Add a -L argument.
@@ -6060,7 +6060,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done # Gone through all deplibs. -@@ -7071,7 +8002,7 @@ EOF +@@ -7071,7 +8002,7 @@ *) case " $deplibs " in *" -L$path/$objdir "*)
@@ -6069,7 +6069,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -7081,10 +8012,10 @@ EOF +@@ -7081,10 +8012,10 @@ -L*) case " $new_libs " in *" $deplib "*) ;;
@@ -6082,7 +6082,7 @@ Index: binutils-2.21/ltmain.sh esac done deplibs="$new_libs" -@@ -7101,10 +8032,12 @@ EOF +@@ -7101,10 +8032,12 @@ hardcode_libdirs= dep_rpath= rpath="$finalize_rpath"
@@ -6096,7 +6096,7 @@ Index: binutils-2.21/ltmain.sh if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else -@@ -7113,18 +8046,18 @@ EOF +@@ -7113,18 +8046,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *)
@@ -6119,7 +6119,7 @@ Index: binutils-2.21/ltmain.sh esac fi done -@@ -7133,40 +8066,38 @@ EOF +@@ -7133,40 +8066,38 @@ test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then
@@ -6169,7 +6169,7 @@ Index: binutils-2.21/ltmain.sh else soname="$realname" fi -@@ -7178,7 +8109,7 @@ EOF +@@ -7178,7 +8109,7 @@ linknames= for link do
@@ -6178,7 +6178,7 @@ Index: binutils-2.21/ltmain.sh done # Use standard objects if they are pic -@@ -7189,7 +8120,7 @@ EOF +@@ -7189,7 +8120,7 @@ if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp"
@@ -6187,7 +6187,7 @@ Index: binutils-2.21/ltmain.sh fi orig_export_symbols= -@@ -7220,13 +8151,45 @@ EOF +@@ -7220,13 +8151,45 @@ $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~'
@@ -6238,7 +6238,7 @@ Index: binutils-2.21/ltmain.sh skipped_export=false else # The command line is too long to execute in one step. -@@ -7248,7 +8211,7 @@ EOF +@@ -7248,7 +8211,7 @@ if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
@@ -6247,7 +6247,7 @@ Index: binutils-2.21/ltmain.sh fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then -@@ -7260,7 +8223,7 @@ EOF +@@ -7260,7 +8223,7 @@ # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
@@ -6256,7 +6256,7 @@ Index: binutils-2.21/ltmain.sh export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi -@@ -7270,7 +8233,7 @@ EOF +@@ -7270,7 +8233,7 @@ case " $convenience " in *" $test_deplib "*) ;; *)
@@ -6265,7 +6265,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done -@@ -7286,43 +8249,43 @@ EOF +@@ -7286,43 +8249,43 @@ fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs
@@ -6320,7 +6320,7 @@ Index: binutils-2.21/ltmain.sh cmds=$archive_cmds fi fi -@@ -7366,10 +8329,13 @@ EOF +@@ -7366,10 +8329,13 @@ echo 'INPUT (' > $output for obj in $save_libobjs do
@@ -6336,7 +6336,7 @@ Index: binutils-2.21/ltmain.sh elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" -@@ -7383,15 +8349,17 @@ EOF +@@ -7383,15 +8349,17 @@ fi for obj do
@@ -6358,7 +6358,7 @@ Index: binutils-2.21/ltmain.sh func_len " $test_cmds" len0=$func_len_result len=$len0 -@@ -7411,12 +8379,12 @@ EOF +@@ -7411,12 +8379,12 @@ if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist
@@ -6373,7 +6373,7 @@ Index: binutils-2.21/ltmain.sh fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 -@@ -7433,11 +8401,11 @@ EOF +@@ -7433,11 +8401,11 @@ # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj"
@@ -6388,7 +6388,7 @@ Index: binutils-2.21/ltmain.sh else output= -@@ -7450,9 +8418,9 @@ EOF +@@ -7450,9 +8418,9 @@ libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~
@@ -6400,7 +6400,7 @@ Index: binutils-2.21/ltmain.sh fi fi -@@ -7471,7 +8439,7 @@ EOF +@@ -7471,7 +8439,7 @@ lt_exit=$? # Restore the uninstalled library and exit
@@ -6409,7 +6409,7 @@ Index: binutils-2.21/ltmain.sh ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) -@@ -7492,7 +8460,7 @@ EOF +@@ -7492,7 +8460,7 @@ if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
@@ -6418,7 +6418,7 @@ Index: binutils-2.21/ltmain.sh fi if test -n "$orig_export_symbols"; then -@@ -7504,7 +8472,7 @@ EOF +@@ -7504,7 +8472,7 @@ # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
@@ -6427,7 +6427,7 @@ Index: binutils-2.21/ltmain.sh export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi -@@ -7515,7 +8483,7 @@ EOF +@@ -7515,7 +8483,7 @@ output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
@@ -6436,7 +6436,7 @@ Index: binutils-2.21/ltmain.sh test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the -@@ -7539,23 +8507,23 @@ EOF +@@ -7539,23 +8507,23 @@ if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds.
@@ -6464,7 +6464,7 @@ Index: binutils-2.21/ltmain.sh $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" -@@ -7564,7 +8532,7 @@ EOF +@@ -7564,7 +8532,7 @@ lt_exit=$? # Restore the uninstalled library and exit
@@ -6473,7 +6473,7 @@ Index: binutils-2.21/ltmain.sh ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) -@@ -7576,8 +8544,8 @@ EOF +@@ -7576,8 +8544,8 @@ IFS="$save_ifs" # Restore the uninstalled library and exit
@@ -6484,7 +6484,7 @@ Index: binutils-2.21/ltmain.sh if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then -@@ -7656,17 +8624,20 @@ EOF +@@ -7656,17 +8624,20 @@ if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then
@@ -6507,7 +6507,7 @@ Index: binutils-2.21/ltmain.sh # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test -@@ -7690,7 +8661,7 @@ EOF +@@ -7690,7 +8661,7 @@ # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj"
@@ -6516,7 +6516,7 @@ Index: binutils-2.21/ltmain.sh exit $EXIT_SUCCESS fi -@@ -7740,8 +8711,8 @@ EOF +@@ -7740,8 +8711,8 @@ if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123])
@@ -6527,7 +6527,7 @@ Index: binutils-2.21/ltmain.sh ;; esac fi -@@ -7761,7 +8732,7 @@ EOF +@@ -7761,7 +8732,7 @@ *) case " $compile_deplibs " in *" -L$path/$objdir "*)
@@ -6536,7 +6536,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -7771,17 +8742,17 @@ EOF +@@ -7771,17 +8742,17 @@ -L*) case " $new_libs " in *" $deplib "*) ;;
@@ -6558,7 +6558,7 @@ Index: binutils-2.21/ltmain.sh if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. -@@ -7789,7 +8760,7 @@ EOF +@@ -7789,7 +8760,7 @@ # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;;
@@ -6567,7 +6567,7 @@ Index: binutils-2.21/ltmain.sh esac done fi -@@ -7808,18 +8779,18 @@ EOF +@@ -7808,18 +8779,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *)
@@ -6590,7 +6590,7 @@ Index: binutils-2.21/ltmain.sh esac fi case $host in -@@ -7828,12 +8799,12 @@ EOF +@@ -7828,12 +8799,12 @@ case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;;
@@ -6605,7 +6605,7 @@ Index: binutils-2.21/ltmain.sh esac ;; esac -@@ -7842,7 +8813,7 @@ EOF +@@ -7842,7 +8813,7 @@ if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs"
@@ -6614,7 +6614,7 @@ Index: binutils-2.21/ltmain.sh fi compile_rpath="$rpath" -@@ -7859,18 +8830,18 @@ EOF +@@ -7859,18 +8830,18 @@ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *)
@@ -6637,7 +6637,7 @@ Index: binutils-2.21/ltmain.sh esac fi done -@@ -7878,7 +8849,7 @@ EOF +@@ -7878,7 +8849,7 @@ if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs"
@@ -6646,7 +6646,7 @@ Index: binutils-2.21/ltmain.sh fi finalize_rpath="$rpath" -@@ -7921,6 +8892,12 @@ EOF +@@ -7921,6 +8892,12 @@ exit_status=0 func_show_eval "$link_command" 'exit_status=$?'
@@ -6659,7 +6659,7 @@ Index: binutils-2.21/ltmain.sh # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' -@@ -7943,7 +8920,7 @@ EOF +@@ -7943,7 +8920,7 @@ # We should set the runpath_var. rpath= for dir in $perm_rpath; do
@@ -6668,7 +6668,7 @@ Index: binutils-2.21/ltmain.sh done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi -@@ -7951,7 +8928,7 @@ EOF +@@ -7951,7 +8928,7 @@ # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do
@@ -6677,7 +6677,7 @@ Index: binutils-2.21/ltmain.sh done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi -@@ -7966,6 +8943,13 @@ EOF +@@ -7966,6 +8943,13 @@ $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?'
@@ -6691,7 +6691,7 @@ Index: binutils-2.21/ltmain.sh exit $EXIT_SUCCESS fi -@@ -7999,6 +8983,12 @@ EOF +@@ -7999,6 +8983,12 @@ func_show_eval "$link_command" 'exit $?'
@@ -6704,7 +6704,7 @@ Index: binutils-2.21/ltmain.sh # Now create the wrapper script. func_verbose "creating $output" -@@ -8096,7 +9086,7 @@ EOF +@@ -8096,7 +9086,7 @@ else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then
@@ -6713,7 +6713,7 @@ Index: binutils-2.21/ltmain.sh fi fi addlibs="$old_convenience" -@@ -8104,10 +9094,10 @@ EOF +@@ -8104,10 +9094,10 @@ if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x"
@@ -6726,7 +6726,7 @@ Index: binutils-2.21/ltmain.sh fi # Do each command in the archive commands. -@@ -8118,10 +9108,10 @@ EOF +@@ -8118,10 +9108,10 @@ # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x"
@@ -6739,7 +6739,7 @@ Index: binutils-2.21/ltmain.sh fi # POSIX demands no paths to be encoded in archives. We have -@@ -8139,7 +9129,7 @@ EOF +@@ -8139,7 +9129,7 @@ else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x"
@@ -6748,7 +6748,7 @@ Index: binutils-2.21/ltmain.sh func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= -@@ -8163,18 +9153,28 @@ EOF +@@ -8163,18 +9153,28 @@ esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
@@ -6780,7 +6780,7 @@ Index: binutils-2.21/ltmain.sh else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." -@@ -8189,7 +9189,7 @@ EOF +@@ -8189,7 +9189,7 @@ do last_oldobj=$obj done
@@ -6789,7 +6789,7 @@ Index: binutils-2.21/ltmain.sh func_len " $test_cmds" len0=$func_len_result len=$len0 -@@ -8208,7 +9208,7 @@ EOF +@@ -8208,7 +9208,7 @@ RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~
@@ -6798,7 +6798,7 @@ Index: binutils-2.21/ltmain.sh objlist= len=$len0 fi -@@ -8216,9 +9216,9 @@ EOF +@@ -8216,9 +9216,9 @@ RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then
@@ -6810,7 +6810,7 @@ Index: binutils-2.21/ltmain.sh fi fi fi -@@ -8268,12 +9268,23 @@ EOF +@@ -8268,12 +9268,23 @@ *.la) func_basename "$deplib" name="$func_basename_result"
@@ -6837,7 +6837,7 @@ Index: binutils-2.21/ltmain.sh esac done dependency_libs="$newdependency_libs" -@@ -8284,12 +9295,14 @@ EOF +@@ -8284,12 +9295,14 @@ *.la) func_basename "$lib" name="$func_basename_result"
@@ -6855,7 +6855,7 @@ Index: binutils-2.21/ltmain.sh esac done dlfiles="$newdlfiles" -@@ -8303,10 +9316,11 @@ EOF +@@ -8303,10 +9316,11 @@ # the library: func_basename "$lib" name="$func_basename_result"
@@ -6869,7 +6869,7 @@ Index: binutils-2.21/ltmain.sh ;; esac done -@@ -8318,7 +9332,7 @@ EOF +@@ -8318,7 +9332,7 @@ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac
@@ -6878,7 +6878,7 @@ Index: binutils-2.21/ltmain.sh done dlfiles="$newdlfiles" newdlprefiles= -@@ -8327,7 +9341,7 @@ EOF +@@ -8327,7 +9341,7 @@ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac
@@ -6887,7 +6887,7 @@ Index: binutils-2.21/ltmain.sh done dlprefiles="$newdlprefiles" fi -@@ -8412,7 +9426,7 @@ relink_command=\"$relink_command\"" +@@ -8412,7 +9426,7 @@ exit $EXIT_SUCCESS }
@@ -6896,7 +6896,7 @@ Index: binutils-2.21/ltmain.sh func_mode_link ${1+"$@"} -@@ -8432,9 +9446,9 @@ func_mode_uninstall () +@@ -8432,9 +9446,9 @@ for arg do case $arg in
@@ -6909,7 +6909,7 @@ Index: binutils-2.21/ltmain.sh esac done -@@ -8443,24 +9457,23 @@ func_mode_uninstall () +@@ -8443,24 +9457,23 @@ rmdirs=
@@ -6941,7 +6941,7 @@ Index: binutils-2.21/ltmain.sh esac fi -@@ -8486,18 +9499,17 @@ func_mode_uninstall () +@@ -8486,18 +9499,17 @@ # Delete the libtool libraries and symlinks. for n in $library_names; do
@@ -6966,7 +6966,7 @@ Index: binutils-2.21/ltmain.sh ;; uninstall) if test -n "$library_names"; then -@@ -8525,19 +9537,19 @@ func_mode_uninstall () +@@ -8525,19 +9537,19 @@ # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then
@@ -6989,7 +6989,7 @@ Index: binutils-2.21/ltmain.sh noexename=$name case $file in *.exe) -@@ -8547,7 +9559,7 @@ func_mode_uninstall () +@@ -8547,7 +9559,7 @@ noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe
@@ -6998,7 +6998,7 @@ Index: binutils-2.21/ltmain.sh ;; esac # Do a test to see if this is a libtool program. -@@ -8556,7 +9568,7 @@ func_mode_uninstall () +@@ -8556,7 +9568,7 @@ func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result
@@ -7007,7 +7007,7 @@ Index: binutils-2.21/ltmain.sh else relink_command= func_source $dir/$noexename -@@ -8564,12 +9576,12 @@ func_mode_uninstall () +@@ -8564,12 +9576,12 @@ # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles
@@ -7023,7 +7023,7 @@ Index: binutils-2.21/ltmain.sh fi fi fi -@@ -8577,7 +9589,6 @@ func_mode_uninstall () +@@ -8577,7 +9589,6 @@ esac func_show_eval "$RM $rmfiles" 'exit_status=1' done
@@ -7031,7 +7031,7 @@ Index: binutils-2.21/ltmain.sh # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do -@@ -8589,16 +9600,16 @@ func_mode_uninstall () +@@ -8589,16 +9600,16 @@ exit $exit_status }
@@ -7053,8 +7053,8 @@ Index: binutils-2.21/ltmain.sh eval exec "$exec_cmd" Index: binutils-2.21/ltoptions.m4 =================================================================== ---- binutils-2.21.orig/ltoptions.m4 -+++ binutils-2.21/ltoptions.m4 +--- binutils-2.21.orig/ltoptions.m4 2010-01-09 13:11:32.000000000 -0800 ++++ binutils-2.21/ltoptions.m4 2011-01-07 10:49:16.406101000 -0800 @@ -8,7 +8,7 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved.
@@ -7066,8 +7066,8 @@ Index: binutils-2.21/ltoptions.m4 AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) Index: binutils-2.21/ltversion.m4 =================================================================== ---- binutils-2.21.orig/ltversion.m4 -+++ binutils-2.21/ltversion.m4 +--- binutils-2.21.orig/ltversion.m4 2010-01-09 13:11:32.000000000 -0800 ++++ binutils-2.21/ltversion.m4 2011-01-07 10:49:16.406101000 -0800 @@ -7,17 +7,17 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved.
@@ -7094,8 +7094,8 @@ Index: binutils-2.21/ltversion.m4 ]) Index: binutils-2.21/lt~obsolete.m4 =================================================================== ---- binutils-2.21.orig/lt~obsolete.m4 -+++ binutils-2.21/lt~obsolete.m4 +--- binutils-2.21.orig/lt~obsolete.m4 2010-01-09 13:11:32.000000000 -0800 ++++ binutils-2.21/lt~obsolete.m4 2011-01-07 10:49:16.406101000 -0800 @@ -7,7 +7,7 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved.
@@ -7107,9 +7107,9 @@ Index: binutils-2.21/lt~obsolete.m4 # Index: binutils-2.21/configure =================================================================== ---- binutils-2.21.orig/configure -+++ binutils-2.21/configure -@@ -2670,7 +2670,7 @@ host_libs="intl mmalloc libiberty opcode +--- binutils-2.21.orig/configure 2011-01-07 10:49:16.006101000 -0800 ++++ binutils-2.21/configure 2011-01-07 10:49:17.906101000 -0800 +@@ -2670,7 +2670,7 @@ # binutils, gas and ld appear in that order because it makes sense to run # "make check" in that particular order. # If --enable-gold is used, "gold" may replace "ld".
@@ -7118,7 +7118,7 @@ Index: binutils-2.21/configure # libgcj represents the runtime libraries only used by gcj. libgcj="target-libffi \ -@@ -3148,7 +3148,7 @@ case "${target}" in +@@ -3148,7 +3148,7 @@ am33_2.0-*-linux*) noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;;
@@ -7127,7 +7127,7 @@ Index: binutils-2.21/configure noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; sh*-*-pe|mips*-*-pe|*arm-wince-pe) -@@ -3487,7 +3487,7 @@ case "${target}" in +@@ -3487,7 +3487,7 @@ romp-*-*) noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}" ;;
@@ -7136,7 +7136,7 @@ Index: binutils-2.21/configure case "${host}" in i[3456789]86-*-vsta) ;; # don't add gprof back in i[3456789]86-*-go32*) ;; # don't add gprof back in -@@ -7597,7 +7597,7 @@ case " $build_configdirs " in +@@ -7597,7 +7597,7 @@ # For an installed makeinfo, we require it to be from texinfo 4.7 or # higher, else we use the "missing" dummy. if ${MAKEINFO} --version \
@@ -7147,9 +7147,9 @@ Index: binutils-2.21/configure MAKEINFO="$MISSING makeinfo" Index: binutils-2.21/bfd/configure =================================================================== ---- binutils-2.21.orig/bfd/configure -+++ binutils-2.21/bfd/configure -@@ -667,6 +667,9 @@ OTOOL +--- binutils-2.21.orig/bfd/configure 2010-12-08 00:37:34.000000000 -0800 ++++ binutils-2.21/bfd/configure 2011-01-07 11:25:57.156101002 -0800 +@@ -667,6 +667,9 @@ LIPO NMEDIT DSYMUTIL
@@ -7159,7 +7159,7 @@ Index: binutils-2.21/bfd/configure OBJDUMP LN_S NM -@@ -779,6 +782,7 @@ enable_static +@@ -779,6 +782,7 @@ with_pic enable_fast_install with_gnu_ld
@@ -7167,7 +7167,7 @@ Index: binutils-2.21/bfd/configure enable_libtool_lock enable_plugins enable_largefile -@@ -1453,6 +1457,8 @@ Optional Packages: +@@ -1453,6 +1457,8 @@ --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -7176,7 +7176,7 @@ Index: binutils-2.21/bfd/configure --with-mmap try using mmap for BFD input files if available --with-separate-debug-dir=DIR Look for global separate debug info in DIR -@@ -5383,8 +5389,8 @@ esac +@@ -5383,8 +5389,8 @@
@@ -7187,7 +7187,7 @@ Index: binutils-2.21/bfd/configure -@@ -5424,7 +5430,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO +@@ -5424,7 +5430,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present.
@@ -7196,7 +7196,7 @@ Index: binutils-2.21/bfd/configure test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then -@@ -6110,8 +6116,8 @@ $as_echo_n "checking whether the shell u +@@ -6110,8 +6116,8 @@ # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c"
@@ -7207,7 +7207,7 @@ Index: binutils-2.21/bfd/configure && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes -@@ -6160,6 +6166,80 @@ esac +@@ -6160,6 +6166,80 @@
@@ -7288,7 +7288,7 @@ Index: binutils-2.21/bfd/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : -@@ -6176,6 +6256,11 @@ case $reload_flag in +@@ -6176,6 +6256,11 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in
@@ -7300,7 +7300,7 @@ Index: binutils-2.21/bfd/configure darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' -@@ -6344,7 +6429,8 @@ mingw* | pw32*) +@@ -6344,7 +6429,8 @@ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else
@@ -7310,7 +7310,7 @@ Index: binutils-2.21/bfd/configure lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -@@ -6498,6 +6584,21 @@ esac +@@ -6498,6 +6584,21 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -7332,7 +7332,7 @@ Index: binutils-2.21/bfd/configure file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown -@@ -6513,9 +6614,162 @@ test -z "$deplibs_check_method" && depli +@@ -6513,9 +6614,162 @@
@@ -7497,7 +7497,7 @@ Index: binutils-2.21/bfd/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : -@@ -6531,7 +6785,7 @@ do +@@ -6531,7 +6785,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -7506,7 +7506,7 @@ Index: binutils-2.21/bfd/configure $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi -@@ -6551,11 +6805,15 @@ $as_echo "no" >&6; } +@@ -6551,11 +6805,15 @@ fi
@@ -7525,7 +7525,7 @@ Index: binutils-2.21/bfd/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : -@@ -6571,7 +6829,7 @@ do +@@ -6571,7 +6829,7 @@ test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -7534,7 +7534,7 @@ Index: binutils-2.21/bfd/configure $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi -@@ -6590,6 +6848,10 @@ else +@@ -6590,6 +6848,10 @@ $as_echo "no" >&6; } fi
@@ -7545,7 +7545,7 @@ Index: binutils-2.21/bfd/configure if test "x$ac_ct_AR" = x; then AR="false" else -@@ -6601,16 +6863,72 @@ ac_tool_warned=yes ;; +@@ -6601,16 +6863,72 @@ esac AR=$ac_ct_AR fi
@@ -7622,7 +7622,7 @@ Index: binutils-2.21/bfd/configure -@@ -6952,8 +7270,8 @@ esac +@@ -6952,8 +7270,8 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address
@@ -7633,7 +7633,7 @@ Index: binutils-2.21/bfd/configure # Handle CRLF in mingw tool chain opt_cr= -@@ -6989,6 +7307,7 @@ for ac_symprfx in "" "_"; do +@@ -6989,6 +7307,7 @@ else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi
@@ -7641,7 +7641,7 @@ Index: binutils-2.21/bfd/configure # Check to see that the pipe works correctly. pipe_works=no -@@ -7030,6 +7349,18 @@ _LT_EOF +@@ -7030,6 +7349,18 @@ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext
@@ -7660,7 +7660,7 @@ Index: binutils-2.21/bfd/configure #ifdef __cplusplus extern "C" { #endif -@@ -7041,7 +7372,7 @@ _LT_EOF +@@ -7041,7 +7372,7 @@ cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */
@@ -7669,7 +7669,7 @@ Index: binutils-2.21/bfd/configure const char *name; void *address; } -@@ -7067,8 +7398,8 @@ static const void *lt_preloaded_setup() +@@ -7067,8 +7398,8 @@ _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext
@@ -7680,7 +7680,7 @@ Index: binutils-2.21/bfd/configure LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 -@@ -7078,8 +7409,8 @@ _LT_EOF +@@ -7078,8 +7409,8 @@ test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi
@@ -7691,7 +7691,7 @@ Index: binutils-2.21/bfd/configure else echo "cannot find nm_test_func in $nlist" >&5 fi -@@ -7116,6 +7447,20 @@ else +@@ -7116,6 +7447,20 @@ $as_echo "ok" >&6; } fi
@@ -7712,7 +7712,7 @@ Index: binutils-2.21/bfd/configure -@@ -7135,6 +7480,41 @@ fi +@@ -7135,6 +7480,41 @@
@@ -7754,7 +7754,7 @@ Index: binutils-2.21/bfd/configure # Check whether --enable-libtool-lock was given. -@@ -7330,6 +7710,123 @@ esac +@@ -7330,6 +7710,123 @@ need_locks="$enable_libtool_lock"
@@ -7878,7 +7878,7 @@ Index: binutils-2.21/bfd/configure case $host_os in rhapsody* | darwin*) -@@ -7893,6 +8390,8 @@ _LT_EOF +@@ -7893,6 +8390,8 @@ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5
@@ -7887,7 +7887,7 @@ Index: binutils-2.21/bfd/configure cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF -@@ -8057,7 +8556,8 @@ fi +@@ -8057,7 +8556,8 @@ LIBTOOL_DEPS="$ltmain" # Always use our own libtool.
@@ -7897,7 +7897,7 @@ Index: binutils-2.21/bfd/configure -@@ -8146,7 +8646,7 @@ aix3*) +@@ -8146,7 +8646,7 @@ esac # Global variables:
@@ -7906,7 +7906,7 @@ Index: binutils-2.21/bfd/configure can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, -@@ -8444,8 +8944,6 @@ fi +@@ -8444,8 +8944,6 @@ lt_prog_compiler_pic= lt_prog_compiler_static=
@@ -7915,7 +7915,7 @@ Index: binutils-2.21/bfd/configure if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' -@@ -8610,6 +9108,12 @@ $as_echo_n "checking for $compiler optio +@@ -8610,6 +9108,12 @@ lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;;
@@ -7928,7 +7928,7 @@ Index: binutils-2.21/bfd/configure pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) -@@ -8672,7 +9176,7 @@ $as_echo_n "checking for $compiler optio +@@ -8672,7 +9176,7 @@ lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic'
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Signature · 1 line
1.7.1
Part of the diff is not shown here. View the raw message.
PATCH 11/12 binutils: fix library RPATHs
In reply to Scott GarmanThis integrates the RPATH fixes we recently applied to libtool.
--- .../binutils/binutils-2.21/libtool-rpath-fix.patch | 36 ++++++++++++++++++++ meta/recipes-devtools/binutils/binutils_2.21.bb | 1 + 2 files changed, 37 insertions(+), 0 deletions(-) create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch
meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch new file +36 -0
@@ -0,0 +1,36 @@ +Enabling sysroot support in libtool 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 <[email protected]> +Signed-off-by: Scott Garman <[email protected]> + +diff -urN binutils-2.21.orig//ltmain.sh binutils-2.21/ltmain.sh +--- binutils-2.21.orig//ltmain.sh 2011-01-18 11:50:40.821710085 -0800 ++++ binutils-2.21/ltmain.sh 2011-01-18 11:51:38.774952785 -0800 +@@ -8035,9 +8035,11 @@ + 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 +@@ -8770,6 +8772,10 @@ + 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"
meta/recipes-devtools/binutils/binutils_2.21.bb +1 -0
@@ -28,6 +28,7 @@ SRC_URI = "\ file://binutils-2.19.1-ld-sysroot.patch \ file://libiberty_path_fix.patch \ file://binutils-poison.patch \ + file://libtool-rpath-fix.patch \ " SRC_URI[md5sum] = "c84c5acc9d266f1a7044b51c85a823f5"
Signature · 1 line
1.7.1
PATCH 12/12 poky-default.inc: bump binutils preferred version to 2.21
In reply to Scott Garman--- meta/conf/distro/include/poky-default.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/conf/distro/include/poky-default.inc +1 -1
@@ -17,7 +17,7 @@ PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk ?= "${POKYLIBC}-n GCCVERSION ?= "4.5.1" SDKGCCVERSION ?= "4.5.1" -BINUVERSION ?= "2.20.1" +BINUVERSION ?= "2.21" GLIBCVERSION ?= "2.10.1" LINUXLIBCVERSION ?= "2.6.36"
Signature · 1 line
1.7.1
Quoted 102 lines · Scott Garman
Hi Saul,
This patch series enables sysroot support in libtool, a new feature that was added in libtool 2.4. Countless thanks to Khem Raj, who got this working in OpenEmbedded recently - just about everything here is based on his work, with a couple of additional tweaks courtesy of Richard Purdie.
This is a respin of my previous pull request, which includes some changes to the libtool recipe changes that Richard raised concerns with and forward-ports the binutils poison patch that I had forgotten to include in my last pull request.
Pull URL:
git://git.pokylinux.org/poky-contrib.git
Branch: sgarman/libtool-sysroot-rev2
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=sgarman/libtool-sysroot-rev2Thanks,
Scott Garman<[email protected]>
---Richard Purdie (1):
libtool: Move common version specific data to a common include fileScott Garman (11):
libtool: Small cleanups of metadata
libtool: Changes to enable sysroot support
libtool: fix library RPATHs
autotools.bbclass: libtool sysroot support changes staging.bbclass, utils.bbclass: remove la mangling code insane.bbclass: skip checks on .la installed status
binutils: upgrade to 2.21 and add libtool sysroot support
binutils: forward-port the binutils-poison.patch
binutils: Fix QA staging errors for target binutils
binutils: fix library RPATHs
poky-default.inc: bump binutils preferred version to 2.21meta/classes/autotools.bbclass | 25 +- meta/classes/insane.bbclass | 5 - meta/classes/staging.bbclass | 14 - meta/classes/utils.bbclass | 15 +- meta/conf/distro/include/poky-default.inc | 2 +- .../binutils-2.20.1/binutils-2.16.1-e300c2c3.patch | 18 - .../binutils-2.20.1/binutils-libtool.patch | 67 - .../binutils-2.20.1/binutils-mips-pie.patch | 29 - .../binutils/binutils-2.20.1/binutils-poison.patch | 253 - .../110-arm-eabi-conf.patch | 0 .../binutils-2.21/binutils-2.19.1-ld-sysroot.patch | 37 + .../binutils/binutils-2.21/binutils-poison.patch | 245 + .../binutils-uclibc-100-uclibc-conf.patch | 0 ...binutils-uclibc-300-001_ld_makefile_patch.patch | 0 ...binutils-uclibc-300-006_better_file_error.patch | 0 ...ils-uclibc-300-012_check_ldrunpath_length.patch | 19 +- .../binutils-uclibc-gas-needs-libm.patch | 0 .../binutils-x86_64_i386_biarch.patch | 0 .../libiberty_path_fix.patch | 0 .../binutils-2.21/libtool-2.4-update.patch |18719 ++++++++++++++++++++ .../binutils/binutils-2.21/libtool-rpath-fix.patch | 36 + ...n_2.20.1.bb => binutils-cross-canadian_2.21.bb} | 2 +- ...tils-cross_2.20.1.bb => binutils-cross_2.21.bb} | 1 - ...rosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} | 2 +- .../{binutils_2.20.1.bb => binutils_2.21.bb} | 18 +- meta/recipes-devtools/libtool/libtool-2.4.inc | 13 + meta/recipes-devtools/libtool/libtool-cross_2.4.bb | 9 +- .../recipes-devtools/libtool/libtool-native_2.4.bb | 11 +- .../libtool/libtool-nativesdk_2.4.bb | 7 +- meta/recipes-devtools/libtool/libtool.inc | 22 +- .../libtool/libtool/cross_compile.patch | 38 - .../libtool/libtool/fix-final-rpath.patch | 36 + .../libtool/libtool/rename-with-sysroot.patch | 824 + .../libtool/libtool/resolve-sysroot.patch | 40 + .../libtool/libtool/use-sysroot-in-libpath.patch | 20 + meta/recipes-devtools/libtool/libtool_2.4.bb | 31 +- 36 files changed, 20034 insertions(+), 524 deletions(-) delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-2.16.1-e300c2c3.patch delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-libtool.patch delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-mips-pie.patch delete mode 100644 meta/recipes-devtools/binutils/binutils-2.20.1/binutils-poison.patch rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/110-arm-eabi-conf.patch (100%) create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/binutils-2.19.1-ld-sysroot.patch create mode 100644 meta/recipes-devtools/binutils/binutils-2.21/binutils-poison.patch rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-100-uclibc-conf.patch (100%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-001_ld_makefile_patch.patch (100%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-006_better_file_error.patch (100%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-300-012_check_ldrunpath_length.patch (70%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-uclibc-gas-needs-libm.patch (100%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/binutils-x86_64_i386_biarch.patch (100%) rename meta/recipes-devtools/binutils/{binutils-2.20.1 => binutils-2.21}/libiberty_path_fix.patch (100%)create mode 100644
meta/recipes-devtools/binutils/binutils-2.21/libtool-2.4-update.patch
create mode 100644meta/recipes-devtools/binutils/binutils-2.21/libtool-rpath-fix.patch
rename meta/recipes-devtools/binutils/{binutils-cross-canadian_2.20.1.bb => binutils-cross-canadian_2.21.bb} (86%) rename meta/recipes-devtools/binutils/{binutils-cross_2.20.1.bb => binutils-cross_2.21.bb} (98%) rename meta/recipes-devtools/binutils/{binutils-crosssdk_2.20.1.bb => binutils-crosssdk_2.21.bb} (96%) rename meta/recipes-devtools/binutils/{binutils_2.20.1.bb => binutils_2.21.bb} (75%)
create mode 100644 meta/recipes-devtools/libtool/libtool-2.4.inc
delete mode 100644meta/recipes-devtools/libtool/libtool/cross_compile.patch
create mode 100644meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
create mode 100644meta/recipes-devtools/libtool/libtool/rename-with-sysroot.patch
create mode 100644meta/recipes-devtools/libtool/libtool/resolve-sysroot.patch
create mode 100644meta/recipes-devtools/libtool/libtool/use-sysroot-in-libpath.patch
Quoted 5 lines
_______________________________________________
poky mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/poky
Pulled into Master
Thanks
Sau!