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: