[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r5383 - in glibc-package/branches/eglibc-2.16/debian: . patches patches/hurd-i386 testsuite-checking



Author: aurel32
Date: 2012-11-18 23:58:18 +0000 (Sun, 18 Nov 2012)
New Revision: 5383

Added:
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-add-missing-includes.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-mach-check-local-headers.sh.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/local-disable-sendmmsg.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-libpthread-elf.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-fcntl-internal.h.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-pagesize.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-verify.h.diff
Removed:
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-__i686_defined.diff
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/unsubmitted-gcc-4.1-init-first.diff
Modified:
   glibc-package/branches/eglibc-2.16/debian/changelog
   glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-AF_LINK.diff
   glibc-package/branches/eglibc-2.16/debian/patches/series
   glibc-package/branches/eglibc-2.16/debian/patches/series.hurd-i386
   glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i486-gnu-libc
   glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i386
   glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i686
   glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-xen
Log:
Apply patches from Pino Toscano to fix build on Hurd


Modified: glibc-package/branches/eglibc-2.16/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/changelog	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/changelog	2012-11-18 23:58:18 UTC (rev 5383)
@@ -373,8 +373,24 @@
     have optimisations turned on.  This breaks some unclever AC macros.
   * Fix building x32 multilib libraries, by correctly passing -mx32.
   * Fix some ln calls in sysdeps/{amd64,i386} for binary-arch idempotence.
- 
 
+  [ Pino Toscano ]
+  * Update patches/hurd-i386/submitted-AF_LINK.diff.
+  * Add patches/hurd-i386/tg-verify.h.diff,
+    patches/hurd-i386/tg-pagesize.diff,
+    patches/hurd-i386/tg-fcntl-internal.h.diff, 
+    patches/hurd-i386/local-disable-sendmmsg.diff,
+    patches/hurd-i386/cvs-add-missing-includes.diff,
+    and patches/hurd-i386/submitted-libpthread-elf.diff to fix build on Hurd.
+  * Drop obsolete patches patches/hurd-i386/tg-__i686_defined.diff and
+    patches/hurd-i386/unsubmitted-gcc-4.1-init-first.diff
+  * Add patches/hurd-i386/cvs-mach-check-local-headers.sh.diff to
+    reduce false header errors from the check-local-headers.out test.
+  * Update testsuite-checking/expected-results-i686-gnu-i386,
+    testsuite-checking/expected-results-i686-gnu-xen,
+    testsuite-checking/expected-results-i486-gnu-libc and
+    testsuite-checking/expected-results-i686-gnu-i686.
+
  -- Aurelien Jarno <aurel32@debian.org>  Sun, 18 Nov 2012 21:19:10 +0100
 
 eglibc (2.13-37) unstable; urgency=low

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-add-missing-includes.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-add-missing-includes.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-add-missing-includes.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,44 @@
+2012-07-22  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* math/w_ilogb.c: Include <limits.h>.
+	* math/w_ilogbl.c: Likewise.
+
+---
+ ChangeLog       |    5 +++++
+ math/w_ilogb.c  |    2 +-
+ math/w_ilogbf.c |    1 -
+ math/w_ilogbl.c |    1 +
+ 4 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/math/w_ilogb.c b/math/w_ilogb.c
+index c87b517..7cb897a 100644
+--- a/math/w_ilogb.c
++++ b/math/w_ilogb.c
+@@ -18,6 +18,7 @@
+ 
+ #include <math.h>
+ #include <errno.h>
++#include <limits.h>
+ #include <math_private.h>
+ 
+ /* wrapper ilogb */
+@@ -34,7 +35,6 @@ __ilogb (double x)
+     }
+   return r;
+ }
+-
+ weak_alias (__ilogb, ilogb)
+ #ifdef NO_LONG_DOUBLE
+ strong_alias (__ilogb, __ilogbl)
+diff --git a/math/w_ilogbl.c b/math/w_ilogbl.c
+index 8c30caa..7cfc648 100644
+--- a/math/w_ilogbl.c
++++ b/math/w_ilogbl.c
+@@ -18,6 +18,7 @@
+ 
+ #include <math.h>
+ #include <errno.h>
++#include <limits.h>
+ #include <math_private.h>
+ 
+ /* wrapper ilogbl */

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-mach-check-local-headers.sh.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-mach-check-local-headers.sh.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/cvs-mach-check-local-headers.sh.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,22 @@
+2012-11-16  Pino Toscano  <toscano.pino@tiscali.it>
+
+	* scripts/check-local-headers.sh: Ignore 'mach' headers.
+
+--- a/scripts/check-local-headers.sh
++++ b/scripts/check-local-headers.sh
+@@ -23,12 +23,13 @@ objpfx="$2"
+ cd "$objpfx"
+ 
+ # Search all dependency files for file names in the include directory.
+-# There are a few system headers we are known to use.
++# There are a few system headers we are known to use,
++# and Mach kernel headers (mach).
+ exec ${AWK} -v includedir="$includedir" '
+ BEGIN {
+   status = 0
+   exclude = "^" includedir \
+-    "/(.*-.*-.*/|)(asm[-/]|linux/|selinux/|gd|nss3/|sys/capability\\.h|libaudit\\.h)"
++    "/(.*-.*-.*/|)(asm[-/]|linux/|selinux/|mach/|gd|nss3/|sys/capability\\.h|libaudit\\.h)"
+ }
+ /^[^ ]/ && $1 ~ /.*:/ { obj = $1 }
+ {

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/local-disable-sendmmsg.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/local-disable-sendmmsg.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/local-disable-sendmmsg.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,25 @@
+Temporary hack to avoid the mmsg structs, available only in the Linux socket.h.
+A better fix (making them and a sendmmsg stub available for every OS) is going
+to be done upstream.
+
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -1109,6 +1109,7 @@ send_dg(res_state statp,
+ 		if (have_sendmmsg >= 0 && nwritten == 0 && buf2 != NULL
+ 		    && !single_request)
+ 		  {
++#ifdef __ASSUME_SENDMMSG
+ 		    struct iovec iov[2];
+ 		    struct mmsghdr reqs[2];
+ 		    reqs[0].msg_hdr.msg_name = NULL;
+@@ -1161,6 +1162,10 @@ send_dg(res_state statp,
+ 			Perror(statp, stderr, "sendmmsg", errno);
+ 			goto err_out;
+ 		      }
++#else
++		    have_sendmmsg = -1;
++		    goto try_send;
++#endif
+ 		  }
+ 		else
+ 		  {

Modified: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-AF_LINK.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-AF_LINK.diff	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-AF_LINK.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -7,11 +7,9 @@
 
 	* sysdeps/mach/hurd/bits/socket.h (PF_LINK): Comment out.
 	(AF_LINK): Likewise.
-Index: eglibc-2.16/sysdeps/unix/bsd/bsd4.4/bits/socket.h
-===================================================================
---- eglibc-2.16.orig/sysdeps/unix/bsd/bsd4.4/bits/socket.h	2012-07-23 00:41:14.000000000 +0200
-+++ eglibc-2.16/sysdeps/unix/bsd/bsd4.4/bits/socket.h	2012-07-23 00:41:49.000000000 +0200
-@@ -77,7 +77,7 @@
+--- a/sysdeps/mach/hurd/bits/socket.h
++++ b/sysdeps/mach/hurd/bits/socket.h
+@@ -97,7 +97,7 @@ enum __socket_type
  #define	PF_HYLINK	15	/* NSC Hyperchannel protocol.  */
  #define	PF_APPLETALK	16	/* Don't use this.  */
  #define	PF_ROUTE	17	/* Internal Routing Protocol.  */
@@ -20,7 +18,7 @@
  #define	PF_XTP		19	/* eXpress Transfer Protocol (no AF).  */
  #define	PF_COIP		20	/* Connection-oriented IP, aka ST II.  */
  #define	PF_CNT		21	/* Computer Network Technology.  */
-@@ -110,7 +110,7 @@
+@@ -130,7 +130,7 @@ enum __socket_type
  #define	AF_HYLINK	PF_HYLINK
  #define	AF_APPLETALK	PF_APPLETALK
  #define	AF_ROUTE	PF_ROUTE

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-libpthread-elf.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-libpthread-elf.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/submitted-libpthread-elf.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,17 @@
+Fix libpthread compatibility with glibc >= 2.16.
+
+http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00029.html
+
+--- a/libpthread/Makefile
++++ b/libpthread/Makefile
+@@ -22,6 +22,10 @@ IN_GLIBC = no
+ else
+ # glibc build
+ IN_GLIBC = yes
++# set elf=yes, to retain compatibility with glibc < 2.16
++ifeq ($(elf),)
++elf = yes
++endif
+ endif
+ 
+ ifeq ($(IN_GLIBC),no)

Deleted: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-__i686_defined.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-__i686_defined.diff	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-__i686_defined.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -1,46 +0,0 @@
-From: Thomas Schwinge <thomas@schwinge.name>
-Subject: [PATCH] t/__i686_defined
-
-Reported roughly a thousand times on glibc mailing lists (with different kinds
-of patches).
-
-First: <http://sources.redhat.com/ml/libc-alpha/2002-10/msg00157.html>
-
-<http://sourceware.org/bugzilla/show_bug.cgi?id=411>
-
----
-
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: invalid identifier for ".ifdef"
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `.'
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk at end of line, first unrecognized character is `1'
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: expected comma after name `' in .size directive
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: ".endif" without ".if"
-    ../sysdeps/i386/fpu/s_frexp.S:66: Error: junk `.get_pc_thunk.dx' after expression
-    make[2]: *** [/home/thomas/data-local/tmp/gnu-0/src/glibc.obj/math/s_frexp.os] Error 1
-    make[2]: Leaving directory `/media/data-local/thomas/tmp/gnu-0/src/glibc/math'
-    make[1]: *** [math/subdir_lib] Error 2
-    make[1]: Leaving directory `/media/data-local/thomas/tmp/gnu-0/src/glibc'
-    make: *** [all] Error 2
-
- sysdeps/i386/sysdep.h |    7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/sysdeps/i386/sysdep.h
-+++ b/sysdeps/i386/sysdep.h
-@@ -46,6 +46,13 @@
- 
- #ifdef	__ASSEMBLER__
- 
-+/* This macro will be defined to 1 if GCC has been configured with
-+   --with-arch=i686, causing build failures with __i686.get_pc_thunk.  */
-+#if defined __i686
-+#undef __i686
-+#define __i686 __i686
-+#endif
-+
- /* Syntactic details of assembler.  */
- 
- /* ELF uses byte-counts for .align, most others use log2 of count of bytes.  */

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-fcntl-internal.h.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-fcntl-internal.h.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-fcntl-internal.h.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,79 @@
+From: Thomas Schwinge <thomas@schwinge.name>
+Subject: [PATCH] fcntl-internal.h
+
+2008-12-18  Thomas Schwinge  <tschwinge@gnu.org>
+
+	* hurd/fcntl-internal.h: New file.
+
+---
+ hurd/fcntl-internal.h |   60 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 60 insertions(+)
+
+diff --git a/hurd/fcntl-internal.h b/hurd/fcntl-internal.h
+new file mode 100644
+index 0000000..c816b37
+--- /dev/null
++++ b/hurd/fcntl-internal.h
+@@ -0,0 +1,60 @@
++/* Copyright (C) 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.  */
++
++
++#include <fcntl.h>
++#include <sys/socket.h>
++#include <verify.h>
++
++/* Do some compile-time checks for the SOCK_* constants, which we rely on.  */
++verify (SOCK_CLOEXEC == O_CLOEXEC);
++verify ((SOCK_MAX | SOCK_TYPE_MASK) == SOCK_TYPE_MASK);
++verify ((SOCK_CLOEXEC & SOCK_TYPE_MASK) == 0);
++verify ((SOCK_NONBLOCK & SOCK_TYPE_MASK) == 0);
++
++
++/* Helper functions for translating between O_* and SOCK_* flags.  */
++
++__extern_always_inline
++int
++sock_to_o_flags (int in)
++{
++  int out = 0;
++
++  if (in & SOCK_NONBLOCK)
++    out |= O_NONBLOCK;
++  /* Others are passed through unfiltered.  */
++  out |= in & ~(SOCK_NONBLOCK);
++
++  return out;
++}
++
++__extern_always_inline
++int
++o_to_sock_flags (int in)
++{
++  int out = 0;
++
++  if (in & O_NONBLOCK)
++    out |= SOCK_NONBLOCK;
++  /* Others are passed through unfiltered.  */
++  out |= in & ~(O_NONBLOCK);
++
++  return out;
++}
+-- 
+tg: (2741836..) t/fcntl-internal.h (depends on: t/verify.h t/bits_socket.h)

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-pagesize.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-pagesize.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-pagesize.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,39 @@
+Subject: [PATCH] t/pagesize
+
+From: Thomas Schwinge <thomas@schwinge.name>
+
+WIP.  id:"87mxd9hl2n.fsf@kepler.schwinge.homeip.net"
+
+---
+ elf/dl-support.c |    2 +-
+ elf/rtld.c       |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/elf/dl-support.c b/elf/dl-support.c
+index 81e7172..a3165dc 100644
+--- a/elf/dl-support.c
++++ b/elf/dl-support.c
+@@ -105,7 +105,7 @@ hp_timing_t _dl_cpuclock_offset;
+ 
+ void (*_dl_init_static_tls) (struct link_map *) = &_dl_nothread_init_static_tls;
+ 
+-size_t _dl_pagesize = EXEC_PAGESIZE;
++size_t _dl_pagesize = /* EXEC_PAGESIZE */ 4096;
+ 
+ int _dl_inhibit_cache;
+ 
+diff --git a/elf/rtld.c b/elf/rtld.c
+index b0126e5..36d4947 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -163,7 +163,7 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
+     ._dl_lazy = 1,
+     ._dl_fpu_control = _FPU_DEFAULT,
+     ._dl_pointer_guard = 1,
+-    ._dl_pagesize = EXEC_PAGESIZE,
++    ._dl_pagesize = /* EXEC_PAGESIZE */ 4096,
+     ._dl_inhibit_cache = 0,
+ 
+     /* Function pointers.  */
+-- 
+tg: (4a7fa7e..) t/pagesize (depends on: baseline)

Added: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-verify.h.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-verify.h.diff	                        (rev 0)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/tg-verify.h.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -0,0 +1,161 @@
+From: Thomas Schwinge <thomas@schwinge.name>
+Subject: [PATCH] verify.h
+
+2008-12-18  Thomas Schwinge  <tschwinge@gnu.org>
+
+	* include/verify.h: New file, from gnulib.
+
+TODO: Use it in all sensible places.
+
+---
+ include/verify.h |  140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 140 insertions(+)
+
+diff --git a/include/verify.h b/include/verify.h
+new file mode 100644
+index 0000000..fac53f6
+--- /dev/null
++++ b/include/verify.h
+@@ -0,0 +1,140 @@
++/* Compile-time assert-like macros.
++
++   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 3 of the License, or
++   (at your option) any later version.
++
++   This program 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 General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++/* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
++
++#ifndef VERIFY_H
++# define VERIFY_H 1
++
++/* Each of these macros verifies that its argument R is nonzero.  To
++   be portable, R should be an integer constant expression.  Unlike
++   assert (R), there is no run-time overhead.
++
++   There are two macros, since no single macro can be used in all
++   contexts in C.  verify_true (R) is for scalar contexts, including
++   integer constant expression contexts.  verify (R) is for declaration
++   contexts, e.g., the top level.
++
++   Symbols ending in "__" are private to this header.
++
++   The code below uses several ideas.
++
++   * The first step is ((R) ? 1 : -1).  Given an expression R, of
++     integral or boolean or floating-point type, this yields an
++     expression of integral type, whose value is later verified to be
++     constant and nonnegative.
++
++   * Next this expression W is wrapped in a type
++     struct verify_type__ { unsigned int verify_error_if_negative_size__: W; }.
++     If W is negative, this yields a compile-time error.  No compiler can
++     deal with a bit-field of negative size.
++
++     One might think that an array size check would have the same
++     effect, that is, that the type struct { unsigned int dummy[W]; }
++     would work as well.  However, inside a function, some compilers
++     (such as C++ compilers and GNU C) allow local parameters and
++     variables inside array size expressions.  With these compilers,
++     an array size check would not properly diagnose this misuse of
++     the verify macro:
++
++       void function (int n) { verify (n < 0); }
++
++   * For the verify macro, the struct verify_type__ will need to
++     somehow be embedded into a declaration.  To be portable, this
++     declaration must declare an object, a constant, a function, or a
++     typedef name.  If the declared entity uses the type directly,
++     such as in
++
++       struct dummy {...};
++       typedef struct {...} dummy;
++       extern struct {...} *dummy;
++       extern void dummy (struct {...} *);
++       extern struct {...} *dummy (void);
++
++     two uses of the verify macro would yield colliding declarations
++     if the entity names are not disambiguated.  A workaround is to
++     attach the current line number to the entity name:
++
++       #define GL_CONCAT0(x, y) x##y
++       #define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
++       extern struct {...} * GL_CONCAT(dummy,__LINE__);
++
++     But this has the problem that two invocations of verify from
++     within the same macro would collide, since the __LINE__ value
++     would be the same for both invocations.
++
++     A solution is to use the sizeof operator.  It yields a number,
++     getting rid of the identity of the type.  Declarations like
++
++       extern int dummy [sizeof (struct {...})];
++       extern void dummy (int [sizeof (struct {...})]);
++       extern int (*dummy (void)) [sizeof (struct {...})];
++
++     can be repeated.
++
++   * Should the implementation use a named struct or an unnamed struct?
++     Which of the following alternatives can be used?
++
++       extern int dummy [sizeof (struct {...})];
++       extern int dummy [sizeof (struct verify_type__ {...})];
++       extern void dummy (int [sizeof (struct {...})]);
++       extern void dummy (int [sizeof (struct verify_type__ {...})]);
++       extern int (*dummy (void)) [sizeof (struct {...})];
++       extern int (*dummy (void)) [sizeof (struct verify_type__ {...})];
++
++     In the second and sixth case, the struct type is exported to the
++     outer scope; two such declarations therefore collide.  GCC warns
++     about the first, third, and fourth cases.  So the only remaining
++     possibility is the fifth case:
++
++       extern int (*dummy (void)) [sizeof (struct {...})];
++
++   * This implementation exploits the fact that GCC does not warn about
++     the last declaration mentioned above.  If a future version of GCC
++     introduces a warning for this, the problem could be worked around
++     by using code specialized to GCC, e.g.,:
++
++       #if 4 <= __GNUC__
++       # define verify(R) \
++	   extern int (* verify_function__ (void)) \
++		      [__builtin_constant_p (R) && (R) ? 1 : -1]
++       #endif
++
++   * In C++, any struct definition inside sizeof is invalid.
++     Use a template type to work around the problem.  */
++
++
++/* Verify requirement R at compile-time, as an integer constant expression.
++   Return 1.  */
++
++# ifdef __cplusplus
++template <int w>
++  struct verify_type__ { unsigned int verify_error_if_negative_size__: w; };
++#  define verify_true(R) \
++     (!!sizeof (verify_type__<(R) ? 1 : -1>))
++# else
++#  define verify_true(R) \
++     (!!sizeof \
++      (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; }))
++# endif
++
++/* Verify requirement R at compile-time, as a declaration without a
++   trailing ';'.  */
++
++# define verify(R) extern int (* verify_function__ (void)) [verify_true (R)]
++
++#endif
+-- 
+tg: (4a7fa7e..) t/verify.h (depends on: baseline)

Deleted: glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/unsubmitted-gcc-4.1-init-first.diff
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/unsubmitted-gcc-4.1-init-first.diff	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/patches/hurd-i386/unsubmitted-gcc-4.1-init-first.diff	2012-11-18 23:58:18 UTC (rev 5383)
@@ -1,53 +0,0 @@
-Roland disagrees with this undo.
-
-2007-07-22  Thomas Schwinge  <tschwinge@gnu.org>
-
-        * sysdeps/mach/hurd/i386/init-first.c: (_hurd_stack_setup): Take
-	a ``void *'' argument.  Save the caller into CALLER and pass 
-	that one on.
-	(init): Avoid an ugly typecast.
-
-t/init-first.c
-
----
- sysdeps/mach/hurd/i386/init-first.c |   10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
---- a/sysdeps/mach/hurd/i386/init-first.c
-+++ b/sysdeps/mach/hurd/i386/init-first.c
-@@ -384,14 +384,14 @@
-    This poorly-named function is called by static-start.S,
-    which should not exist at all.  */
- void
--_hurd_stack_setup (void)
-+_hurd_stack_setup (void *arg, ...)
- {
--  intptr_t caller = (intptr_t) __builtin_return_address (0);
-+  void *caller = (&arg)[-1];
- 
-   void doinit (intptr_t *data)
-     {
-       /* This function gets called with the argument data at TOS.  */
--      void doinit1 (int argc, ...)
-+      void doinit1 (volatile int argc, ...)
- 	{
- 	  /* If we use ``__builtin_frame_address (0) + 2'' here, GCC gets
- 	     confused.  */
-@@ -402,7 +402,7 @@
- 	 jump to `doinit1' (above), so it is as if __libc_init_first's
- 	 caller had called `doinit1' with the argument data already on the
- 	 stack.  */
--      *--data = caller;
-+      *--data = (intptr_t) caller;
-       asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack.  */
- 		    "movl $0, %%ebp\n" /* Clear outermost frame pointer.  */
- 		    "jmp *%1" : : "r" (data), "r" (&doinit1) : "sp");
-@@ -411,7 +411,7 @@
- 
-   first_init ();
- 
--  _hurd_startup ((void **) __builtin_frame_address (0) + 2, &doinit);
-+  _hurd_startup (&arg, &doinit);
- }
- #endif
- 

Modified: glibc-package/branches/eglibc-2.16/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/series	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/patches/series	2012-11-18 23:58:18 UTC (rev 5383)
@@ -74,7 +74,6 @@
 hurd-i386/unsubmitted-tls.diff
 hurd-i386/tg-tls.diff
 hurd-i386/tg-tlsdesc.sym.diff
-hurd-i386/unsubmitted-gcc-4.1-init-first.diff
 hurd-i386/tg-ptrmangle.diff
 hurd-i386/tg-sysvshm.diff
 hurd-i386/tg-ioctl-base-types.diff
@@ -87,7 +86,6 @@
 hurd-i386/local-disable-ioctls.diff
 hurd-i386/tg-locarchive.diff
 hurd-i386/submitted-regex_internal.diff
-hurd-i386/tg-__i686_defined.diff
 hurd-i386/tg-no-hp-timing.diff
 hurd-i386/tg-sendmsg-SCM_RIGHTS.diff
 hurd-i386/tg-grantpt.diff
@@ -119,6 +117,9 @@
 hurd-i386/tg-chflags.diff
 hurd-i386/submitted-exec_filename.diff
 hurd-i386/unsubmitted-gnumach.defs.diff
+hurd-i386/cvs-add-missing-includes.diff                                                                                                                                    
+hurd-i386/submitted-libpthread-elf.diff   
+hurd-i386/cvs-mach-check-local-headers.sh.diff
 
 i386/local-biarch.diff
 i386/local-cmov.diff

Modified: glibc-package/branches/eglibc-2.16/debian/patches/series.hurd-i386
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/patches/series.hurd-i386	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/patches/series.hurd-i386	2012-11-18 23:58:18 UTC (rev 5383)
@@ -7,3 +7,7 @@
 hurd-i386/local-clock_gettime_MONOTONIC.diff
 hurd-i386/submitted-AF_LINK.diff
 hurd-i386/unsubmitted-mremap.diff
+hurd-i386/tg-verify.h.diff
+hurd-i386/tg-fcntl-internal.h.diff
+hurd-i386/tg-pagesize.diff
+hurd-i386/local-disable-sendmmsg.diff

Modified: glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i486-gnu-libc
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i486-gnu-libc	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i486-gnu-libc	2012-11-18 23:58:18 UTC (rev 5383)
@@ -4,8 +4,6 @@
 # Format: <Failed test>, Error <Make error code> [(ignored)]
 #
 # Need actual porting
-tst-cpucount, Error 1
-tst-cpuset.o, Error 1
 tst-cputimer1.o, Error 1
 tst-cputimer2.o, Error 1
 tst-cputimer3.o, Error 1
@@ -17,6 +15,7 @@
 #
 # Need investigation
 annexc.out, Error 1 (ignored)
+bug22.out, Error 1
 bug-glob2.out, Error 1
 bug-regex31-mem, Error 1
 bug-ulimit1.out, Error 1
@@ -24,27 +23,23 @@
 check-local-headers.out, Error 1
 check-localplt.out, Error 1
 check-textrel.out, Error 1
-libnss_test1.so, Error 1
-mtrace-tst-loading, Error 1
 opendir-tst1.out, Error 1
 run-conformtest.out, Error 1 (ignored)
 test-assert-perr.out, Error 1
 test-assert.out, Error 1
-test-fenv.out, Error 1
 test-idouble.out, Error 139
-test-ifaddrs.out, Error 1
 test-ifloat.out, Error 139
 test-lfs.out, Error 1
-test-memmem, Error 1
-test-strnlen, Error 1
 tst-aio10.out, Error 1
 tst-aio2.o, Error 1
 tst-aio3.o, Error 1
 tst-aio8.out, Error 1
 tst-aio9.out, Error 1
-tst-atime.out, Error 1
 tst-audit1.out, Error 137
 tst-audit2.out, Error 137
+tst-backtrace4.out, Error 1
+tst-backtrace5.out, Error 1
+tst-backtrace6.out, Error 1
 tst-chk1.out, Error 1
 tst-chk2.out, Error 1
 tst-chk3.out, Error 1
@@ -60,7 +55,9 @@
 tst-fopenloc.check, Error 1
 tst-futimesat.out, Error 1
 tst-getconf.out, Error 3
-tst-gettext.out, Error 1
+tst-gettext4.out, Error 139
+tst-gettext5.out, Error 139
+tst-gettext6.out, Error 1
 tst-grantpt.out, Error 1
 tst-lfschk1.out, Error 1
 tst-lfschk2.out, Error 1
@@ -78,8 +75,6 @@
 tst-timer.out, Error 1
 tst-tls18.out, Error 1
 tst-tls9-static.out, Error 1
-tst-unique1.out, Error 1
-tst-unique2.out, Error 127
 tst-vfork3-mem, Error 1
 tst-waitid.out, Error 1
 tststatic.out, Error 139

Modified: glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i386
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i386	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i386	2012-11-18 23:58:18 UTC (rev 5383)
@@ -4,8 +4,6 @@
 # Format: <Failed test>, Error <Make error code> [(ignored)]
 #
 # Need actual porting
-tst-cpucount, Error 1
-tst-cpuset.o, Error 1
 tst-cputimer1.o, Error 1
 tst-cputimer2.o, Error 1
 tst-cputimer3.o, Error 1
@@ -17,6 +15,7 @@
 #
 # Need investigation
 annexc.out, Error 1 (ignored)
+bug22.out, Error 1
 bug-glob2.out, Error 1
 bug-regex31-mem, Error 1
 bug-ulimit1.out, Error 1
@@ -24,27 +23,23 @@
 check-local-headers.out, Error 1
 check-localplt.out, Error 1
 check-textrel.out, Error 1
-libnss_test1.so, Error 1
-mtrace-tst-loading, Error 1
 opendir-tst1.out, Error 1
 run-conformtest.out, Error 1 (ignored)
 test-assert-perr.out, Error 1
 test-assert.out, Error 1
-test-fenv.out, Error 1
 test-idouble.out, Error 139
-test-ifaddrs.out, Error 1
 test-ifloat.out, Error 139
 test-lfs.out, Error 1
-test-memmem, Error 1
-test-strnlen, Error 1
 tst-aio10.out, Error 1
 tst-aio2.o, Error 1
 tst-aio3.o, Error 1
 tst-aio8.out, Error 1
 tst-aio9.out, Error 1
-tst-atime.out, Error 1
 tst-audit1.out, Error 137
 tst-audit2.out, Error 137
+tst-backtrace4.out, Error 1
+tst-backtrace5.out, Error 1
+tst-backtrace6.out, Error 1
 tst-chk1.out, Error 1
 tst-chk2.out, Error 1
 tst-chk3.out, Error 1
@@ -60,7 +55,9 @@
 tst-fopenloc.check, Error 1
 tst-futimesat.out, Error 1
 tst-getconf.out, Error 3
-tst-gettext.out, Error 1
+tst-gettext4.out, Error 139
+tst-gettext5.out, Error 139
+tst-gettext6.out, Error 1
 tst-grantpt.out, Error 1
 tst-lfschk1.out, Error 1
 tst-lfschk2.out, Error 1
@@ -78,8 +75,6 @@
 tst-timer.out, Error 1
 tst-tls18.out, Error 1
 tst-tls9-static.out, Error 1
-tst-unique1.out, Error 1
-tst-unique2.out, Error 127
 tst-vfork3-mem, Error 1
 tst-waitid.out, Error 1
 tststatic.out, Error 139

Modified: glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i686
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i686	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-i686	2012-11-18 23:58:18 UTC (rev 5383)
@@ -4,8 +4,6 @@
 # Format: <Failed test>, Error <Make error code> [(ignored)]
 #
 # Need actual porting
-tst-cpucount, Error 1
-tst-cpuset.o, Error 1
 tst-cputimer1.o, Error 1
 tst-cputimer2.o, Error 1
 tst-cputimer3.o, Error 1
@@ -17,6 +15,7 @@
 #
 # Need investigation
 annexc.out, Error 1 (ignored)
+bug22.out, Error 1
 bug-glob2.out, Error 1
 bug-regex31-mem, Error 1
 bug-ulimit1.out, Error 1
@@ -24,27 +23,23 @@
 check-local-headers.out, Error 1
 check-localplt.out, Error 1
 check-textrel.out, Error 1
-libnss_test1.so, Error 1
-mtrace-tst-loading, Error 1
 opendir-tst1.out, Error 1
 run-conformtest.out, Error 1 (ignored)
 test-assert-perr.out, Error 1
 test-assert.out, Error 1
-test-fenv.out, Error 1
 test-idouble.out, Error 139
-test-ifaddrs.out, Error 1
 test-ifloat.out, Error 139
 test-lfs.out, Error 1
-test-memmem, Error 1
-test-strnlen, Error 1
 tst-aio10.out, Error 1
 tst-aio2.o, Error 1
 tst-aio3.o, Error 1
 tst-aio8.out, Error 1
 tst-aio9.out, Error 1
-tst-atime.out, Error 1
 tst-audit1.out, Error 137
 tst-audit2.out, Error 137
+tst-backtrace4.out, Error 1
+tst-backtrace5.out, Error 1
+tst-backtrace6.out, Error 1
 tst-chk1.out, Error 1
 tst-chk2.out, Error 1
 tst-chk3.out, Error 1
@@ -60,7 +55,9 @@
 tst-fopenloc.check, Error 1
 tst-futimesat.out, Error 1
 tst-getconf.out, Error 3
-tst-gettext.out, Error 1
+tst-gettext4.out, Error 139
+tst-gettext5.out, Error 139
+tst-gettext6.out, Error 1
 tst-grantpt.out, Error 1
 tst-lfschk1.out, Error 1
 tst-lfschk2.out, Error 1
@@ -78,8 +75,6 @@
 tst-timer.out, Error 1
 tst-tls18.out, Error 1
 tst-tls9-static.out, Error 1
-tst-unique1.out, Error 1
-tst-unique2.out, Error 127
 tst-vfork3-mem, Error 1
 tst-waitid.out, Error 1
 tststatic.out, Error 139

Modified: glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-xen
===================================================================
--- glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-xen	2012-11-18 23:44:00 UTC (rev 5382)
+++ glibc-package/branches/eglibc-2.16/debian/testsuite-checking/expected-results-i686-gnu-xen	2012-11-18 23:58:18 UTC (rev 5383)
@@ -4,8 +4,6 @@
 # Format: <Failed test>, Error <Make error code> [(ignored)]
 #
 # Need actual porting
-tst-cpucount, Error 1
-tst-cpuset.o, Error 1
 tst-cputimer1.o, Error 1
 tst-cputimer2.o, Error 1
 tst-cputimer3.o, Error 1
@@ -17,6 +15,7 @@
 #
 # Need investigation
 annexc.out, Error 1 (ignored)
+bug22.out, Error 1
 bug-glob2.out, Error 1
 bug-regex31-mem, Error 1
 bug-ulimit1.out, Error 1
@@ -24,27 +23,23 @@
 check-local-headers.out, Error 1
 check-localplt.out, Error 1
 check-textrel.out, Error 1
-libnss_test1.so, Error 1
-mtrace-tst-loading, Error 1
 opendir-tst1.out, Error 1
 run-conformtest.out, Error 1 (ignored)
 test-assert-perr.out, Error 1
 test-assert.out, Error 1
-test-fenv.out, Error 1
 test-idouble.out, Error 139
-test-ifaddrs.out, Error 1
 test-ifloat.out, Error 139
 test-lfs.out, Error 1
-test-memmem, Error 1
-test-strnlen, Error 1
 tst-aio10.out, Error 1
 tst-aio2.o, Error 1
 tst-aio3.o, Error 1
 tst-aio8.out, Error 1
 tst-aio9.out, Error 1
-tst-atime.out, Error 1
 tst-audit1.out, Error 137
 tst-audit2.out, Error 137
+tst-backtrace4.out, Error 1
+tst-backtrace5.out, Error 1
+tst-backtrace6.out, Error 1
 tst-chk1.out, Error 1
 tst-chk2.out, Error 1
 tst-chk3.out, Error 1
@@ -60,7 +55,9 @@
 tst-fopenloc.check, Error 1
 tst-futimesat.out, Error 1
 tst-getconf.out, Error 3
-tst-gettext.out, Error 1
+tst-gettext4.out, Error 139
+tst-gettext5.out, Error 139
+tst-gettext6.out, Error 1
 tst-grantpt.out, Error 1
 tst-lfschk1.out, Error 1
 tst-lfschk2.out, Error 1
@@ -78,8 +75,6 @@
 tst-timer.out, Error 1
 tst-tls18.out, Error 1
 tst-tls9-static.out, Error 1
-tst-unique1.out, Error 1
-tst-unique2.out, Error 127
 tst-vfork3-mem, Error 1
 tst-waitid.out, Error 1
 tststatic.out, Error 139


Reply to: