diff options
author | Mark Wielaard <mark@klomp.org> | 2017-04-16 18:16:02 +0200 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2017-04-19 12:36:05 +0300 |
commit | 3790a6872749a9601be6044be7d8fb0951131376 (patch) | |
tree | 24a8ad0beabeef3a5a89b53b8d52dc63a69c9e90 | |
parent | 6e9fd97f6dba9e04cfd33225b610272b964cc5fc (diff) | |
download | rpm-3790a6872749a9601be6044be7d8fb0951131376.tar.gz |
find-debuginfo.sh: Only add minisymtab for executables or shared libraries.
It only makes sense to add a minisymtab for executables and shared
libraries. Other executable ELF files (like kernel modules) don't need it.
Since those don't have a dynsym section trying to add it will fail and
produce confusing errors from nm.
Signed-off-by: Mark Wielaard <mark@klomp.org>
-rwxr-xr-x | scripts/find-debuginfo.sh | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh index f7ffbbc2a..8effac87a 100755 --- a/scripts/find-debuginfo.sh +++ b/scripts/find-debuginfo.sh @@ -374,7 +374,16 @@ do_file() fi # strip -g implies we have full symtab, don't add mini symtab in that case. - $strip_g || ($include_minidebug && add_minidebug "${debugfn}" "$f") + # It only makes sense to add a minisymtab for executables and shared + # libraries. Other executable ELF files (like kernel modules) don't need it. + if [ "$include_minidebug" = "true" -a "$strip_g" = "false" ]; then + skip_mini=true + case "$(file -bi "$f")" in + application/x-sharedlib*) skip_mini=false ;; + application/x-executable*) skip_mini=false ;; + esac + $skip_mini || add_minidebug "${debugfn}" "$f" + fi echo "./${f#$RPM_BUILD_ROOT}" >> "$ELFBINSFILE" |