gcc: update gcc 5.x musl patches
[openwrt/staging/yousong.git] / toolchain / gcc / patches / 5.2.0 / 204-musl_sh.patch
index dfb5b5174631dd3a510bfb317b765d23b30118d1..8c3753d53012812fa3d7afce06d4d966082d9015 100644 (file)
@@ -1,17 +1,39 @@
+gcc/Changelog:
+
+2015-04-27  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.
+
 --- a/gcc/config/sh/linux.h
 +++ b/gcc/config/sh/linux.h
-@@ -43,7 +43,14 @@ along with GCC; see the file COPYING3.
+@@ -43,6 +43,28 @@ along with GCC; see the file COPYING3.
  
  #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
  
-+#if TARGET_BIG_ENDIAN_DEFAULT /* BE */
-+#define MUSL_DYNAMIC_LINKER_E "eb"
++#if TARGET_ENDIAN_DEFAULT == MASK_LITTLE_ENDIAN
++#define MUSL_DYNAMIC_LINKER_E "%{mb:eb}"
 +#else
-+#define MUSL_DYNAMIC_LINKER_E
++#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|m5-32media-nofpu|m5-64media-nofpu|" \
++  "m5-compact-nofpu:-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|m5-32media|m5-64media|m5-compact:;:-nofpu}"
++#endif
++
++#undef MUSL_DYNAMIC_LINKER
++#define MUSL_DYNAMIC_LINKER \
++  "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP ".so.1"
 +
  #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E ".so.1"
  
  #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"