Check sh_type/sh_flags/sh_addralign/sh_entsize when copying sh_link/sh_info
When copying the sh_link and sh_info fields in stripped section headers, we also check if the sh_type, sh_flags, /sh_addralign and sh_entsize fields of the output section match the output. Since --only-keep-debug turns all non-debug sections into SHT_NOBITS sections, the output SHT_NOBITS type matches any input type. bfd/ PR binutils/18785 * elf.c (_bfd_elf_copy_private_bfd_data): When copying the sh_link and sh_info fields in stripped section headers, we also check if the sh_type, sh_flags, /sh_addralign and sh_entsize fields of the output section match the output. Since --only-keep-debug turns all non-debug sections into SHT_NOBITS sections, the output SHT_NOBITS type matches any input type. binutils/testsuite/ PR binutils/18785 * binutils-all/objcopy.exp: Run strip-12. * binutils-all/strip-12.d: New file. * binutils-all/strip-12.s: Likewise.
This commit is contained in:
parent
f12899e9f0
commit
d4ac1f878e
@ -1,3 +1,13 @@
|
|||||||
|
2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/18785
|
||||||
|
* elf.c (_bfd_elf_copy_private_bfd_data): When copying the
|
||||||
|
sh_link and sh_info fields in stripped section headers, we also
|
||||||
|
check if the sh_type, sh_flags, /sh_addralign and sh_entsize
|
||||||
|
fields of the output section match the output. Since
|
||||||
|
--only-keep-debug turns all non-debug sections into SHT_NOBITS
|
||||||
|
sections, the output SHT_NOBITS type matches any input type.
|
||||||
|
|
||||||
2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR ld/18720
|
PR ld/18720
|
||||||
|
@ -1233,7 +1233,14 @@ _bfd_elf_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
|
|||||||
{
|
{
|
||||||
Elf_Internal_Shdr * iheader = iheaders[j];
|
Elf_Internal_Shdr * iheader = iheaders[j];
|
||||||
|
|
||||||
if (iheader->sh_type != SHT_NOBITS
|
/* Since --only-keep-debug turns all non-debug sections
|
||||||
|
into SHT_NOBITS sections, the output SHT_NOBITS type
|
||||||
|
matches any input type. */
|
||||||
|
if ((oheader->sh_type == SHT_NOBITS
|
||||||
|
|| oheader->sh_type == oheader->sh_type)
|
||||||
|
&& iheader->sh_flags == oheader->sh_flags
|
||||||
|
&& iheader->sh_addralign == oheader->sh_addralign
|
||||||
|
&& iheader->sh_entsize == oheader->sh_entsize
|
||||||
&& iheader->sh_size == oheader->sh_size
|
&& iheader->sh_size == oheader->sh_size
|
||||||
&& iheader->sh_addr == oheader->sh_addr
|
&& iheader->sh_addr == oheader->sh_addr
|
||||||
&& (iheader->sh_info != oheader->sh_info
|
&& (iheader->sh_info != oheader->sh_info
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR binutils/18785
|
||||||
|
* binutils-all/objcopy.exp: Run strip-12.
|
||||||
|
* binutils-all/strip-12.d: New file.
|
||||||
|
* binutils-all/strip-12.s: Likewise.
|
||||||
|
|
||||||
2015-08-07 Andrew Burgess <andrew.burgess@embecosm.com>
|
2015-08-07 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* binutils-all/objcopy.exp: Run new symbol tests.
|
* binutils-all/objcopy.exp: Run new symbol tests.
|
||||||
|
@ -1033,6 +1033,7 @@ if [is_elf_format] {
|
|||||||
run_dump_test "strip-7"
|
run_dump_test "strip-7"
|
||||||
run_dump_test "strip-8"
|
run_dump_test "strip-8"
|
||||||
run_dump_test "strip-9"
|
run_dump_test "strip-9"
|
||||||
|
run_dump_test "strip-12"
|
||||||
# Non-EABI ARM targets will set OSABI to ARM
|
# Non-EABI ARM targets will set OSABI to ARM
|
||||||
# The V850 sets the OSABI to UNIX - System V
|
# The V850 sets the OSABI to UNIX - System V
|
||||||
if { ![istarget "*-*-hpux*"]
|
if { ![istarget "*-*-hpux*"]
|
||||||
|
7
binutils/testsuite/binutils-all/strip-12.d
Normal file
7
binutils/testsuite/binutils-all/strip-12.d
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#PROG: strip
|
||||||
|
#strip:
|
||||||
|
#readelf: -S --wide
|
||||||
|
|
||||||
|
#...
|
||||||
|
\[[ 0-9]+\] \.bss[ \t]+NOBITS[ \t0-9a-f]+WA[ \t]+0[ \t]+0[ \t]+1
|
||||||
|
#pass
|
6
binutils/testsuite/binutils-all/strip-12.s
Normal file
6
binutils/testsuite/binutils-all/strip-12.s
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.bss
|
||||||
|
.space 8
|
||||||
|
.section .debug_str,"MS",%progbits,1
|
||||||
|
.string ""
|
||||||
|
.section .text.foo,"axG",%progbits,foo,comdat
|
||||||
|
.byte 0
|
Loading…
Reference in New Issue
Block a user