The branch stable/15 has been updated by emaste:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=2b6ba65cee4e2e4f0cddfb32c4e21b6e20fa89e6

commit 2b6ba65cee4e2e4f0cddfb32c4e21b6e20fa89e6
Author:     Jessica Clarke <[email protected]>
AuthorDate: 2026-02-24 13:52:21 +0000
Commit:     Ed Maste <[email protected]>
CommitDate: 2026-03-02 15:09:54 +0000

    sys: Restore sorting in sys/elf_common.h
    
    These various definitions are meant to be kept sorted by machine prefix.
    
    Fixes:  2bb61497ca76 ("elf_common.h: Add definitions for LoongArch ELF 
files")
    (cherry picked from commit b7ef4f4b230f01968473269f280bd7e4e86a3ec9)
---
 sys/sys/elf_common.h | 350 +++++++++++++++++++++++++--------------------------
 1 file changed, 175 insertions(+), 175 deletions(-)

diff --git a/sys/sys/elf_common.h b/sys/sys/elf_common.h
index 7e1b01f9760c..43500fe5d51e 100644
--- a/sys/sys/elf_common.h
+++ b/sys/sys/elf_common.h
@@ -345,6 +345,25 @@ typedef struct {
 #define        EF_ARM_VFP_FLOAT        EF_ARM_ABI_FLOAT_HARD /* Pre-V5 ABI 
name */
 #define        EF_ARM_MAVERICK_FLOAT   0x00000800
 
+/*
+ * Loongson LoongArch Specific e_flags
+ *
+ * Definitions from LoongArch ELF psABI v2.01.
+ * Reference: https://github.com/loongson/LoongArch-Documentation
+ * (commit hash 296de4def055c871809068e0816325a4ac04eb12)
+ */
+
+/* LoongArch Base ABI Modifiers */
+#define        EF_LOONGARCH_ABI_SOFT_FLOAT     0x00000001
+#define        EF_LOONGARCH_ABI_SINGLE_FLOAT   0x00000002
+#define        EF_LOONGARCH_ABI_DOUBLE_FLOAT   0x00000003
+#define        EF_LOONGARCH_ABI_MODIFIER_MASK  0x00000007
+
+/* LoongArch Object file ABI versions */
+#define        EF_LOONGARCH_OBJABI_V0          0x00000000
+#define        EF_LOONGARCH_OBJABI_V1          0x00000040
+#define        EF_LOONGARCH_OBJABI_MASK        0x000000C0
+
 #define        EF_MIPS_NOREORDER       0x00000001
 #define        EF_MIPS_PIC             0x00000002      /* Contains PIC code */
 #define        EF_MIPS_CPIC            0x00000004      /* STD PIC calling 
sequence */
@@ -383,25 +402,6 @@ typedef struct {
 #define        EF_RISCV_RVE            0x00000008
 #define        EF_RISCV_TSO            0x00000010
 
-/*
- * Loongson LoongArch Specific e_flags
- *
- * Definitions from LoongArch ELF psABI v2.01.
- * Reference: https://github.com/loongson/LoongArch-Documentation
- * (commit hash 296de4def055c871809068e0816325a4ac04eb12)
- */
-
-/* LoongArch Base ABI Modifiers */
-#define        EF_LOONGARCH_ABI_SOFT_FLOAT     0x00000001
-#define        EF_LOONGARCH_ABI_SINGLE_FLOAT   0x00000002
-#define        EF_LOONGARCH_ABI_DOUBLE_FLOAT   0x00000003
-#define        EF_LOONGARCH_ABI_MODIFIER_MASK  0x00000007
-
-/* LoongArch Object file ABI versions */
-#define        EF_LOONGARCH_OBJABI_V0          0x00000000
-#define        EF_LOONGARCH_OBJABI_V1          0x00000040
-#define        EF_LOONGARCH_OBJABI_MASK        0x000000C0
-
 #define        EF_SPARC_EXT_MASK       0x00ffff00
 #define        EF_SPARC_32PLUS         0x00000100
 #define        EF_SPARC_SUN_US1        0x00000200
@@ -1224,6 +1224,162 @@ typedef struct {
 #define        R_IA_64_DTPREL64LSB     0xb7    /* word64 LSB   @dtprel(S + A) 
*/
 #define        R_IA_64_LTOFF_DTPREL22  0xba    /* imm22        
@ltoff(@dtprel(S+A)) */
 
+/*
+ * Loongson LoongArch relocation types.
+ *
+ * LoongArch ELF psABI: https://github.com/loongson/LoongArch-Documentation
+ * (commit hash 9b3bd9f4a497115913c22f1a2a47863798fbc02a)
+ */
+
+/* Relocation types used by the dynamic linker */
+#define        R_LARCH_NONE                            0
+#define        R_LARCH_32                              1
+#define        R_LARCH_64                              2
+#define        R_LARCH_RELATIVE                        3
+#define        R_LARCH_COPY                            4
+#define        R_LARCH_JUMP_SLOT                       5
+#define        R_LARCH_TLS_DTPMOD32                    6
+#define        R_LARCH_TLS_DTPMOD64                    7
+#define        R_LARCH_TLS_DTPREL32                    8
+#define        R_LARCH_TLS_DTPREL64                    9
+#define        R_LARCH_TLS_TPREL32                     10
+#define        R_LARCH_TLS_TPREL64                     11
+#define        R_LARCH_IRELATIVE                       12
+#define        R_LARCH_MARK_LA                         20
+#define        R_LARCH_MARK_PCREL                      21
+#define        R_LARCH_SOP_PUSH_PCREL                  22
+#define        R_LARCH_SOP_PUSH_ABSOLUTE               23
+#define        R_LARCH_SOP_PUSH_DUP                    24
+#define        R_LARCH_SOP_PUSH_GPREL                  25
+#define        R_LARCH_SOP_PUSH_TLS_TPREL              26
+#define        R_LARCH_SOP_PUSH_TLS_GOT                27
+#define        R_LARCH_SOP_PUSH_TLS_GD                 28
+#define        R_LARCH_SOP_PUSH_PLT_PCREL              29
+#define        R_LARCH_SOP_ASSERT                      30
+#define        R_LARCH_SOP_NOT                         31
+#define        R_LARCH_SOP_SUB                         32
+#define        R_LARCH_SOP_SL                          33
+#define        R_LARCH_SOP_SR                          34
+#define        R_LARCH_SOP_ADD                         35
+#define        R_LARCH_SOP_AND                         36
+#define        R_LARCH_SOP_IF_ELSE                     37
+#define        R_LARCH_SOP_POP_32_S_10_5               38
+#define        R_LARCH_SOP_POP_32_U_10_12              39
+#define        R_LARCH_SOP_POP_32_S_10_12              40
+#define        R_LARCH_SOP_POP_32_S_10_16              41
+#define        R_LARCH_SOP_POP_32_S_10_16_S2           42
+#define        R_LARCH_SOP_POP_32_S_5_20               43
+#define        R_LARCH_SOP_POP_32_S_0_5_10_16_S2       44
+#define        R_LARCH_SOP_POP_32_S_0_10_10_16_S2      45
+#define        R_LARCH_SOP_POP_32_U                    46
+#define        R_LARCH_ADD8                            47
+#define        R_LARCH_ADD16                           48
+#define        R_LARCH_ADD24                           49
+#define        R_LARCH_ADD32                           50
+#define        R_LARCH_ADD64                           51
+#define        R_LARCH_SUB8                            52
+#define        R_LARCH_SUB16                           53
+#define        R_LARCH_SUB24                           54
+#define        R_LARCH_SUB32                           55
+#define        R_LARCH_SUB64                           56
+#define        R_LARCH_GNU_VTINHERIT                   57
+#define        R_LARCH_GNU_VTENTRY                     58
+
+/*
+ * Relocs whose processing do not require a stack machine.
+ *
+ * Spec addition: https://github.com/loongson/LoongArch-Documentation/pull/57
+ */
+#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
+
+/*
+ * Relocs added in ELF for the LoongArch™ Architecture v20230519, part of the
+ * v2.10 LoongArch ABI specs.
+ *
+ * Spec addition: https://github.com/loongson/la-abi-specs/pull/1
+ *
+ * Note that the 101 and 104 relocation numbers are defined as R_LARCH_DELETE
+ * and R_LARCH_CFA respectively in psABI 2.10. But they are marked as reserved
+ * in psABI v2.20 because they were proved not necessary to be exposed outside
+ * of the linker.
+ */
+#define        R_LARCH_ALIGN                           102
+#define        R_LARCH_PCREL20_S2                      103
+#define        R_LARCH_ADD6                            105
+#define        R_LARCH_SUB6                            106
+#define        R_LARCH_ADD_ULEB128                     107
+#define        R_LARCH_SUB_ULEB128                     108
+#define        R_LARCH_64_PCREL                        109
+
+/*
+ * Relocs added in ELF for the LoongArch™ Architecture v20231102, part of the
+ * v2.20 LoongArch ABI specs.
+ *
+ * Spec addition: https://github.com/loongson/la-abi-specs/pull/4
+ */
+#define        R_LARCH_CALL36                          110
+
+/*
+ * Relocs added in ELF for the LoongArch™ Architecture v20231219, part of the
+ * v2.30 LoongArch ABI specs.
+ *
+ * Spec addition: https://github.com/loongson/la-abi-specs/pull/5
+ */
+#define        R_LARCH_TLS_DESC32                      13
+#define        R_LARCH_TLS_DESC64                      14
+#define        R_LARCH_TLS_DESC_PC_HI20                111
+#define        R_LARCH_TLS_DESC_PC_LO12                112
+#define        R_LARCH_TLS_DESC64_PC_LO20              113
+#define        R_LARCH_TLS_DESC64_PC_HI12              114
+#define        R_LARCH_TLS_DESC_HI20                   115
+#define        R_LARCH_TLS_DESC_LO12                   116
+#define        R_LARCH_TLS_DESC64_LO20                 117
+#define        R_LARCH_TLS_DESC64_HI12                 118
+#define        R_LARCH_TLS_DESC_LD                     119
+#define        R_LARCH_TLS_DESC_CALL                   120
+#define        R_LARCH_TLS_LE_HI20_R                   121
+#define        R_LARCH_TLS_LE_ADD_R                    122
+#define        R_LARCH_TLS_LE_LO12_R                   123
+#define        R_LARCH_TLS_LD_PCREL20_S2               124
+#define        R_LARCH_TLS_GD_PCREL20_S2               125
+#define        R_LARCH_TLS_DESC_PCREL20_S2             126
+
 #define        R_MIPS_NONE     0       /* No reloc */
 #define        R_MIPS_16       1       /* Direct 16 bit */
 #define        R_MIPS_32       2       /* Direct 32 bit */
@@ -1424,162 +1580,6 @@ typedef struct {
 #define        R_RISCV_TLSDESC_CALL    65
 #define        R_RISCV_VENDOR          191
 
-/*
- * Loongson LoongArch relocation types.
- *
- * LoongArch ELF psABI: https://github.com/loongson/LoongArch-Documentation
- * (commit hash 9b3bd9f4a497115913c22f1a2a47863798fbc02a)
- */
-
-/* Relocation types used by the dynamic linker */
-#define        R_LARCH_NONE                            0
-#define        R_LARCH_32                              1
-#define        R_LARCH_64                              2
-#define        R_LARCH_RELATIVE                        3
-#define        R_LARCH_COPY                            4
-#define        R_LARCH_JUMP_SLOT                       5
-#define        R_LARCH_TLS_DTPMOD32                    6
-#define        R_LARCH_TLS_DTPMOD64                    7
-#define        R_LARCH_TLS_DTPREL32                    8
-#define        R_LARCH_TLS_DTPREL64                    9
-#define        R_LARCH_TLS_TPREL32                     10
-#define        R_LARCH_TLS_TPREL64                     11
-#define        R_LARCH_IRELATIVE                       12
-#define        R_LARCH_MARK_LA                         20
-#define        R_LARCH_MARK_PCREL                      21
-#define        R_LARCH_SOP_PUSH_PCREL                  22
-#define        R_LARCH_SOP_PUSH_ABSOLUTE               23
-#define        R_LARCH_SOP_PUSH_DUP                    24
-#define        R_LARCH_SOP_PUSH_GPREL                  25
-#define        R_LARCH_SOP_PUSH_TLS_TPREL              26
-#define        R_LARCH_SOP_PUSH_TLS_GOT                27
-#define        R_LARCH_SOP_PUSH_TLS_GD                 28
-#define        R_LARCH_SOP_PUSH_PLT_PCREL              29
-#define        R_LARCH_SOP_ASSERT                      30
-#define        R_LARCH_SOP_NOT                         31
-#define        R_LARCH_SOP_SUB                         32
-#define        R_LARCH_SOP_SL                          33
-#define        R_LARCH_SOP_SR                          34
-#define        R_LARCH_SOP_ADD                         35
-#define        R_LARCH_SOP_AND                         36
-#define        R_LARCH_SOP_IF_ELSE                     37
-#define        R_LARCH_SOP_POP_32_S_10_5               38
-#define        R_LARCH_SOP_POP_32_U_10_12              39
-#define        R_LARCH_SOP_POP_32_S_10_12              40
-#define        R_LARCH_SOP_POP_32_S_10_16              41
-#define        R_LARCH_SOP_POP_32_S_10_16_S2           42
-#define        R_LARCH_SOP_POP_32_S_5_20               43
-#define        R_LARCH_SOP_POP_32_S_0_5_10_16_S2       44
-#define        R_LARCH_SOP_POP_32_S_0_10_10_16_S2      45
-#define        R_LARCH_SOP_POP_32_U                    46
-#define        R_LARCH_ADD8                            47
-#define        R_LARCH_ADD16                           48
-#define        R_LARCH_ADD24                           49
-#define        R_LARCH_ADD32                           50
-#define        R_LARCH_ADD64                           51
-#define        R_LARCH_SUB8                            52
-#define        R_LARCH_SUB16                           53
-#define        R_LARCH_SUB24                           54
-#define        R_LARCH_SUB32                           55
-#define        R_LARCH_SUB64                           56
-#define        R_LARCH_GNU_VTINHERIT                   57
-#define        R_LARCH_GNU_VTENTRY                     58
-
-/*
- * Relocs whose processing do not require a stack machine.
- *
- * Spec addition: https://github.com/loongson/LoongArch-Documentation/pull/57
- */
-#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
-
-/*
- * Relocs added in ELF for the LoongArch™ Architecture v20230519, part of the
- * v2.10 LoongArch ABI specs.
- *
- * Spec addition: https://github.com/loongson/la-abi-specs/pull/1
- *
- * Note that the 101 and 104 relocation numbers are defined as R_LARCH_DELETE
- * and R_LARCH_CFA respectively in psABI 2.10. But they are marked as reserved
- * in psABI v2.20 because they were proved not necessary to be exposed outside
- * of the linker.
- */
-#define        R_LARCH_ALIGN                           102
-#define        R_LARCH_PCREL20_S2                      103
-#define        R_LARCH_ADD6                            105
-#define        R_LARCH_SUB6                            106
-#define        R_LARCH_ADD_ULEB128                     107
-#define        R_LARCH_SUB_ULEB128                     108
-#define        R_LARCH_64_PCREL                        109
-
-/*
- * Relocs added in ELF for the LoongArch™ Architecture v20231102, part of the
- * v2.20 LoongArch ABI specs.
- *
- * Spec addition: https://github.com/loongson/la-abi-specs/pull/4
- */
-#define        R_LARCH_CALL36                          110
-
-/*
- * Relocs added in ELF for the LoongArch™ Architecture v20231219, part of the
- * v2.30 LoongArch ABI specs.
- *
- * Spec addition: https://github.com/loongson/la-abi-specs/pull/5
- */
-#define        R_LARCH_TLS_DESC32                      13
-#define        R_LARCH_TLS_DESC64                      14
-#define        R_LARCH_TLS_DESC_PC_HI20                111
-#define        R_LARCH_TLS_DESC_PC_LO12                112
-#define        R_LARCH_TLS_DESC64_PC_LO20              113
-#define        R_LARCH_TLS_DESC64_PC_HI12              114
-#define        R_LARCH_TLS_DESC_HI20                   115
-#define        R_LARCH_TLS_DESC_LO12                   116
-#define        R_LARCH_TLS_DESC64_LO20                 117
-#define        R_LARCH_TLS_DESC64_HI12                 118
-#define        R_LARCH_TLS_DESC_LD                     119
-#define        R_LARCH_TLS_DESC_CALL                   120
-#define        R_LARCH_TLS_LE_HI20_R                   121
-#define        R_LARCH_TLS_LE_ADD_R                    122
-#define        R_LARCH_TLS_LE_LO12_R                   123
-#define        R_LARCH_TLS_LD_PCREL20_S2               124
-#define        R_LARCH_TLS_GD_PCREL20_S2               125
-#define        R_LARCH_TLS_DESC_PCREL20_S2             126
-
 #define        R_SPARC_NONE            0
 #define        R_SPARC_8               1
 #define        R_SPARC_16              2

Reply via email to