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.0 +0200
+++ ports/sysdeps/hppa/elf/start.S 2007-06-02 12:27:49.0 +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) */