* [PATCH v2] MIPS: Sync elf.h from binutils
@ 2023-05-16 6:15 Ying Huang
2023-05-16 6:53 ` Florian Weimer
0 siblings, 1 reply; 10+ messages in thread
From: Ying Huang @ 2023-05-16 6:15 UTC (permalink / raw)
To: libc-alpha; +Cc: yunqiang.su, Ying Huang
[-- Attachment #1: Type: text/plain, Size: 9593 bytes --]
From: Ying Huang <ying.huang@oss.cipunited.com>
1.Add new MIPS related declarations, specifically the following:
relocation types, machine flags, section type names,
GNU attribute tags, values of Tag_GNU_MIPS_ABI_FP.
On mips64, up to three reloc types may be specified per r_info,
by the fields r_type, r_type2, and r_type3, so add new macros
to get reloc type for mips64.
2.update sysdeps/mips/dl-machine-reject-phdr.h
---
elf/elf.h | 135 +++++++++++++++++++++++++-
sysdeps/mips/dl-machine-reject-phdr.h | 5 +-
2 files changed, 136 insertions(+), 4 deletions(-)
diff --git a/elf/elf.h b/elf/elf.h
index 94ca23c1bb..9781961252 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -678,6 +678,9 @@ typedef Elf64_Xword Elf64_Relr;
#define ELF64_R_SYM(i) ((i) >> 32)
#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
+#define ELF64_MIPS_R_TYPE(i) ((i) & 0xff)
+#define ELF64_MIPS_R_TYPE2(i) (((i) >> 8) & 0xff)
+#define ELF64_MIPS_R_TYPE3(i) (((i) >> 16) & 0xff)
#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
/* Program segment header. */
@@ -1682,11 +1685,18 @@ typedef struct
#define EF_MIPS_PIC 2 /* Contains PIC code. */
#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence. */
#define EF_MIPS_XGOT 8
-#define EF_MIPS_64BIT_WHIRL 16
+#define EF_MIPS_UCODE 16
#define EF_MIPS_ABI2 32
#define EF_MIPS_ABI_ON32 64
+#define EF_MIPS_OPTIONS_FIRST 0x00000080 /* Process the .MIPS.options section first by ld */
+#define EF_MIPS_32BITMODE 0x00000100 /* Indicates code compiled for a 64-bit machine in
+ 32-bit mode(regs are 32-bits wide). */
#define EF_MIPS_FP64 512 /* Uses FP64 (12 callee-saved). */
#define EF_MIPS_NAN2008 1024 /* Uses IEEE 754-2008 NaN encoding. */
+#define EF_MIPS_ARCH_ASE 0x0f000000 /* Architectural Extensions used by this file */
+#define EF_MIPS_ARCH_ASE_MDMX 0x08000000 /* Use MDMX multimedia extensions */
+#define EF_MIPS_ARCH_ASE_M16 0x04000000 /* Use MIPS-16 ISA extensions */
+#define EF_MIPS_ARCH_ASE_MICROMIPS 0x02000000 /* Use MICROMIPS ISA extensions. */
#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level. */
/* Legal values for MIPS architecture level. */
@@ -1700,6 +1710,39 @@ typedef struct
#define EF_MIPS_ARCH_64 0x60000000 /* MIPS64 code. */
#define EF_MIPS_ARCH_32R2 0x70000000 /* MIPS32r2 code. */
#define EF_MIPS_ARCH_64R2 0x80000000 /* MIPS64r2 code. */
+#define E_MIPS_ARCH_32R6 0x90000000 /* -mips32r6 code. */
+#define E_MIPS_ARCH_64R6 0xa0000000 /* -mips64r6 code. */
+#define EF_MIPS_ABI 0x0000F000 /* The ABI of the file. Also see EF_MIPS_ABI2 above. */
+#define E_MIPS_ABI_O32 0x00001000 /* The original o32 abi. */
+#define E_MIPS_ABI_O64 0x00002000 /* O32 extended to work on 64 bit architectures */
+#define E_MIPS_ABI_EABI32 0x00003000 /* EABI in 32 bit mode */
+#define E_MIPS_ABI_EABI64 0x00004000 /* EABI in 64 bit mode */
+#define EF_MIPS_MACH 0x00FF0000 /* Machine variant if we know it. This field was invented at Cygnus,
+ but it is hoped that other vendors will adopt it. If some standard
+ is developed, this code should be changed to follow it. */
+#define E_MIPS_MACH_3900 0x00810000 /* Cygnus is choosing values between 80 and 9F;
+ 00 - 7F should be left for a future standard;
+ the rest are open. */
+#define E_MIPS_MACH_4010 0x00820000
+#define E_MIPS_MACH_4100 0x00830000
+#define E_MIPS_MACH_4650 0x00850000
+#define E_MIPS_MACH_4120 0x00870000
+#define E_MIPS_MACH_4111 0x00880000
+#define E_MIPS_MACH_SB1 0x008a0000
+#define E_MIPS_MACH_OCTEON 0x008b0000
+#define E_MIPS_MACH_XLR 0x008c0000
+#define E_MIPS_MACH_OCTEON2 0x008d0000
+#define E_MIPS_MACH_OCTEON3 0x008e0000
+#define E_MIPS_MACH_5400 0x00910000
+#define E_MIPS_MACH_5900 0x00920000
+#define E_MIPS_MACH_IAMR2 0x00930000
+#define E_MIPS_MACH_5500 0x00980000
+#define E_MIPS_MACH_9000 0x00990000
+#define E_MIPS_MACH_LS2E 0x00A00000
+#define E_MIPS_MACH_LS2F 0x00A10000
+#define E_MIPS_MACH_GS464 0x00A20000
+#define E_MIPS_MACH_GS464E 0x00A30000
+#define E_MIPS_MACH_GS264E 0x00A40000
/* The following are unofficial names and should not be used. */
@@ -1760,6 +1803,7 @@ typedef struct
#define SHT_MIPS_EH_REGION 0x70000027
#define SHT_MIPS_XLATE_OLD 0x70000028
#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+#define SHT_MIPS_ABIFLAGS 0x7000002a
#define SHT_MIPS_XHASH 0x7000002b
/* Legal values for sh_flags field of Elf32_Shdr. */
@@ -1787,6 +1831,30 @@ typedef struct
/* MIPS specific values for `st_info'. */
#define STB_MIPS_SPLIT_COMMON 13
+/* Object attribute tags. */
+enum
+{
+ /* 0-3 are generic. */
+
+ /* Floating-point ABI used by this object file. */
+ Tag_GNU_MIPS_ABI_FP = 4,
+
+ /* MSA ABI used by this object file. */
+ Tag_GNU_MIPS_ABI_MSA = 8,
+};
+
+/* Object attribute values. */
+enum
+{
+ /* Values defined for Tag_GNU_MIPS_ABI_MSA. */
+
+ /* Not tagged or not using any ABIs affected by the differences. */
+ Val_GNU_MIPS_ABI_MSA_ANY = 0,
+
+ /* Using 128-bit MSA. */
+ Val_GNU_MIPS_ABI_MSA_128 = 1,
+};
+
/* Entries found in sections of type SHT_MIPS_GPTAB. */
typedef union
@@ -1928,10 +1996,68 @@ typedef struct
#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */
#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */
#define R_MIPS_GLOB_DAT 51
+#define R_MIPS_PC21_S2 60
+#define R_MIPS_PC26_S2 61
+#define R_MIPS_PC18_S3 62
+#define R_MIPS_PC19_S2 63
+#define R_MIPS_PCHI16 64
+#define R_MIPS_PCLO16 65
+#define R_MIPS16_26 100
+#define R_MIPS16_GPREL 101
+#define R_MIPS16_GOT16 102
+#define R_MIPS16_CALL16 103
+#define R_MIPS16_HI16 104
+#define R_MIPS16_LO16 105
+#define R_MIPS16_TLS_GD 106
+#define R_MIPS16_TLS_LDM 107
+#define R_MIPS16_TLS_DTPREL_HI16 108
+#define R_MIPS16_TLS_DTPREL_LO16 109
+#define R_MIPS16_TLS_GOTTPREL 110
+#define R_MIPS16_TLS_TPREL_HI16 111
+#define R_MIPS16_TLS_TPREL_LO16 112
+#define R_MIPS16_PC16_S1 113
#define R_MIPS_COPY 126
#define R_MIPS_JUMP_SLOT 127
+#define R_MIPS_RELATIVE 128
+#define R_MICROMIPS_26_S1 133
+#define R_MICROMIPS_HI16 134
+#define R_MICROMIPS_LO16 135
+#define R_MICROMIPS_GPREL16 136
+#define R_MICROMIPS_LITERAL 137
+#define R_MICROMIPS_GOT16 138
+#define R_MICROMIPS_PC7_S1 139
+#define R_MICROMIPS_PC10_S1 140
+#define R_MICROMIPS_PC16_S1 141
+#define R_MICROMIPS_CALL16 142
+#define R_MICROMIPS_GOT_DISP 145
+#define R_MICROMIPS_GOT_PAGE 146
+#define R_MICROMIPS_GOT_OFST 147
+#define R_MICROMIPS_GOT_HI16 148
+#define R_MICROMIPS_GOT_LO16 149
+#define R_MICROMIPS_SUB 150
+#define R_MICROMIPS_HIGHER 151
+#define R_MICROMIPS_HIGHEST 152
+#define R_MICROMIPS_CALL_HI16 153
+#define R_MICROMIPS_CALL_LO16 154
+#define R_MICROMIPS_SCN_DISP 155
+#define R_MICROMIPS_JALR 156
+#define R_MICROMIPS_HI0_LO16 157
+#define R_MICROMIPS_TLS_GD 162
+#define R_MICROMIPS_TLS_LDM 163
+#define R_MICROMIPS_TLS_DTPREL_HI16 164
+#define R_MICROMIPS_TLS_DTPREL_LO16 165
+#define R_MICROMIPS_TLS_GOTTPREL 166
+#define R_MICROMIPS_TLS_TPREL_HI16 169
+#define R_MICROMIPS_TLS_TPREL_LO16 170
+#define R_MICROMIPS_GPREL7_S2 172
+#define R_MICROMIPS_PC23_S2 173
+#define R_MIPS_PC32 248
+#define R_MIPS_EH 249
+#define R_MIPS_GNU_REL16_S2 250
+#define R_MIPS_GNU_VTINHERIT 253
+#define R_MIPS_GNU_VTENTRY 254
/* Keep this the last entry. */
-#define R_MIPS_NUM 128
+#define R_MIPS_NUM 255
/* Legal values for p_type field of Elf32_Phdr. */
@@ -2158,8 +2284,11 @@ enum
Val_GNU_MIPS_ABI_FP_64 = 6,
/* Using -mips32r2 -mfp64 -mno-odd-spreg. */
Val_GNU_MIPS_ABI_FP_64A = 7,
+ /* This is reserved for backward-compatibility with an earlier
+ implementation of the MIPS NaN2008 functionality. */
+ Val_GNU_MIPS_ABI_FP_NAN2008 = 8,
/* Maximum allocated FP ABI value. */
- Val_GNU_MIPS_ABI_FP_MAX = 7
+ Val_GNU_MIPS_ABI_FP_MAX = 8
};
/* HPPA specific definitions. */
diff --git a/sysdeps/mips/dl-machine-reject-phdr.h b/sysdeps/mips/dl-machine-reject-phdr.h
index 104b590661..edea869c46 100644
--- a/sysdeps/mips/dl-machine-reject-phdr.h
+++ b/sysdeps/mips/dl-machine-reject-phdr.h
@@ -106,6 +106,8 @@ fpabi_string (int fpabi)
return "Hard float (32-bit CPU, 64-bit FPU)";
case Val_GNU_MIPS_ABI_FP_64A:
return "Hard float compat (32-bit CPU, 64-bit FPU)";
+ case Val_GNU_MIPS_ABI_FP_NAN2008:
+ return "NaN 2008 compatibility";
case -1:
return "Double precision, single precision or soft float";
default:
@@ -139,7 +141,8 @@ static const struct abi_req reqs[Val_GNU_MIPS_ABI_FP_MAX + 1] =
{false, false, false, false, false}, /* old-FP64 */
{false, false, true, true, true}, /* FPXX */
{false, false, false, true, false}, /* FP64 */
- {false, false, false, true, true}}; /* FP64A */
+ {false, false, false, true, true}, /* FP64A */
+ {false, false, true, true, true}}; /* NAN2008 */
/* FP ABI requirements for objects without a PT_MIPS_ABIFLAGS segment. */
--
2.30.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-05-16 6:15 [PATCH v2] MIPS: Sync elf.h from binutils Ying Huang
@ 2023-05-16 6:53 ` Florian Weimer
2023-05-19 11:21 ` Maciej W. Rozycki
0 siblings, 1 reply; 10+ messages in thread
From: Florian Weimer @ 2023-05-16 6:53 UTC (permalink / raw)
To: Ying Huang; +Cc: libc-alpha, yunqiang.su
* Ying Huang:
> +#define EF_MIPS_MACH 0x00FF0000 /* Machine variant if we know it. This field was invented at Cygnus,
> + but it is hoped that other vendors will adopt it. If some standard
> + is developed, this code should be changed to follow it. */
> +#define E_MIPS_MACH_3900 0x00810000 /* Cygnus is choosing values between 80 and 9F;
> + 00 - 7F should be left for a future standard;
> + the rest are open. */
Surely after around 25 years, these comments can be more precise?
> +/* Object attribute tags. */
> +enum
> +{
> + /* 0-3 are generic. */
> +
> + /* Floating-point ABI used by this object file. */
> + Tag_GNU_MIPS_ABI_FP = 4,
> +
> + /* MSA ABI used by this object file. */
> + Tag_GNU_MIPS_ABI_MSA = 8,
> +};
> +
> +/* Object attribute values. */
> +enum
> +{
> + /* Values defined for Tag_GNU_MIPS_ABI_MSA. */
> +
> + /* Not tagged or not using any ABIs affected by the differences. */
> + Val_GNU_MIPS_ABI_MSA_ANY = 0,
> +
> + /* Using 128-bit MSA. */
> + Val_GNU_MIPS_ABI_MSA_128 = 1,
> +};
Any reason for using enum constants here, and not #define? I understand
there is other MIPS precedent, but why continue in this direction?
Thanks,
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-05-16 6:53 ` Florian Weimer
@ 2023-05-19 11:21 ` Maciej W. Rozycki
2023-05-19 12:43 ` Gabriel Ravier
0 siblings, 1 reply; 10+ messages in thread
From: Maciej W. Rozycki @ 2023-05-19 11:21 UTC (permalink / raw)
To: Florian Weimer; +Cc: Ying Huang, libc-alpha, yunqiang.su
On Tue, 16 May 2023, Florian Weimer via Libc-alpha wrote:
> > +/* Object attribute values. */
> > +enum
> > +{
> > + /* Values defined for Tag_GNU_MIPS_ABI_MSA. */
> > +
> > + /* Not tagged or not using any ABIs affected by the differences. */
> > + Val_GNU_MIPS_ABI_MSA_ANY = 0,
> > +
> > + /* Using 128-bit MSA. */
> > + Val_GNU_MIPS_ABI_MSA_128 = 1,
> > +};
>
> Any reason for using enum constants here, and not #define? I understand
> there is other MIPS precedent, but why continue in this direction?
AFAICT all architectures use enumeration constants for object attributes,
with the exception of TI C6X which seems to have special requirements. I
don't know what the actual original rationale has been, but it does help a
lot with debugging.
Maciej
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-05-19 11:21 ` Maciej W. Rozycki
@ 2023-05-19 12:43 ` Gabriel Ravier
0 siblings, 0 replies; 10+ messages in thread
From: Gabriel Ravier @ 2023-05-19 12:43 UTC (permalink / raw)
To: Maciej W. Rozycki, Florian Weimer; +Cc: Ying Huang, libc-alpha, yunqiang.su
On 5/19/23 13:21, Maciej W. Rozycki wrote:
> On Tue, 16 May 2023, Florian Weimer via Libc-alpha wrote:
>
>>> +/* Object attribute values. */
>>> +enum
>>> +{
>>> + /* Values defined for Tag_GNU_MIPS_ABI_MSA. */
>>> +
>>> + /* Not tagged or not using any ABIs affected by the differences. */
>>> + Val_GNU_MIPS_ABI_MSA_ANY = 0,
>>> +
>>> + /* Using 128-bit MSA. */
>>> + Val_GNU_MIPS_ABI_MSA_128 = 1,
>>> +};
>> Any reason for using enum constants here, and not #define? I understand
>> there is other MIPS precedent, but why continue in this direction?
> AFAICT all architectures use enumeration constants for object attributes,
> with the exception of TI C6X which seems to have special requirements. I
> don't know what the actual original rationale has been, but it does help a
> lot with debugging.
>
> Maciej
I'll add that the problem this is likely to be referring to (gdb not
knowing about macros) can be alleviated by using -g3 instead of just -g,
but from what I've seen using enums is still better w.r.t. debugging in
some cases even with -g3, and it's especially convenient when using
stuff like Fedora debuginfo for debugging - debug packages don't
typically use -g3 from what I've seen, just -g.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-06-01 10:32 ` Florian Weimer
2023-06-01 10:46 ` 黄莺
@ 2023-06-28 1:43 ` Ying Huang
1 sibling, 0 replies; 10+ messages in thread
From: Ying Huang @ 2023-06-28 1:43 UTC (permalink / raw)
To: Florian Weimer, Libc-alpha; +Cc: yunqiang.su
[-- Attachment #1: Type: text/plain, Size: 386 bytes --]
Hi Florian,
在 2023/6/1 18:32, Florian Weimer 写道:
> * Ying Huang:
>
>> Could you help commit PATCH v2?
> Is this contribution covered by an FSF copyright assignment?
>
> Thanks,
> Florian
Yes, the entire company signed the fsf copyright assignment.
I have submitted patch v6, adjust all align issues and do make check.
Could you help commit patch v6?
Thanks,
Ying
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-06-01 10:32 ` Florian Weimer
@ 2023-06-01 10:46 ` 黄莺
2023-06-28 1:43 ` Ying Huang
1 sibling, 0 replies; 10+ messages in thread
From: 黄莺 @ 2023-06-01 10:46 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha, 苏运强
[-- Attachment #1: Type: text/plain, Size: 473 bytes --]
Yes, the entire company signed the fsf copyright assignment.
Thanks,
Ying
> From:"Florian Weimer"<fweimer@redhat.com>
> Date:Thu, Jun 1, 18:32
> Subject:Re: [PATCH v2] MIPS: Sync elf.h from binutils
> To:"Ying Huang"<ying.huang@oss.cipunited.com>
> Cc:<libc-alpha@sourceware.org>,<yunqiang.su@oss.cipunited.com>
> * Ying Huang:
>
> > Could you help commit PATCH v2?
>
> Is this contribution covered by an FSF copyright assignment?
>
> Thanks,
> Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-06-01 9:40 ` Ying Huang
@ 2023-06-01 10:32 ` Florian Weimer
2023-06-01 10:46 ` 黄莺
2023-06-28 1:43 ` Ying Huang
0 siblings, 2 replies; 10+ messages in thread
From: Florian Weimer @ 2023-06-01 10:32 UTC (permalink / raw)
To: Ying Huang; +Cc: libc-alpha, yunqiang.su
* Ying Huang:
> Could you help commit PATCH v2?
Is this contribution covered by an FSF copyright assignment?
Thanks,
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-06-01 9:21 ` Florian Weimer
@ 2023-06-01 9:40 ` Ying Huang
2023-06-01 10:32 ` Florian Weimer
0 siblings, 1 reply; 10+ messages in thread
From: Ying Huang @ 2023-06-01 9:40 UTC (permalink / raw)
To: Florian Weimer; +Cc: libc-alpha, yunqiang.su
[-- Attachment #1: Type: text/plain, Size: 997 bytes --]
Hi Florian,
在 2023/6/1 17:21, Florian Weimer 写道:
> * Ying Huang:
>
>> Hi,
>>
>>>> /+/* Object attribute tags. */ />/+enum />/+{ />/+ /* 0-3 are generic. */ />/+ />/+ /*
>> Floating-point ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_FP = 4, />/+ />/+ /* MSA
>> ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_MSA = 8, />/+}; />/+ />/+/* Object
>> attribute values. */ />/+enum />/+{ />/+ /* Values defined for Tag_GNU_MIPS_ABI_MSA. */ />/+
>> />/+ /* Not tagged or not using any ABIs affected by the differences. */ />/+
>> Val_GNU_MIPS_ABI_MSA_ANY = 0, />/+ />/+ /* Using 128-bit MSA. */ />/+
>> Val_GNU_MIPS_ABI_MSA_128 = 1, />/+}; /
>>> Any reason for using enum constants here, and not #define? I understand
>>> there is other MIPS precedent, but why continue in this direction?
>>>
>>> Thanks,
>>> Florian
>> I wish to keep same with binutils.
> Fine by me.
>
> Thanks,
> Florian
Could you help commit PATCH v2?
Thanks,
Ying
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-06-01 9:17 ` [PATCH " Ying Huang
@ 2023-06-01 9:21 ` Florian Weimer
2023-06-01 9:40 ` Ying Huang
0 siblings, 1 reply; 10+ messages in thread
From: Florian Weimer @ 2023-06-01 9:21 UTC (permalink / raw)
To: Ying Huang; +Cc: libc-alpha, yunqiang.su
* Ying Huang:
> Hi,
>
>> >/+/* Object attribute tags. */ />/+enum />/+{ />/+ /* 0-3 are generic. */ />/+ />/+ /*
> Floating-point ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_FP = 4, />/+ />/+ /* MSA
> ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_MSA = 8, />/+}; />/+ />/+/* Object
> attribute values. */ />/+enum />/+{ />/+ /* Values defined for Tag_GNU_MIPS_ABI_MSA. */ />/+
> />/+ /* Not tagged or not using any ABIs affected by the differences. */ />/+
> Val_GNU_MIPS_ABI_MSA_ANY = 0, />/+ />/+ /* Using 128-bit MSA. */ />/+
> Val_GNU_MIPS_ABI_MSA_128 = 1, />/+}; /
>> Any reason for using enum constants here, and not #define? I understand
>> there is other MIPS precedent, but why continue in this direction?
>>
>> Thanks,
>> Florian
>
> I wish to keep same with binutils.
Fine by me.
Thanks,
Florian
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] MIPS: Sync elf.h from binutils
2023-05-16 9:12 Ying Huang
@ 2023-06-01 9:17 ` Ying Huang
2023-06-01 9:21 ` Florian Weimer
0 siblings, 1 reply; 10+ messages in thread
From: Ying Huang @ 2023-06-01 9:17 UTC (permalink / raw)
To: fweimer, libc-alpha; +Cc: yunqiang.su
[-- Attachment #1: Type: text/plain, Size: 810 bytes --]
Hi,
> >/+/* Object attribute tags. */ />/+enum />/+{ />/+ /* 0-3 are generic. */ />/+ />/+ /* Floating-point ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_FP = 4, />/+ />/+ /* MSA ABI used by this object file. */ />/+ Tag_GNU_MIPS_ABI_MSA = 8, />/+}; />/+ />/+/* Object attribute values. */ />/+enum />/+{ />/+ /* Values defined for Tag_GNU_MIPS_ABI_MSA. */ />/+ />/+ /* Not tagged or not using any ABIs affected by the differences. */ />/+ Val_GNU_MIPS_ABI_MSA_ANY = 0, />/+ />/+ /* Using 128-bit MSA. */ />/+ Val_GNU_MIPS_ABI_MSA_128 = 1, />/+}; /
> Any reason for using enum constants here, and not #define? I understand
> there is other MIPS precedent, but why continue in this direction?
>
> Thanks,
> Florian
I wish to keep same with binutils.
Thanks,
Ying
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-06-28 1:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-16 6:15 [PATCH v2] MIPS: Sync elf.h from binutils Ying Huang
2023-05-16 6:53 ` Florian Weimer
2023-05-19 11:21 ` Maciej W. Rozycki
2023-05-19 12:43 ` Gabriel Ravier
2023-05-16 9:12 Ying Huang
2023-06-01 9:17 ` [PATCH " Ying Huang
2023-06-01 9:21 ` Florian Weimer
2023-06-01 9:40 ` Ying Huang
2023-06-01 10:32 ` Florian Weimer
2023-06-01 10:46 ` 黄莺
2023-06-28 1:43 ` Ying Huang
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).