summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/i386/crt0.S
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-05-14 10:51:16 +0000
committerEric Andersen <andersen@codepoet.org>2004-05-14 10:51:16 +0000
commitcd411309b5af27b1a02f324174d1caad98bc0927 (patch)
tree2cf40de9a708bc02d774f37b2e1f0c0400b72e97 /libc/sysdeps/linux/i386/crt0.S
parentb3322420c583e6f77750054aa27e6aab7f88a8c2 (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/i386/crt0.S')
-rw-r--r--libc/sysdeps/linux/i386/crt0.S12
1 files changed, 8 insertions, 4 deletions
diff --git a/libc/sysdeps/linux/i386/crt0.S b/libc/sysdeps/linux/i386/crt0.S
index 3fd7a5e1f..213df9094 100644
--- a/libc/sysdeps/linux/i386/crt0.S
+++ b/libc/sysdeps/linux/i386/crt0.S
@@ -92,7 +92,7 @@ _start:
pushl $_init
#endif
- /* Push envp, argc, and argc arguments to __uClibc_start_main() on the stack */
+ /* Push envp, argc, and argc arguments to __uClibc_start_main() on the stack */
pushl %eax /* Environment pointer */
pushl %ebx /* Argument pointer */
pushl %ecx /* And the argument count */
@@ -104,7 +104,7 @@ _start:
call __uClibc_start_main
#endif
#else
- /* Push envp, argc, and argc arguments to __uClibc_start_main() on the stack */
+ /* Push envp, argc, and argc arguments to __uClibc_start_main() on the stack */
pushl %eax /* Environment pointer */
pushl %ebx /* Argument pointer */
pushl %ecx /* And the argument count */
@@ -120,10 +120,14 @@ _start:
hlt
.size _start,.-_start
- .section ".data"
- .globl __data_start
+
+/* 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
#if defined L_gcrt1 && defined __UCLIBC_PROFILING__
# include "./gmon-start.S"