dynamic linker bootstrap overhaul
[musl] / arch / microblaze / crt_arch.h
index 8917c69..ada98c8 100644 (file)
@@ -1,11 +1,16 @@
-__asm__("\
-.global _start \n\
-.align  2 \n\
-_start: \n\
-       add r19, r0, r0 \n\
-       ori r5, r1, 0 \n\
-       andi r1, r1, -8 \n\
-       addik r1, r1, -8 \n\
-       bri __cstart \n\
-       nop \n\
-");
+__asm__(
+".global " START " \n"
+".align  2 \n"
+START ": \n"
+"      add r19, r0, r0 \n"
+"      ori r5, r1, 0 \n"
+"1:    mfs r6, rpc \n"
+".weak _DYNAMIC \n"
+".hidden _DYNAMIC \n"
+"      addik r6, r6, _GLOBAL_OFFSET_TABLE_+8 \n"
+"      addik r6, r6, _DYNAMIC@GOTOFF \n"
+"      andi r1, r1, -8 \n"
+"      addik r1, r1, -8 \n"
+"      bri " START "_c \n"
+"      nop \n"
+);