aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/alpha/elf/start.S')
-rw-r--r--sysdeps/alpha/elf/start.S19
1 files changed, 7 insertions, 12 deletions
diff --git a/sysdeps/alpha/elf/start.S b/sysdeps/alpha/elf/start.S
index 596cea6265..d20a009aa4 100644
--- a/sysdeps/alpha/elf/start.S
+++ b/sysdeps/alpha/elf/start.S
@@ -20,12 +20,9 @@ Cambridge, MA 02139, USA. */
#include <sysdep.h>
.text
- .globl _start /* what ELF wants */
- .globl __start /* for backwards (ECOFF) comatibility */
.align 3
- .ent __start, 0
+ .ent _start, 0
_start:
-__start:
.frame fp, 0, zero
mov zero, fp
br gp, 1f
@@ -62,7 +59,6 @@ __start:
mov a1, s1
mov a2, s2
-#ifdef HAVE_INITFINI
/* Call _init, the entry point to our own .init section. */
jsr ra, _init
ldgp gp, 0(ra)
@@ -71,16 +67,12 @@ __start:
lda a0, _fini
jsr ra, atexit
ldgp gp, 0(ra)
-#else
- /* initialize constructors: */
- jsr ra, __main
- ldgp gp, 0(ra)
-#endif
+
+ /* Call the user's main and exit with its return value. */
mov s0, a0
mov s1, a1
mov s2, a2
- /* Call the user's main and exit with its return value. */
jsr ra, main
ldgp gp, 0(ra)
@@ -90,7 +82,10 @@ __start:
/* Die very horribly if exit returns. Call_pal hlt is callable from
kernel mode only; this will result in an illegal instruction trap. */
call_pal 0
-END(__start)
+ .end _start
+
+/* For ECOFF backwards compatibility. */
+weak_alias(_start, __start)
/* Define a symbol for the first piece of initialized data. */
.data