[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