From 5c9a05428ddd88be3321c35b74fe2e8dc92bd1a3 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 6 Sep 2025 17:17:37 -0700 Subject: elf: Define more SHT_SUNW_XXX binutils/ * readelf.c (get_solaris_section_type): Use SHT_SUNW_XXX and add SHT_SUNW_phname and SHT_SUNW_symtabnsort. include/ * elf/common.h (SHT_SUNW_symtabnsort): New. (SHT_SUNW_ancillary): Likewise. (SHT_SUNW_capchain): Likewise. (SHT_SUNW_capinfo): Likewise. (SHT_SUNW_symsort): Likewise. (SHT_SUNW_tlssort): Likewise. (SHT_SUNW_LDYNSYM): Likewise. (SHT_SUNW_dof): Likewise. (SHT_SUNW_cap): Likewise. (SHT_SUNW_SIGNATURE): Likewise. (SHT_SUNW_ANNOTATE): Likewise. (SHT_SUNW_DEBUGSTR): Likewise. (SHT_SUNW_DEBUG): Likewise. (SHT_SUNW_verdef): Likewise. (SHT_SUNW_verneed): Likewise. (SHT_SUNW_versym): Likewise. Signed-off-by: H.J. Lu --- binutils/readelf.c | 64 ++++++++++++++++++++++++++++++++++++---------------- include/elf/common.h | 16 ++++++++++++- 2 files changed, 59 insertions(+), 21 deletions(-) diff --git a/binutils/readelf.c b/binutils/readelf.c index 03c4520..10f8177 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -3080,26 +3080,50 @@ get_solaris_section_type (unsigned long type) { switch (type) { - case 0x6fffffee: return "SUNW_ancillary"; - case 0x6fffffef: return "SUNW_capchain"; - case 0x6ffffff0: return "SUNW_capinfo"; - case 0x6ffffff1: return "SUNW_symsort"; - case 0x6ffffff2: return "SUNW_tlssort"; - case 0x6ffffff3: return "SUNW_LDYNSYM"; - case 0x6ffffff4: return "SUNW_dof"; - case 0x6ffffff5: return "SUNW_cap"; - case 0x6ffffff6: return "SUNW_SIGNATURE"; - case 0x6ffffff7: return "SUNW_ANNOTATE"; - case 0x6ffffff8: return "SUNW_DEBUGSTR"; - case 0x6ffffff9: return "SUNW_DEBUG"; - case 0x6ffffffa: return "SUNW_move"; - case 0x6ffffffb: return "SUNW_COMDAT"; - case 0x6ffffffc: return "SUNW_syminfo"; - case 0x6ffffffd: return "SUNW_verdef"; - case 0x6ffffffe: return "SUNW_verneed"; - case 0x6fffffff: return "SUNW_versym"; - case 0x70000000: return "SPARC_GOTDATA"; - default: return NULL; + case SHT_SUNW_symtabnsort: + return "SUNW_symtabnsort"; + case SHT_SUNW_ancillary: + return "SUNW_ancillary"; + case SHT_SUNW_phname: + return "SUNW_phname"; + case SHT_SUNW_capchain: + return "SUNW_capchain"; + case SHT_SUNW_capinfo: + return "SUNW_capinfo"; + case SHT_SUNW_symsort: + return "SUNW_symsort"; + case SHT_SUNW_tlssort: + return "SUNW_tlssort"; + case SHT_SUNW_LDYNSYM: + return "SUNW_LDYNSYM"; + case SHT_SUNW_dof: + return "SUNW_dof"; + case SHT_SUNW_cap: + return "SUNW_cap"; + case SHT_SUNW_SIGNATURE: + return "SUNW_SIGNATURE"; + case SHT_SUNW_ANNOTATE: + return "SUNW_ANNOTATE"; + case SHT_SUNW_DEBUGSTR: + return "SUNW_DEBUGSTR"; + case SHT_SUNW_DEBUG: + return "SUNW_DEBUG"; + case SHT_SUNW_move: + return "SUNW_move"; + case SHT_SUNW_COMDAT: + return "SUNW_COMDAT"; + case SHT_SUNW_syminfo: + return "SUNW_syminfo"; + case SHT_SUNW_verdef: + return "SUNW_verdef"; + case SHT_SUNW_verneed: + return "SUNW_verneed"; + case SHT_SUNW_versym: + return "SUNW_versym"; + case 0x70000000: + return "SPARC_GOTDATA"; + default: + return NULL; } } diff --git a/include/elf/common.h b/include/elf/common.h index 0d9a7b7..5d0f93e 100644 --- a/include/elf/common.h +++ b/include/elf/common.h @@ -575,7 +575,21 @@ #define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ #define SHT_GNU_OBJECT_ONLY 0x6ffffff9 /* Object only */ -#define SHT_SUNW_move 0x6ffffffa +#define SHT_SUNW_symtabnsort 0x6fffffec +#define SHT_SUNW_ancillary 0x6fffffee +#define SHT_SUNW_phname 0x6fffffed +#define SHT_SUNW_capchain 0x6fffffef +#define SHT_SUNW_capinfo 0x6ffffff0 +#define SHT_SUNW_symsort 0x6ffffff1 +#define SHT_SUNW_tlssort 0x6ffffff2 +#define SHT_SUNW_LDYNSYM 0x6ffffff3 +#define SHT_SUNW_dof 0x6ffffff4 +#define SHT_SUNW_cap 0x6ffffff5 +#define SHT_SUNW_SIGNATURE 0x6ffffff6 +#define SHT_SUNW_ANNOTATE 0x6ffffff7 +#define SHT_SUNW_DEBUGSTR 0x6ffffff8 +#define SHT_SUNW_DEBUG 0x6ffffff9 +#define SHT_SUNW_move 0x6ffffffa #define SHT_SUNW_COMDAT 0x6ffffffb #define SHT_SUNW_syminfo 0x6ffffffc /* The next three section types are defined by Solaris, and are named -- cgit v1.1