#define PT_MIPS_REGINFO                0x70000000
 #define PT_MIPS_RTPROC         0x70000001
 #define PT_MIPS_OPTIONS                0x70000002
+#define PT_MIPS_ABIFLAGS       0x70000003
 
 /* Flags in the e_flags field of the header */
 #define EF_MIPS_NOREORDER      0x00000001
 typedef double elf_fpreg_t;
 typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
 
+struct mips_elf_abiflags_v0 {
+       uint16_t version;       /* Version of flags structure */
+       uint8_t isa_level;      /* The level of the ISA: 1-5, 32, 64 */
+       uint8_t isa_rev;        /* The revision of ISA: 0 for MIPS V and below,
+                                  1-n otherwise */
+       uint8_t gpr_size;       /* The size of general purpose registers */
+       uint8_t cpr1_size;      /* The size of co-processor 1 registers */
+       uint8_t cpr2_size;      /* The size of co-processor 2 registers */
+       uint8_t fp_abi;         /* The floating-point ABI */
+       uint32_t isa_ext;       /* Mask of processor-specific extensions */
+       uint32_t ases;          /* Mask of ASEs used */
+       uint32_t flags1;        /* Mask of general flags */
+       uint32_t flags2;
+};
+
+#define MIPS_ABI_FP_ANY                0       /* FP ABI doesn't matter */
+#define MIPS_ABI_FP_DOUBLE     1       /* -mdouble-float */
+#define MIPS_ABI_FP_SINGLE     2       /* -msingle-float */
+#define MIPS_ABI_FP_SOFT       3       /* -msoft-float */
+#define MIPS_ABI_FP_OLD_64     4       /* -mips32r2 -mfp64 */
+#define MIPS_ABI_FP_XX         5       /* -mfpxx */
+#define MIPS_ABI_FP_64         6       /* -mips32r2 -mfp64 */
+#define MIPS_ABI_FP_64A                7       /* -mips32r2 -mfp64 -mno-odd-spreg */
+
 #ifdef CONFIG_32BIT
 
 /*