musl support for sh
authorGregor Richards <gregor.richards@uwaterloo.ca>
Tue, 20 Oct 2015 18:13:15 +0000 (18:13 +0000)
committerSzabolcs Nagy <nsz@gcc.gnu.org>
Tue, 20 Oct 2015 18:13:15 +0000 (18:13 +0000)
* config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
(MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.

Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com>
From-SVN: r229095

gcc/ChangeLog
gcc/config/sh/linux.h

index 65ef0afce421d2439bf884c0aff53baf33c960b3..7321619fda51b53a74963ac93519bca5921600ad 100644 (file)
@@ -1,3 +1,9 @@
+2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
+           Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
+       (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
+
 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
index 0f5d614c09633fedad3c9e35fe0a9f942ac8d910..61cf777eca4615705270b554621932b4cdb40de0 100644 (file)
@@ -43,6 +43,27 @@ along with GCC; see the file COPYING3.  If not see
 
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 
+#if TARGET_ENDIAN_DEFAULT == MASK_LITTLE_ENDIAN
+#define MUSL_DYNAMIC_LINKER_E "%{mb:eb}"
+#else
+#define MUSL_DYNAMIC_LINKER_E "%{!ml:eb}"
+#endif
+
+#if TARGET_CPU_DEFAULT & (MASK_HARD_SH2A_DOUBLE | MASK_SH4)
+/* "-nofpu" if any nofpu option is specified.  */
+#define MUSL_DYNAMIC_LINKER_FP \
+  "%{m1|m2|m2a-nofpu|m3|m4-nofpu|m4-100-nofpu|m4-200-nofpu|m4-300-nofpu|" \
+  "m4-340|m4-400|m4-500|m4al:-nofpu}"
+#else
+/* "-nofpu" if none of the hard fpu options are specified.  */
+#define MUSL_DYNAMIC_LINKER_FP "%{m2a|m4|m4-100|m4-200|m4-300|m4a:;:-nofpu}"
+#endif
+
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER \
+  "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
+  "%{mfdpic:-fdpic}.so.1"
+
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 #undef SUBTARGET_LINK_EMUL_SUFFIX