LoongArch: Add new relocation types.

Message ID 20230131133246.711897-1-caiyinyu@loongson.cn
State Committed
Commit 83d49a53aab1c8e191c007bc986c4d696bc95570
Headers
Series LoongArch: Add new relocation types. |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent

Commit Message

caiyinyu Jan. 31, 2023, 1:32 p.m. UTC
  ---
 elf/elf.h | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
  

Comments

Xi Ruoyao Jan. 31, 2023, 2:23 p.m. UTC | #1
On Tue, 2023-01-31 at 21:32 +0800, caiyinyu wrote:
> ---
>  elf/elf.h | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
> 
> diff --git a/elf/elf.h b/elf/elf.h
> index b6a75c13a8..4bc0e4299c 100644
> --- a/elf/elf.h
> +++ b/elf/elf.h
> @@ -4159,6 +4159,46 @@ enum
>  #define R_LARCH_GNU_VTINHERIT  57
>  #define R_LARCH_GNU_VTENTRY  58
>  
> +/* reserved 59-63 */
> +
> +#define R_LARCH_B16 64
> +#define R_LARCH_B21 65
> +#define R_LARCH_B26 66
> +#define R_LARCH_ABS_HI20 67
> +#define R_LARCH_ABS_LO12 68
> +#define R_LARCH_ABS64_LO20 69
> +#define R_LARCH_ABS64_HI12 70
> +#define R_LARCH_PCALA_HI20 71
> +#define R_LARCH_PCALA_LO12 72
> +#define R_LARCH_PCALA64_LO20 73
> +#define R_LARCH_PCALA64_HI12 74
> +#define R_LARCH_GOT_PC_HI20 75
> +#define R_LARCH_GOT_PC_LO12 76
> +#define R_LARCH_GOT64_PC_LO20 77
> +#define R_LARCH_GOT64_PC_HI12 78
> +#define R_LARCH_GOT_HI20 79
> +#define R_LARCH_GOT_LO12 80
> +#define R_LARCH_GOT64_LO20 81
> +#define R_LARCH_GOT64_HI12 82
> +#define R_LARCH_TLS_LE_HI20 83
> +#define R_LARCH_TLS_LE_LO12 84
> +#define R_LARCH_TLS_LE64_LO20 85
> +#define R_LARCH_TLS_LE64_HI12 86
> +#define R_LARCH_TLS_IE_PC_HI20 87
> +#define R_LARCH_TLS_IE_PC_LO12 88
> +#define R_LARCH_TLS_IE64_PC_LO20 89
> +#define R_LARCH_TLS_IE64_PC_HI12 90
> +#define R_LARCH_TLS_IE_HI20 91
> +#define R_LARCH_TLS_IE_LO12 92
> +#define R_LARCH_TLS_IE64_LO20 93
> +#define R_LARCH_TLS_IE64_HI12 94
> +#define R_LARCH_TLS_LD_PC_HI20 95
> +#define R_LARCH_TLS_LD_HI20 96
> +#define R_LARCH_TLS_GD_PC_HI20 97
> +#define R_LARCH_TLS_GD_HI20 98
> +#define R_LARCH_32_PCREL 99
> +#define R_LARCH_RELAX 100
> +

Compared with BFD code with eyesight, LGTM.

Pushing the change before Glibc-2.37 release will require release
manager approval though.

>  /* ARC specific declarations.  */
>  
>  /* Processor specific flags for the Ehdr e_flags field.  */
  
Carlos O'Donell Jan. 31, 2023, 8:31 p.m. UTC | #2
On 1/31/23 09:23, Xi Ruoyao via Libc-alpha wrote:
> On Tue, 2023-01-31 at 21:32 +0800, caiyinyu wrote:
>> ---
>>  elf/elf.h | 40 ++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 40 insertions(+)
>>
>> diff --git a/elf/elf.h b/elf/elf.h
>> index b6a75c13a8..4bc0e4299c 100644
>> --- a/elf/elf.h
>> +++ b/elf/elf.h
>> @@ -4159,6 +4159,46 @@ enum
>>  #define R_LARCH_GNU_VTINHERIT  57
>>  #define R_LARCH_GNU_VTENTRY  58
>>  
>> +/* reserved 59-63 */
>> +
>> +#define R_LARCH_B16 64
>> +#define R_LARCH_B21 65
>> +#define R_LARCH_B26 66
>> +#define R_LARCH_ABS_HI20 67
>> +#define R_LARCH_ABS_LO12 68
>> +#define R_LARCH_ABS64_LO20 69
>> +#define R_LARCH_ABS64_HI12 70
>> +#define R_LARCH_PCALA_HI20 71
>> +#define R_LARCH_PCALA_LO12 72
>> +#define R_LARCH_PCALA64_LO20 73
>> +#define R_LARCH_PCALA64_HI12 74
>> +#define R_LARCH_GOT_PC_HI20 75
>> +#define R_LARCH_GOT_PC_LO12 76
>> +#define R_LARCH_GOT64_PC_LO20 77
>> +#define R_LARCH_GOT64_PC_HI12 78
>> +#define R_LARCH_GOT_HI20 79
>> +#define R_LARCH_GOT_LO12 80
>> +#define R_LARCH_GOT64_LO20 81
>> +#define R_LARCH_GOT64_HI12 82
>> +#define R_LARCH_TLS_LE_HI20 83
>> +#define R_LARCH_TLS_LE_LO12 84
>> +#define R_LARCH_TLS_LE64_LO20 85
>> +#define R_LARCH_TLS_LE64_HI12 86
>> +#define R_LARCH_TLS_IE_PC_HI20 87
>> +#define R_LARCH_TLS_IE_PC_LO12 88
>> +#define R_LARCH_TLS_IE64_PC_LO20 89
>> +#define R_LARCH_TLS_IE64_PC_HI12 90
>> +#define R_LARCH_TLS_IE_HI20 91
>> +#define R_LARCH_TLS_IE_LO12 92
>> +#define R_LARCH_TLS_IE64_LO20 93
>> +#define R_LARCH_TLS_IE64_HI12 94
>> +#define R_LARCH_TLS_LD_PC_HI20 95
>> +#define R_LARCH_TLS_LD_HI20 96
>> +#define R_LARCH_TLS_GD_PC_HI20 97
>> +#define R_LARCH_TLS_GD_HI20 98
>> +#define R_LARCH_32_PCREL 99
>> +#define R_LARCH_RELAX 100
>> +
> 
> Compared with BFD code with eyesight, LGTM.
> 
> Pushing the change before Glibc-2.37 release will require release
> manager approval though.

This will have to wait for glibc 2.38 (next development cycle which starts in ~24hrs :-))
 
>>  /* ARC specific declarations.  */
>>  
>>  /* Processor specific flags for the Ehdr e_flags field.  */
>
  

Patch

diff --git a/elf/elf.h b/elf/elf.h
index b6a75c13a8..4bc0e4299c 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -4159,6 +4159,46 @@  enum
 #define R_LARCH_GNU_VTINHERIT  57
 #define R_LARCH_GNU_VTENTRY  58
 
+/* reserved 59-63 */
+
+#define R_LARCH_B16 64
+#define R_LARCH_B21 65
+#define R_LARCH_B26 66
+#define R_LARCH_ABS_HI20 67
+#define R_LARCH_ABS_LO12 68
+#define R_LARCH_ABS64_LO20 69
+#define R_LARCH_ABS64_HI12 70
+#define R_LARCH_PCALA_HI20 71
+#define R_LARCH_PCALA_LO12 72
+#define R_LARCH_PCALA64_LO20 73
+#define R_LARCH_PCALA64_HI12 74
+#define R_LARCH_GOT_PC_HI20 75
+#define R_LARCH_GOT_PC_LO12 76
+#define R_LARCH_GOT64_PC_LO20 77
+#define R_LARCH_GOT64_PC_HI12 78
+#define R_LARCH_GOT_HI20 79
+#define R_LARCH_GOT_LO12 80
+#define R_LARCH_GOT64_LO20 81
+#define R_LARCH_GOT64_HI12 82
+#define R_LARCH_TLS_LE_HI20 83
+#define R_LARCH_TLS_LE_LO12 84
+#define R_LARCH_TLS_LE64_LO20 85
+#define R_LARCH_TLS_LE64_HI12 86
+#define R_LARCH_TLS_IE_PC_HI20 87
+#define R_LARCH_TLS_IE_PC_LO12 88
+#define R_LARCH_TLS_IE64_PC_LO20 89
+#define R_LARCH_TLS_IE64_PC_HI12 90
+#define R_LARCH_TLS_IE_HI20 91
+#define R_LARCH_TLS_IE_LO12 92
+#define R_LARCH_TLS_IE64_LO20 93
+#define R_LARCH_TLS_IE64_HI12 94
+#define R_LARCH_TLS_LD_PC_HI20 95
+#define R_LARCH_TLS_LD_HI20 96
+#define R_LARCH_TLS_GD_PC_HI20 97
+#define R_LARCH_TLS_GD_HI20 98
+#define R_LARCH_32_PCREL 99
+#define R_LARCH_RELAX 100
+
 /* ARC specific declarations.  */
 
 /* Processor specific flags for the Ehdr e_flags field.  */