@@ -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;