about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-04-22 07:31:18 +0000
committerUlrich Drepper <drepper@redhat.com>2004-04-22 07:31:18 +0000
commit091e1f6a1b47232375494f47a6b4d0e5ddea81f9 (patch)
treef153c6874d87b4317569981325a82f8640123ffd
parentab8dc78f717d875a18d24719f35e1d21d69aa2c9 (diff)
downloadglibc-091e1f6a1b47232375494f47a6b4d0e5ddea81f9.tar.gz
glibc-091e1f6a1b47232375494f47a6b4d0e5ddea81f9.tar.xz
glibc-091e1f6a1b47232375494f47a6b4d0e5ddea81f9.zip
Update.
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.
-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;