diff options
author | Thierry Vignaud <tv@mageia.org> | 2012-07-27 17:38:35 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mageia.org> | 2012-07-27 17:38:35 +0000 |
commit | 7396ca2979ec9b954f015da48444fa7068c86d11 (patch) | |
tree | 73ea3e4c5f52b580231c2a2e5ebff52c01568d9c /find-debuginfo.sh | |
parent | 7e5ea5f86723d6e9e3c0582d3d65342a3f6b0ddb (diff) | |
download | rpm-setup-7396ca2979ec9b954f015da48444fa7068c86d11.tar rpm-setup-7396ca2979ec9b954f015da48444fa7068c86d11.tar.gz rpm-setup-7396ca2979ec9b954f015da48444fa7068c86d11.tar.bz2 rpm-setup-7396ca2979ec9b954f015da48444fa7068c86d11.tar.xz rpm-setup-7396ca2979ec9b954f015da48444fa7068c86d11.zip |
backported from rpm.org (Mark Wielaard <mjw@redhat.com>, 2011-05-25):
Add -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections.
- This is a new option to eu-strip that strips out/resolves relocations
between .debug_* elf sections in ET_REL files. This can save a lot of
space for kernel module.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Diffstat (limited to 'find-debuginfo.sh')
-rwxr-xr-x | find-debuginfo.sh | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/find-debuginfo.sh b/find-debuginfo.sh index 8390b14..ef2c5c4 100755 --- a/find-debuginfo.sh +++ b/find-debuginfo.sh @@ -2,7 +2,7 @@ #find-debuginfo.sh - automagically generate debug info and file list #for inclusion in an rpm spec file. # -# Usage: find-debuginfo.sh [--strict-build-id] [-g] +# Usage: find-debuginfo.sh [--strict-build-id] [-g] [-r] # [-o debugfiles.list] # [[-l filelist]... [-p 'pattern'] -o debuginfo.list] # [builddir] @@ -10,6 +10,7 @@ # The -g flag says to use strip -g instead of full strip on DSOs. # The --strict-build-id flag says to exit with failure status if # any ELF binary processed fails to contain a build-id note. +# The -r flag says to use eu-strip --reloc-debug-sections. # # A single -o switch before any -l or -p switches simply renames # the primary output file from debugfiles.list to something else. @@ -25,6 +26,9 @@ # With -g arg, pass it to strip on libraries. strip_g=false +# with -r arg, pass --reloc-debug-sections to eu-strip. +strip_r=false + # Barf on missing build IDs. strict=false @@ -56,6 +60,9 @@ while [ $# -gt 0 ]; do ptns[$nout]=$2 shift ;; + -r) + strip_r=true + ;; *) BUILDDIR=$1 shift @@ -89,11 +96,13 @@ debugdir="${RPM_BUILD_ROOT}/usr/lib/debug" strip_to_debug() { local g= + local r= + $strip_r && r=--reloc-debug-sections $strip_g && case "$(file -bi "$2")" in application/x-sharedlib*) g=-g ;; esac [ -n "$EXCLUDE_FULL_REGEXP" ] && grep -E -q "$EXCLUDE_FULL_REGEXP" <<< "$2" && g=-g - eu-strip --remove-comment $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit + eu-strip --remove-comment $r $g $([ -n "$DISABLE_DEBUG" ] || echo -f "$1") "$2" || exit [ -n "$DISABLE_DEBUG" ] || chmod 444 "$1" || exit } |