diff options
author | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2005-05-26 23:11:49 +0000 |
---|---|---|
committer | Joakim Tjernlund <joakim.tjernlund@transmode.se> | 2005-05-26 23:11:49 +0000 |
commit | 651cfd37e24bcdf10d365f601d72c6353a1e3514 (patch) | |
tree | eadeae7ebec42486f40ff03fcdec71551ed56fdb /libc/sysdeps/linux/i386 | |
parent | abb809023cb89c06601d3021251b7d81bb30357b (diff) |
Clean it up a little.
Diffstat (limited to 'libc/sysdeps/linux/i386')
-rw-r--r-- | libc/sysdeps/linux/i386/crt1.S | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/libc/sysdeps/linux/i386/crt1.S b/libc/sysdeps/linux/i386/crt1.S index fa9174f3e..b5c684998 100644 --- a/libc/sysdeps/linux/i386/crt1.S +++ b/libc/sysdeps/linux/i386/crt1.S @@ -89,14 +89,14 @@ _start: #if defined L_Scrt1 /* Load PIC register. */ - call 1f - addl $_GLOBAL_OFFSET_TABLE_, %ebx + call .L0 +.L0: + pop %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-.L0],%ebx /* Push address of our own entry points to .fini and .init. */ - leal _fini@GOTOFF(%ebx), %eax - pushl %eax - leal _init@GOTOFF(%ebx), %eax - pushl %eax + pushl _fini@GOT(%ebx) + pushl _init@GOT(%ebx) pushl %ecx /* Push second argument: argv. */ pushl %esi /* Push first argument: argc. */ @@ -123,10 +123,6 @@ _start: hlt /* Crash if somehow `exit' does return. */ -#if defined L_Scrt1 -1: movl (%esp), %ebx - ret -#endif /* Define a symbol for the first piece of initialized data. */ .data .globl __data_start |