aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh
diff options
context:
space:
mode:
authorGregor Richards <gregor.richards@uwaterloo.ca>2015-10-20 18:13:15 +0000
committerSzabolcs Nagy <nsz@gcc.gnu.org>2015-10-20 18:13:15 +0000
commit51090a412a665305192e7a05b96bb753b02f591e (patch)
treeaca02c99cecfd3cbabbb04c3097ed292e9f673db /gcc/config/sh
parentabc5231831d8356f563e89ab3f2e93bd98eaac57 (diff)
downloadgcc-51090a412a665305192e7a05b96bb753b02f591e.zip
gcc-51090a412a665305192e7a05b96bb753b02f591e.tar.gz
gcc-51090a412a665305192e7a05b96bb753b02f591e.tar.bz2
musl support for sh
* 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
Diffstat (limited to 'gcc/config/sh')
-rw-r--r--gcc/config/sh/linux.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index 0f5d614..61cf777 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -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