aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S9
-rw-r--r--sysdeps/arm/dl-machine.h10
4 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index a8a6615793..52a3234d8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-04-22 Philip Blundell <philb@gnu.org>
+
+ * sysdeps/arm/dl-machine.h (elf_machine_rela): Don't use INTUSE
+ when calling _dl_signal_error.
+ (elf_machine_rel): Likewise.
+
2004-04-21 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/setjmp.S: Define _GI___sigsetjmp
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 40e23ec337..48e31cbf5a 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
+
+ * sysdeps/unix/sysv/linux/sh/vfork.S: Fix wrong function pointer
+ reference in PIC case.
+
2004-04-20 Jakub Jelinek <jakub@redhat.com>
* oldsemaphore.c (SEM_VALUE_MAX): Remove.
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
index 07589c162b..f230c01226 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
+++ b/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,8 +27,11 @@
ENTRY (__vfork)
#ifdef SHARED
+ mov.l .Lgot, r1
+ mova .Lgot, r0
+ add r0, r1
mov.l .Lpthread_func, r0
- mov.l @(r0,r12), r0
+ mov.l @(r0,r1), r0
#else
mov.l .Lpthread_create, r0
#endif
@@ -50,6 +53,8 @@ ENTRY (__vfork)
.L1: .word __NR_vfork
.align 2
#ifdef SHARED
+.Lgot:
+ .long _GLOBAL_OFFSET_TABLE_
.Lpthread_func:
.long __libc_pthread_functions@GOTOFF
#else
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 25a8515dac..a131676d5a 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -507,9 +507,8 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
topbits = newvalue & 0xfe000000;
if (topbits != 0xfe000000 && topbits != 0x00000000)
{
- INTUSE (_dl_signal_error)
- (0, map->l_name, NULL,
- "R_ARM_PC24 relocation out of range");
+ _dl_signal_error (0, map->l_name, NULL,
+ "R_ARM_PC24 relocation out of range");
}
}
newvalue >>= 2;
@@ -588,9 +587,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
topbits = newvalue & 0xfe000000;
if (topbits != 0xfe000000 && topbits != 0x00000000)
{
- INTUSE (_dl_signal_error)
- (0, map->l_name, NULL,
- "R_ARM_PC24 relocation out of range");
+ _dl_signal_error (0, map->l_name, NULL,
+ "R_ARM_PC24 relocation out of range");
}
}
newvalue >>= 2;