summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2003-01-23 17:21:48 +0000
committerEric Andersen <andersen@codepoet.org>2003-01-23 17:21:48 +0000
commit1cb64284ed8fd159fdc10ef927f03110196d9796 (patch)
tree45afc16be47ec09defd409e21b12247aec9c48b1 /libc/sysdeps/linux/arm
parent956574dc6be657deeae8f205cbb5370087488976 (diff)
Update crt0 for arm to provide the main reference
a bit more nicely, and make _init and _fini be weak for people with broken compilers -Erik
Diffstat (limited to 'libc/sysdeps/linux/arm')
-rw-r--r--libc/sysdeps/linux/arm/crt0.S20
1 files changed, 13 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/arm/crt0.S b/libc/sysdeps/linux/arm/crt0.S
index ad0995a6a..cb478928e 100644
--- a/libc/sysdeps/linux/arm/crt0.S
+++ b/libc/sysdeps/linux/arm/crt0.S
@@ -50,7 +50,19 @@ ARM register quick reference:
.text
.global _start
- .type _start,%function
+ .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
+
.text
_start:
@@ -97,9 +109,3 @@ _start:
/* Crash if somehow `exit' returns anyways. */
bl abort
-/* 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
-