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.11-78-g05479f3


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  05479f36bb5bf5fc48964fd1e2effc79406b36ef (commit)
       via  c87187fbb55984ea6bdc23e1f31744ea336786a8 (commit)
       via  3a808c3df7710f930e9690ec422cea877a6680a9 (commit)
       via  45e3c406530f1a185fe236173b39ee74b6176d82 (commit)
       via  6546e0c4997c8af8075cb6b36b8bab7de492537d (commit)
       via  c735022ded3fb7967bf24b9f385cd7f8f1cdea77 (commit)
       via  ee390edfa9018351f794f73207a1dbb324feace0 (commit)
       via  cce01cf0a17e075204b8f2fae32900dda7211a71 (commit)
       via  c7b880234d57e2c09cb7d4c8e9bf155ec15077a3 (commit)
       via  a9374d8174c2191b0cac73baf4a30a919f84443e (commit)
       via  6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20 (commit)
      from  01b32e7361d68ade13d88f7245af778bb3ba02fd (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=05479f36bb5bf5fc48964fd1e2effc79406b36ef

commit 05479f36bb5bf5fc48964fd1e2effc79406b36ef
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 13:17:02 2010 -0700

    alpha: Implement ____longjmp_chk.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 47e4aaa..ded299e 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,9 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S: New.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/sysv/linux/alpha/Versions: Update errlist-compat
 	for GLIBC_2.12.
 
diff --git a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
new file mode 100644
index 0000000..5194ed8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
@@ -0,0 +1,139 @@
+/* Copyright (C) 1992, 1994, 1997, 2006, 2010 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 <sysdep.h>
+#include <jmpbuf-offsets.h>
+
+
+	.section .rodata.str1.1,"aMS",@progbits,1
+	.type   longjmp_msg,@object
+longjmp_msg:
+	.string "longjmp causes uninitialized stack frame"
+	.size   longjmp_msg, .-longjmp_msg
+
+
+/* Jump to the position specified by ENV, causing the
+   setjmp call there to return VAL, or 1 if VAL is 0.
+   void __longjmp (__jmp_buf env, int val).  */
+	.text
+	.align	4
+	.globl	____longjmp_chk
+	.type	____longjmp_chk, @function
+	.usepv	____longjmp_chk, std
+
+	cfi_startproc
+____longjmp_chk:
+	ldgp    gp, 0(pv)
+#ifdef PROF
+	.set noat
+	lda     AT, _mcount
+	jsr     AT, (AT), _mcount
+	.set at
+#endif
+
+	ldq     s2, JB_PC*8(a0)
+	mov	a0, s0
+	ldq     fp, JB_FP*8(a0)
+	mov     a1, s1
+	ldq     s3, JB_SP*8(a0)
+	cmoveq  s1, 1, s1
+
+#ifdef PTR_DEMANGLE
+	PTR_DEMANGLE(s2, t1)
+	PTR_DEMANGLE2(s3, t1)
+	PTR_DEMANGLE2(fp, t1)
+#endif
+	cmpule	t0, sp, t1
+	bne	t1, .Lfail
+
+	.align	4
+.Lok:
+	mov	s0, a0
+	mov	s1, v0
+	mov	s3, t0
+	mov	s2, ra
+	cfi_remember_state
+	cfi_def_cfa(a0, 0)
+	cfi_register(sp, t0)
+	cfi_offset(s0, JB_S0*8)
+	cfi_offset(s1, JB_S1*8)
+	cfi_offset(s2, JB_S2*8)
+	cfi_offset(s3, JB_S3*8)
+	cfi_offset(s4, JB_S4*8)
+	cfi_offset(s5, JB_S5*8)
+	cfi_offset(s3, JB_S3*8)
+	cfi_offset($f2, JB_F2*8)
+	cfi_offset($f3, JB_F3*8)
+	cfi_offset($f4, JB_F4*8)
+	cfi_offset($f5, JB_F5*8)
+	cfi_offset($f6, JB_F6*8)
+	cfi_offset($f7, JB_F7*8)
+	cfi_offset($f8, JB_F8*8)
+	cfi_offset($f9, JB_F9*8)
+	ldq	s0, JB_S0*8(a0)
+	ldq	s1, JB_S1*8(a0)
+	ldq	s2, JB_S2*8(a0)
+	ldq	s3, JB_S3*8(a0)
+	ldq	s4, JB_S4*8(a0)
+	ldq	s5, JB_S5*8(a0)
+	ldt     $f2, JB_F2*8(a0)
+	ldt     $f3, JB_F3*8(a0)
+	ldt     $f4, JB_F4*8(a0)
+	ldt     $f5, JB_F5*8(a0)
+	ldt     $f6, JB_F6*8(a0)
+	ldt     $f7, JB_F7*8(a0)
+	ldt     $f8, JB_F8*8(a0)
+	ldt     $f9, JB_F9*8(a0)
+	mov     t0, sp
+	ret
+
+	.align	4
+.Lfail:
+	cfi_restore_state
+	lda	v0, __NR_sigaltstack
+	lda	a0, 0
+	lda	a1, -32(sp)
+	lda	sp, -32(sp)
+	cfi_adjust_cfa_offset(32)
+	callsys
+	ldq	t0, 0(sp)	/* ss_sp */
+	ldl	t1, 8(sp)	/* ss_flags */
+	ldq	t2, 16(sp)	/* ss_size */
+	lda	sp, 32(sp)
+	cfi_adjust_cfa_offset(-32)
+
+	/* Without working sigaltstack we cannot perform the test.  */
+	bne	a3, .Lok
+
+	addq	t0, t2, t0	/* t0 = ss_sp + ss_size */
+	subq	t0, s3, t0	/* t0 = (ss_sp + ss_size) - new_sp */
+	cmpule	t2, t0, t0	/* t0 = (t0 >= ss_size) */
+	and	t0, t1, t0	/* t0 = (t0 >= ss_size) & (ss_flags & SS_ONSTACK) */
+	bne	t0, .Lok
+
+	ldah	a0, longjmp_msg(gp)	!gprelhigh
+	lda	a0, longjmp_msg(a0)	!gprellow
+#ifdef PIC
+	jsr	ra, HIDDEN_JUMPTARGET(__fortify_fail)
+#else
+	bsr	ra, HIDDEN_JUMPTARGET(__fortify_fail)	!samegp
+#endif
+	bugchk
+
+	cfi_endproc
+	.size	____longjmp_chk, .-____longjmp_chk

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

commit c87187fbb55984ea6bdc23e1f31744ea336786a8
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 11:21:47 2010 -0700

    alpha: Fix errlist-compat for GLIBC_2.12.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index fc386bb..47e4aaa 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,10 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/sysv/linux/alpha/Versions: Update errlist-compat
+	for GLIBC_2.12.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/alpha/fpu/fegetenv.c: Add hidden alias.
 
 2010-03-26  Richard Henderson  <rth@redhat.com>
diff --git a/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
index 8709dd2..5a617b4 100644
--- a/sysdeps/unix/sysv/linux/alpha/Versions
+++ b/sysdeps/unix/sysv/linux/alpha/Versions
@@ -77,6 +77,10 @@ libc {
     #errlist-compat	138
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
   }
+  GLIBC_2.12 {
+    #errlist-compat	139
+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+  }
   GLIBC_PRIVATE {
     __libc_alpha_cache_shape;
   }

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

commit 3a808c3df7710f930e9690ec422cea877a6680a9
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 11:20:21 2010 -0700

    alpha: Add hidden alias for fegetenv.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 784f6b7..fc386bb 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,9 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/alpha/fpu/fegetenv.c: Add hidden alias.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/sysv/linux/alpha/dl-auxv.h (__libc_alpha_cache_shape):
 	Define extern here; move definition...
 	* sysdeps/unix/sysv/linux/alpha/dl-sysdep.c: ... here.
diff --git a/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c
index c1950fa..ceaf9ed 100644
--- a/sysdeps/alpha/fpu/fegetenv.c
+++ b/sysdeps/alpha/fpu/fegetenv.c
@@ -1,5 +1,5 @@
 /* Store current floating-point environment.
-   Copyright (C) 1997,99,2000,01 Free Software Foundation, Inc.
+   Copyright (C) 1997,99,2000,2001,2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>, 1997
 
@@ -45,3 +45,4 @@ compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
 #endif
 
 versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+libm_hidden_ver(__fegetenv, fegetenv)

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

commit 45e3c406530f1a185fe236173b39ee74b6176d82
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 11:10:23 2010 -0700

    alpha: Only define __libc_alpha_cache_shape in dl-sysdep.c.
    
    The static program builds in libc were getting multiple
    definition errors between dl-sysdep and dl-support.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 739efce..784f6b7 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,11 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/sysv/linux/alpha/dl-auxv.h (__libc_alpha_cache_shape):
+	Define extern here; move definition...
+	* sysdeps/unix/sysv/linux/alpha/dl-sysdep.c: ... here.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/sysv/linux/alpha/sys/user.h: Don't include asm/page.h.
 	(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Define.
 
diff --git a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
index 8afc4db..075797d 100644
--- a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
@@ -19,7 +19,7 @@
 
 /* Scan the Aux Vector for the cache shape entries.  */
 
-long __libc_alpha_cache_shape[4] = { -2, -2, -2, -2 };
+extern long __libc_alpha_cache_shape[4];
 
 #define DL_PLATFORM_AUXV				\
       case AT_L1I_CACHESHAPE:				\
diff --git a/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c b/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
index 4034820..5d0867a 100644
--- a/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
@@ -1,2 +1,5 @@
 #include "dl-auxv.h"
+
+long __libc_alpha_cache_shape[4] = { -2, -2, -2, -2 };
+
 #include <sysdeps/unix/sysv/linux/dl-sysdep.c>

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

commit 6546e0c4997c8af8075cb6b36b8bab7de492537d
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:41:22 2010 -0700

    alpha: Don't include asm/page.h in sys/user.h.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 84945a8..739efce 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,10 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/sysv/linux/alpha/sys/user.h: Don't include asm/page.h.
+	(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Define.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (F_SETOWN_EX,
 	F_GETOWN_EX, F_OWNER_TID, F_OWNER_PID, F_OWNER_PGRP,
 	F_OWNER_GID, struct f_owner_ex): Define.
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/user.h b/sysdeps/unix/sysv/linux/alpha/sys/user.h
index 4cd29d2..193085d 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/user.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/user.h
@@ -23,7 +23,6 @@
    only. Don't read too much into it. Don't use it for anything other
    than gdb/strace unless you know what you are doing. */
 
-#include <asm/page.h>
 #include <asm/reg.h>
 
 struct user
@@ -41,6 +40,9 @@ struct user
   char u_comm[32];				/* user command name */
 };
 
+#define PAGE_SHIFT		13
+#define PAGE_SIZE		(1UL << PAGE_SHIFT)
+#define PAGE_MASK		(~(PAGE_SIZE-1))
 #define NBPG			PAGE_SIZE
 #define UPAGES			1
 #define HOST_TEXT_START_ADDR	(u.start_code)

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

commit c735022ded3fb7967bf24b9f385cd7f8f1cdea77
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:38:14 2010 -0700

    alpha: Update bits/fcntl.h for XPG7 and define f_owner_ex et al.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 6cb84b8..84945a8 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,12 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/sysv/linux/alpha/bits/fcntl.h (F_SETOWN_EX,
+	F_GETOWN_EX, F_OWNER_TID, F_OWNER_PID, F_OWNER_PGRP,
+	F_OWNER_GID, struct f_owner_ex): Define.
+	(F_SETOWN, F_GETOWN): Define with XPG7.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/alpha/sysdep.h (PTR_MANGLE): Define for !PIC too.
 	(PTR_DEMANGLE): Likewise.
 
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index 7a6a3fd..860e9ac 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -81,7 +81,7 @@
 #define F_SETLK64	F_SETLK	/* Set record locking info (non-blocking).  */
 #define F_SETLKW64	F_SETLKW /* Set record locking info (blocking).  */
 
-#if defined __USE_BSD || defined __USE_UNIX98 || defiend __USE_XOPEN2K8
+#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8
 # define F_SETOWN	5	/* Get owner of socket (receiver of SIGIO).  */
 # define F_GETOWN	6	/* Set owner of socket (receiver of SIGIO).  */
 #endif
@@ -89,6 +89,8 @@
 #ifdef __USE_GNU
 # define F_SETSIG	10	/* Set number of signal to be sent.  */
 # define F_GETSIG	11	/* Get number of signal to be sent.  */
+# define F_SETOWN_EX	15	/* Get owner (thread receiving SIGIO).  */
+# define F_GETOWN_EX	16	/* Set owner (thread receiving SIGIO).  */
 #endif
 
 #ifdef __USE_GNU
@@ -161,6 +163,23 @@ struct flock64
   };
 #endif
 
+#ifdef __USE_GNU
+/* Owner types.  */
+enum __pid_type
+  {
+    F_OWNER_TID = 0,		/* Kernel thread.  */
+    F_OWNER_PID,		/* Process.  */
+    F_OWNER_PGRP,		/* Process group.  */
+    F_OWNER_GID = F_OWNER_PGRP	/* Alternative, obsolete name.  */
+  };
+
+/* Structure to use with F_GETOWN_EX and F_SETOWN_EX.  */
+struct f_owner_ex
+  {
+    enum __pid_type type;	/* Owner type of ID.  */
+    __pid_t pid;		/* ID of owner.  */
+  };
+#endif
 
 /* Define some more compatibility macros to be backward compatible with
    BSD systems which did not managed to hide these kernel macros.  */

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

commit ee390edfa9018351f794f73207a1dbb324feace0
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:30:25 2010 -0700

    alpha: Define PTR_MANGLE for !PIC too.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index e4c4a6c..6cb84b8 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,10 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/alpha/sysdep.h (PTR_MANGLE): Define for !PIC too.
+	(PTR_DEMANGLE): Likewise.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/unix/alpha/sysdep.h (INTERNAL_SYSCALL_ERROR_P,
 	INTERNAL_SYSCALL_ERRNO): "Use" the "other" variable in each macro.
 
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 8accde0..d9009c1 100644
--- a/sysdeps/unix/alpha/sysdep.h
+++ b/sysdeps/unix/alpha/sysdep.h
@@ -430,11 +430,21 @@ extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
 #  define PTR_DEMANGLE(dst, tmp)   PTR_MANGLE(dst, dst, tmp)
 #  define PTR_DEMANGLE2(dst, tmp)  PTR_MANGLE2(dst, dst, tmp)
 # else
-extern uintptr_t __pointer_chk_guard attribute_relro;
+extern const uintptr_t __pointer_chk_guard attribute_relro;
 #  define PTR_MANGLE(var)	\
-	(var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
+	(var) = (__typeof(var)) ((uintptr_t) (var) ^ __pointer_chk_guard)
 #  define PTR_DEMANGLE(var)  PTR_MANGLE(var)
 # endif
+#else
+/* There exists generic C code that assumes that PTR_MANGLE is always
+   defined.  When generating code for the static libc, we don't have
+   __pointer_chk_guard defined.  Nor is there any place that would
+   initialize it if it were defined, so there's little point in doing
+   anything more than nothing.  */
+# ifndef __ASSEMBLER__
+#  define PTR_MANGLE(var)
+#  define PTR_DEMANGLE(var)
+# endif
 #endif
 
 #endif /* ASSEMBLER */

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

commit cce01cf0a17e075204b8f2fae32900dda7211a71
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:29:42 2010 -0700

    alpha: Avoid unused variable warnings with INTERNAL_SYSCALL_ERR*.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 78ce863..e4c4a6c 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,10 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdeps/unix/alpha/sysdep.h (INTERNAL_SYSCALL_ERROR_P,
+	INTERNAL_SYSCALL_ERRNO): "Use" the "other" variable in each macro.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdep/unix/sysv/linux/alpha/creat.c: New.
 
 2010-03-26  Richard Henderson  <rth@redhat.com>
diff --git a/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
index 2e5bc79..8accde0 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
+/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004, 2006, 2010
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Brendan Kehoe (brendan@zen.org).
@@ -191,8 +191,10 @@ __LABEL(name)						\
 })
 
 #define INTERNAL_SYSCALL_DECL(err)		long int err
-#define INTERNAL_SYSCALL_ERROR_P(val, err)	err
-#define INTERNAL_SYSCALL_ERRNO(val, err)	val
+/* 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)
+#define INTERNAL_SYSCALL_ERRNO(val, err)	((void)err, val)
 
 #define inline_syscall_clobbers				\
 	"$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",	\

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

commit c7b880234d57e2c09cb7d4c8e9bf155ec15077a3
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:28:37 2010 -0700

    alpha: Add sysdep/unix/sysv/linux/alpha/creat.c.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 948cdc6..78ce863 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,9 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdep/unix/sysv/linux/alpha/creat.c: New.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdep/alpha/elf/configure.in (libc_cv_alpha_hidden_gprel)
 	Adjust the test for gcc 4.5.
 	* sysdep/alpha/elf/configure: Rebuild.
diff --git a/sysdeps/unix/sysv/linux/alpha/creat.c b/sysdeps/unix/sysv/linux/alpha/creat.c
new file mode 100644
index 0000000..9e661ba
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/creat.c
@@ -0,0 +1,8 @@
+/* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list defines creat and
+   creat64 for most linux targets, but on alpha creat is not a syscall.
+   If we do nothing, we'll wind up with creat64 being undefined, because
+   the syscalls.list assumes the creat->creat64 alias was created.  We
+   could have overridden that with a create64.c, but we might as well do
+   the right thing and set up creat64 as an alias.  */
+#include <io/creat.c>
+weak_alias(__libc_creat, creat64)

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

commit a9374d8174c2191b0cac73baf4a30a919f84443e
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:27:37 2010 -0700

    alpha: Adjust the libc_cv_alpha_hidden_gprel test for gcc 4.5.
    
    GCC 4.5 was able to tell that BAR was read-only and zero, and
    elided the load.  Which caused the pattern match to fail.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 4e2eb5b..948cdc6 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,5 +1,11 @@
 2010-03-26  Richard Henderson  <rth@redhat.com>
 
+	* sysdep/alpha/elf/configure.in (libc_cv_alpha_hidden_gprel)
+	Adjust the test for gcc 4.5.
+	* sysdep/alpha/elf/configure: Rebuild.
+
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
 	* sysdeps/alpha/bits/atomic.h (__arch_exchange_8_int,
 	__arch_exchange_16_int, __arch_exchange_32_int,
 	__arch_exchange_64_int, __arch_exchange_and_add_32_int,
diff --git a/sysdeps/alpha/elf/configure b/sysdeps/alpha/elf/configure
index ea99e35..1d594dc 100644
--- a/sysdeps/alpha/elf/configure
+++ b/sysdeps/alpha/elf/configure
@@ -4,10 +4,10 @@
 if test "$usetls" != no; then
 # Check for support of thread-local storage handling in assembler and
 # linker.
-echo "$as_me:$LINENO: checking for Alpha TLS support" >&5
-echo $ECHO_N "checking for Alpha TLS support... $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking for Alpha TLS support" >&5
+$as_echo_n "checking for Alpha TLS support... " >&6; }
 if test "${libc_cv_alpha_tls+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat > conftest.s <<\EOF
 	.section ".tdata", "awT", @progbits
@@ -47,7 +47,7 @@ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   libc_cv_alpha_tls=yes
 else
@@ -55,8 +55,8 @@ else
 fi
 rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $libc_cv_alpha_tls" >&5
-echo "${ECHO_T}$libc_cv_alpha_tls" >&6
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_alpha_tls" >&5
+$as_echo "$libc_cv_alpha_tls" >&6; }
 if test $libc_cv_alpha_tls = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_TLS_SUPPORT 1
@@ -65,19 +65,15 @@ _ACEOF
 fi
 fi
 
-echo "$as_me:$LINENO: checking for GP relative module local relocs" >&5
-echo $ECHO_N "checking for GP relative module local relocs... $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking for GP relative module local relocs" >&5
+$as_echo_n "checking for GP relative module local relocs... " >&6; }
 if test "${libc_cv_alpha_hidden_gprel+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat > conftest.c <<\EOF
-static int bar;
+static volatile int bar;
 int baz __attribute__((visibility("hidden")));
-
-int foo (void)
-{
-  return bar + baz;
-}
+int f(void) { return bar + baz; }
 EOF
 
 libc_cv_alpha_hidden_gprel=no
@@ -85,7 +81,7 @@ if { ac_try='${CC-cc} -S $CFLAGS -O2 -fpic conftest.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   if grep -q 'bar.*!gprel' conftest.s \
      && grep -q 'baz.*!gprel' conftest.s \
@@ -96,8 +92,8 @@ if { ac_try='${CC-cc} -S $CFLAGS -O2 -fpic conftest.c 1>&5'
 fi
 rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $libc_cv_alpha_hidden_gprel" >&5
-echo "${ECHO_T}$libc_cv_alpha_hidden_gprel" >&6
+{ $as_echo "$as_me:$LINENO: result: $libc_cv_alpha_hidden_gprel" >&5
+$as_echo "$libc_cv_alpha_hidden_gprel" >&6; }
 if test $libc_cv_alpha_hidden_gprel = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define PI_STATIC_AND_HIDDEN 1
diff --git a/sysdeps/alpha/elf/configure.in b/sysdeps/alpha/elf/configure.in
index 7986814..3a47934 100644
--- a/sysdeps/alpha/elf/configure.in
+++ b/sysdeps/alpha/elf/configure.in
@@ -53,13 +53,9 @@ fi
 
 AC_CACHE_CHECK(for GP relative module local relocs, libc_cv_alpha_hidden_gprel, [dnl
 cat > conftest.c <<\EOF
-static int bar;
+static volatile int bar;
 int baz __attribute__((visibility("hidden")));
-
-int foo (void)
-{
-  return bar + baz;
-}
+int f(void) { return bar + baz; }
 EOF
 dnl
 

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

commit 6796df65e4d8320e1eb3b9e74dcd972a0bd6ae20
Author: Richard Henderson <rth@twiddle.net>
Date:   Fri Mar 26 10:25:53 2010 -0700

    alpha: Fix the return type of the atomic.h macros.
    
    Signed-off-by: Richard Henderson <rth@twiddle.net>

diff --git a/ChangeLog.alpha b/ChangeLog.alpha
index 4cf27f4..4e2eb5b 100644
--- a/ChangeLog.alpha
+++ b/ChangeLog.alpha
@@ -1,3 +1,11 @@
+2010-03-26  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/alpha/bits/atomic.h (__arch_exchange_8_int,
+	__arch_exchange_16_int, __arch_exchange_32_int,
+	__arch_exchange_64_int, __arch_exchange_and_add_32_int,
+	__arch_exchange_and_add_64_int): Use __typeof to get the
+	return type correct without warning.
+
 2010-03-23  Matt Turner  <mattst88@gmail.com>
             Aurelien Jarno  <aurelien@aurel32.net>
 
diff --git a/sysdeps/alpha/bits/atomic.h b/sysdeps/alpha/bits/atomic.h
index 36a740c..602fde3 100644
--- a/sysdeps/alpha/bits/atomic.h
+++ b/sysdeps/alpha/bits/atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2010 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
@@ -221,7 +221,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_8_int(mem, value, mb1, mb2)			\
 ({									\
-  unsigned long __ret, __tmp, __addr64, __sval;				\
+  unsigned long __tmp, __addr64, __sval; __typeof(*mem) __ret;		\
   __asm__ __volatile__ (						\
 		mb1							\
 	"	andnot	%[__addr8],7,%[__addr64]\n"			\
@@ -244,7 +244,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_16_int(mem, value, mb1, mb2)			\
 ({									\
-  unsigned long __ret, __tmp, __addr64, __sval;				\
+  unsigned long __tmp, __addr64, __sval; __typeof(*mem) __ret;		\
   __asm__ __volatile__ (						\
 		mb1							\
 	"	andnot	%[__addr16],7,%[__addr64]\n"			\
@@ -267,7 +267,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_32_int(mem, value, mb1, mb2)			\
 ({									\
-  signed int __ret, __tmp;						\
+  signed int __tmp; __typeof(*mem) __ret;				\
   __asm__ __volatile__ (						\
 		mb1							\
 	"1:	ldl_l	%[__ret],%[__mem]\n"				\
@@ -284,7 +284,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_64_int(mem, value, mb1, mb2)			\
 ({									\
-  unsigned long __ret, __tmp;						\
+  unsigned long __tmp; __typeof(*mem) __ret;				\
   __asm__ __volatile__ (						\
 		mb1							\
 	"1:	ldq_l	%[__ret],%[__mem]\n"				\
@@ -316,7 +316,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_and_add_32_int(mem, value, mb1, mb2)		\
 ({									\
-  signed int __ret, __tmp;						\
+  signed int __tmp; __typeof(*mem) __ret;				\
   __asm__ __volatile__ (						\
 		mb1							\
 	"1:	ldl_l	%[__ret],%[__mem]\n"				\
@@ -333,7 +333,7 @@ typedef uintmax_t uatomic_max_t;
 
 #define __arch_exchange_and_add_64_int(mem, value, mb1, mb2)		\
 ({									\
-  unsigned long __ret, __tmp;						\
+  unsigned long __tmp; __typeof(*mem) __ret;				\
   __asm__ __volatile__ (						\
 		mb1							\
 	"1:	ldq_l	%[__ret],%[__mem]\n"				\

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

Summary of changes:
 ChangeLog.alpha                                 |   59 ++++++++++
 sysdeps/alpha/bits/atomic.h                     |   14 +-
 sysdeps/alpha/elf/configure                     |   32 +++---
 sysdeps/alpha/elf/configure.in                  |    8 +-
 sysdeps/alpha/fpu/fegetenv.c                    |    3 +-
 sysdeps/unix/alpha/sysdep.h                     |   22 +++-
 sysdeps/unix/sysv/linux/alpha/Versions          |    4 +
 sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S |  139 +++++++++++++++++++++++
 sysdeps/unix/sysv/linux/alpha/bits/fcntl.h      |   21 ++++-
 sysdeps/unix/sysv/linux/alpha/creat.c           |    8 ++
 sysdeps/unix/sysv/linux/alpha/dl-auxv.h         |    2 +-
 sysdeps/unix/sysv/linux/alpha/dl-sysdep.c       |    3 +
 sysdeps/unix/sysv/linux/alpha/sys/user.h        |    4 +-
 13 files changed, 279 insertions(+), 40 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
 create mode 100644 sysdeps/unix/sysv/linux/alpha/creat.c


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]