[PATCH] elf: Define more SHT_SUNW_XXX
H.J. Lu
hjl.tools@gmail.com
Sun Sep 7 12:27:06 GMT 2025
On Sat, Sep 6, 2025 at 5:24 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> 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 <hjl.tools@gmail.com>
> ---
> 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 03c4520ff92..10f81779d09 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 0d9a7b7a8a9..5d0f93ebf56 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
> --
> 2.51.0
>
I am checking it in.
--
H.J.
More information about the Binutils
mailing list