summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/alpha/tcb-offsets.sym2
-rw-r--r--sysdeps/alpha/dl-machine.h3
-rw-r--r--sysdeps/unix/alpha/sysdep.S5
-rw-r--r--sysdeps/unix/alpha/sysdep.h5
6 files changed, 25 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2bff85de08..c9040fe4d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-06-28  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/alpha/sysdep.h (inline_syscall6): Fix a typo.
+
+	[BZ #231]
+	* sysdeps/unix/alpha/sysdep.S (__syscall_error): Avoid !samegp
+	relocation in librt.so.
+
+	[BZ #230]
+	* sysdeps/alpha/dl-machine.h (_dl_start_user): Use ldah/ldl to load
+	_dl_skip_args.  Patch by Jakub Bogusz <qboosh@pld-linux.org>.
+
 2004-06-27  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/ldconfig.c (add_dir): Take chroot into account.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 275d1a7ff5..6ef7ff136f 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,10 @@
 2004-06-28  Jakub Jelinek  <jakub@redhat.com>
 
+	* sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
+	unconditionally.
+
+2004-06-28  Jakub Jelinek  <jakub@redhat.com>
+
 	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
 	(pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
 	instead of tv_sec.
diff --git a/nptl/sysdeps/alpha/tcb-offsets.sym b/nptl/sysdeps/alpha/tcb-offsets.sym
index a1a1e45951..14494ee2cd 100644
--- a/nptl/sysdeps/alpha/tcb-offsets.sym
+++ b/nptl/sysdeps/alpha/tcb-offsets.sym
@@ -7,7 +7,5 @@
 # define __builtin_thread_pointer()  ((void *) 0)
 # define thread_offsetof(mem)	     ((void *) &THREAD_SELF->mem - (void *) 0)
 
-#if TLS_MULTIPLE_THREADS_IN_TCB
 MULTIPLE_THREADS_OFFSET		thread_offsetof (header.multiple_threads)
-#endif
 PID_OFFSET			thread_offsetof (pid)
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 35d7e1dbde..7c5f3c1518 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -321,7 +321,8 @@ _dl_start_user:							\n\
 	mov	$0, $9						\n\
 	/* See if we were run as a command with the executable	\n\
 	   file name as an extra leading argument.  */		\n\
-	ldl	$1, _dl_skip_args($gp)	!gprel			\n\
+	ldah	$1, _dl_skip_args($gp)	!gprelhigh		\n\
+	ldl	$1, _dl_skip_args($1)	!gprellow		\n\
 	bne	$1, $fixup_stack				\n\
 $fixup_stack_ret:						\n\
 	/* The special initializer gets called with the stack	\n\
diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S
index ce848f4e9b..c67a6542f6 100644
--- a/sysdeps/unix/alpha/sysdep.S
+++ b/sysdeps/unix/alpha/sysdep.S
@@ -1,4 +1,5 @@
-/* Copyright (C) 1993, 1996, 1998, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996, 1998, 2002, 2003, 2004
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -95,7 +96,7 @@ __syscall_error:
 	PROLOGUE
 
 	/* Find our per-thread errno address  */
-#ifdef PIC
+#if defined PIC && !defined IS_IN_librt
 	bsr	ra, __errno_location	!samegp
 #else
 	jsr	ra, __errno_location
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 26cf918c1c..f60eafea49 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1992, 1995, 1996, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
@@ -364,7 +365,7 @@ __LABEL(name)						\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7 %8"		\
 	   : inline_syscall_r0_out_constraint (_sc_0),		\
-	     "=r"(_sc_19) "=r"(_sc_16), "=r"(_sc_17),		\
+	     "=r"(_sc_19), "=r"(_sc_16), "=r"(_sc_17),		\
 	     "=r"(_sc_18), "=r"(_sc_20), "=r"(_sc_21)		\
 	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17), "4"(_sc_18),	\
 	     "1"(_sc_19), "5"(_sc_20), "6"(_sc_21)		\