RISC-V: Define MUSL_DYNAMIC_LINKER
authorMichael Clark <michaeljclark@mac.com>
Tue, 7 Nov 2017 16:58:37 +0000 (16:58 +0000)
committerPalmer Dabbelt <palmer@gcc.gnu.org>
Tue, 7 Nov 2017 16:58:37 +0000 (16:58 +0000)
Use no suffix at all in the musl dynamic linker name for hard
float ABI. Use -sf and -sp suffixes in musl dynamic linker name
for soft float and single precision ABIs. The following table
outlines the musl interpreter names for the RISC-V ABI names.

musl interpreter        | RISC-V ABI
----------------------- | -------------
ld-musl-riscv32.so.1    | riscv32-ilp32d
ld-musl-riscv64.so.1    | riscv64-lp64d
ld-musl-riscv32-sf.so.1 | riscv32-ilp32
ld-musl-riscv64-sf.so.1 | riscv64-lp64
ld-musl-riscv32-sp.so.1 | riscv32-ilp32f
ld-musl-riscv64-sp.so.1 | riscv64-lp64f

gcc/ChangeLog

2017-11-06  Michael Clark  <michaeljclark@mac.com>

        * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
        (MUSL_DYNAMIC_LINKER): Likewise.

From-SVN: r254500

gcc/ChangeLog
gcc/config/riscv/linux.h

index db9ff08ddc81c51e94d0d76c85599daa1734d06a..b771a0d7f95595765d4ff20dac50139e0e98ed75 100644 (file)
@@ -1,3 +1,8 @@
+2017-11-07  Michael Clark  <michaeljclark@mac.com>
+
+       * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
+       (MUSL_DYNAMIC_LINKER): Likewise.
+
 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
index ecf424d1a2bba7ac1cfb328bbccc8caa35f41956..6c7e3c4e819f7ecbd7d0b5cbd7f6de1361ebf263 100644 (file)
@@ -24,6 +24,17 @@ along with GCC; see the file COPYING3.  If not see
 
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
 
+#define MUSL_ABI_SUFFIX \
+  "%{mabi=ilp32:-sf}" \
+  "%{mabi=ilp32f:-sp}" \
+  "%{mabi=ilp32d:}" \
+  "%{mabi=lp64:-sf}" \
+  "%{mabi=lp64f:-sp}" \
+  "%{mabi=lp64d:}" \
+
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
+
 /* Because RISC-V only has word-sized atomics, it requries libatomic where
    others do not.  So link libatomic by default, as needed.  */
 #undef LIB_SPEC