From 651cfd37e24bcdf10d365f601d72c6353a1e3514 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Thu, 26 May 2005 23:11:49 +0000 Subject: Clean it up a little. --- libc/sysdeps/linux/i386/crt1.S | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'libc/sysdeps/linux/i386/crt1.S') 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 -- cgit v1.2.3