summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/i386
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-01-23 13:18:58 +0000
committerEric Andersen <andersen@codepoet.org>2003-01-23 13:18:58 +0000
commita81c2218a2c2eaa35559ea83338f2c30140a4810 (patch)
tree15249b5f69f323e57176fab71e25b9c5c12907d4 /libc/sysdeps/linux/i386
parent37e26f6164473f3fb538c0b7c8952f854a25b917 (diff)
simpler method for getting a 'main' reference. Make _init and _fini
be weak so people won't need to fix their compilers
Diffstat (limited to 'libc/sysdeps/linux/i386')
-rw-r--r--libc/sysdeps/linux/i386/crt0.S18
1 files changed, 12 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/i386/crt0.S b/libc/sysdeps/linux/i386/crt0.S
index dab5426ff..71b7f6c70 100644
--- a/libc/sysdeps/linux/i386/crt0.S
+++ b/libc/sysdeps/linux/i386/crt0.S
@@ -37,6 +37,17 @@ Cambridge, MA 02139, USA. */
.globl _start
.type _start,@function
+#if defined L_crt0 || ! defined __UCLIBC_CTOR_DTOR__
+ .type __uClibc_main,%function
+#else
+ .weak _init
+ .weak _fini
+ .type __uClibc_start_main,%function
+#endif
+/* Stick in a dummy reference to main(), so that if an application
+ * is linking when the main() function is in a static library (.a)
+ * we can be sure that main() actually gets linked in */
+ .type main,%function
_start:
/* locate the start of the environment variables */
@@ -86,10 +97,5 @@ _start:
/* Crash if somehow `exit' returns anyways. */
hlt
-
-/* Stick in a dummy reference to main(), so that if an application
- * is linking when the main() function is in a static library (.a)
- * we can be sure that main() actually gets linked in */
-L_dummy_main_reference:
- .long main
+.size _start,.-_start