about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog55
-rw-r--r--fedora/branch.mk4
-rw-r--r--fedora/glibc.spec.in8
-rw-r--r--iconvdata/Makefile4
-rw-r--r--iconvdata/TESTS1
-rw-r--r--iconvdata/gconv-modules6
-rw-r--r--iconvdata/iso_11548-1.c73
-rw-r--r--iconvdata/testdata/ISO_11548-1bin0 -> 256 bytes
-rw-r--r--iconvdata/testdata/ISO_11548-1..UTF81
-rw-r--r--inet/netinet/icmp6.h110
-rw-r--r--inet/netinet/ip6.h70
-rw-r--r--io/sys/poll.h7
-rw-r--r--io/sys/stat.h2
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/charmaps/ISO_11548-1269
-rw-r--r--sysdeps/sh/bits/setjmp.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/in.h27
-rw-r--r--sysdeps/unix/sysv/linux/fchownat.c6
-rw-r--r--sysdeps/unix/sysv/linux/futimesat.c1
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/fchownat.c1
-rw-r--r--sysdeps/unix/sysv/linux/i386/fxstatat.c8
-rw-r--r--sysdeps/unix/sysv/linux/renameat.c1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c1
-rw-r--r--sysdeps/unix/sysv/linux/sys/epoll.h9
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list2
-rw-r--r--sysdeps/unix/sysv/linux/unlinkat.c1
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c6
28 files changed, 651 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index b3c9124e8e..ceecd415e2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,58 @@
+2005-11-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/fchownat.c: Include string.h.
+	* sysdeps/unix/sysv/linux/futimesat.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/fchownat.c: Likewise.
+	* sysdeps/unix/sysv/linux/i386/fxstatat.c: Likewise.
+	* sysdeps/unix/sysv/linux/renameat.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Likewise.
+	* sysdeps/unix/sysv/linux/unlinkat.c: Likewise.
+	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: Likewise.
+
+2005-11-16  Ulrich Drepper  <drepper@redhat.com>
+
+	* iconvdata/Makefile (modules): Add ISO_11548-1.
+	(distribute): Add iso_11548-1.c.
+	* iconvdata/gconv-modules: Add entries for ISO 11548-1.
+	* iconvdata/TESTS: Add entry for ISO 11548-1.
+
+	[BZ 1872]
+	* iconvdata/iso_11548-1.c: New file.
+	* iconvdata/testdata/ISO_11548-1: New file.
+	* iconvdata/testdata/ISO_11548-1..UTF8: New file.
+	Patch by Samuel Thibault <samuel.thibault@ens-lyon.org>.
+
+2005-11-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+	* sysdeps/sh/bits/setjmp.h (_JMPBUF_UNWINDS): Remove incorrect &.
+
+2005-11-15  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ 1865]
+	* inet/netinet/icmp6.h: More updates for RFC3542.
+	* inet/netinet/ip6.h: Likewise.
+	* sysdeps/unix/sysv/linux/bits/in.h: Adjust for current kernel sources.
+	Patch by David L Stevens <dlstevens@us.ibm.com>.
+
+	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c (__fxstatat):
+	Return -1 on failure.
+	* sysdeps/unix/sysv/linux/fchownat.c (fchownat): Likewise.
+	* sysdeps/unix/sysv/linux/i386/fxstatat.c (__fxstatat): Likewise..
+	* sysdeps/unix/sysv/linux/fxstatat64.c [__ASSUME_STAT64_SYSCALL]
+	(__fxstatat64): Handle errors.
+
+	* io/sys/poll.h: Add comment explaining poll is a cancellation	point.
+
+	* sysdeps/unix/sysv/linux/syscalls.list (epoll_wait): Align with
+	poll, make cancelable.
+	* sysdeps/unix/sysv/linux/sys/epoll.h: Add comment explaining
+	epoll_wait is a cancellation point.
+
+2005-11-15  Jakub Jelinek  <jakub@redhat.com>
+
+	* io/sys/stat.h (fstatat): Don't use __THROW together with
+	__REDIRECT_NTH.
+
 2005-11-14  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/dl-open.c [!SHARED]: Remove _dl_tls_static_size definition.
diff --git a/fedora/branch.mk b/fedora/branch.mk
index 274be40a4f..02a6a5fa8b 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2005-11-15 08:09 UTC
-fedora-sync-tag := fedora-glibc-20051115T0809
+fedora-sync-date := 2005-11-16 08:29 UTC
+fedora-sync-tag := fedora-glibc-20051116T0829
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index ebdbf28a3f..08523d3374 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 16
+%define glibcrelease 17
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define xenarches i686 athlon
@@ -1095,6 +1095,12 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Wed Nov 16 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-17
+- update from CVS
+  - fix <sys/stat.h> in C++
+  - {fstat,fchown,rename,unlink}at fixes
+  - epoll_wait is now a cancellation point
+
 * Tue Nov 15 2005 Jakub Jelinek <jakub@redhat.com> 2.3.90-16
 - update from CVS
 - make sure waitid syscall is used on ppc*/s390*
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index f6e9c17a0c..39eb1e3863 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -58,7 +58,7 @@ modules	:= ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5		 \
 	   IBM1142 IBM1143 IBM1144 IBM1145 IBM1146 IBM1147 IBM1148 	 \
 	   IBM1149 IBM1166 IBM1167 IBM4517 IBM4899 IBM4909 IBM4971 	 \
 	   IBM5347 IBM9030 IBM9066 IBM9448 IBM12712 IBM16804             \
-	   IBM1364 IBM1371 IBM1388 IBM1390 IBM1399
+	   IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1
 
 modules.so := $(addsuffix .so, $(modules))
 
@@ -195,7 +195,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk gconv.map    \
 	      ibm9030.c ibm9030.h ibm9066.c ibm9066.h ibm9448.c ibm9448.h   \
 	      ibm12712.c ibm12712.h ibm16804.c ibm16804.h                   \
 	      ibm1364.c ibm1364.h ibm1371.c ibm1371.h ibm1388.c ibm1388.h   \
-	      ibm1390.c ibm1390.h ibm1399.c ibm1399.h
+	      ibm1390.c ibm1390.h ibm1399.c ibm1399.h iso_11548-1.c
 
 # We build the transformation modules only when we build shared libs.
 ifeq (yes,$(build-shared))
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index 9cd2a75e02..933c447096 100644
--- a/iconvdata/TESTS
+++ b/iconvdata/TESTS
@@ -164,3 +164,4 @@ IBM1371			IBM1371			N	UTF8
 IBM1388			IBM1388			N	UTF8
 IBM1390			IBM1390			N	UTF8
 IBM1399			IBM1399			N	UTF8
+ISO_11548-1		ISO_11548-1		-	UTF8
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index 37b3e5f924..421dc6739a 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1897,3 +1897,9 @@ alias	CP1399//		IBM1399//
 alias	CSIBM1399//		IBM1399//
 module	IBM1399//		INTERNAL		IBM1399		1
 module	INTERNAL		IBM1399//		IBM1399		1
+
+#	from			to			module		cost
+alias	ISO/TR_11548-1/		ISO_11548-1//
+alias	ISO11548-1//		ISO_11548-1//
+module	ISO_11548-1//		INTERNAL		ISO_11548-1	1
+module	INTERNAL		ISO_11548-1//		ISO_11548-1	1
diff --git a/iconvdata/iso_11548-1.c b/iconvdata/iso_11548-1.c
new file mode 100644
index 0000000000..6543c61f32
--- /dev/null
+++ b/iconvdata/iso_11548-1.c
@@ -0,0 +1,73 @@
+/* Conversion to and from ISO 11548-1.
+   Copyright (C) 1997-1999, 2000-2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997,
+	Samuel Thibault <samuel.thibault@ens-lyon.org>, 2005.
+
+   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 <dlfcn.h>
+#include <stdint.h>
+
+/* Definitions used in the body of the `gconv' function.  */
+#define CHARSET_NAME		"ISO_11548-1//"
+#define FROM_LOOP		from_iso11548_1
+#define TO_LOOP			to_iso11548_1
+#define DEFINE_INIT		1
+#define DEFINE_FINI		1
+#define MIN_NEEDED_FROM		1
+#define MIN_NEEDED_TO		4
+
+#define BRAILLE_UCS_BASE	0x2800
+
+/* First define the conversion function from ISO 11548-1 to UCS4.  */
+#define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT	MIN_NEEDED_TO
+#define LOOPFCT			FROM_LOOP
+#define BODY \
+  *((uint32_t *) outptr) = BRAILLE_UCS_BASE | (*inptr++);		      \
+  outptr += sizeof (uint32_t);
+#define ONEBYTE_BODY \
+  {									      \
+    return BRAILLE_UCS_BASE | c;					      \
+  }
+#include <iconv/loop.c>
+
+
+/* Next, define the other direction.  */
+#define MIN_NEEDED_INPUT	MIN_NEEDED_TO
+#define MIN_NEEDED_OUTPUT	MIN_NEEDED_FROM
+#define LOOPFCT			TO_LOOP
+#define BODY \
+  {									      \
+    uint32_t ch = *((const uint32_t *) inptr);				      \
+    if (__builtin_expect ((ch & 0xffffff00u) != BRAILLE_UCS_BASE, 0))	      \
+      {									      \
+	UNICODE_TAG_HANDLER (ch, 4);					      \
+									      \
+	/* We have an illegal character.  */				      \
+	STANDARD_TO_LOOP_ERR_HANDLER (4);				      \
+      }									      \
+    else								      \
+      *outptr++ = (unsigned char) (ch & 0xff);				      \
+    inptr += 4;								      \
+  }
+#define LOOP_NEED_FLAGS
+#include <iconv/loop.c>
+
+
+/* Now define the toplevel functions.  */
+#include <iconv/skeleton.c>
diff --git a/iconvdata/testdata/ISO_11548-1 b/iconvdata/testdata/ISO_11548-1
new file mode 100644
index 0000000000..c86626638e
--- /dev/null
+++ b/iconvdata/testdata/ISO_11548-1
Binary files differdiff --git a/iconvdata/testdata/ISO_11548-1..UTF8 b/iconvdata/testdata/ISO_11548-1..UTF8
new file mode 100644
index 0000000000..9ac4e2a8b6
--- /dev/null
+++ b/iconvdata/testdata/ISO_11548-1..UTF8
@@ -0,0 +1 @@
+⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿
\ No newline at end of file
diff --git a/inet/netinet/icmp6.h b/inet/netinet/icmp6.h
index 4b17d9cd93..c5138a39c9 100644
--- a/inet/netinet/icmp6.h
+++ b/inet/netinet/icmp6.h
@@ -33,7 +33,7 @@
 
 struct icmp6_filter
   {
-    uint32_t data[8];
+    uint32_t icmp6_filt[8];
   };
 
 struct icmp6_hdr
@@ -67,14 +67,14 @@ struct icmp6_hdr
 
 #define ICMP6_ECHO_REQUEST          128
 #define ICMP6_ECHO_REPLY            129
-#define ICMP6_MEMBERSHIP_QUERY      130
-#define ICMP6_MEMBERSHIP_REPORT     131
-#define ICMP6_MEMBERSHIP_REDUCTION  132
+#define MLD_LISTENER_QUERY          130
+#define MLD_LISTENER_REPORT         131
+#define MLD_LISTENER_REDUCTION      132
 
 #define ICMP6_DST_UNREACH_NOROUTE     0 /* no route to destination */
 #define ICMP6_DST_UNREACH_ADMIN       1 /* communication with destination */
                                         /* administratively prohibited */
-#define ICMP6_DST_UNREACH_NOTNEIGHBOR 2 /* not a neighbor */
+#define ICMP6_DST_UNREACH_BEYONDSCOPE 2 /* beyond scope of source address */
 #define ICMP6_DST_UNREACH_ADDR        3 /* address unreachable */
 #define ICMP6_DST_UNREACH_NOPORT      4 /* bad port */
 
@@ -86,16 +86,16 @@ struct icmp6_hdr
 #define ICMP6_PARAMPROB_OPTION        2 /* unrecognized IPv6 option */
 
 #define ICMP6_FILTER_WILLPASS(type, filterp) \
-	((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) == 0)
+	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
 
 #define ICMP6_FILTER_WILLBLOCK(type, filterp) \
-	((((filterp)->data[(type) >> 5]) & (1 << ((type) & 31))) != 0)
+	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
 
 #define ICMP6_FILTER_SETPASS(type, filterp) \
-	((((filterp)->data[(type) >> 5]) &= ~(1 << ((type) & 31))))
+	((((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31))))
 
 #define ICMP6_FILTER_SETBLOCK(type, filterp) \
-	((((filterp)->data[(type) >> 5]) |=  (1 << ((type) & 31))))
+	((((filterp)->icmp6_filt[(type) >> 5]) |=  (1 << ((type) & 31))))
 
 #define ICMP6_FILTER_SETPASSALL(filterp) \
 	memset (filterp, 0, sizeof (struct icmp6_filter));
@@ -232,6 +232,98 @@ struct nd_opt_mtu             /* MTU option */
     uint32_t  nd_opt_mtu_mtu;
   };
 
+struct mld_hdr
+  {
+    struct icmp6_hdr    mld_icmp6_hdr;
+    struct in6_addr     mld_addr; /* multicast address */
+  };
+
+#define mld_type        mld_icmp6_hdr.icmp6_type
+#define mld_code        mld_icmp6_hdr.icmp6_code
+#define mld_cksum       mld_icmp6_hdr.icmp6_cksum
+#define mld_maxdelay    mld_icmp6_hdr.icmp6_data16[0]
+#define mld_reserved    mld_icmp6_hdr.icmp6_data16[1]
+
+#define ICMP6_ROUTER_RENUMBERING    138
+
+struct icmp6_router_renum    /* router renumbering header */
+  {
+    struct icmp6_hdr    rr_hdr;
+    uint8_t             rr_segnum;
+    uint8_t             rr_flags;
+    uint16_t            rr_maxdelay;
+    uint32_t            rr_reserved;
+  };
+
+#define rr_type		rr_hdr.icmp6_type
+#define rr_code         rr_hdr.icmp6_code
+#define rr_cksum        rr_hdr.icmp6_cksum
+#define rr_seqnum       rr_hdr.icmp6_data32[0]
+
+/* Router renumbering flags */
+#define ICMP6_RR_FLAGS_TEST             0x80
+#define ICMP6_RR_FLAGS_REQRESULT        0x40
+#define ICMP6_RR_FLAGS_FORCEAPPLY       0x20
+#define ICMP6_RR_FLAGS_SPECSITE         0x10
+#define ICMP6_RR_FLAGS_PREVDONE         0x08
+
+struct rr_pco_match    /* match prefix part */
+  {
+    uint8_t             rpm_code;
+    uint8_t             rpm_len;
+    uint8_t             rpm_ordinal;
+    uint8_t             rpm_matchlen;
+    uint8_t             rpm_minlen;
+    uint8_t             rpm_maxlen;
+    uint16_t            rpm_reserved;
+    struct in6_addr     rpm_prefix;
+  };
+
+/* PCO code values */
+#define RPM_PCO_ADD             1
+#define RPM_PCO_CHANGE          2
+#define RPM_PCO_SETGLOBAL       3
+
+struct rr_pco_use      /* use prefix part */
+  {
+    uint8_t             rpu_uselen;
+    uint8_t             rpu_keeplen;
+    uint8_t             rpu_ramask;
+    uint8_t             rpu_raflags;
+    uint32_t            rpu_vltime;
+    uint32_t            rpu_pltime;
+    uint32_t            rpu_flags;
+    struct in6_addr     rpu_prefix;
+  };
+
+#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK  0x20
+#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO    0x10
+
+#if BYTE_ORDER == BIG_ENDIAN
+# define ICMP6_RR_PCOUSE_DECRVLTIME      0x80000000
+# define ICMP6_RR_PCOUSE_DECRPLTIME      0x40000000
+#elif BYTE_ORDER == LITTLE_ENDIAN
+# define ICMP6_RR_PCOUSE_DECRVLTIME      0x80
+# define ICMP6_RR_PCOUSE_DECRPLTIME      0x40
+#endif
+
+struct rr_result       /* router renumbering result message */
+  {
+    uint16_t            rrr_flags;
+    uint8_t             rrr_ordinal;
+    uint8_t             rrr_matchedlen;
+    uint32_t            rrr_ifid;
+    struct in6_addr     rrr_prefix;
+  };
+
+#if BYTE_ORDER == BIG_ENDIAN
+# define ICMP6_RR_RESULT_FLAGS_OOB       0x0002
+# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
+#elif BYTE_ORDER == LITTLE_ENDIAN
+# define ICMP6_RR_RESULT_FLAGS_OOB       0x0200
+# define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
+#endif
+
 /* Mobile IPv6 extension: Advertisement Interval.  */
 struct nd_opt_adv_interval
   {
diff --git a/inet/netinet/ip6.h b/inet/netinet/ip6.h
index 7045836df6..0ad62f8980 100644
--- a/inet/netinet/ip6.h
+++ b/inet/netinet/ip6.h
@@ -111,8 +111,78 @@ struct ip6_frag
 #define IP6F_MORE_FRAG      0x0100  /* more-fragments flag */
 #endif
 
+/* IPv6 options */
+struct ip6_opt
+  {
+    uint8_t  ip6o_type;
+    uint8_t  ip6o_len;
+  };
+
+/* The high-order 3 bits of the option type define the behavior
+ * when processing an unknown option and whether or not the option
+ * content changes in flight.
+ */
+#define IP6OPT_TYPE(o)		((o) & 0xc0)
+#define IP6OPT_TYPE_SKIP	0x00
+#define IP6OPT_TYPE_DISCARD	0x40
+#define IP6OPT_TYPE_FORCEICMP	0x80
+#define IP6OPT_TYPE_ICMP	0xc0
+#define IP6OPT_TYPE_MUTABLE	0x20
+
 /* Special option types for padding.  */
 #define IP6OPT_PAD1	0
 #define IP6OPT_PADN	1
 
+#define IP6OPT_JUMBO		0xc2
+#define IP6OPT_NSAP_ADDR	0xc3
+#define IP6OPT_TUNNEL_LIMIT	0x04
+#define IP6OPT_ROUTER_ALERT	0x05
+
+/* Jumbo Payload Option */
+struct ip6_opt_jumbo
+  {
+    uint8_t  ip6oj_type;
+    uint8_t  ip6oj_len;
+    uint8_t  ip6oj_jumbo_len[4];
+  };
+#define IP6OPT_JUMBO_LEN	6
+
+/* NSAP Address Option */
+struct ip6_opt_nsap
+  {
+    uint8_t  ip6on_type;
+    uint8_t  ip6on_len;
+    uint8_t  ip6on_src_nsap_len;
+    uint8_t  ip6on_dst_nsap_len;
+      /* followed by source NSAP */
+      /* followed by destination NSAP */
+  };
+
+/* Tunnel Limit Option */
+struct ip6_opt_tunnel
+  {
+    uint8_t  ip6ot_type;
+    uint8_t  ip6ot_len;
+    uint8_t  ip6ot_encap_limit;
+  };
+
+/* Router Alert Option */
+struct ip6_opt_router
+  {
+    uint8_t  ip6or_type;
+    uint8_t  ip6or_len;
+    uint8_t  ip6or_value[2];
+  };
+
+/* Router alert values (in network byte order) */
+#if     BYTE_ORDER == BIG_ENDIAN
+# define IP6_ALERT_MLD	0x0000
+# define IP6_ALERT_RSVP	0x0001
+# define IP6_ALERT_AN	0x0002
+#else /* BYTE_ORDER == LITTLE_ENDING */
+# define IP6_ALERT_MLD	0x0000
+# define IP6_ALERT_RSVP	0x0100
+# define IP6_ALERT_AN	0x0200
+#endif
+
 #endif /* netinet/ip6.h */
diff --git a/io/sys/poll.h b/io/sys/poll.h
index 89a27eab2b..9cf1b9f1c0 100644
--- a/io/sys/poll.h
+++ b/io/sys/poll.h
@@ -1,5 +1,5 @@
 /* Compatibility definitions for System V `poll' interface.
-   Copyright (C) 1994,96,97,98,99,2000,2001,2004 Free Software Foundation, Inc.
+   Copyright (C) 1994,1996-2001,2004,2005 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
@@ -44,7 +44,10 @@ __BEGIN_DECLS
    FDS.  If TIMEOUT is nonzero and not -1, allow TIMEOUT milliseconds for
    an event to occur; if TIMEOUT is -1, block until an event occurs.
    Returns the number of file descriptors with events, zero if timed out,
-   or -1 for errors.  */
+   or -1 for errors.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
 extern int poll (struct pollfd *__fds, nfds_t __nfds, int __timeout);
 
 __END_DECLS
diff --git a/io/sys/stat.h b/io/sys/stat.h
index 0a82ef39e8..87eca61275 100644
--- a/io/sys/stat.h
+++ b/io/sys/stat.h
@@ -238,7 +238,7 @@ extern int fstatat (int __fd, const char *__file, struct stat *__buf,
 # else
 extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__file,
 				     struct stat *__buf, int __flag),
-			   fstatat64) __THROW __nonnull ((2, 3));
+			   fstatat64) __nonnull ((2, 3));
 # endif
 
 extern int fstatat64 (int __fd, const char *__file, struct stat64 *__buf,
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 8127bb6933..ebb5f15c3a 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-16  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ 1872]
+	* charmaps/ISO_11548-1. New file.
+	Patch by Samuel Thibault <samuel.thibault@ens-lyon.org>.
+
 2005-11-11  Ulrich Drepper  <drepper@redhat.com>
 
 	[BZ #1294]
diff --git a/localedata/charmaps/ISO_11548-1 b/localedata/charmaps/ISO_11548-1
new file mode 100644
index 0000000000..ee2eb6b5e5
--- /dev/null
+++ b/localedata/charmaps/ISO_11548-1
@@ -0,0 +1,269 @@
+<code_set_name> ISO_11548-1
+<comment_char> %
+<escape_char> /
+% version: 1.0
+%  source: Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+% alias ISO/TR_11548-1
+CHARMAP
+<U2800>     /x00 BRAILLE PATTERN BLANK
+<U2801>     /x01 BRAILLE PATTERN DOTS-1
+<U2802>     /x02 BRAILLE PATTERN DOTS-2
+<U2803>     /x03 BRAILLE PATTERN DOTS-12
+<U2804>     /x04 BRAILLE PATTERN DOTS-3
+<U2805>     /x05 BRAILLE PATTERN DOTS-13
+<U2806>     /x06 BRAILLE PATTERN DOTS-23
+<U2807>     /x07 BRAILLE PATTERN DOTS-123
+<U2808>     /x08 BRAILLE PATTERN DOTS-4
+<U2809>     /x09 BRAILLE PATTERN DOTS-14
+<U280A>     /x0a BRAILLE PATTERN DOTS-24
+<U280B>     /x0b BRAILLE PATTERN DOTS-124
+<U280C>     /x0c BRAILLE PATTERN DOTS-34
+<U280D>     /x0d BRAILLE PATTERN DOTS-134
+<U280E>     /x0e BRAILLE PATTERN DOTS-234
+<U280F>     /x0f BRAILLE PATTERN DOTS-1234
+<U2810>     /x10 BRAILLE PATTERN DOTS-5
+<U2811>     /x11 BRAILLE PATTERN DOTS-15
+<U2812>     /x12 BRAILLE PATTERN DOTS-25
+<U2813>     /x13 BRAILLE PATTERN DOTS-125
+<U2814>     /x14 BRAILLE PATTERN DOTS-35
+<U2815>     /x15 BRAILLE PATTERN DOTS-135
+<U2816>     /x16 BRAILLE PATTERN DOTS-235
+<U2817>     /x17 BRAILLE PATTERN DOTS-1235
+<U2818>     /x18 BRAILLE PATTERN DOTS-45
+<U2819>     /x19 BRAILLE PATTERN DOTS-145
+<U281A>     /x1a BRAILLE PATTERN DOTS-245
+<U281B>     /x1b BRAILLE PATTERN DOTS-1245
+<U281C>     /x1c BRAILLE PATTERN DOTS-345
+<U281D>     /x1d BRAILLE PATTERN DOTS-1345
+<U281E>     /x1e BRAILLE PATTERN DOTS-2345
+<U281F>     /x1f BRAILLE PATTERN DOTS-12345
+<U2820>     /x20 BRAILLE PATTERN DOTS-6
+<U2821>     /x21 BRAILLE PATTERN DOTS-16
+<U2822>     /x22 BRAILLE PATTERN DOTS-26
+<U2823>     /x23 BRAILLE PATTERN DOTS-126
+<U2824>     /x24 BRAILLE PATTERN DOTS-36
+<U2825>     /x25 BRAILLE PATTERN DOTS-136
+<U2826>     /x26 BRAILLE PATTERN DOTS-236
+<U2827>     /x27 BRAILLE PATTERN DOTS-1236
+<U2828>     /x28 BRAILLE PATTERN DOTS-46
+<U2829>     /x29 BRAILLE PATTERN DOTS-146
+<U282A>     /x2a BRAILLE PATTERN DOTS-246
+<U282B>     /x2b BRAILLE PATTERN DOTS-1246
+<U282C>     /x2c BRAILLE PATTERN DOTS-346
+<U282D>     /x2d BRAILLE PATTERN DOTS-1346
+<U282E>     /x2e BRAILLE PATTERN DOTS-2346
+<U282F>     /x2f BRAILLE PATTERN DOTS-12346
+<U2830>     /x30 BRAILLE PATTERN DOTS-56
+<U2831>     /x31 BRAILLE PATTERN DOTS-156
+<U2832>     /x32 BRAILLE PATTERN DOTS-256
+<U2833>     /x33 BRAILLE PATTERN DOTS-1256
+<U2834>     /x34 BRAILLE PATTERN DOTS-356
+<U2835>     /x35 BRAILLE PATTERN DOTS-1356
+<U2836>     /x36 BRAILLE PATTERN DOTS-2356
+<U2837>     /x37 BRAILLE PATTERN DOTS-12356
+<U2838>     /x38 BRAILLE PATTERN DOTS-456
+<U2839>     /x39 BRAILLE PATTERN DOTS-1456
+<U283A>     /x3a BRAILLE PATTERN DOTS-2456
+<U283B>     /x3b BRAILLE PATTERN DOTS-12456
+<U283C>     /x3c BRAILLE PATTERN DOTS-3456
+<U283D>     /x3d BRAILLE PATTERN DOTS-13456
+<U283E>     /x3e BRAILLE PATTERN DOTS-23456
+<U283F>     /x3f BRAILLE PATTERN DOTS-123456
+<U2840>     /x40 BRAILLE PATTERN DOTS-7
+<U2841>     /x41 BRAILLE PATTERN DOTS-17
+<U2842>     /x42 BRAILLE PATTERN DOTS-27
+<U2843>     /x43 BRAILLE PATTERN DOTS-127
+<U2844>     /x44 BRAILLE PATTERN DOTS-37
+<U2845>     /x45 BRAILLE PATTERN DOTS-137
+<U2846>     /x46 BRAILLE PATTERN DOTS-237
+<U2847>     /x47 BRAILLE PATTERN DOTS-1237
+<U2848>     /x48 BRAILLE PATTERN DOTS-47
+<U2849>     /x49 BRAILLE PATTERN DOTS-147
+<U284A>     /x4a BRAILLE PATTERN DOTS-247
+<U284B>     /x4b BRAILLE PATTERN DOTS-1247
+<U284C>     /x4c BRAILLE PATTERN DOTS-347
+<U284D>     /x4d BRAILLE PATTERN DOTS-1347
+<U284E>     /x4e BRAILLE PATTERN DOTS-2347
+<U284F>     /x4f BRAILLE PATTERN DOTS-12347
+<U2850>     /x50 BRAILLE PATTERN DOTS-57
+<U2851>     /x51 BRAILLE PATTERN DOTS-157
+<U2852>     /x52 BRAILLE PATTERN DOTS-257
+<U2853>     /x53 BRAILLE PATTERN DOTS-1257
+<U2854>     /x54 BRAILLE PATTERN DOTS-357
+<U2855>     /x55 BRAILLE PATTERN DOTS-1357
+<U2856>     /x56 BRAILLE PATTERN DOTS-2357
+<U2857>     /x57 BRAILLE PATTERN DOTS-12357
+<U2858>     /x58 BRAILLE PATTERN DOTS-457
+<U2859>     /x59 BRAILLE PATTERN DOTS-1457
+<U285A>     /x5a BRAILLE PATTERN DOTS-2457
+<U285B>     /x5b BRAILLE PATTERN DOTS-12457
+<U285C>     /x5c BRAILLE PATTERN DOTS-3457
+<U285D>     /x5d BRAILLE PATTERN DOTS-13457
+<U285E>     /x5e BRAILLE PATTERN DOTS-23457
+<U285F>     /x5f BRAILLE PATTERN DOTS-123457
+<U2860>     /x60 BRAILLE PATTERN DOTS-67
+<U2861>     /x61 BRAILLE PATTERN DOTS-167
+<U2862>     /x62 BRAILLE PATTERN DOTS-267
+<U2863>     /x63 BRAILLE PATTERN DOTS-1267
+<U2864>     /x64 BRAILLE PATTERN DOTS-367
+<U2865>     /x65 BRAILLE PATTERN DOTS-1367
+<U2866>     /x66 BRAILLE PATTERN DOTS-2367
+<U2867>     /x67 BRAILLE PATTERN DOTS-12367
+<U2868>     /x68 BRAILLE PATTERN DOTS-467
+<U2869>     /x69 BRAILLE PATTERN DOTS-1467
+<U286A>     /x6a BRAILLE PATTERN DOTS-2467
+<U286B>     /x6b BRAILLE PATTERN DOTS-12467
+<U286C>     /x6c BRAILLE PATTERN DOTS-3467
+<U286D>     /x6d BRAILLE PATTERN DOTS-13467
+<U286E>     /x6e BRAILLE PATTERN DOTS-23467
+<U286F>     /x6f BRAILLE PATTERN DOTS-123467
+<U2870>     /x70 BRAILLE PATTERN DOTS-567
+<U2871>     /x71 BRAILLE PATTERN DOTS-1567
+<U2872>     /x72 BRAILLE PATTERN DOTS-2567
+<U2873>     /x73 BRAILLE PATTERN DOTS-12567
+<U2874>     /x74 BRAILLE PATTERN DOTS-3567
+<U2875>     /x75 BRAILLE PATTERN DOTS-13567
+<U2876>     /x76 BRAILLE PATTERN DOTS-23567
+<U2877>     /x77 BRAILLE PATTERN DOTS-123567
+<U2878>     /x78 BRAILLE PATTERN DOTS-4567
+<U2879>     /x79 BRAILLE PATTERN DOTS-14567
+<U287A>     /x7a BRAILLE PATTERN DOTS-24567
+<U287B>     /x7b BRAILLE PATTERN DOTS-124567
+<U287C>     /x7c BRAILLE PATTERN DOTS-34567
+<U287D>     /x7d BRAILLE PATTERN DOTS-134567
+<U287E>     /x7e BRAILLE PATTERN DOTS-234567
+<U287F>     /x7f BRAILLE PATTERN DOTS-1234567
+<U2880>     /x80 BRAILLE PATTERN DOTS-8
+<U2881>     /x81 BRAILLE PATTERN DOTS-18
+<U2882>     /x82 BRAILLE PATTERN DOTS-28
+<U2883>     /x83 BRAILLE PATTERN DOTS-128
+<U2884>     /x84 BRAILLE PATTERN DOTS-38
+<U2885>     /x85 BRAILLE PATTERN DOTS-138
+<U2886>     /x86 BRAILLE PATTERN DOTS-238
+<U2887>     /x87 BRAILLE PATTERN DOTS-1238
+<U2888>     /x88 BRAILLE PATTERN DOTS-48
+<U2889>     /x89 BRAILLE PATTERN DOTS-148
+<U288A>     /x8a BRAILLE PATTERN DOTS-248
+<U288B>     /x8b BRAILLE PATTERN DOTS-1248
+<U288C>     /x8c BRAILLE PATTERN DOTS-348
+<U288D>     /x8d BRAILLE PATTERN DOTS-1348
+<U288E>     /x8e BRAILLE PATTERN DOTS-2348
+<U288F>     /x8f BRAILLE PATTERN DOTS-12348
+<U2890>     /x90 BRAILLE PATTERN DOTS-58
+<U2891>     /x91 BRAILLE PATTERN DOTS-158
+<U2892>     /x92 BRAILLE PATTERN DOTS-258
+<U2893>     /x93 BRAILLE PATTERN DOTS-1258
+<U2894>     /x94 BRAILLE PATTERN DOTS-358
+<U2895>     /x95 BRAILLE PATTERN DOTS-1358
+<U2896>     /x96 BRAILLE PATTERN DOTS-2358
+<U2897>     /x97 BRAILLE PATTERN DOTS-12358
+<U2898>     /x98 BRAILLE PATTERN DOTS-458
+<U2899>     /x99 BRAILLE PATTERN DOTS-1458
+<U289A>     /x9a BRAILLE PATTERN DOTS-2458
+<U289B>     /x9b BRAILLE PATTERN DOTS-12458
+<U289C>     /x9c BRAILLE PATTERN DOTS-3458
+<U289D>     /x9d BRAILLE PATTERN DOTS-13458
+<U289E>     /x9e BRAILLE PATTERN DOTS-23458
+<U289F>     /x9f BRAILLE PATTERN DOTS-123458
+<U28A0>     /xa0 BRAILLE PATTERN DOTS-68
+<U28A1>     /xa1 BRAILLE PATTERN DOTS-168
+<U28A2>     /xa2 BRAILLE PATTERN DOTS-268
+<U28A3>     /xa3 BRAILLE PATTERN DOTS-1268
+<U28A4>     /xa4 BRAILLE PATTERN DOTS-368
+<U28A5>     /xa5 BRAILLE PATTERN DOTS-1368
+<U28A6>     /xa6 BRAILLE PATTERN DOTS-2368
+<U28A7>     /xa7 BRAILLE PATTERN DOTS-12368
+<U28A8>     /xa8 BRAILLE PATTERN DOTS-468
+<U28A9>     /xa9 BRAILLE PATTERN DOTS-1468
+<U28AA>     /xaa BRAILLE PATTERN DOTS-2468
+<U28AB>     /xab BRAILLE PATTERN DOTS-12468
+<U28AC>     /xac BRAILLE PATTERN DOTS-3468
+<U28AD>     /xad BRAILLE PATTERN DOTS-13468
+<U28AE>     /xae BRAILLE PATTERN DOTS-23468
+<U28AF>     /xaf BRAILLE PATTERN DOTS-123468
+<U28B0>     /xb0 BRAILLE PATTERN DOTS-568
+<U28B1>     /xb1 BRAILLE PATTERN DOTS-1568
+<U28B2>     /xb2 BRAILLE PATTERN DOTS-2568
+<U28B3>     /xb3 BRAILLE PATTERN DOTS-12568
+<U28B4>     /xb4 BRAILLE PATTERN DOTS-3568
+<U28B5>     /xb5 BRAILLE PATTERN DOTS-13568
+<U28B6>     /xb6 BRAILLE PATTERN DOTS-23568
+<U28B7>     /xb7 BRAILLE PATTERN DOTS-123568
+<U28B8>     /xb8 BRAILLE PATTERN DOTS-4568
+<U28B9>     /xb9 BRAILLE PATTERN DOTS-14568
+<U28BA>     /xba BRAILLE PATTERN DOTS-24568
+<U28BB>     /xbb BRAILLE PATTERN DOTS-124568
+<U28BC>     /xbc BRAILLE PATTERN DOTS-34568
+<U28BD>     /xbd BRAILLE PATTERN DOTS-134568
+<U28BE>     /xbe BRAILLE PATTERN DOTS-234568
+<U28BF>     /xbf BRAILLE PATTERN DOTS-1234568
+<U28C0>     /xc0 BRAILLE PATTERN DOTS-78
+<U28C1>     /xc1 BRAILLE PATTERN DOTS-178
+<U28C2>     /xc2 BRAILLE PATTERN DOTS-278
+<U28C3>     /xc3 BRAILLE PATTERN DOTS-1278
+<U28C4>     /xc4 BRAILLE PATTERN DOTS-378
+<U28C5>     /xc5 BRAILLE PATTERN DOTS-1378
+<U28C6>     /xc6 BRAILLE PATTERN DOTS-2378
+<U28C7>     /xc7 BRAILLE PATTERN DOTS-12378
+<U28C8>     /xc8 BRAILLE PATTERN DOTS-478
+<U28C9>     /xc9 BRAILLE PATTERN DOTS-1478
+<U28CA>     /xca BRAILLE PATTERN DOTS-2478
+<U28CB>     /xcb BRAILLE PATTERN DOTS-12478
+<U28CC>     /xcc BRAILLE PATTERN DOTS-3478
+<U28CD>     /xcd BRAILLE PATTERN DOTS-13478
+<U28CE>     /xce BRAILLE PATTERN DOTS-23478
+<U28CF>     /xcf BRAILLE PATTERN DOTS-123478
+<U28D0>     /xd0 BRAILLE PATTERN DOTS-578
+<U28D1>     /xd1 BRAILLE PATTERN DOTS-1578
+<U28D2>     /xd2 BRAILLE PATTERN DOTS-2578
+<U28D3>     /xd3 BRAILLE PATTERN DOTS-12578
+<U28D4>     /xd4 BRAILLE PATTERN DOTS-3578
+<U28D5>     /xd5 BRAILLE PATTERN DOTS-13578
+<U28D6>     /xd6 BRAILLE PATTERN DOTS-23578
+<U28D7>     /xd7 BRAILLE PATTERN DOTS-123578
+<U28D8>     /xd8 BRAILLE PATTERN DOTS-4578
+<U28D9>     /xd9 BRAILLE PATTERN DOTS-14578
+<U28DA>     /xda BRAILLE PATTERN DOTS-24578
+<U28DB>     /xdb BRAILLE PATTERN DOTS-124578
+<U28DC>     /xdc BRAILLE PATTERN DOTS-34578
+<U28DD>     /xdd BRAILLE PATTERN DOTS-134578
+<U28DE>     /xde BRAILLE PATTERN DOTS-234578
+<U28DF>     /xdf BRAILLE PATTERN DOTS-1234578
+<U28E0>     /xe0 BRAILLE PATTERN DOTS-678
+<U28E1>     /xe1 BRAILLE PATTERN DOTS-1678
+<U28E2>     /xe2 BRAILLE PATTERN DOTS-2678
+<U28E3>     /xe3 BRAILLE PATTERN DOTS-12678
+<U28E4>     /xe4 BRAILLE PATTERN DOTS-3678
+<U28E5>     /xe5 BRAILLE PATTERN DOTS-13678
+<U28E6>     /xe6 BRAILLE PATTERN DOTS-23678
+<U28E7>     /xe7 BRAILLE PATTERN DOTS-123678
+<U28E8>     /xe8 BRAILLE PATTERN DOTS-4678
+<U28E9>     /xe9 BRAILLE PATTERN DOTS-14678
+<U28EA>     /xea BRAILLE PATTERN DOTS-24678
+<U28EB>     /xeb BRAILLE PATTERN DOTS-124678
+<U28EC>     /xec BRAILLE PATTERN DOTS-34678
+<U28ED>     /xed BRAILLE PATTERN DOTS-134678
+<U28EE>     /xee BRAILLE PATTERN DOTS-234678
+<U28EF>     /xef BRAILLE PATTERN DOTS-1234678
+<U28F0>     /xf0 BRAILLE PATTERN DOTS-5678
+<U28F1>     /xf1 BRAILLE PATTERN DOTS-15678
+<U28F2>     /xf2 BRAILLE PATTERN DOTS-25678
+<U28F3>     /xf3 BRAILLE PATTERN DOTS-125678
+<U28F4>     /xf4 BRAILLE PATTERN DOTS-35678
+<U28F5>     /xf5 BRAILLE PATTERN DOTS-135678
+<U28F6>     /xf6 BRAILLE PATTERN DOTS-235678
+<U28F7>     /xf7 BRAILLE PATTERN DOTS-1235678
+<U28F8>     /xf8 BRAILLE PATTERN DOTS-45678
+<U28F9>     /xf9 BRAILLE PATTERN DOTS-145678
+<U28FA>     /xfa BRAILLE PATTERN DOTS-245678
+<U28FB>     /xfb BRAILLE PATTERN DOTS-1245678
+<U28FC>     /xfc BRAILLE PATTERN DOTS-345678
+<U28FD>     /xfd BRAILLE PATTERN DOTS-1345678
+<U28FE>     /xfe BRAILLE PATTERN DOTS-2345678
+<U28FF>     /xff BRAILLE PATTERN DOTS-12345678
+END CHARMAP
+
+WIDTH
+<U2800>...<U28FF>	1
+END WIDTH
diff --git a/sysdeps/sh/bits/setjmp.h b/sysdeps/sh/bits/setjmp.h
index 22497703af..d92feea214 100644
--- a/sysdeps/sh/bits/setjmp.h
+++ b/sysdeps/sh/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2003, 2005 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
@@ -51,6 +51,6 @@ typedef struct
 /* Test if longjmp to JMPBUF would unwind the frame
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
-  ((void *) (address) < &(jmpbuf)[0].__regs[7])
+  ((void *) (address) < (jmpbuf)[0].__regs[7])
 
 #endif  /* bits/setjmp.h */
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index 9d587897ad..6880a2e636 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -105,13 +105,13 @@ struct in_pktinfo
    The first word in the comment at the right is the data type used;
    "bool" means a boolean value stored in an `int'.  */
 #define IPV6_ADDRFORM		1
-#define IPV6_PKTINFO		2
-#define IPV6_HOPOPTS		3
-#define IPV6_DSTOPTS		4
-#define IPV6_RTHDR		5
-#define IPV6_PKTOPTIONS		6
+#define IPV6_2292PKTINFO	2
+#define IPV6_2292HOPOPTS	3
+#define IPV6_2292DSTOPTS	4
+#define IPV6_2292RTHDR		5
+#define IPV6_2292PKTOPTIONS	6
 #define IPV6_CHECKSUM		7
-#define IPV6_HOPLIMIT		8
+#define IPV6_2292HOPLIMIT	8
 
 #define SCM_SRCRT		IPV6_RXSRCRT
 
@@ -133,6 +133,21 @@ struct in_pktinfo
 #define IPV6_IPSEC_POLICY	34
 #define IPV6_XFRM_POLICY	35
 
+#define IPV6_RECVPKTINFO	49
+#define IPV6_PKTINFO		50
+#define IPV6_RECVHOPLIMIT	51
+#define IPV6_HOPLIMIT		52
+#define IPV6_RECVHOPOPTS	53
+#define IPV6_HOPOPTS		54
+#define IPV6_RTHDRDSTOPTS	55
+#define IPV6_RECVRTHDR		56
+#define IPV6_RTHDR		57
+#define IPV6_RECVDSTOPTS	58
+#define IPV6_DSTOPTS		59
+
+#define IPV6_RECVTCLASS		66
+#define IPV6_TCLASS		67
+
 /* Obsolete synonyms for the above.  */
 #define IPV6_ADD_MEMBERSHIP	IPV6_JOIN_GROUP
 #define IPV6_DROP_MEMBERSHIP	IPV6_LEAVE_GROUP
diff --git a/sysdeps/unix/sysv/linux/fchownat.c b/sysdeps/unix/sysv/linux/fchownat.c
index d3cb992a09..f8bc5e3033 100644
--- a/sysdeps/unix/sysv/linux/fchownat.c
+++ b/sysdeps/unix/sysv/linux/fchownat.c
@@ -20,6 +20,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <unistd.h>
 #include <sys/types.h>
 
@@ -67,7 +68,10 @@ fchownat (fd, file, owner, group, flag)
     result = INTERNAL_SYSCALL (chown, err, 3, file, owner, group);
 
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
-    __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+      result = -1;
+    }
 
   return result;
 }
diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
index 2fdedb0ff4..7ab0477c5e 100644
--- a/sysdeps/unix/sysv/linux/futimesat.c
+++ b/sysdeps/unix/sysv/linux/futimesat.c
@@ -20,6 +20,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <utime.h>
 #include <sys/time.h>
 #include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index 8c41db710c..2360f50d98 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -128,8 +128,8 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
     return __xstat64_conv (vers, &kst, st);
 
  fail:
+#endif
   __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
 
   return -1;
-#endif
 }
diff --git a/sysdeps/unix/sysv/linux/i386/fchownat.c b/sysdeps/unix/sysv/linux/i386/fchownat.c
index 331623f73d..eb74fad8e0 100644
--- a/sysdeps/unix/sysv/linux/i386/fchownat.c
+++ b/sysdeps/unix/sysv/linux/i386/fchownat.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <string.h>
 #include <unistd.h>
 
 #include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
index 2fc89e69c4..d5bc6021bc 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -24,6 +24,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <kernel_stat.h>
 
@@ -47,7 +48,7 @@ extern int __have_no_stat64;
 int
 __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 {
-  if (flag & ~AT_SYMLINK_NOFOLLOW)
+  if (__builtin_expect (flag & ~AT_SYMLINK_NOFOLLOW, 0))
     {
       __set_errno (EINVAL);
       return -1;
@@ -138,7 +139,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 
  out:
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
-    __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
+      result = -1;
+    }
 
   return result;
 }
diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
index 31662ea053..9d94d5f86c 100644
--- a/sysdeps/unix/sysv/linux/renameat.c
+++ b/sysdeps/unix/sysv/linux/renameat.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <string.h>
 #include <sysdep.h>
 
 
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c b/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c
index b95665cad3..ac6006af81 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c
@@ -19,6 +19,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <string.h>
 #include <unistd.h>
 
 #include <sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h
index 6c310bcff5..68f173a04d 100644
--- a/sysdeps/unix/sysv/linux/sys/epoll.h
+++ b/sysdeps/unix/sysv/linux/sys/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 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
@@ -98,9 +98,12 @@ extern int epoll_ctl (int __epfd, int __op, int __fd,
    "events" parameter is a buffer that will contain triggered
    events. The "maxevents" is the maximum number of events to be
    returned ( usually size of "events" ). The "timeout" parameter
-   specifies the maximum wait time in milliseconds (-1 == infinite).  */
+   specifies the maximum wait time in milliseconds (-1 == infinite).
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
 extern int epoll_wait (int __epfd, struct epoll_event *__events,
-		       int __maxevents, int __timeout) __THROW;
+		       int __maxevents, int __timeout);
 
 __END_DECLS
 
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index d5c3e650bc..88e1f5a294 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -10,7 +10,7 @@ create_module	EXTRA	create_module	3	create_module
 delete_module	EXTRA	delete_module	3	delete_module
 epoll_create	EXTRA	epoll_create	i:i	epoll_create
 epoll_ctl	EXTRA	epoll_ctl	i:iiip	epoll_ctl
-epoll_wait	EXTRA	epoll_wait	i:ipii	epoll_wait
+epoll_wait	EXTRA	epoll_wait	Ci:ipii	epoll_wait
 fdatasync	-	fdatasync	i:i	fdatasync
 flock		-	flock		i:ii	__flock		flock
 fork		-	fork		i:	__libc_fork	__fork fork
diff --git a/sysdeps/unix/sysv/linux/unlinkat.c b/sysdeps/unix/sysv/linux/unlinkat.c
index c590e71ada..36c0215b48 100644
--- a/sysdeps/unix/sysv/linux/unlinkat.c
+++ b/sysdeps/unix/sysv/linux/unlinkat.c
@@ -20,6 +20,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <unistd.h>
 
 
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
index 70e73571f7..faa028cf26 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
@@ -24,6 +24,7 @@
 #include <fcntl.h>
 #include <stddef.h>
 #include <stdio.h>
+#include <string.h>
 #include <sys/stat.h>
 
 #include <sysdep.h>
@@ -70,7 +71,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
     res = INTERNAL_SYSCALL (stat, err, 2, file, CHECK_1 (st));
 
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0))
-    __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (res, err), fd, buf);
+    {
+      __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (res, err), fd, buf);
+      res = -1;
+    }
 
   return res;
 }