commit:     77288903dfbc98a0d707fd8093d3b2b55ee049e6
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 31 18:43:17 2021 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Oct 31 18:44:24 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=77288903

estrip: skip build-id link creation if we fail to create a debug file

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 bin/estrip | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/bin/estrip b/bin/estrip
index e33977091..050d30a6f 100755
--- a/bin/estrip
+++ b/bin/estrip
@@ -243,23 +243,24 @@ save_elf_debug() {
                        chmod ${args} "${dst}"
                        # symlink so we can read the name back.
                        ln -s "${dst}" "${inode_debug}" || die
+
+                       # if we don't already have build-id from debugedit, 
look it up
+                       if [[ -z ${buildid} ]] ; then
+                               # convert the readelf output to something useful
+                               buildid=$(${READELF} -n "${src}" 2>/dev/null | 
awk '/Build ID:/{ print $NF; exit }')
+                       fi
+                       if [[ -n ${buildid} ]] ; then
+                               local 
buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}"
+                               local buildid_file="${buildid_dir}/${buildid:2}"
+                               local 
src_buildid_rel="../../../../../${src#${ED%/}/}"
+                               local 
dst_buildid_rel="../../${dst#${ED%/}/usr/lib/debug/}"
+                               mkdir -p "${buildid_dir}" || die
+                               [[ -L "${buildid_file}".debug ]] || ln -s 
"${dst_buildid_rel}" "${buildid_file}.debug" || die
+                               [[ -L "${buildid_file}" ]] || ln -s 
"${src_buildid_rel}" "${buildid_file}" || die
+                       fi
                fi
        fi
 
-       # if we don't already have build-id from debugedit, look it up
-       if [[ -z ${buildid} ]] ; then
-               # convert the readelf output to something useful
-               buildid=$(${READELF} -n "${src}" 2>/dev/null | awk '/Build 
ID:/{ print $NF; exit }')
-       fi
-       if [[ -n ${buildid} ]] ; then
-               local 
buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}"
-               local buildid_file="${buildid_dir}/${buildid:2}"
-               local src_buildid_rel="../../../../../${src#${ED%/}/}"
-               local dst_buildid_rel="../../${dst#${ED%/}/usr/lib/debug/}"
-               mkdir -p "${buildid_dir}"
-               [[ -L "${buildid_file}".debug ]] || ln -s "${dst_buildid_rel}" 
"${buildid_file}.debug"
-               [[ -L "${buildid_file}" ]] || ln -s "${src_buildid_rel}" 
"${buildid_file}"
-       fi
 }
 
 # Usage: process_elf <elf>

Reply via email to