aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2012-07-27 17:38:35 +0000
committerThierry Vignaud <tv@mageia.org>2012-07-27 17:38:35 +0000
commit7396ca2979ec9b954f015da48444fa7068c86d11 (patch)
tree73ea3e4c5f52b580231c2a2e5ebff52c01568d9c
parent7e5ea5f86723d6e9e3c0582d3d65342a3f6b0ddb (diff)
downloadrpm-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>
-rw-r--r--NEWS1
-rwxr-xr-xfind-debuginfo.sh13
2 files changed, 12 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 4873deb..c0dbe4c 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
- generate a perlapi-<version> provide when libperl.so is found
(inspirated from mdv (pok))
- sync find-debuginfo.sh with upstream rpm.org:
+ o add -r flag to find-debuginfo.sh to invoke eu-strip --reloc-debug-sections
o drop useless rpm5 bits (less divergence with upstream)
- kill unused find-provides.perl.in
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
}