sys-devel/binutils-config: revert accidental commit in 62c75f76eb.
authorBenda Xu <heroxbd@gentoo.org>
Fri, 13 Apr 2018 03:56:34 +0000 (12:56 +0900)
committerBenda Xu <heroxbd@gentoo.org>
Fri, 13 Apr 2018 03:59:56 +0000 (12:59 +0900)
  I have made a mistake to overwrite changes to binutils-config-5.

Suggested-By: slyfox
Bug: https://bugs.gentoo.org/531616
Bug: https://bugs.gentoo.org/562460
Package-Manager: Portage-2.3.28, Repoman-2.3.9

sys-devel/binutils-config/files/binutils-config-5
sys-devel/binutils-config/files/binutils-config-5.1

index acb72b7e343589f147a1d3585cd6963a232bd0c0..d4df601a74b5ae096303fe8223537c81abaef75a 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # Format of /etc/env.d/binutils/:
@@ -155,7 +155,16 @@ switch_profile() {
        mkdir -p "${dstlib}"
        rm -rf "${ROOT}/${BINPATH_LINKS}"/ldscripts
        atomic_ln "${LIBPATH}/ldscripts" "${dstlib}" "ldscripts"
-       find -L "${dstlib}" -xtype l -name 'lib*' -exec rm -f {} +
+       find -L "${dstlib}" -xtype l -name 'lib*' -delete
+       # Detect older binutils w/broken rpaths. #562460
+       # We can hardcode the "/lib" part since that's what the binutils
+       # configure scripts have.  They did not include any other path.
+       if [[ $(scanelf -qF '%r#F' "${ROOT}/${BINPATH}/as") == */lib ]] ; then
+               ewarn "Old cross-binutils detected; please re-emerge to fix (see bug #562460)."
+               for x in lib* ; do
+                       atomic_ln "${LIBPATH}/${x}" "${dstlib}" "${x}"
+               done
+       fi
 
        #
        # Clean out old generated include symlinks
@@ -248,7 +257,7 @@ uninstall_target() {
 
        local x
        for x in \
-               addr2line ar as c++filt elf2flt elfedit flthdr gprof \
+               addr2line ar as c++filt dwp elf2flt elfedit flthdr gprof \
                ld ld.{bfd,gold,real} \
                nm objcopy objdump ranlib readelf size strings strip
        do
index ec06d47c14a7114ebf54ef417b0e9f50930aa015..26ff278eece56121af23ae5dd60f4d95d557c5d8 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # Format of /etc/env.d/binutils/:
@@ -155,7 +155,16 @@ switch_profile() {
        mkdir -p "${dstlib}"
        rm -rf "${ROOT}/${BINPATH_LINKS}"/ldscripts
        atomic_ln "${LIBPATH}/ldscripts" "${dstlib}" "ldscripts"
-       find -L "${dstlib}" -xtype l -name 'lib*' -exec rm -f {} +
+       find -L "${dstlib}" -xtype l -name 'lib*' -delete
+       # Detect older binutils w/broken rpaths. #562460
+       # We can hardcode the "/lib" part since that's what the binutils
+       # configure scripts have.  They did not include any other path.
+       if [[ $(scanelf -qF '%r#F' "${ROOT}/${BINPATH}/as") == */lib ]] ; then
+               ewarn "Old cross-binutils detected; please re-emerge to fix (see bug #562460)."
+               for x in lib* ; do
+                       atomic_ln "${LIBPATH}/${x}" "${dstlib}" "${x}"
+               done
+       fi
 
        #
        # Clean out old generated include symlinks
@@ -240,7 +249,7 @@ uninstall_target() {
 
        local x
        for x in \
-               addr2line ar as c++filt elf2flt elfedit flthdr gprof \
+               addr2line ar as c++filt dwp elf2flt elfedit flthdr gprof \
                ld ld.{bfd,gold,real} \
                nm objcopy objdump ranlib readelf size strings strip
        do