summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsys-devel/binutils-config/files/binutils-config-515
-rw-r--r--sys-devel/binutils-config/files/binutils-config-5.115
2 files changed, 24 insertions, 6 deletions
diff --git a/sys-devel/binutils-config/files/binutils-config-5 b/sys-devel/binutils-config/files/binutils-config-5
index acb72b7e3435..d4df601a74b5 100755
--- a/sys-devel/binutils-config/files/binutils-config-5
+++ b/sys-devel/binutils-config/files/binutils-config-5
@@ -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
diff --git a/sys-devel/binutils-config/files/binutils-config-5.1 b/sys-devel/binutils-config/files/binutils-config-5.1
index ec06d47c14a7..26ff278eece5 100644
--- a/sys-devel/binutils-config/files/binutils-config-5.1
+++ b/sys-devel/binutils-config/files/binutils-config-5.1
@@ -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