From 590013dad408a5e1c94e05f6a906882132d9b5ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 5 Jul 2004 18:50:20 +0000 Subject: [PATCH] Now initializes some global variable defined in libroot_init.c. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8315 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/glue/start_dyn.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/kernel/glue/start_dyn.c b/src/kernel/glue/start_dyn.c index 357e5bb2d8..c790b91d8d 100644 --- a/src/kernel/glue/start_dyn.c +++ b/src/kernel/glue/start_dyn.c @@ -1,4 +1,7 @@ -/* +/* +** Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. +** Distributed under the terms of the Haiku License. +** ** Copyright 2001, Travis Geiselbrecht. All rights reserved. ** Distributed under the terms of the NewOS License. */ @@ -14,8 +17,11 @@ extern int main(int argc, char **argv); int _start(int argc, char **argv, char **, struct uspace_program_args *); -//static char empty[1]; -//char *__progname = empty; +// these are part of libroot.so, and initialized here +extern int __libc_argc; +extern char **__libc_argv; +extern char **argv_save; +extern thread_id __main_thread_id; extern char **environ; @@ -29,9 +35,12 @@ _start(int argc, char **argv, char **_environ, struct uspace_program_args *args) { int retcode; + __libc_argc = args->argc; + __libc_argv = argv_save = args->argv; + __main_thread_id = find_thread(NULL); environ = args->envp; - retcode = main(args->argc, args->argv); + retcode = main(__libc_argc, __libc_argv); exit(retcode); return 0;