[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#427990: glibc: PIE executables core dumps on hppa



Package: glibc
Severity: important
Tags: patch

start.S file is messing up the paramaters when using the -pie option.
This causes instant segfault on hppa when trying to run an pie executable.

This causes portmap and nscd to break on this arch and maybe many other
executables.

Here is a patch that fix the start problem, but all pie programs must
be relinked to fix the segfault.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: hppa (parisc64)

Kernel: Linux 2.6.18-4-parisc64
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- ports/sysdeps/hppa/elf/start.S.orig	2007-06-02 12:27:53.000000000 +0200
+++ ports/sysdeps/hppa/elf/start.S	2007-06-02 12:27:49.000000000 +0200
@@ -96,16 +96,16 @@ _start:
 
 #if SHARED
 	/* load main (1st argument) */
-	addil	LR'.Lpmain, %r19
-	ldw	RR'.Lpmain(%r1), %r26
+	addil	LT'.Lpmain, %r19
+	ldw	RT'.Lpmain(%r1), %r26
 	ldw	0(%r26),%r26
 	/* void (*init) (void) (4th argument) */
-	addil	LR'.Lp__libc_csu_init, %r19
-	ldw	RR'.Lp__libc_csu_init(%r1), %r23
+	addil	LT'.Lp__libc_csu_init, %r19
+	ldw	RT'.Lp__libc_csu_init(%r1), %r23
 	ldw	0(%r23), %r23
 	/* void (*fini) (void) (5th argument) */
-	addil	LR'.Lp__libc_csu_fini, %r19
-	ldw	RR'.Lp__libc_csu_fini(%r1), %r22
+	addil	LT'.Lp__libc_csu_fini, %r19
+	ldw	RT'.Lp__libc_csu_fini(%r1), %r22
 	ldw	0(%r22), %r22
 #else
 	/* load main (1st argument) */

Reply to: