This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Community source repository for glibc add-on ports branch, master, updated. glibc-2.15-68-gf3ce45f


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  f3ce45f370b011485280a60ec9823f5be85b4735 (commit)
       via  596720af7a36d043f4f5f887d9ac7c72b411d3f1 (commit)
       via  f0a81bf387d3ac69da3b1087f31d292fbed68912 (commit)
       via  64e65bc1aea72e5daa7d4540f848c1e0e53605ac (commit)
       via  7b4f30e3563c45999ea28f4c8bada9856b00bb95 (commit)
      from  a31567f46f9b30f2979223c42502c7a57f41b703 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=f3ce45f370b011485280a60ec9823f5be85b4735

commit f3ce45f370b011485280a60ec9823f5be85b4735
Author: Mike Hommey <mh+reportbug@glandium.org>
Date:   Wed Feb 15 16:27:55 2012 -0800

    alpha: Support 6th argument to syscall

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 87f3cf8..5b98b1e 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2012-02-15  Mike Hommey  <mh+reportbug@glandium.org>
+
+	[BZ #11677]
+	* sysdeps/unix/sysv/linux/alpha/syscall.S: Support 6th argument.
+
 2012-02-15  Richard Henderson  <rth@twiddle.net>
 
         * sysdeps/unix/sysv/linux/alpha/bits/signalfd.h: New file.
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index 0c40813..02d5d65 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -31,13 +31,13 @@
  *
  * Usage:
  *
- * long	syscall(syscall_number, arg1, arg2, arg3, arg4, arg5)
+ * long	syscall(syscall_number, arg1, arg2, arg3, arg4, arg5, arg6)
  *
  * syscall_number = the index of the system call we're invoking
- * arg1-arg5 = up to 5 integer arguments to the system call
+ * arg1-arg6 = up to 6 integer arguments to the system call
  *
  * We need to do some arg shifting: the kernel expects the
- * syscall number in v0 and the first five args in a0-a4.
+ * syscall number in v0 and the first six args in a0-a5.
  *
  */
 
@@ -60,6 +60,7 @@ LEAF(__syscall, 0)
 	mov	a3, a2
 	mov	a4, a3
 	mov	a5, a4
+	ldq	a5,0(sp)	/* arg6 -> a5 */
 
 	call_pal PAL_callsys	/* Invoke system call */
 	bne	a3, $error

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=596720af7a36d043f4f5f887d9ac7c72b411d3f1

commit 596720af7a36d043f4f5f887d9ac7c72b411d3f1
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Feb 15 16:24:45 2012 -0800

    alpha: Convert to bits/signalfd.h.

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 912fe33..87f3cf8 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,8 @@
 2012-02-15  Richard Henderson  <rth@twiddle.net>
 
+        * sysdeps/unix/sysv/linux/alpha/bits/signalfd.h: New file.
+        * sysdeps/unix/sysv/linux/alpha/sys/signalfd.h: Remove.
+
 	* sysdeps/unix/alpha/sysdep.h (syscall_promote): New.
 	(inline_syscall0, inline_syscall1, inline_syscall2,
 	inline_syscall3, inline_syscall4, inline_syscall5,
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
new file mode 100644
index 0000000..7ea70fa
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2012 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
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef	_SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd.  */
+enum
+  {
+    SFD_CLOEXEC  = 010000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+    SFD_NONBLOCK = 000000004
+#define SFD_NONBLOCK SFD_NONBLOCK
+  };
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h b/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
deleted file mode 100644
index 4cbe977..0000000
--- a/sysdeps/unix/sysv/linux/alpha/sys/signalfd.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 2007, 2008 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef	_SYS_SIGNALFD_H
-#define	_SYS_SIGNALFD_H	1
-
-#define __need_sigset_t
-#include <signal.h>
-#include <stdint.h>
-
-
-struct signalfd_siginfo
-{
-  uint32_t ssi_signo;
-  int32_t ssi_errno;
-  int32_t ssi_code;
-  uint32_t ssi_pid;
-  uint32_t ssi_uid;
-  int32_t ssi_fd;
-  uint32_t ssi_tid;
-  uint32_t ssi_band;
-  uint32_t ssi_overrun;
-  uint32_t ssi_trapno;
-  int32_t ssi_status;
-  int32_t ssi_int;
-  uint64_t ssi_ptr;
-  uint64_t ssi_utime;
-  uint64_t ssi_stime;
-  uint64_t ssi_addr;
-  uint8_t __pad[48];
-};
-
-/* Flags for signalfd.  */
-enum
-  {
-    SFD_CLOEXEC = 010000000,
-#define SFD_CLOEXEC SFD_CLOEXEC
-    SFD_NONBLOCK = 04
-#define SFD_NONBLOCK SFD_NONBLOCK
-  };
-
-__BEGIN_DECLS
-
-/* Request notification for delivery of signals in MASK to be
-   performed using descriptor FD.*/
-extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
-  __THROW __nonnull ((2));
-
-__END_DECLS
-
-#endif /* sys/signalfd.h */

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=f0a81bf387d3ac69da3b1087f31d292fbed68912

commit f0a81bf387d3ac69da3b1087f31d292fbed68912
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Feb 15 16:06:17 2012 -0800

    alpha: Do signed promotion of 32-bit arguments to syscalls

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index eb5544c..912fe33 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,6 +1,15 @@
 2012-02-15  Richard Henderson  <rth@twiddle.net>
 
-	* sysdeps/unux/alpha/sysdep.h: Don't include <tls.h>
+	* sysdeps/unix/alpha/sysdep.h (syscall_promote): New.
+	(inline_syscall0, inline_syscall1, inline_syscall2,
+	inline_syscall3, inline_syscall4, inline_syscall5,
+	inline_syscall6): Use it.
+	* sysdeps/unix/sysv/linux/alpha/setregid.c: Remove.
+	* sysdeps/unix/sysv/linux/alpha/setreuid.c: Remove.
+	* sysdeps/unix/sysv/linux/alpha/setresgid.c: Remove.
+	* sysdeps/unix/sysv/linux/alpha/setresuid.c: Remove.
+
+	* sysdeps/unix/alpha/sysdep.h: Don't include <tls.h>
 	[PIC] (SYSCALL_ERROR_HANDLER): Emit nothing.
 	[PIC] (SYSCALL_ERROR_LABEL): Add !samegp markup.
 
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index e827842..c3f5920 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -190,6 +190,12 @@ __LABEL(name)						\
 #define INTERNAL_SYSCALL_DECL(err) \
 	long int err __attribute__((unused))
 
+/* The normal Alpha calling convention sign-extends 32-bit quantties
+   no matter what the "real" sign of the 32-bit type.  We want to
+   preserve that when filling in values for the kernel.  */
+#define syscall_promote(arg) \
+  (sizeof(arg) == 4 ? (long)(int)(long)(arg) : (long)(arg))
+
 /* Make sure and "use" the variable that we're not returning,
    in order to suppress unused variable warnings.  */
 #define INTERNAL_SYSCALL_ERROR_P(val, err)	((void)val, err)
@@ -205,172 +211,126 @@ __LABEL(name)						\
 
 #define inline_syscall0(name, args...)				\
 {								\
-	register long _sc_0;					\
 	register long _sc_19 __asm__("$19");			\
-								\
-	_sc_0 = name;						\
+	register long _sc_0 = name;				\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2"				\
-	   : "=v"(_sc_0), "=r"(_sc_19)				\
-	   : "0"(_sc_0)						\
-	   : inline_syscall_clobbers,				\
+	   : "+v"(_sc_0), "=r"(_sc_19)				\
+	   : : inline_syscall_clobbers,				\
 	     "$16", "$17", "$18", "$20", "$21");		\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall1(name,arg1)				\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
 	register long _sc_19 __asm__("$19");			\
-	register long _tmp_16 = (long) (arg1);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3"				\
-	   : "=v"(_sc_0), "=r"(_sc_19), "=r"(_sc_16)		\
-	   : "0"(_sc_0), "2"(_sc_16)				\
-	   : inline_syscall_clobbers,				\
+	   : "+v"(_sc_0), "=r"(_sc_19), "+r"(_sc_16)		\
+	   : : inline_syscall_clobbers,				\
 	     "$17", "$18", "$20", "$21");			\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall2(name,arg1,arg2)				\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _tmp_17 = syscall_promote (arg2);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
+	register long _sc_17 __asm__("$17") = _tmp_17;		\
 	register long _sc_19 __asm__("$19");			\
-	register long _tmp_16 = (long) (arg1);			\
-	register long _tmp_17 = (long) (arg2);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
-	_sc_17 = _tmp_17;					\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4"			\
-	   : "=v"(_sc_0), "=r"(_sc_19),				\
-	     "=r"(_sc_16), "=r"(_sc_17)				\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17)		\
-	   : inline_syscall_clobbers,				\
+	   : "+v"(_sc_0), "=r"(_sc_19),				\
+	     "+r"(_sc_16), "+r"(_sc_17)				\
+	   : : inline_syscall_clobbers,				\
 	     "$18", "$20", "$21");				\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall3(name,arg1,arg2,arg3)			\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_18 __asm__("$18");			\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _tmp_17 = syscall_promote (arg2);		\
+	register long _tmp_18 = syscall_promote (arg3);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
+	register long _sc_17 __asm__("$17") = _tmp_17;		\
+	register long _sc_18 __asm__("$18") = _tmp_18;		\
 	register long _sc_19 __asm__("$19");			\
-	register long _tmp_16 = (long) (arg1);			\
-	register long _tmp_17 = (long) (arg2);			\
-	register long _tmp_18 = (long) (arg3);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
-	_sc_17 = _tmp_17;					\
-	_sc_18 = _tmp_18;					\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4 %5"			\
-	   : "=v"(_sc_0), "=r"(_sc_19), "=r"(_sc_16),		\
-	     "=r"(_sc_17), "=r"(_sc_18)				\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17),		\
-	     "4"(_sc_18)					\
-	   : inline_syscall_clobbers, "$20", "$21");		\
+	   : "+v"(_sc_0), "=r"(_sc_19), "+r"(_sc_16),		\
+	     "+r"(_sc_17), "+r"(_sc_18)				\
+	   : : inline_syscall_clobbers, "$20", "$21");		\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall4(name,arg1,arg2,arg3,arg4)		\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_18 __asm__("$18");			\
-	register long _sc_19 __asm__("$19");			\
-	register long _tmp_16 = (long) (arg1);			\
-	register long _tmp_17 = (long) (arg2);			\
-	register long _tmp_18 = (long) (arg3);			\
-	register long _tmp_19 = (long) (arg4);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
-	_sc_17 = _tmp_17;					\
-	_sc_18 = _tmp_18;					\
-	_sc_19 = _tmp_19;					\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _tmp_17 = syscall_promote (arg2);		\
+	register long _tmp_18 = syscall_promote (arg3);		\
+	register long _tmp_19 = syscall_promote (arg4);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
+	register long _sc_17 __asm__("$17") = _tmp_17;		\
+	register long _sc_18 __asm__("$18") = _tmp_18;		\
+	register long _sc_19 __asm__("$19") = _tmp_19;		\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4 %5 %6"			\
-	   : "=v"(_sc_0), "=r"(_sc_19), "=r"(_sc_16),		\
-	     "=r"(_sc_17), "=r"(_sc_18)				\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17),		\
-	     "4"(_sc_18), "1"(_sc_19)				\
-	   : inline_syscall_clobbers, "$20", "$21");		\
+	   : "+v"(_sc_0), "+r"(_sc_19), "+r"(_sc_16),		\
+	     "+r"(_sc_17), "+r"(_sc_18)				\
+	   : : inline_syscall_clobbers, "$20", "$21");		\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5)		\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_18 __asm__("$18");			\
-	register long _sc_19 __asm__("$19");			\
-	register long _sc_20 __asm__("$20");			\
-	register long _tmp_16 = (long) (arg1);			\
-	register long _tmp_17 = (long) (arg2);			\
-	register long _tmp_18 = (long) (arg3);			\
-	register long _tmp_19 = (long) (arg4);			\
-	register long _tmp_20 = (long) (arg5);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
-	_sc_17 = _tmp_17;					\
-	_sc_18 = _tmp_18;					\
-	_sc_19 = _tmp_19;					\
-	_sc_20 = _tmp_20;					\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _tmp_17 = syscall_promote (arg2);		\
+	register long _tmp_18 = syscall_promote (arg3);		\
+	register long _tmp_19 = syscall_promote (arg4);		\
+	register long _tmp_20 = syscall_promote (arg5);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
+	register long _sc_17 __asm__("$17") = _tmp_17;		\
+	register long _sc_18 __asm__("$18") = _tmp_18;		\
+	register long _sc_19 __asm__("$19") = _tmp_19;		\
+	register long _sc_20 __asm__("$20") = _tmp_20;		\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7"		\
-	   : "=v"(_sc_0), "=r"(_sc_19), "=r"(_sc_16),		\
-	     "=r"(_sc_17), "=r"(_sc_18), "=r"(_sc_20)		\
-	   : "0"(_sc_0), "2"(_sc_16), "3"(_sc_17),		\
-	     "4"(_sc_18), "1"(_sc_19), "5"(_sc_20)		\
-	   : inline_syscall_clobbers, "$21");			\
+	   : "+v"(_sc_0), "+r"(_sc_19), "+r"(_sc_16),		\
+	     "+r"(_sc_17), "+r"(_sc_18), "+r"(_sc_20)		\
+	   : : inline_syscall_clobbers, "$21");			\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
 #define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6)	\
 {								\
-	register long _sc_0;					\
-	register long _sc_16 __asm__("$16");			\
-	register long _sc_17 __asm__("$17");			\
-	register long _sc_18 __asm__("$18");			\
-	register long _sc_19 __asm__("$19");			\
-	register long _sc_20 __asm__("$20");			\
-	register long _sc_21 __asm__("$21");			\
-	register long _tmp_16 = (long) (arg1);			\
-	register long _tmp_17 = (long) (arg2);			\
-	register long _tmp_18 = (long) (arg3);			\
-	register long _tmp_19 = (long) (arg4);			\
-	register long _tmp_20 = (long) (arg5);			\
-	register long _tmp_21 = (long) (arg6);			\
-								\
-	_sc_0 = name;						\
-	_sc_16 = _tmp_16;					\
-	_sc_17 = _tmp_17;					\
-	_sc_18 = _tmp_18;					\
-	_sc_19 = _tmp_19;					\
-	_sc_20 = _tmp_20;					\
-	_sc_21 = _tmp_21;					\
+	register long _tmp_16 = syscall_promote (arg1);		\
+	register long _tmp_17 = syscall_promote (arg2);		\
+	register long _tmp_18 = syscall_promote (arg3);		\
+	register long _tmp_19 = syscall_promote (arg4);		\
+	register long _tmp_20 = syscall_promote (arg5);		\
+	register long _tmp_21 = syscall_promote (arg6);		\
+	register long _sc_0 = name;				\
+	register long _sc_16 __asm__("$16") = _tmp_16;		\
+	register long _sc_17 __asm__("$17") = _tmp_17;		\
+	register long _sc_18 __asm__("$18") = _tmp_18;		\
+	register long _sc_19 __asm__("$19") = _tmp_19;		\
+	register long _sc_20 __asm__("$20") = _tmp_20;		\
+	register long _sc_21 __asm__("$21") = _tmp_21;		\
 	__asm__ __volatile__					\
 	  ("callsys # %0 %1 <= %2 %3 %4 %5 %6 %7 %8"		\
-	   : "=v"(_sc_0), "=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)		\
-	   : inline_syscall_clobbers);				\
+	   : "+v"(_sc_0), "+r"(_sc_19), "+r"(_sc_16),		\
+	     "+r"(_sc_17), "+r"(_sc_18), "+r"(_sc_20),		\
+	     "+r"(_sc_21)					\
+	   : : inline_syscall_clobbers);			\
 	_sc_ret = _sc_0, _sc_err = _sc_19;			\
 }
 
diff --git a/sysdeps/unix/sysv/linux/alpha/setregid.c b/sysdeps/unix/sysv/linux/alpha/setregid.c
deleted file mode 100644
index 0973fe4..0000000
--- a/sysdeps/unix/sysv/linux/alpha/setregid.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1998, 2000, 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-__setregid (gid_t rgid, gid_t egid)
-{
-  return INLINE_SETXID_SYSCALL (setregid, 2, (int) rgid, (int) egid);
-}
-#ifndef __setregid
-weak_alias (__setregid, setregid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/setresgid.c b/sysdeps/unix/sysv/linux/alpha/setresgid.c
deleted file mode 100644
index 50e29e3..0000000
--- a/sysdeps/unix/sysv/linux/alpha/setresgid.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998, 2000, 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-__setresgid (gid_t rgid, gid_t egid, gid_t sgid)
-{
-  return INLINE_SETXID_SYSCALL (setresgid, 3, (int) rgid,
-				(int) egid, (int) sgid);
-}
-libc_hidden_def (__setresgid)
-#ifndef __setresgid
-weak_alias (__setresgid, setresgid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/setresuid.c b/sysdeps/unix/sysv/linux/alpha/setresuid.c
deleted file mode 100644
index e76413b..0000000
--- a/sysdeps/unix/sysv/linux/alpha/setresuid.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1998, 2000, 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-__setresuid (uid_t ruid, uid_t euid, uid_t suid)
-{
-  return INLINE_SETXID_SYSCALL (setresuid, 3, (int) ruid,
-				(int) euid, (int) suid);
-}
-libc_hidden_def (__setresuid)
-#ifndef __setresuid
-weak_alias (__setresuid, setresuid)
-#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/setreuid.c b/sysdeps/unix/sysv/linux/alpha/setreuid.c
deleted file mode 100644
index a23a347..0000000
--- a/sysdeps/unix/sysv/linux/alpha/setreuid.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1998, 2000, 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <unistd.h>
-#include <setxid.h>
-
-
-int
-__setreuid (uid_t ruid, uid_t euid)
-{
-  return INLINE_SETXID_SYSCALL (setreuid, 2, (int) ruid, (int) euid);
-}
-#ifndef __setreuid
-weak_alias (__setreuid, setreuid)
-#endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=64e65bc1aea72e5daa7d4540f848c1e0e53605ac

commit 64e65bc1aea72e5daa7d4540f848c1e0e53605ac
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Feb 15 13:51:58 2012 -0800

    alpha: Correct relocation markup for PIC SYSCALL_ERROR_HANDLER.

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 5b4be14..eb5544c 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,9 @@
 2012-02-15  Richard Henderson  <rth@twiddle.net>
 
+	* sysdeps/unux/alpha/sysdep.h: Don't include <tls.h>
+	[PIC] (SYSCALL_ERROR_HANDLER): Emit nothing.
+	[PIC] (SYSCALL_ERROR_LABEL): Add !samegp markup.
+
 	* sysdeps/alpha/dl-machine.h: Don't check USE___THREAD.
 
 	* sysdeps/unix/alpha/sysdeps.S: Don't check __ELF__, USE___THREAD,
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 224c95d..e827842 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004, 2006, 2010
+/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004, 2006, 2010, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
@@ -28,8 +28,6 @@
 # include <regdef.h>
 #endif
 
-#include <tls.h>		/* Defines USE___THREAD.  */
-
 #ifdef IS_IN_rtld
 # include <dl-sysdep.h>         /* Defines RTLD_PRIVATE_ERRNO.  */
 #endif
@@ -86,9 +84,8 @@
 	lda	v0, -1;				\
 	ret
 #elif defined(PIC)
-# define SYSCALL_ERROR_LABEL	__syscall_error
-# define SYSCALL_ERROR_HANDLER \
-	br	$31, __syscall_error !samegp
+# define SYSCALL_ERROR_LABEL	__syscall_error !samegp
+# define SYSCALL_ERROR_HANDLER
 #else
 # define SYSCALL_ERROR_LABEL	$syscall_error
 # define SYSCALL_ERROR_HANDLER \

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=7b4f30e3563c45999ea28f4c8bada9856b00bb95

commit 7b4f30e3563c45999ea28f4c8bada9856b00bb95
Author: Richard Henderson <rth@twiddle.net>
Date:   Wed Feb 15 13:48:44 2012 -0800

    alpha: Don't test USE___THREAD in dl-machine.h.

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 7fc6f07..5b4be14 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,7 @@
 2012-02-15  Richard Henderson  <rth@twiddle.net>
 
+	* sysdeps/alpha/dl-machine.h: Don't check USE___THREAD.
+
 	* sysdeps/unix/alpha/sysdeps.S: Don't check __ELF__, USE___THREAD,
 	or _LIBC_REENTRANT.
 
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index 2790ae5..5ab71b1 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -232,16 +232,11 @@ $fixup_stack:							\n\
    to one of the main executable's symbols, as for a COPY reloc.
    This is unused on Alpha.  */
 
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
 # define elf_machine_type_class(type)	\
   (((type) == R_ALPHA_JMP_SLOT		\
     || (type) == R_ALPHA_DTPMOD64	\
     || (type) == R_ALPHA_DTPREL64	\
     || (type) == R_ALPHA_TPREL64) * ELF_RTYPE_CLASS_PLT)
-#else
-# define elf_machine_type_class(type)	\
-  (((type) == R_ALPHA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)
-#endif
 
 /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
 #define ELF_MACHINE_JMP_SLOT	 R_ALPHA_JMP_SLOT
@@ -452,7 +447,6 @@ elf_machine_rela (struct link_map *map,
 	  memcpy (reloc_addr_arg, &sym_value, 8);
 	}
 #endif
-#if !defined RTLD_BOOTSTRAP || USE___THREAD
       else if (r_type == R_ALPHA_DTPMOD64)
 	{
 # ifdef RTLD_BOOTSTRAP
@@ -485,7 +479,6 @@ elf_machine_rela (struct link_map *map,
 	    }
 # endif
 	}
-#endif
       else
 	_dl_reloc_bad_type (map, r_type, 0);
     }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.alpha                                    |   23 +++
 sysdeps/alpha/dl-machine.h                         |    7 -
 sysdeps/unix/alpha/sysdep.h                        |  199 ++++++++------------
 .../sysv/linux/{mips => alpha}/bits/signalfd.h     |    4 +-
 sysdeps/unix/sysv/linux/alpha/setregid.c           |   31 ---
 sysdeps/unix/sysv/linux/alpha/setresgid.c          |   33 ----
 sysdeps/unix/sysv/linux/alpha/setresuid.c          |   33 ----
 sysdeps/unix/sysv/linux/alpha/setreuid.c           |   31 ---
 sysdeps/unix/sysv/linux/alpha/sys/signalfd.h       |   66 -------
 sysdeps/unix/sysv/linux/alpha/syscall.S            |    7 +-
 10 files changed, 107 insertions(+), 327 deletions(-)
 copy sysdeps/unix/sysv/linux/{mips => alpha}/bits/signalfd.h (94%)
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/setregid.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/setresgid.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/setresuid.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/setreuid.c
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/sys/signalfd.h


hooks/post-receive
-- 
Community source repository for glibc add-on ports


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]