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:
Diffstat (limited to 'newlib/libc/sys/linux/machine/i386/crt0.c')
-rw-r--r--newlib/libc/sys/linux/machine/i386/crt0.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/newlib/libc/sys/linux/machine/i386/crt0.c b/newlib/libc/sys/linux/machine/i386/crt0.c
index 01ae7a397..cc9cb9249 100644
--- a/newlib/libc/sys/linux/machine/i386/crt0.c
+++ b/newlib/libc/sys/linux/machine/i386/crt0.c
@@ -9,12 +9,15 @@
#include <stdlib.h>
#include <time.h>
+#include <string.h>
extern char **environ;
extern int main(int argc,char **argv,char **envp);
+extern void *_end;
+extern void *__bss_start;
void _start(int args)
{
@@ -29,6 +32,10 @@ void _start(int args)
char **argv = (char **) (params+1);
environ = argv+argc+1;
+
+ /* clear bss */
+ memset(__bss_start,0,((char *)_end - (char *)__bss_start));
+
tzset(); /* initialize timezone info */
exit(main(argc,argv,environ));
}