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