[PATCH] Update RISC-V relocations

Kito Cheng kito.cheng@gmail.com
Wed May 28 07:13:43 GMT 2025


LGTM as a RISC-V psABI guy :)


On Mon, May 26, 2025 at 8:18 PM Andreas Schwab <schwab@suse.de> wrote:
>
> Update the list of RISC-V relocations from the ELF psABI as of June 2024.
> It removes binutils-internal only relocations that were never part of
> actual object files.  The GNU_VTINHERIT and GNU_VTENTRY relocations were
> never used because the corresponding GCC option -fvtable-gc was never
> supported on RISC-V.
> ---
>  elf/elf.h | 17 ++++++++---------
>  1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/elf/elf.h b/elf/elf.h
> index 1e1a59c14d..2f29a47c0b 100644
> --- a/elf/elf.h
> +++ b/elf/elf.h
> @@ -4081,6 +4081,7 @@ enum
>  #define R_RISCV_TLS_DTPREL64    9
>  #define R_RISCV_TLS_TPREL32    10
>  #define R_RISCV_TLS_TPREL64    11
> +#define R_RISCV_TLSDESC                12
>  #define R_RISCV_BRANCH         16
>  #define R_RISCV_JAL            17
>  #define R_RISCV_CALL           18
> @@ -4106,16 +4107,10 @@ enum
>  #define R_RISCV_SUB16          38
>  #define R_RISCV_SUB32          39
>  #define R_RISCV_SUB64          40
> -#define R_RISCV_GNU_VTINHERIT  41
> -#define R_RISCV_GNU_VTENTRY    42
> +#define R_RISCV_GOT32_PCREL    41
>  #define R_RISCV_ALIGN          43
>  #define R_RISCV_RVC_BRANCH     44
>  #define R_RISCV_RVC_JUMP       45
> -#define R_RISCV_RVC_LUI                46
> -#define R_RISCV_GPREL_I                47
> -#define R_RISCV_GPREL_S                48
> -#define R_RISCV_TPREL_I                49
> -#define R_RISCV_TPREL_S                50
>  #define R_RISCV_RELAX          51
>  #define R_RISCV_SUB6           52
>  #define R_RISCV_SET6           53
> @@ -4127,8 +4122,12 @@ enum
>  #define R_RISCV_PLT32          59
>  #define R_RISCV_SET_ULEB128    60
>  #define R_RISCV_SUB_ULEB128    61
> +#define R_RISCV_TLSDESC_HI20   62
> +#define R_RISCV_TLSDESC_LOAD_LO12 63
> +#define R_RISCV_TLSDESC_ADD_LO12 64
> +#define R_RISCV_TLSDESC_CALL   65
>
> -#define R_RISCV_NUM            62
> +#define R_RISCV_NUM            66
>
>  /* RISC-V specific values for the st_other field.  */
>  #define STO_RISCV_VARIANT_CC   0x80    /* Function uses variant calling
> @@ -4137,7 +4136,7 @@ enum
>  /* RISC-V specific values for the sh_type field.  */
>  #define SHT_RISCV_ATTRIBUTES   (SHT_LOPROC + 3)
>
> -/* RISC-V specific values for the p_type field.  */
> +/* RISC-V specific values for the p_type field (deprecated).  */
>  #define PT_RISCV_ATTRIBUTES    (PT_LOPROC + 3)
>
>  /* RISC-V specific values for the d_tag field.  */
> --
> 2.49.0
>
>
> --
> Andreas Schwab, SUSE Labs, schwab@suse.de
> GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
> "And now for something completely different."


More information about the Libc-alpha mailing list