Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-09-10 04:46:45 +0400
committerJeff Johnston <jjohnstn@redhat.com>2002-09-10 04:46:45 +0400
commitbe83844e4cf998dc60411c6802635caf7e8d94e7 (patch)
tree61d1f3ec219966205068876cb6a97c9920dfc636 /newlib/libc
parent9c64d2a7ba6feb196099ee8b65bba163191008c0 (diff)
2002-09-09 Jeff Johnston <jjohnstn@redhat.com>
* libc/sys/linux/machine/i386/crt0.c (_start): Remove code that clears the .bss section.
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/sys/linux/machine/i386/crt0.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/newlib/libc/sys/linux/machine/i386/crt0.c b/newlib/libc/sys/linux/machine/i386/crt0.c
index 84ea0435b..4364f61d4 100644
--- a/newlib/libc/sys/linux/machine/i386/crt0.c
+++ b/newlib/libc/sys/linux/machine/i386/crt0.c
@@ -33,8 +33,12 @@ void _start(int args)
environ = argv+argc+1;
- /* clear bss */
- memset(&__bss_start,0,(&_end - &__bss_start));
+ /* Note: do not clear the .bss section. When running with shared
+ * libraries, certain data items such __mb_cur_max or environ
+ * may get placed in the .bss, even though they are initialized
+ * to non-zero values. Clearing the .bss will end up zeroing
+ * out their initial values. The .bss is already initialized
+ * by this time by Linux. */
tzset(); /* initialize timezone info */
exit(main(argc,argv,environ));