summaryrefslogtreecommitdiff
path: root/ldso/ldso/cris/boot1_arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'ldso/ldso/cris/boot1_arch.h')
-rw-r--r--ldso/ldso/cris/boot1_arch.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/ldso/ldso/cris/boot1_arch.h b/ldso/ldso/cris/boot1_arch.h
new file mode 100644
index 000000000..5fe5cae43
--- /dev/null
+++ b/ldso/ldso/cris/boot1_arch.h
@@ -0,0 +1,17 @@
+/*
+ * This code fix the stack pointer so that the dunamic linker
+ * can find argc, argv and auxvt (Auxillary Vector Table).
+ */
+asm("\
+ .text
+ .globl _dl_boot
+ .type _dl_boot,@function
+_dl_boot:
+ move.d $sp,$r10
+ move.d $pc,$r9
+ add.d _dl_boot2 - ., $r9
+ jsr $r9
+");
+
+#define _dl_boot _dl_boot2
+#define LD_BOOT(X) static void __attribute__ ((unused)) _dl_boot(X)