On 29/04/15 14:51, Szabolcs Nagy wrote:
> On 29/04/15 14:17, Michael Eager wrote:
>> On 04/27/2015 07:35 AM, Szabolcs Nagy wrote:
>>> On 20/04/15 19:54, Szabolcs Nagy wrote:
>>>> Set up dynamic linker name for microblaze.
>>>>
>>>
>>> Patch v2.
>>> (undef MUSL_DYNAMIC_LINKER that comes from config/linux.h)
>>>
>>
>> Are you building with both glibc and musl to verify these patches?
>>
...
> 
> note that microblaze does not use the GNU_USER_DYNAMIC_LINKER
> macro so the -mglibc etc options don't work.
> (that should be changed probably, assuming -muclibc and -mbionic
> have no side effects when they are not supported)
> 

Patch v3.

I changed the patch to use GNU_USER_DYNAMIC_LINKER like
other platforms do.

I built gcc with musl and glibc default libc as well and verified
that -mmusl and -mglibc sets the dynamic linker as expected.

gcc/Changelog:

2015-05-06  Gregor Richards  <gregor.richa...@uwaterloo.ca>
            Szabolcs Nagy  <szabolcs.n...@arm.com>

        * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
        (DYNAMIC_LINKER): Renamed to ...
        (GLIBC_DYNAMIC_LINKER): This.
        (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
index a7faa7d..95e2940 100644
--- a/gcc/config/microblaze/linux.h
+++ b/gcc/config/microblaze/linux.h
@@ -25,10 +25,20 @@
 #undef TLS_NEEDS_GOT
 #define TLS_NEEDS_GOT 1
 
-#define DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
+#if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:;:el}"
+#else
+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:el}"
+#endif
+
+#undef MUSL_DYNAMIC_LINKER
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
+
 #undef  SUBTARGET_EXTRA_SPECS
 #define SUBTARGET_EXTRA_SPECS \
-  { "dynamic_linker", DYNAMIC_LINKER }
+  { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
 
 #undef LINK_SPEC
 #define LINK_SPEC "%{shared:-shared} \

Reply via email to