[PATCH v2] Set the sh_entsize field of .stab to 12

Fangrui Song maskray@google.com
Wed Apr 8 22:00:42 GMT 2020


On 2020-04-02, Fangrui Song wrote:
>The existing code assumes sh_entsize(.stab)=20 on ELFCLASS64.
>However, the assembler only supports 32-bit stabs. So set sh_entsize unconditionally to 12.
>
>	PR gas/25768
>	* elf.c (assign_section_numbers): Set .stab sh_entsize to 12.
>---
> bfd/ChangeLog | 5 +++++
> bfd/elf.c     | 4 +---
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
>diff --git a/bfd/ChangeLog b/bfd/ChangeLog
>index 64c3dde475..47b8e566ef 100644
>--- a/bfd/ChangeLog
>+++ b/bfd/ChangeLog
>@@ -1,3 +1,8 @@
>+2020-04-02  Fangrui Song  <maskray@google.com>
>+
>+	PR gas/25768
>+	* elf.c (assign_section_numbers): Set .stab sh_entsize to 12.
>+
> 2020-04-02  Jan W. Jagersma  <jwjagersma@gmail.com>
>
> 	* bfdio.c (bfd_bread, bfd_tell, bfd_seek, bfd_mmap): Always add
>diff --git a/bfd/elf.c b/bfd/elf.c
>index 86dadea05c..0c550bdadf 100644
>--- a/bfd/elf.c
>+++ b/bfd/elf.c
>@@ -3998,9 +3998,7 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
> 		  elf_section_data (s)->this_hdr.sh_link = d->this_idx;
>
> 		  /* This is a .stab section.  */
>-		  if (elf_section_data (s)->this_hdr.sh_entsize == 0)
>-		    elf_section_data (s)->this_hdr.sh_entsize
>-		      = 4 + 2 * bfd_get_arch_size (abfd) / 8;
>+		  elf_section_data (s)->this_hdr.sh_entsize = 12;
> 		}
> 	    }
> 	  break;
>-- 
>2.26.0.292.g33ef6b2f38-goog
>
Ping :)


More information about the Binutils mailing list