find-debuginfo.sh: Remove non-allocated NOBITS sections from minisymtab.
This commit is contained in:
parent
85793f4048
commit
b7548d7b53
@ -0,0 +1,46 @@
|
||||
From 1fb19a11f6d6a4c221f2e1c08fe246761a4d1e82 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Wed, 19 Jul 2017 14:53:53 +0200
|
||||
Subject: [PATCH] find-debuginfo.sh: Remove non-allocated NOBITS sections from
|
||||
minisymtab.
|
||||
|
||||
In the minisymtab section (the .gnu_debugdata embedded ELF image) we
|
||||
do not need unallocated sections (except for the SYMTAB and STRTAB
|
||||
sections we are creating). We already remove PROGBITS and NOTES. Also
|
||||
remove NOBITS sections. They should not really take up much (any) space
|
||||
but they still add to the section tables. These sections might be created
|
||||
with the new --keep-section support (which puts the actual section in
|
||||
the main ELF binary, and a NOBITS variant in the .debug file).
|
||||
|
||||
Also binutils objcopy seems to sometimes add them anyway filled with
|
||||
zeros instead of marking them NOBITS.
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
(cherry picked from commit 860c04e0c3603f4697b7be5fe15ad325369f082c)
|
||||
---
|
||||
scripts/find-debuginfo.sh | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/find-debuginfo.sh b/scripts/find-debuginfo.sh
|
||||
index 5ec52d3..b83e4c6 100644
|
||||
--- a/scripts/find-debuginfo.sh
|
||||
+++ b/scripts/find-debuginfo.sh
|
||||
@@ -247,12 +247,16 @@ add_minidebug()
|
||||
local mini_debuginfo=`mktemp`
|
||||
|
||||
# In the minisymtab we don't need the .debug_ sections (already removed
|
||||
- # by -S) but also not any other non-allocated PROGBITS or NOTE sections.
|
||||
+ # by -S) but also not other non-allocated PROGBITS, NOTE or NOBITS sections.
|
||||
# List and remove them explicitly. We do want to keep the allocated,
|
||||
# symbol and NOBITS sections so cannot use --keep-only because that is
|
||||
# too agressive. Field $2 is the section name, $3 is the section type
|
||||
# and $8 are the section flags.
|
||||
- local remove_sections=`readelf -W -S "$debuginfo" | awk '{ if (index($2,".debug_") != 1 && ($3 == "PROGBITS" || $3 == "NOTE") && index($8,"A") == 0) printf "--remove-section "$2" " }'`
|
||||
+ local remove_sections=`readelf -W -S "$debuginfo" \
|
||||
+ | awk '{ if (index($2,".debug_") != 1 \
|
||||
+ && ($3 == "PROGBITS" || $3 == "NOTE" || $3 == "NOBITS") \
|
||||
+ && index($8,"A") == 0) \
|
||||
+ printf "--remove-section "$2" " }'`
|
||||
|
||||
# Extract the dynamic symbols from the main binary, there is no need to also have these
|
||||
# in the normal symbol table
|
6
rpm.spec
6
rpm.spec
@ -29,7 +29,7 @@
|
||||
Summary: The RPM package management system
|
||||
Name: rpm
|
||||
Version: %{rpmver}
|
||||
Release: %{?snapver:0.%{snapver}.}33%{?dist}
|
||||
Release: %{?snapver:0.%{snapver}.}34%{?dist}
|
||||
Group: System Environment/Base
|
||||
Url: http://www.rpm.org/
|
||||
Source0: http://ftp.rpm.org/releases/%{srcdir}/%{name}-%{srcver}.tar.bz2
|
||||
@ -146,6 +146,7 @@ Patch331: 0055-let-debuginfo-packages-provide-the-build-id.patch
|
||||
# find-debuginfo.sh: Add --keep-section and --remove-section for eu-strip.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1465997
|
||||
Patch332: 0056-find-debuginfo.sh-Add-keep-section-and-remove-sectio.patch
|
||||
Patch333: 0057-find-debuginfo.sh-Remove-non-allocated-NOBITS-sectio.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch902: rpm-4.7.1-geode-i686.patch
|
||||
@ -643,6 +644,9 @@ exit 0
|
||||
%doc doc/librpm/html/*
|
||||
|
||||
%changelog
|
||||
* Fri Jul 21 2017 Mark Wielaard <mjw@fedoraproject.org> - 4.13.0.1-34
|
||||
- find-debuginfo.sh: Remove non-allocated NOBITS sections from minisymtab.
|
||||
|
||||
* Thu Jul 20 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.13.0.1-33
|
||||
- Remove strict requirement on python libs
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user