diff --git a/src/kernel/runtime_loader/Jamfile b/src/kernel/runtime_loader/Jamfile index a5849f369e..e0d12c63d0 100644 --- a/src/kernel/runtime_loader/Jamfile +++ b/src/kernel/runtime_loader/Jamfile @@ -2,7 +2,6 @@ SubDir OBOS_TOP src kernel runtime_loader ; KernelObjects rld.c - rld0.c rldexport.c rldelf.c rldheap.c @@ -48,7 +47,6 @@ KernelStaticLibraryObjects librld.a : ; KernelLd rld.so : - <$(SOURCE_GRIST)>rld0.o <$(SOURCE_GRIST)>rld.o <$(SOURCE_GRIST)>rldelf.o <$(SOURCE_GRIST)>rldexport.o diff --git a/src/kernel/runtime_loader/arch/ppc/rld.ld b/src/kernel/runtime_loader/arch/ppc/rld.ld index 8fa2176153..55698b1053 100644 --- a/src/kernel/runtime_loader/arch/ppc/rld.ld +++ b/src/kernel/runtime_loader/arch/ppc/rld.ld @@ -1,7 +1,7 @@ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", "elf32-powerpc") OUTPUT_ARCH(powerpc) -ENTRY(RLD_STARTUP) +ENTRY(runtime_loader) SEARCH_DIR("libgcc"); SECTIONS { diff --git a/src/kernel/runtime_loader/arch/x86/rld.ld b/src/kernel/runtime_loader/arch/x86/rld.ld index 97119f3727..7672084655 100644 --- a/src/kernel/runtime_loader/arch/x86/rld.ld +++ b/src/kernel/runtime_loader/arch/x86/rld.ld @@ -1,7 +1,7 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) -ENTRY(RLD_STARTUP) +ENTRY(runtime_loader) SEARCH_DIR("libgcc"); SECTIONS { diff --git a/src/kernel/runtime_loader/rld.c b/src/kernel/runtime_loader/rld.c index 567b7f0d7f..8f1a50e297 100644 --- a/src/kernel/runtime_loader/rld.c +++ b/src/kernel/runtime_loader/rld.c @@ -1,7 +1,10 @@ /* -** Copyright 2002, Manuel J. Petit. All rights reserved. -** Distributed under the terms of the NewOS License. -*/ + * Copyright 2005, Axel Dörfler, axeld@pinc-software.de. + * Distributed under the terms of the MIT License. + * + * Copyright 2002, Manuel J. Petit. All rights reserved. + * Distributed under the terms of the NewOS License. + */ #include @@ -10,14 +13,23 @@ #include "rld_priv.h" +/** This is the main entry point of the runtime loader as + * specified by its ld-script. + */ + int -rldmain(void *_args) +runtime_loader(void *_args) { struct uspace_program_args *args = (struct uspace_program_args *)_args; void *entry = 0; - rldheap_init(); +#if DEBUG_RLD + close(0); open("/dev/console", 0); /* stdin */ + close(1); open("/dev/console", 0); /* stdout */ + close(2); open("/dev/console", 0); /* stderr */ +#endif + rldheap_init(); rldexport_init(args); rldelf_init(args); diff --git a/src/kernel/runtime_loader/rld0.c b/src/kernel/runtime_loader/rld0.c deleted file mode 100644 index 5da01d5eab..0000000000 --- a/src/kernel/runtime_loader/rld0.c +++ /dev/null @@ -1,18 +0,0 @@ -/* -** Copyright 2002, Manuel J. Petit. All rights reserved. -** Distributed under the terms of the NewOS License. -*/ - -#include "rld_priv.h" - - -int RLD_STARTUP(void *args) -{ -#if DEBUG_RLD - close(0); open("/dev/console", 0); /* stdin */ - close(1); open("/dev/console", 0); /* stdout */ - close(2); open("/dev/console", 0); /* stderr */ -#endif - return rldmain(args); -} - diff --git a/src/kernel/runtime_loader/rld_priv.h b/src/kernel/runtime_loader/rld_priv.h index 09d10aaad3..a002a13c65 100644 --- a/src/kernel/runtime_loader/rld_priv.h +++ b/src/kernel/runtime_loader/rld_priv.h @@ -12,8 +12,7 @@ #include -int RLD_STARTUP(void *); -int rldmain(void *arg); +int runtime_loader(void *arg); status_t unload_program(image_id imageID); image_id load_program(char const *path, void **entry);