diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-05-14 10:51:16 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-05-14 10:51:16 +0000 |
commit | cd411309b5af27b1a02f324174d1caad98bc0927 (patch) | |
tree | 2cf40de9a708bc02d774f37b2e1f0c0400b72e97 /libc/sysdeps/linux/arm | |
parent | b3322420c583e6f77750054aa27e6aab7f88a8c2 (diff) |
__data_start needs to be added to all crt0.S files that don't currently
have it. It is used by the boehm gc, amoung other things.
Diffstat (limited to 'libc/sysdeps/linux/arm')
-rw-r--r-- | libc/sysdeps/linux/arm/crt0.S | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/arm/crt0.S b/libc/sysdeps/linux/arm/crt0.S index 84bc8cd74..6704a81e2 100644 --- a/libc/sysdeps/linux/arm/crt0.S +++ b/libc/sysdeps/linux/arm/crt0.S @@ -18,7 +18,7 @@ NULL env[0...N] environment variables (pointers) NULL - + When we are done here, we want a1=argc a2=argv[0] @@ -76,7 +76,7 @@ _start: /* Copy argv pointer into r1 -- which its final resting place */ mov r1, sp - /* Skip to the end of argv and put a pointer to whatever + /* Skip to the end of argv and put a pointer to whatever we find there (hopefully the environment) in r2 */ add r2, r1, r0, lsl #2 add r2, r2, #4 @@ -114,16 +114,25 @@ _start: */ .section ".note.ABI-tag", "a" .align 4 - .long 1f - 0f - .long 3f - 2f - .long 1 -0: .asciz "GNU" -1: .align 4 -2: .long 0 - .long 2,0,0 -3: .align 4 + .long 1f - 0f + .long 3f - 2f + .long 1 +0: .asciz "GNU" +1: .align 4 +2: .long 0 + .long 2,0,0 +3: .align 4 #if defined L_gcrt1 && defined __UCLIBC_PROFILING__ # include "./gmon-start.S" #endif + +/* Define a symbol for the first piece of initialized data. */ + .data + .globl __data_start +__data_start: + .long 0 + .weak data_start + data_start = __data_start + |