[binutils-gdb] Use the correct constants when setting the section type of HPPA unwind sections.

Nick Clifton nickc@sourceware.org
Wed Aug 22 09:33:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=6f4286c4f7193606fd6200e46b152ff0934f9cc2

commit 6f4286c4f7193606fd6200e46b152ff0934f9cc2
Author: Helge Deller <deller@gmx.de>
Date:   Wed Aug 22 10:32:53 2018 +0100

    Use the correct constants when setting the section type of HPPA unwind sections.
    
    	* elf-hppa.h (elf_hppa_fake_sections): Use SHT_PARISC_UNWIND as
    	the section type of the .PARISC.unwind section on 64-bit binaries
    	and SHT_PROGBITS for 32-bit binaries.  Add a comment about it.
    	Add comment about the sh_entsize value.

Diff:
---
 bfd/ChangeLog  |  8 ++++++++
 bfd/elf-hppa.h | 11 ++++++++---
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 6946a65..97ad1a0 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2018-08-22  Helge Deller  <deller@gmx.de>
+	Nick Clifton  <nickc@redhat.com>
+
+	* elf-hppa.h (elf_hppa_fake_sections): Use SHT_PARISC_UNWIND as
+	the section type of the .PARISC.unwind section on 64-bit binaries
+	and SHT_PROGBITS for 32-bit binaries.  Add a comment about it.
+	Add comment about the sh_entsize value.
+
 2018-08-22  Rafeal Auler  <rafaelauler@gmail.com>
 
 	PR 23560
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index 9f34a03..3b72140 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -889,9 +889,11 @@ elf_hppa_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
       asection *asec;
 
 #if ARCH_SIZE == 64
-      hdr->sh_type = SHT_LOPROC + 1;
+      hdr->sh_type = SHT_PARISC_UNWIND;
 #else
-      hdr->sh_type = 1;
+      /* Note - it is not clear why this is not SHT_PARISC_UNWIND as well.
+	 Presumably it is a historical constraint, so leave it as it is.  */
+      hdr->sh_type = SHT_PROGBITS;
 #endif
       /* ?!? How are unwinds supposed to work for symbols in arbitrary
 	 sections?  Or what if we have multiple .text sections in a single
@@ -912,7 +914,10 @@ elf_hppa_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
 	    }
 	}
 
-      /* I have no idea if this is really necessary or what it means.  */
+      /* The unwind table entries are 16 bytes long, so it is not clear
+	 why this field is set to 4.  (The ELF spec says that the sh_entsize
+	 field is a byte quantity, but this is a processor specific section,
+	 so it is allowed to change the rules).  Leave as it is for now.  */
       hdr->sh_entsize = 4;
     }
   return TRUE;



More information about the Binutils-cvs mailing list