public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] RISC-V: add remaining relocations
@ 2018-03-22 11:34 Andreas Schwab
  2018-03-22 17:43 ` Palmer Dabbelt
  0 siblings, 1 reply; 2+ messages in thread
From: Andreas Schwab @ 2018-03-22 11:34 UTC (permalink / raw)
  To: libc-alpha

<elf.h> is supposed to be as complete as possible.

Andreas.

	* elf/elf.h (R_RISCV_BRANCH, R_RISCV_JAL, R_RISCV_CALL)
	(R_RISCV_CALL_PLT, R_RISCV_GOT_HI20, R_RISCV_TLS_GOT_HI20)
	(R_RISCV_TLS_GD_HI20, R_RISCV_PCREL_HI20, R_RISCV_PCREL_LO12_I)
	(R_RISCV_PCREL_LO12_S, R_RISCV_HI20, R_RISCV_LO12_I)
	(R_RISCV_LO12_S, R_RISCV_TPREL_HI20, R_RISCV_TPREL_LO12_I)
	(R_RISCV_TPREL_LO12_S, R_RISCV_TPREL_ADD, R_RISCV_ADD8)
	(R_RISCV_ADD16, R_RISCV_ADD32, R_RISCV_ADD64, R_RISCV_SUB8)
	(R_RISCV_SUB16, R_RISCV_SUB32, R_RISCV_SUB64)
	(R_RISCV_GNU_VTINHERIT, R_RISCV_GNU_VTENTRY, R_RISCV_ALIGN)
	(R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, R_RISCV_RVC_LUI)
	(R_RISCV_GPREL_I, R_RISCV_GPREL_S, R_RISCV_TPREL_I)
	(R_RISCV_TPREL_S, R_RISCV_RELAX, R_RISCV_SUB6, R_RISCV_SET6)
	(R_RISCV_SET8, R_RISCV_SET16, R_RISCV_SET32, R_RISCV_32_PCREL)
	(R_RISCV_NUM): Define.
---
 elf/elf.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 56 insertions(+), 12 deletions(-)

diff --git a/elf/elf.h b/elf/elf.h
index 677fccb555..f7748983c8 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -3788,18 +3788,62 @@ enum
 #define EF_RISCV_FLOAT_ABI_QUAD 	0x0006
 
 /* RISC-V relocations.  */
-#define R_RISCV_NONE          0
-#define R_RISCV_32            1
-#define R_RISCV_64            2
-#define R_RISCV_RELATIVE      3
-#define R_RISCV_COPY          4
-#define R_RISCV_JUMP_SLOT     5
-#define R_RISCV_TLS_DTPMOD32  6
-#define R_RISCV_TLS_DTPMOD64  7
-#define R_RISCV_TLS_DTPREL32  8
-#define R_RISCV_TLS_DTPREL64  9
-#define R_RISCV_TLS_TPREL32  10
-#define R_RISCV_TLS_TPREL64  11
+#define R_RISCV_NONE		 0
+#define R_RISCV_32		 1
+#define R_RISCV_64		 2
+#define R_RISCV_RELATIVE	 3
+#define R_RISCV_COPY		 4
+#define R_RISCV_JUMP_SLOT	 5
+#define R_RISCV_TLS_DTPMOD32	 6
+#define R_RISCV_TLS_DTPMOD64	 7
+#define R_RISCV_TLS_DTPREL32	 8
+#define R_RISCV_TLS_DTPREL64	 9
+#define R_RISCV_TLS_TPREL32	10
+#define R_RISCV_TLS_TPREL64	11
+#define R_RISCV_BRANCH		16
+#define R_RISCV_JAL		17
+#define R_RISCV_CALL		18
+#define R_RISCV_CALL_PLT	19
+#define R_RISCV_GOT_HI20	20
+#define R_RISCV_TLS_GOT_HI20	21
+#define R_RISCV_TLS_GD_HI20	22
+#define R_RISCV_PCREL_HI20	23
+#define R_RISCV_PCREL_LO12_I	24
+#define R_RISCV_PCREL_LO12_S	25
+#define R_RISCV_HI20		26
+#define R_RISCV_LO12_I		27
+#define R_RISCV_LO12_S		28
+#define R_RISCV_TPREL_HI20	29
+#define R_RISCV_TPREL_LO12_I	30
+#define R_RISCV_TPREL_LO12_S	31
+#define R_RISCV_TPREL_ADD	32
+#define R_RISCV_ADD8		33
+#define R_RISCV_ADD16		34
+#define R_RISCV_ADD32		35
+#define R_RISCV_ADD64		36
+#define R_RISCV_SUB8		37
+#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_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
+#define R_RISCV_SET8		54
+#define R_RISCV_SET16		55
+#define R_RISCV_SET32		56
+#define R_RISCV_32_PCREL	57
+
+#define R_RISCV_NUM		58
 
 /* BPF specific declarations.  */
 
-- 
2.16.2


-- 
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."

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] RISC-V: add remaining relocations
  2018-03-22 11:34 [PATCH] RISC-V: add remaining relocations Andreas Schwab
@ 2018-03-22 17:43 ` Palmer Dabbelt
  0 siblings, 0 replies; 2+ messages in thread
From: Palmer Dabbelt @ 2018-03-22 17:43 UTC (permalink / raw)
  To: schwab; +Cc: libc-alpha

On Thu, 22 Mar 2018 04:34:40 PDT (-0700), schwab@suse.de wrote:
> <elf.h> is supposed to be as complete as possible.
>
> Andreas.
>
> 	* elf/elf.h (R_RISCV_BRANCH, R_RISCV_JAL, R_RISCV_CALL)
> 	(R_RISCV_CALL_PLT, R_RISCV_GOT_HI20, R_RISCV_TLS_GOT_HI20)
> 	(R_RISCV_TLS_GD_HI20, R_RISCV_PCREL_HI20, R_RISCV_PCREL_LO12_I)
> 	(R_RISCV_PCREL_LO12_S, R_RISCV_HI20, R_RISCV_LO12_I)
> 	(R_RISCV_LO12_S, R_RISCV_TPREL_HI20, R_RISCV_TPREL_LO12_I)
> 	(R_RISCV_TPREL_LO12_S, R_RISCV_TPREL_ADD, R_RISCV_ADD8)
> 	(R_RISCV_ADD16, R_RISCV_ADD32, R_RISCV_ADD64, R_RISCV_SUB8)
> 	(R_RISCV_SUB16, R_RISCV_SUB32, R_RISCV_SUB64)
> 	(R_RISCV_GNU_VTINHERIT, R_RISCV_GNU_VTENTRY, R_RISCV_ALIGN)
> 	(R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, R_RISCV_RVC_LUI)
> 	(R_RISCV_GPREL_I, R_RISCV_GPREL_S, R_RISCV_TPREL_I)
> 	(R_RISCV_TPREL_S, R_RISCV_RELAX, R_RISCV_SUB6, R_RISCV_SET6)
> 	(R_RISCV_SET8, R_RISCV_SET16, R_RISCV_SET32, R_RISCV_32_PCREL)
> 	(R_RISCV_NUM): Define.
> ---
>  elf/elf.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 56 insertions(+), 12 deletions(-)
>
> diff --git a/elf/elf.h b/elf/elf.h
> index 677fccb555..f7748983c8 100644
> --- a/elf/elf.h
> +++ b/elf/elf.h
> @@ -3788,18 +3788,62 @@ enum
>  #define EF_RISCV_FLOAT_ABI_QUAD 	0x0006
>
>  /* RISC-V relocations.  */
> -#define R_RISCV_NONE          0
> -#define R_RISCV_32            1
> -#define R_RISCV_64            2
> -#define R_RISCV_RELATIVE      3
> -#define R_RISCV_COPY          4
> -#define R_RISCV_JUMP_SLOT     5
> -#define R_RISCV_TLS_DTPMOD32  6
> -#define R_RISCV_TLS_DTPMOD64  7
> -#define R_RISCV_TLS_DTPREL32  8
> -#define R_RISCV_TLS_DTPREL64  9
> -#define R_RISCV_TLS_TPREL32  10
> -#define R_RISCV_TLS_TPREL64  11
> +#define R_RISCV_NONE		 0
> +#define R_RISCV_32		 1
> +#define R_RISCV_64		 2
> +#define R_RISCV_RELATIVE	 3
> +#define R_RISCV_COPY		 4
> +#define R_RISCV_JUMP_SLOT	 5
> +#define R_RISCV_TLS_DTPMOD32	 6
> +#define R_RISCV_TLS_DTPMOD64	 7
> +#define R_RISCV_TLS_DTPREL32	 8
> +#define R_RISCV_TLS_DTPREL64	 9
> +#define R_RISCV_TLS_TPREL32	10
> +#define R_RISCV_TLS_TPREL64	11
> +#define R_RISCV_BRANCH		16
> +#define R_RISCV_JAL		17
> +#define R_RISCV_CALL		18
> +#define R_RISCV_CALL_PLT	19
> +#define R_RISCV_GOT_HI20	20
> +#define R_RISCV_TLS_GOT_HI20	21
> +#define R_RISCV_TLS_GD_HI20	22
> +#define R_RISCV_PCREL_HI20	23
> +#define R_RISCV_PCREL_LO12_I	24
> +#define R_RISCV_PCREL_LO12_S	25
> +#define R_RISCV_HI20		26
> +#define R_RISCV_LO12_I		27
> +#define R_RISCV_LO12_S		28
> +#define R_RISCV_TPREL_HI20	29
> +#define R_RISCV_TPREL_LO12_I	30
> +#define R_RISCV_TPREL_LO12_S	31
> +#define R_RISCV_TPREL_ADD	32
> +#define R_RISCV_ADD8		33
> +#define R_RISCV_ADD16		34
> +#define R_RISCV_ADD32		35
> +#define R_RISCV_ADD64		36
> +#define R_RISCV_SUB8		37
> +#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_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
> +#define R_RISCV_SET8		54
> +#define R_RISCV_SET16		55
> +#define R_RISCV_SET32		56
> +#define R_RISCV_32_PCREL	57
> +
> +#define R_RISCV_NUM		58
>
>  /* BPF specific declarations.  */

This looks good to me, I guess we just had the dynamic relocations in our glibc
port as they're the only ones that show up, but these are all set in the ABI so
it seems sane to expose them.

If there's no other comments then I'll commit it.

Thanks!

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-03-22 17:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-22 11:34 [PATCH] RISC-V: add remaining relocations Andreas Schwab
2018-03-22 17:43 ` Palmer Dabbelt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).