/branches/dynload/uspace/lib/rtld/include/rtld.h |
---|
61,8 → 61,6 |
link_t modules_head; |
} runtime_env_t; |
void _rtld_main(void); |
extern runtime_env_t runtime_env; |
#endif |
/branches/dynload/uspace/lib/rtld/rtld.c |
---|
49,7 → 49,7 |
void program_run(void *entry, pcb_t *pcb); |
void _rtld_main(void) |
static void rtld_main(void) |
{ |
static module_t prog; |
// module_t *rtld; |
75,7 → 75,6 |
/* Initialize list of loaded modules */ |
list_initialize(&runtime_env.modules_head); |
list_append(&prog.modules_link, &runtime_env.modules_head); |
// list_append(&rtld->modules_link, &runtime_env.modules_head); |
/* Pointer to program module. Used as root of the dependency graph */ |
runtime_env.program = &prog; |
98,12 → 97,11 |
/* |
* Finally, run the main program. |
*/ |
DPRINTF("Run program.. (at 0x%x)\n", (uintptr_t)__pcb->entry); |
DPRINTF("Run program.. (at 0x%lx)\n", (uintptr_t)__pcb->entry); |
#ifndef RTLD_DEBUG |
close_console(); |
#endif |
//__pcb->entry(); |
program_run(__pcb->entry, __pcb); |
} |
110,21 → 108,9 |
/** Fake main to satisfy dependency from libc */ |
int main(int argc, char *argv[]) |
{ |
rtld_main(); |
return 0; |
} |
/* |
typedef void (*ep2)(void *); |
void program_run(void *entry, pcb_t *pcb) |
{ |
asm ( |
// "xorl %%ebx, %%ebx\n" |
// "movl 0(%%ebx), %%ecx\n" |
"mov %%eax, %%ebx\n" |
"jmp *%0\n" |
:: "m" (entry), "a" (pcb) |
); |
}*/ |
/** @} |
*/ |
/branches/dynload/uspace/lib/rtld/arch/ppc32/_link.ld.in |
---|
1,3 → 1,4 |
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o) |
ENTRY(__entry) |
PHDRS { |
/branches/dynload/uspace/lib/rtld/arch/ppc32/Makefile.inc |
---|
26,12 → 26,8 |
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
# |
CFLAGS += -D__32_BITS__ -fno-jump-tables |
LFLAGS += -e __entry |
CFLAGS += -D__32_BITS__ |
ARCH_SOURCES := \ |
arch/$(ARCH)/src/entry.s \ |
arch/$(ARCH)/src/bootstrap.c \ |
arch/$(ARCH)/src/runtime.c \ |
arch/$(ARCH)/src/reloc.c \ |
arch/$(ARCH)/src/start.s |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/bootstrap.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/runtime.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ppc32/src/entry.s |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/_link.ld.in |
---|
1,3 → 1,4 |
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o) |
ENTRY(__entry) |
PHDRS { |
/branches/dynload/uspace/lib/rtld/arch/ia32/Makefile.inc |
---|
27,11 → 27,7 |
# |
CFLAGS += -D__32_BITS__ |
LFLAGS += -e __entry |
ARCH_SOURCES := \ |
arch/$(ARCH)/src/entry.s \ |
arch/$(ARCH)/src/bootstrap.c \ |
arch/$(ARCH)/src/runtime.c \ |
arch/$(ARCH)/src/reloc.c \ |
arch/$(ARCH)/src/start.c \ |
arch/$(ARCH)/src/start.c |
/branches/dynload/uspace/lib/rtld/arch/ia32/src/bootstrap.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/src/runtime.c |
---|
File deleted |
/branches/dynload/uspace/lib/rtld/arch/ia32/src/entry.s |
---|
File deleted |