diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/sh/dl-machine.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/configure.in | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed | 1 |
5 files changed, 17 insertions, 1 deletions
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h index ee5bb9cdbc..dc53c652d0 100644 --- a/sysdeps/sh/dl-machine.h +++ b/sysdeps/sh/dl-machine.h @@ -487,7 +487,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, } } #ifndef RTLD_BOOTSTRAP - else if (__builtin_expect (r_type != R_SH_NONE, 0)) + else if (__builtin_expect (r_type == R_SH_NONE, 0)) return; #endif else @@ -561,6 +561,8 @@ static inline void elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, Elf32_Addr *const reloc_addr) { + Elf32_Addr value; + if (reloc->r_addend) value = l_addr + reloc->r_addend; else diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index b1a8df8deb..b1fb85f681 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -189,6 +189,12 @@ case "$machine" in i[3456]86* | m68*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/ldd-rewrite.sed ;; + ia64*) + ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed + ;; + s390*) + ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed + ;; sparc*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed ;; diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in index b112a0f4fb..b522f3e08b 100644 --- a/sysdeps/unix/sysv/linux/configure.in +++ b/sysdeps/unix/sysv/linux/configure.in @@ -157,6 +157,12 @@ case "$machine" in i[3456]86* | m68*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/ldd-rewrite.sed ;; + ia64*) + ldd_rewrite_script=../sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed + ;; + s390*) + ldd_rewrite_script=../sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed + ;; sparc*) ldd_rewrite_script=../sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed ;; diff --git a/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed new file mode 100644 index 0000000000..aed1556382 --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed @@ -0,0 +1 @@ +s_^\(RTLDLIST=\)\([^ ]*\)\(\|-ia64\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\4 \2\4"_ diff --git a/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed new file mode 100644 index 0000000000..28e46fe778 --- /dev/null +++ b/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed @@ -0,0 +1 @@ +s_^\(RTLDLIST=\)\([^ ]*\)\(\|64\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4 \264\4"_ |