mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-04-12 14:33:06 +08:00
Test SEC_HAS_CONTENTS in relax routines
More places that generally expect instructions, so not zeros. * coff-sh.c (sh_relax_section, sh_relax_delete_bytes): Exclude sections without SEC_HAS_CONTENTS set. * elf-m10200.c (mn10200_elf_relax_section): Likewise. * elf32-arc.c (arc_elf_relax_section): Likewise. * elf32-avr.c (elf32_avr_relax_section): Likewise. * elf32-cr16.c (elf32_cr16_relax_section): Likewise. * elf32-crx.c (elf32_crx_relax_section): Likewise. * elf32-epiphany.c (epiphany_elf_relax_section): Likewise. * elf32-ft32.c (ft32_elf_relax_section): Likewise. * elf32-h8300.c (elf32_h8_relax_section): Likewise. * elf32-ip2k.c (ip2k_elf_relax_section): Likewise. * elf32-m32c.c (m32c_elf_relax_section): Likewise. * elf32-m68hc11.c (m68hc11_elf_relax_section): Likewise. * elf32-msp430.c (msp430_elf_relax_section): Likewise. * elf32-pru.c (pru_elf32_relax_section): Likewise. * elf32-rl78.c (rl78_elf_relax_section): Likewise. * elf32-rx.c (elf32_rx_relax_section): Likewise. * elf32-sh.c (sh_elf_relax_section): Likewise. (sh_elf_relax_delete_bytes): Likewise. * elf32-v850.c (v850_elf_relax_section): Likewise. * elf64-alpha.c (elf64_alpha_relax_section): Likewise. * elf64-ia64-vms.c (elf64_ia64_relax_section): Likewise. * elfnn-ia64.c (elfNN_ia64_relax_section): Likewise. * elfnn-riscv.c (_bfd_riscv_relax_section): Likewise. * elfxx-mips.c (_bfd_mips_elf_relax_section): Likewise.
This commit is contained in:
parent
81ff113f78
commit
3a574cce26
@ -717,6 +717,7 @@ sh_relax_section (bfd *abfd,
|
||||
*again = false;
|
||||
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0)
|
||||
return true;
|
||||
@ -1364,6 +1365,7 @@ sh_relax_delete_bytes (bfd *abfd,
|
||||
bfd_byte *ocontents;
|
||||
|
||||
if (o == sec
|
||||
|| (o->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (o->flags & SEC_RELOC) == 0
|
||||
|| o->reloc_count == 0)
|
||||
continue;
|
||||
|
@ -577,8 +577,9 @@ mn10200_elf_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -2972,8 +2972,9 @@ arc_elf_relax_section (bfd *abfd, asection *sec,
|
||||
section does not have relocs, or if this is not a code
|
||||
section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -2522,8 +2522,9 @@ elf32_avr_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -1718,8 +1718,9 @@ elf32_cr16_relax_section (bfd *abfd, asection *sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -973,8 +973,9 @@ elf32_crx_relax_section (bfd *abfd, asection *sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -213,8 +213,9 @@ epiphany_elf_relax_section (bfd *abfd, asection *sec,
|
||||
if this section does not have relocs, or if this is
|
||||
not a code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -1092,8 +1092,9 @@ ft32_elf_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -706,8 +706,9 @@ elf32_h8_relax_section (bfd *abfd, asection *sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -1096,8 +1096,9 @@ ip2k_elf_relax_section (bfd *abfd,
|
||||
if this section does not have relocs, or if this is
|
||||
not a code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -1459,8 +1459,9 @@ m32c_elf_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -709,8 +709,9 @@ m68hc11_elf_relax_section (bfd *abfd, asection *sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -2014,8 +2014,10 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0)
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
if (debug_relocs)
|
||||
|
@ -1354,8 +1354,10 @@ pru_elf32_relax_section (bfd *abfd, asection *sec,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0)
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
|
||||
|
@ -2106,8 +2106,9 @@ rl78_elf_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -2038,8 +2038,9 @@ elf32_rx_relax_section (bfd *abfd,
|
||||
this section does not have relocs, or if this is not a
|
||||
code section. */
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
@ -468,6 +468,7 @@ sh_elf_relax_section (bfd *abfd, asection *sec,
|
||||
*again = false;
|
||||
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0)
|
||||
return true;
|
||||
@ -1154,6 +1155,7 @@ sh_elf_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr,
|
||||
bfd_byte *ocontents;
|
||||
|
||||
if (o == sec
|
||||
|| (o->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (o->flags & SEC_RELOC) == 0
|
||||
|| o->reloc_count == 0)
|
||||
continue;
|
||||
|
@ -3440,6 +3440,7 @@ v850_elf_relax_section (bfd *abfd,
|
||||
*again = false;
|
||||
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0)
|
||||
return true;
|
||||
|
@ -3726,8 +3726,8 @@ elf64_alpha_relax_section (bfd *abfd, asection *sec,
|
||||
*again = false;
|
||||
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| ((sec->flags & (SEC_CODE | SEC_RELOC | SEC_ALLOC))
|
||||
!= (SEC_CODE | SEC_RELOC | SEC_ALLOC))
|
||||
|| ((sec->flags & (SEC_CODE | SEC_RELOC | SEC_ALLOC | SEC_HAS_CONTENTS))
|
||||
!= (SEC_CODE | SEC_RELOC | SEC_ALLOC | SEC_HAS_CONTENTS))
|
||||
|| sec->reloc_count == 0)
|
||||
return true;
|
||||
|
||||
|
@ -370,8 +370,9 @@ elf64_ia64_relax_section (bfd *abfd, asection *sec,
|
||||
|
||||
/* Nothing to do if there are no relocations or there is no need for
|
||||
the current pass. */
|
||||
if ((sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
if (sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (link_info->relax_pass == 0 && sec->skip_relax_pass_0)
|
||||
|| (link_info->relax_pass == 1 && sec->skip_relax_pass_1))
|
||||
return true;
|
||||
|
@ -370,8 +370,9 @@ elfNN_ia64_relax_section (bfd *abfd, asection *sec,
|
||||
|
||||
/* Nothing to do if there are no relocations or there is no need for
|
||||
the current pass. */
|
||||
if ((sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
if (sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (link_info->relax_pass == 0 && sec->skip_relax_pass_0)
|
||||
|| (link_info->relax_pass == 1 && sec->skip_relax_pass_1))
|
||||
return true;
|
||||
|
@ -4776,8 +4776,9 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
|
||||
|
||||
if (bfd_link_relocatable (info)
|
||||
|| sec->sec_flg0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (info->disable_target_specific_optimizations
|
||||
&& info->relax_pass == 0)
|
||||
/* The exp_seg_relro_adjust is enum phase_enum (0x4),
|
||||
|
@ -13975,8 +13975,9 @@ _bfd_mips_elf_relax_section (bfd *abfd, asection *sec,
|
||||
code section. */
|
||||
|
||||
if (bfd_link_relocatable (link_info)
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| sec->reloc_count == 0
|
||||
|| (sec->flags & SEC_RELOC) == 0
|
||||
|| (sec->flags & SEC_HAS_CONTENTS) == 0
|
||||
|| (sec->flags & SEC_CODE) == 0)
|
||||
return true;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user