about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2003-01-25 23:07:04 +0000
committerAndreas Schwab <schwab@suse.de>2003-01-25 23:07:04 +0000
commita8433bdddcce4f2f260b7b8b3883a41b640e421c (patch)
tree67fa552996d9918b97e0d673ee549e2abb70e3c0
parent1c8bee542bf470782a062c3893e12105d17f83c3 (diff)
downloadglibc-a8433bdddcce4f2f260b7b8b3883a41b640e421c.tar.gz
glibc-a8433bdddcce4f2f260b7b8b3883a41b640e421c.tar.xz
glibc-a8433bdddcce4f2f260b7b8b3883a41b640e421c.zip
(_dl_start_user): Use pc-relative addressing to save GOT entries.
-rw-r--r--sysdeps/m68k/dl-machine.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
index 61027c9bc9..0fd6495f10 100644
--- a/sysdeps/m68k/dl-machine.h
+++ b/sysdeps/m68k/dl-machine.h
@@ -157,13 +157,12 @@ _start:\n\
 _dl_start_user:\n\
 	| Save the user entry point address in %a4.\n\
 	move.l %d0, %a4\n\
-	| Point %a5 at the GOT.\n\
-	lea _GLOBAL_OFFSET_TABLE_@GOTPC(%pc), %a5\n\
 	| Remember the highest stack address.\n\
-	move.l %sp, ([__libc_stack_end@GOT.w, %a5])\n\
+	lea __libc_stack_end(%pc), %a0\n\
+	move.l %sp, (%a0)\n\
 	| See if we were run as a command with the executable file\n\
 	| name as an extra leading argument.\n\
-	move.l ([_dl_skip_args@GOT.w, %a5]), %d0\n\
+	move.l _dl_skip_args(%pc), %d0\n\
 	| Pop the original argument count\n\
 	move.l (%sp)+, %d1\n\
 	| Subtract _dl_skip_args from it.\n\
@@ -176,12 +175,12 @@ _dl_start_user:\n\
 	pea 8(%sp, %d1*4)\n\
 	pea 8(%sp)\n\
 	move.l %d1, -(%sp)\n\
-	move.l ([_rtld_local@GOT.w, %a5]), -(%sp)\n\
+	move.l _rtld_local(%pc), -(%sp)\n\
 	jbsr _dl_init_internal@PLTPC\n\
 	addq.l #8, %sp\n\
 	addq.l #8, %sp\n\
 	| Pass our finalizer function to the user in %a1.\n\
-	move.l _dl_fini@GOT.w(%a5), %a1\n\
+	lea _dl_fini(%pc), %a1\n\
 	| Initialize %fp with the stack pointer.\n\
 	move.l %sp, %fp\n\
 	| Jump to the user's entry point.\n\