diff options
Diffstat (limited to 'newlib/libc/sys/linux/machine/i386/crt0.c')
-rw-r--r-- | newlib/libc/sys/linux/machine/i386/crt0.c | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/newlib/libc/sys/linux/machine/i386/crt0.c b/newlib/libc/sys/linux/machine/i386/crt0.c deleted file mode 100644 index 4364f61..0000000 --- a/newlib/libc/sys/linux/machine/i386/crt0.c +++ /dev/null @@ -1,45 +0,0 @@ -/* libc/sys/linux/crt0.c - Run-time initialization */ - -/* FIXME: This should be rewritten in assembler and - placed in a subdirectory specific to a platform. - There should also be calls to run constructors. */ - -/* Written 2000 by Werner Almesberger */ - - -#include <stdlib.h> -#include <time.h> -#include <string.h> - - -extern char **environ; - -extern int main(int argc,char **argv,char **envp); - -extern char _end; -extern char __bss_start; - -void _start(int args) -{ - /* - * The argument block begins above the current stack frame, because we - * have no return address. The calculation assumes that sizeof(int) == - * sizeof(void *). This is okay for i386 user space, but may be invalid in - * other cases. - */ - int *params = &args-1; - int argc = *params; - char **argv = (char **) (params+1); - - environ = argv+argc+1; - - /* 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)); -} |