diff mbox

[sh,v3] musl support for sh

Message ID 56253E17.6070701@arm.com
State New
Headers show

Commit Message

Szabolcs Nagy Oct. 19, 2015, 7:01 p.m. UTC
On 17/10/15 02:14, Oleg Endo wrote:
> On Fri, 2015-10-16 at 17:06 +0100, Szabolcs Nagy wrote:
>> Revision of
>> https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01636.html
>>
>> The musl dynamic linker name is /lib/ld-musl-sh{-nofpu}{-fdpic}.so.1
>>
>> New in this revision:
>>
>> Add -fdpic to the name, will be useful with the pending sh2 FDPIC support.
>>
>> 2015-10-16  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.
>
>
>> +#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
>
> SH5 has been declared obsolete.  Please do not add any new SH5 related
> things.  In this case, drop the m5-* thingies.
>

removed m5*.
OK to commit with this?

Comments

Oleg Endo Oct. 20, 2015, 11:16 a.m. UTC | #1
On Mon, 2015-10-19 at 20:01 +0100, Szabolcs Nagy wrote:
> On 17/10/15 02:14, Oleg Endo wrote:
> > On Fri, 2015-10-16 at 17:06 +0100, Szabolcs Nagy wrote:
> >> Revision of
> >> https://gcc.gnu.org/ml/gcc-patches/2015-04/msg01636.html
> >>
> >> The musl dynamic linker name is /lib/ld-musl-sh{-nofpu}{-fdpic}.so.1
> >>
> >> New in this revision:
> >>
> >> Add -fdpic to the name, will be useful with the pending sh2 FDPIC support.
> >>
> >> 2015-10-16  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.
> >
> >
> >> +#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
> >
> > SH5 has been declared obsolete.  Please do not add any new SH5 related
> > things.  In this case, drop the m5-* thingies.
> >
> 
> removed m5*.
> OK to commit with this?

OK for trunk.

Cheers,
Oleg
diff mbox

Patch

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