1 |
commit: 77288903dfbc98a0d707fd8093d3b2b55ee049e6 |
2 |
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Oct 31 18:43:17 2021 +0000 |
4 |
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Oct 31 18:44:24 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=77288903 |
7 |
|
8 |
estrip: skip build-id link creation if we fail to create a debug file |
9 |
|
10 |
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> |
11 |
|
12 |
bin/estrip | 29 +++++++++++++++-------------- |
13 |
1 file changed, 15 insertions(+), 14 deletions(-) |
14 |
|
15 |
diff --git a/bin/estrip b/bin/estrip |
16 |
index e33977091..050d30a6f 100755 |
17 |
--- a/bin/estrip |
18 |
+++ b/bin/estrip |
19 |
@@ -243,23 +243,24 @@ save_elf_debug() { |
20 |
chmod ${args} "${dst}" |
21 |
# symlink so we can read the name back. |
22 |
ln -s "${dst}" "${inode_debug}" || die |
23 |
+ |
24 |
+ # if we don't already have build-id from debugedit, look it up |
25 |
+ if [[ -z ${buildid} ]] ; then |
26 |
+ # convert the readelf output to something useful |
27 |
+ buildid=$(${READELF} -n "${src}" 2>/dev/null | awk '/Build ID:/{ print $NF; exit }') |
28 |
+ fi |
29 |
+ if [[ -n ${buildid} ]] ; then |
30 |
+ local buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}" |
31 |
+ local buildid_file="${buildid_dir}/${buildid:2}" |
32 |
+ local src_buildid_rel="../../../../../${src#${ED%/}/}" |
33 |
+ local dst_buildid_rel="../../${dst#${ED%/}/usr/lib/debug/}" |
34 |
+ mkdir -p "${buildid_dir}" || die |
35 |
+ [[ -L "${buildid_file}".debug ]] || ln -s "${dst_buildid_rel}" "${buildid_file}.debug" || die |
36 |
+ [[ -L "${buildid_file}" ]] || ln -s "${src_buildid_rel}" "${buildid_file}" || die |
37 |
+ fi |
38 |
fi |
39 |
fi |
40 |
|
41 |
- # if we don't already have build-id from debugedit, look it up |
42 |
- if [[ -z ${buildid} ]] ; then |
43 |
- # convert the readelf output to something useful |
44 |
- buildid=$(${READELF} -n "${src}" 2>/dev/null | awk '/Build ID:/{ print $NF; exit }') |
45 |
- fi |
46 |
- if [[ -n ${buildid} ]] ; then |
47 |
- local buildid_dir="${ED%/}/usr/lib/debug/.build-id/${buildid:0:2}" |
48 |
- local buildid_file="${buildid_dir}/${buildid:2}" |
49 |
- local src_buildid_rel="../../../../../${src#${ED%/}/}" |
50 |
- local dst_buildid_rel="../../${dst#${ED%/}/usr/lib/debug/}" |
51 |
- mkdir -p "${buildid_dir}" |
52 |
- [[ -L "${buildid_file}".debug ]] || ln -s "${dst_buildid_rel}" "${buildid_file}.debug" |
53 |
- [[ -L "${buildid_file}" ]] || ln -s "${src_buildid_rel}" "${buildid_file}" |
54 |
- fi |
55 |
} |
56 |
|
57 |
# Usage: process_elf <elf> |