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
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: %{?snapver:0.%{snapver}.}33%{?dist}
|
Release: %{?snapver:0.%{snapver}.}34%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://ftp.rpm.org/releases/%{srcdir}/%{name}-%{srcver}.tar.bz2
|
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.
|
# find-debuginfo.sh: Add --keep-section and --remove-section for eu-strip.
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1465997
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1465997
|
||||||
Patch332: 0056-find-debuginfo.sh-Add-keep-section-and-remove-sectio.patch
|
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
|
# These are not yet upstream
|
||||||
Patch902: rpm-4.7.1-geode-i686.patch
|
Patch902: rpm-4.7.1-geode-i686.patch
|
||||||
@ -643,6 +644,9 @@ exit 0
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%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
|
* Thu Jul 20 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 4.13.0.1-33
|
||||||
- Remove strict requirement on python libs
|
- Remove strict requirement on python libs
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user