dynamic linker bootstrap overhaul
[musl] / arch / powerpc / crt_arch.h
index 8cc53d9..ec3cd29 100644 (file)
@@ -1,12 +1,19 @@
-__asm__("\
-.global _start \n\
-.type   _start, %function \n\
-_start: \n\
-       mr 3, 1 \n\
-       clrrwi 1, 1, 4 \n\
-       li 0, 0 \n\
-       stwu 1, -16(1) \n\
-       mtlr 0 \n\
-       stw 0, 0(1) \n\
-       bl __cstart \n\
-");        
+__asm__(
+".global " START " \n"
+".type   " START ", %function \n"
+START ": \n"
+"      bl 1f \n"
+".weak _DYNAMIC \n"
+".hidden _DYNAMIC \n"
+"      .long _DYNAMIC-. \n"
+"1:    mflr 4 \n"
+"      lwz 3, 0(4) \n"
+"      add 4, 3, 4 \n"
+"      mr 3, 1 \n"
+"      clrrwi 1, 1, 4 \n"
+"      li 0, 0 \n"
+"      stwu 1, -16(1) \n"
+"      mtlr 0 \n"
+"      stw 0, 0(1) \n"
+"      bl " START "_c \n"
+);