diff options
Diffstat (limited to 'newlib/libc/sys/linux/machine/i386/crt0.c')
-rw-r--r-- | newlib/libc/sys/linux/machine/i386/crt0.c | 7 |
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)); } |