From 5ce9147ea3796f0dca7f8fffce8b4c398eb08915 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Sun, 14 Apr 2002 03:32:14 +0000 Subject: Manuel and I were looking into a problem with applications failing to link (undefined reference to `main') when the .o file containing main was contained in an static library(a '.a' ar archive). It turns out that due to its single pass nature, GNU ld was failing to pull it into the build. This sticks a dummy reference to main() into crt0.o, so that when an application is linked with the main() function in a static library, we can be sure that main() actually gets linked in. -Erik --- libc/sysdeps/linux/m68k/crt0.c | 1 + 1 file changed, 1 insertion(+) (limited to 'libc/sysdeps/linux/m68k/crt0.c') diff --git a/libc/sysdeps/linux/m68k/crt0.c b/libc/sysdeps/linux/m68k/crt0.c index 0af108f1e..791b7349b 100644 --- a/libc/sysdeps/linux/m68k/crt0.c +++ b/libc/sysdeps/linux/m68k/crt0.c @@ -32,6 +32,7 @@ void _start(unsigned int first_arg) argc = *(stack - 1); argv = (char **) stack; envp = (char **)stack + argc + 1; + volatile void (*mainp)(int argc,void *argv,void *envp) = main; __uClibc_main(argc, argv, envp); } -- cgit v1.2.3