]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Add support for the RISC-V-specific ELF flags
authorPalmer Dabbelt <palmer@dabbelt.com>
Sat, 13 Jan 2018 09:59:12 +0000 (01:59 -0800)
committerPalmer Dabbelt <palmer@dabbelt.com>
Thu, 25 Jan 2018 18:06:19 +0000 (10:06 -0800)
The RISC-V port defines ELF flags that enforce compatibility between
various objects.  This adds the shared support necessary for these
flags.

2018-01-25  Palmer Dabbelt  <palmer@sifive.com>

        * elf/cache.c (print_entry): Add FLAG_RISCV_FLOAT_ABI_SOFT and
        FLAG_RISCV_FLOAT_ABI_DOUBLE.
        * elf/elf.h (EF_RISCV_RVC): New define.
        (EF_RISCV_FLOAT_ABI): Likewise.
        (EF_RISCV_FLOAT_ABI_SOFT): Likewise.
        (EF_RISCV_FLOAT_ABI_SINGLE): Likewise.
        (EF_RISCV_FLOAT_ABI_DOUBLE): Likewise.
        (EF_RISCV_FLOAT_ABI_QUAD): Likewise.
        * sysdeps/generic/ldconfig.h (FLAG_RISCV_FLOAT_ABI_SOFT): New
        define.
        (FLAG_RISCV_FLOAT_ABI_DOUBLE): Likewise.

ChangeLog
elf/cache.c
elf/elf.h
sysdeps/generic/ldconfig.h

index 67131c816bd3a2810c48cad88cd11688694d5f48..76abf5326a95707c868688f3fb295eb2386345cc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2018-01-25  Palmer Dabbelt  <palmer@sifive.com>
+
+       * elf/cache.c (print_entry): Add FLAG_RISCV_FLOAT_ABI_SOFT and
+       FLAG_RISCV_FLOAT_ABI_DOUBLE.
+       * elf/elf.h (EF_RISCV_RVC): New define.
+       (EF_RISCV_FLOAT_ABI): Likewise.
+       (EF_RISCV_FLOAT_ABI_SOFT): Likewise.
+       (EF_RISCV_FLOAT_ABI_SINGLE): Likewise.
+       (EF_RISCV_FLOAT_ABI_DOUBLE): Likewise.
+       (EF_RISCV_FLOAT_ABI_QUAD): Likewise.
+       * sysdeps/generic/ldconfig.h (FLAG_RISCV_FLOAT_ABI_SOFT): New
+       define.
+       (FLAG_RISCV_FLOAT_ABI_DOUBLE): Likewise.
+
 2018-01-25  Andreas Schwab  <schwab@suse.de>
 
        * aclocal.m4 (LIBC_SLIBDIR_RTLDDIR): Consistently put arguments in
index 1ec6ab36e7f70e235a50317d35a4a533f310248e..c2c010f97bb23d2b568e6499e5806dac73211da3 100644 (file)
@@ -114,6 +114,12 @@ print_entry (const char *lib, int flag, unsigned int osversion,
     case FLAG_MIPS64_LIBN64_NAN2008:
       fputs (",64bit,nan2008", stdout);
       break;
+    case FLAG_RISCV_FLOAT_ABI_SOFT:
+      fputs (",soft-float", stdout);
+      break;
+    case FLAG_RISCV_FLOAT_ABI_DOUBLE:
+      fputs (",double-float", stdout);
+      break;
     case 0:
       break;
     default:
index 66af3dc0ea61cd7a488f788249e537f739e1d873..954f3266f711ab83996670ea504a17dcf668e061 100644 (file)
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -3766,6 +3766,14 @@ enum
 
 #define R_TILEGX_NUM           130
 
+/* RISC-V ELF Flags */
+#define EF_RISCV_RVC                   0x0001
+#define EF_RISCV_FLOAT_ABI             0x0006
+#define EF_RISCV_FLOAT_ABI_SOFT        0x0000
+#define EF_RISCV_FLOAT_ABI_SINGLE      0x0002
+#define EF_RISCV_FLOAT_ABI_DOUBLE      0x0004
+#define EF_RISCV_FLOAT_ABI_QUAD        0x0006
+
 /* RISC-V relocations.  */
 #define R_RISCV_NONE          0
 #define R_RISCV_32            1
index 74eb92e528d5ebc04025682e58e6ca46f9eb2e07..59e20dc3ef790125767b9678e1ce5404450a5c48 100644 (file)
@@ -42,6 +42,8 @@
 #define FLAG_MIPS_LIB32_NAN2008                0x0c00
 #define FLAG_MIPS64_LIBN32_NAN2008     0x0d00
 #define FLAG_MIPS64_LIBN64_NAN2008     0x0e00
+#define FLAG_RISCV_FLOAT_ABI_SOFT      0x0f00
+#define FLAG_RISCV_FLOAT_ABI_DOUBLE    0x1000
 
 /* Name of auxiliary cache.  */
 #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache"