2002-09-09 Jeff Johnston <jjohnstn@redhat.com>
+ * libc/sys/linux/machine/i386/crt0.c (_start): Remove
+ code that clears the .bss section.
+
+2002-09-09 Jeff Johnston <jjohnstn@redhat.com>
+
* libc/include/sys/_types.h (_mbstate_t): Changed to use
unsigned char internally.
* libc/sys/linux/sys/_types.h: Ditto.
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));