about summary refs log tree commit diff
path: root/sysdeps/s390/s390-64
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-05-05 18:26:01 +0000
committerUlrich Drepper <drepper@redhat.com>2006-05-05 18:26:01 +0000
commit308bb2d557a6394bd260f549cde01d01c7da9b5c (patch)
treed07b045f41d38341ac8a67b4e72e21404cdcc56f /sysdeps/s390/s390-64
parentcdb9c32138fe80cc4767b5c597713cf773e12f0e (diff)
downloadglibc-308bb2d557a6394bd260f549cde01d01c7da9b5c.tar.gz
glibc-308bb2d557a6394bd260f549cde01d01c7da9b5c.tar.xz
glibc-308bb2d557a6394bd260f549cde01d01c7da9b5c.zip
* sysdeps/s390/s390-32/elf/start.S: Replace pc relative relocation
	by a GOT relocation to make Scrt1.o position independent.
	* sysdeps/s390/s390-64/elf/start.S: Likewise.

	* sysdeps/unix/sysv/linux/s390/s390-32/syscall.S: Add support for
	six system call parameters.
	* sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Likewise.
Diffstat (limited to 'sysdeps/s390/s390-64')
-rw-r--r--sysdeps/s390/s390-64/elf/start.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/s390/s390-64/elf/start.S b/sysdeps/s390/s390-64/elf/start.S
index e5013d0057..c4cb34d02c 100644
--- a/sysdeps/s390/s390-64/elf/start.S
+++ b/sysdeps/s390/s390-64/elf/start.S
@@ -1,5 +1,5 @@
 /* Startup code compliant to the 64 bit S/390 ELF ABI.
-   Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -78,12 +78,14 @@ _start:
 	la	%r7,160(%r15)
 	larl	%r6,__libc_csu_fini	# load pointer to __libc_csu_fini
 	larl	%r5,__libc_csu_init	# load pointer to __libc_csu_init
-	larl	%r2,main		# load pointer to main
 
 	/* Ok, now branch to the libc main routine.  */
 #ifdef PIC
+	larl	%r2,main@GOTENT		# load pointer to main
+	lg	%r2,0(%r2)
 	brasl	%r14,__libc_start_main@plt
 #else
+	larl	%r2,main		# load pointer to main
 	brasl	%r14,__libc_start_main
 #endif