about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--inet/Makefile2
-rw-r--r--inet/netinet/igmp.h (renamed from sysdeps/unix/sysv/linux/netinet/igmp.h)41
-rw-r--r--libio/bits/stdio.h18
-rw-r--r--localedata/ChangeLog7
-rw-r--r--localedata/locales/st_ZA254
-rw-r--r--localedata/locales/xh_ZA235
-rw-r--r--localedata/locales/zu_ZA241
-rw-r--r--manual/llio.texi11
-rw-r--r--manual/resource.texi175
-rw-r--r--sysdeps/pthread/lio_listio64.c9
-rw-r--r--sysdeps/unix/sysv/linux/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
13 files changed, 998 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 880ed65ed9..a695b28374 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2003-05-09  Thorsten Kukuk  <kukuk@suse.de>
+
+	* sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel
+	headers, add defines from kernel header, move it from here...
+	* inet/netinet/igmp.h: ... to here.
+	* inet/Makefile (headers): Add netinet/igmp.h.
+	* sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h.
+	* sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h.
+
+2003-05-10  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL,
+	use dummy sigevent structure with SIGEV_NONE [PR libc/5015].
+
+2003-05-09  Thorsten Kukuk <kukuk@suse.de>
+
+	* libio/bits/stdio.h: Sync prototypes with libio/stdio.h
+	(remove __THROW from possible cancellation points).
+
 2003-05-10  Ulrich Drepper  <drepper@redhat.com>
 
 	* posix/sched.h (CPU_SETSIZE): Define.
diff --git a/inet/Makefile b/inet/Makefile
index 3706d9811e..60a1a2e8fe 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -22,7 +22,7 @@
 subdir	:= inet
 
 headers	:= netinet/ether.h netinet/in.h netinet/in_systm.h \
-	   netinet/if_ether.h \
+	   netinet/if_ether.h netinet/igmp.h \
 	   netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
 	   aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h
 
diff --git a/sysdeps/unix/sysv/linux/netinet/igmp.h b/inet/netinet/igmp.h
index a4683bd7ff..2bffadccea 100644
--- a/sysdeps/unix/sysv/linux/netinet/igmp.h
+++ b/inet/netinet/igmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2003 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
@@ -22,8 +22,43 @@
 #include <sys/cdefs.h>
 #include <sys/types.h>
 
-#include <asm/types.h>
-#include <linux/igmp.h>
+#define IGMP_HOST_MEMBERSHIP_QUERY      0x11    /* From RFC1112 */
+#define IGMP_HOST_MEMBERSHIP_REPORT     0x12    /* Ditto */
+#define IGMP_DVMRP                      0x13    /* DVMRP routing */
+#define IGMP_PIM                        0x14    /* PIM routing */
+#define IGMP_TRACE                      0x15
+#define IGMP_HOST_NEW_MEMBERSHIP_REPORT 0x16    /* New version of 0x11 */
+#define IGMP_HOST_LEAVE_MESSAGE         0x17
+
+#define IGMP_MTRACE_RESP                0x1e
+#define IGMP_MTRACE                     0x1f
+
+/*
+ *      Use the BSD names for these for compatibility
+ */
+
+#define IGMP_DELAYING_MEMBER            0x01
+#define IGMP_IDLE_MEMBER                0x02
+#define IGMP_LAZY_MEMBER                0x03
+#define IGMP_SLEEPING_MEMBER            0x04
+#define IGMP_AWAKENING_MEMBER           0x05
+
+#define IGMP_MINLEN                     8
+
+#define IGMP_MAX_HOST_REPORT_DELAY      10      /* max delay for response to */
+                                                /* query (in seconds)   */
+
+#define IGMP_TIMER_SCALE                10      /* denotes that the igmphdr->timer field */
+                                                /* specifies time in 10th of seconds     */
+
+#define IGMP_AGE_THRESHOLD              400     /* If this host don't hear any IGMP V1  */
+                                                /* message in this period of time,      */
+                                                /* revert to IGMP v2 router.            */
+
+#define IGMP_ALL_HOSTS          htonl(0xE0000001L)
+#define IGMP_ALL_ROUTER         htonl(0xE0000002L)
+#define IGMP_LOCAL_GROUP        htonl(0xE0000000L)
+#define IGMP_LOCAL_GROUP_MASK   htonl(0xFFFFFF00L)
 
 #ifdef __USE_BSD
 
diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h
index 118118adce..14ebd7e276 100644
--- a/libio/bits/stdio.h
+++ b/libio/bits/stdio.h
@@ -31,14 +31,14 @@
 #ifdef __USE_EXTERN_INLINES
 /* Write formatted output to stdout from argument list ARG.  */
 __STDIO_INLINE int
-vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
+vprintf (__const char *__restrict __fmt, _G_va_list __arg)
 {
   return vfprintf (stdout, __fmt, __arg);
 }
 
 /* Read a character from stdin.  */
 __STDIO_INLINE int
-getchar (void) __THROW
+getchar (void)
 {
   return _IO_getc (stdin);
 }
@@ -47,14 +47,14 @@ getchar (void) __THROW
 # if defined __USE_POSIX || defined __USE_MISC
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-getc_unlocked (FILE *__fp) __THROW
+getc_unlocked (FILE *__fp)
 {
   return _IO_getc_unlocked (__fp);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-getchar_unlocked (void) __THROW
+getchar_unlocked (void)
 {
   return _IO_getc_unlocked (stdin);
 }
@@ -63,7 +63,7 @@ getchar_unlocked (void) __THROW
 
 /* Write a character to stdout.  */
 __STDIO_INLINE int
-putchar (int __c) __THROW
+putchar (int __c)
 {
   return _IO_putc (__c, stdout);
 }
@@ -72,7 +72,7 @@ putchar (int __c) __THROW
 # ifdef __USE_MISC
 /* Faster version when locking is not necessary.  */
 __STDIO_INLINE int
-fputc_unlocked (int __c, FILE *__stream) __THROW
+fputc_unlocked (int __c, FILE *__stream)
 {
   return _IO_putc_unlocked (__c, __stream);
 }
@@ -82,14 +82,14 @@ fputc_unlocked (int __c, FILE *__stream) __THROW
 # if defined __USE_POSIX || defined __USE_MISC
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-putc_unlocked (int __c, FILE *__stream) __THROW
+putc_unlocked (int __c, FILE *__stream)
 {
   return _IO_putc_unlocked (__c, __stream);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-putchar_unlocked (int __c) __THROW
+putchar_unlocked (int __c)
 {
   return _IO_putc_unlocked (__c, stdout);
 }
@@ -99,7 +99,7 @@ putchar_unlocked (int __c) __THROW
 # ifdef	__USE_GNU
 /* Like `getdelim', but reads up to a newline.  */
 __STDIO_INLINE _IO_ssize_t
-getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
+getline (char **__lineptr, size_t *__n, FILE *__stream)
 {
   return __getdelim (__lineptr, __n, '\n', __stream);
 }
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index cfcf9c9377..28514d02a2 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,10 @@
+2003-05-10  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/st_ZA: New file.
+	* locales/xh_ZA: New file.
+	* locales/zu_ZA: New file.
+	Contribued by Dwayne Bailey <dwayne@translate.org.za>.
+
 2003-05-06  Ulrich Drepper  <drepper@redhat.com>
 
 	* locales/de_DE: Use two-letter abday values.
diff --git a/localedata/locales/st_ZA b/localedata/locales/st_ZA
new file mode 100644
index 0000000000..a8a4b24a14
--- /dev/null
+++ b/localedata/locales/st_ZA
@@ -0,0 +1,254 @@
+escape_char  /
+comment_char  %
+
+% ChangeLog
+% 0.1 (2003-04-21):
+%   - Initial Sotho locale for South Africa
+%     by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title      "Sotho locale for South Africa"
+source     "Zuza Software Foundation"
+address    "PO Box 13412, Mowbray, 7705, South Africa"
+contact    "Dwayne Bailey"
+email      "dwayne@translate.org.za"
+tel        "+27 (0)21 448 9265"
+fax        "+27 (0)21 448 9574"
+language   "Sotho"
+territory  "South Africa"
+revision   "0.1"
+date       "2003-04-21"
+%
+category  "st_ZA:2003";LC_IDENTIFICATION
+category  "st_ZA:2003";LC_CTYPE
+category  "st_ZA:2003";LC_COLLATE
+category  "st_ZA:2003";LC_TIME
+category  "st_ZA:2003";LC_NUMERIC
+category  "st_ZA:2003";LC_MONETARY
+category  "st_ZA:2003";LC_MESSAGES
+category  "st_ZA:2003";LC_PAPER
+category  "st_ZA:2003";LC_NAME
+category  "st_ZA:2003";LC_ADDRESS
+category  "st_ZA:2003";LC_TELEPHONE
+category  "st_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+
+% abday - The abbreviations for the week days:
+% - Son, Mma, Bed, Rar, Ne, Hla, Moq
+abday       "<U0053><U006F><U006E>";/
+            "<U004D><U006D><U0061>";/
+            "<U0042><U0065><U0064>";/
+            "<U0052><U0061><U0072>";/
+            "<U004E><U0065>";/
+            "<U0048><U006C><U0061>";/
+            "<U004D><U006F><U0071>"
+ 
+% day - The full names of the week days:
+% - Sontaha, Mmantaha, Labobedi, Laboraru, Labone, Labohlane, Moqebelo
+day         "<U0053><U006F><U006E><U0074><U0061><U0068><U0061>";/
+            "<U004D><U006D><U0061><U006E><U0074><U0061><U0068><U0061>";/
+            "<U004C><U0061><U0062><U006F><U0062><U0065><U0064><U0069>";/
+            "<U004C><U0061><U0062><U006F><U0072><U0061><U0072><U0075>";/
+            "<U004C><U0061><U0062><U006F><U006E><U0065>";/
+            "<U004C><U0061><U0062><U006F><U0068><U006C><U0061><U006E><U0065>";/
+            "<U004D><U006F><U0071><U0065><U0062><U0065><U006C><U006F>"
+ 
+% abmon - The abbreviations for the months 
+% - Phe, Kol, Ube, Mme, Mot, Jan, Upu, Pha, Leo, Mph, Pun, Tsh
+abmon       "<U0050><U0068><U0065>";"<U004B><U006F><U006C>";/
+            "<U0055><U0062><U0065>";"<U004D><U006D><U0065>";/
+            "<U004D><U006F><U0074>";"<U004A><U0061><U006E>";/
+            "<U0055><U0070><U0075>";"<U0050><U0068><U0061>";/
+            "<U004C><U0065><U006F>";"<U004D><U0070><U0068>";/
+            "<U0050><U0075><U006E>";"<U0054><U0073><U0068>"
+ 
+% mon - The full names of the months - 
+% - Phesekgong, Hlakola, Hlakubele, Mmese, Motsheanong, Phupjane, 
+%   Phupu, Phata, Leotshe, Mphalane, Pundungwane, Tshitwe
+mon         "<U0050><U0068><U0065><U0073><U0065><U006B><U0067><U006F><U006E><U0067>";/
+            "<U0048><U006C><U0061><U006B><U006F><U006C><U0061>";/
+            "<U0048><U006C><U0061><U006B><U0075><U0062><U0065><U006C><U0065>";/
+            "<U004D><U006D><U0065><U0073><U0065>";/
+            "<U004D><U006F><U0074><U0073><U0068><U0065><U0061><U006E><U006F><U006E><U0067>";/
+            "<U0050><U0068><U0075><U0070><U006A><U0061><U006E><U0065>";/
+            "<U0050><U0068><U0075><U0070><U0075>";/
+            "<U0050><U0068><U0061><U0074><U0061>";/
+            "<U004C><U0065><U006F><U0074><U0073><U0068><U0065>";/
+            "<U004D><U0070><U0068><U0061><U006C><U0061><U006E><U0065>";/
+            "<U0050><U0075><U006E><U0064><U0075><U006E><U0067><U0077><U0061><U006E><U0065>";/
+            "<U0054><U0073><U0068><U0069><U0074><U0077><U0065>"
+ 
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+%
+% "%a" (short weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (short month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+ 
+% Date representation to be referenced by the "%x" field descriptor -
+d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+ 
+% Time representation to be referenced by the "%X" field descriptor -
+t_fmt       "<U0025><U0054>"
+% "%T" (24-hour clock time in format HH:MM:SS)
+ 
+% Define representation of ante meridiem and post meridiem strings -
+am_pm       "";""
+% The "" mean 'default to "AM" and "PM".
+ 
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+t_fmt_ampm  ""
+% The "" means that this format is not supported.
+ 
+% Date representation not described in ISO/IEC 14652. Comes out as -
+% "%a %b %e %H:%M:%S %Z %Y" which is default "date" command output
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+%
+% %a - abbreviated weekday name,
+% %b - abreviated month name,
+% %e - day of month as a decimal number with leading space (1 to 31),
+% %H - hour (24-hour clock) as a decimal number (00 to 23),
+% %M - minute as a decimal number (00 to 59),
+% %S - seconds as a decimal number (00 to 59),
+% %Z - time-zone name,
+% %Y - year with century as a decimal number,e.g. 2001.
+ 
+END LC_TIME
+
+LC_MESSAGES
+% FIXME: Check both of these
+% The affirmative response -
+% "^[yY].*"
+yesexpr     "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+
+% The negative response -
+% "^[nN].*"
+noexpr      "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+% Format for addressing a person.
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+ 
+% FIXME - define all the following name_*
+% General salutation for any sex
+% name_gen    ""
+
+% Salutation for unmarried females - ""
+% name_miss   ""
+ 
+% Salutation for males - ""
+% name_mr     ""
+
+% Salutation for married females - ""
+% name_mrs    ""
+
+% Salutation valid for all females - "" (no term)
+% name_ms     ""
+
+END LC_NAME
+
+LC_ADDRESS
+% Country name in Sotho - "Afrika Borwa"
+country_name "<U0041><U0066><U0072><U0069><U006B><U0061><U0020><U0042><U006F><U0072><U0077><U0061>"
+ 
+% Abbreviated country postal name - "ZA"
+country_post "<U005A><U0041>"
+ 
+% ISO 3166 two letter country abbreviation - "ZA"
+country_ab2 "<U005A><U0041>"
+
+% FIXME define the following correctly
+% country_ab3 ""
+% country_car ""
+% country_isbn ""
+% country_num 
+ 
+% Language name in Sotho - "Sesotho"
+lang_name "<U0053><U0065><U0073><U006F><U0074><U0068><U006F>"
+
+% FIXME define the following correctly
+% lang_ab   ""
+% lang_term ""
+ 
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
new file mode 100644
index 0000000000..e067df3a6a
--- /dev/null
+++ b/localedata/locales/xh_ZA
@@ -0,0 +1,235 @@
+escape_char  /
+comment_char  %
+
+% ChangeLog
+% 0.1 (2003-05-08):
+%   - Initial Xhosa locale by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title      "Xhosa locale for South Africa"
+source     "Zuza Software Foundation"
+address    "PO Box 13412, Mowbray, 7705, South Africa"
+contact    "Dwayne Bailey"
+email      "dwayne@translate.org.za"
+tel        "+27 (0)21 448 9265"
+fax        "+27 (0)21 448 9574"
+language   "Xhosa"
+territory  "South Africa"
+revision   "0.1"
+date       "2003-05-08"
+%
+category  "xh_ZA:2003";LC_IDENTIFICATION
+category  "xh_ZA:2003";LC_CTYPE
+category  "xh_ZA:2003";LC_COLLATE
+category  "xh_ZA:2003";LC_TIME
+category  "xh_ZA:2003";LC_NUMERIC
+category  "xh_ZA:2003";LC_MONETARY
+category  "xh_ZA:2003";LC_MESSAGES
+category  "xh_ZA:2003";LC_PAPER
+category  "xh_ZA:2003";LC_NAME
+category  "xh_ZA:2003";LC_ADDRESS
+category  "xh_ZA:2003";LC_TELEPHONE
+category  "xh_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+% The abbreviations for the week days:
+% - Caw, Mvu, Bin, Tha, Sin, Hla, Mgq
+abday       "<U0043><U0061><U0077>";/
+            "<U004D><U0076><U0075>";/
+            "<U0042><U0069><U006E>";/
+            "<U0054><U0068><U0061>";/
+            "<U0053><U0069><U006E>";/
+            "<U0048><U006C><U0061>";/
+            "<U004D><U0067><U0071>"
+%
+% The full names of the week days:
+% - Cawe, Mvulo, Lwesibini, Lwesithathu, Lwesine, Lwesihlanu, Mgqibelo
+day         "<U0043><U0061><U0077><U0065>";/
+            "<U004D><U0076><U0075><U006C><U006F>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0062><U0069><U006E><U0069>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0074><U0068><U0061><U0074><U0068><U0075>";/
+            "<U004C><U0077><U0065><U0073><U0069><U006E><U0065>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
+            "<U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
+%
+% The abbreviations for the months 
+% - Jan, Feb, Mat, Epr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+            "<U004D><U0061><U0074>";"<U0045><U0070><U0072>";/
+            "<U004D><U0065><U0079>";"<U004A><U0075><U006E>";/
+            "<U004A><U0075><U006C>";"<U0041><U0067><U0061>";/
+            "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+            "<U004E><U006F><U0076>";"<U0044><U0069><U0073>"
+%
+% The full names of the months - 
+% - Janyuwari, Februwari, Matshi, Epreli, Meyi, Juni, Julayi, Agasti, Septemba,
+%   Okthoba, Novemba, Disemba
+mon         "<U004A><U0061><U006E><U0079><U0075><U0077><U0061><U0072><U0069>";/
+            "<U0046><U0065><U0062><U0072><U0075><U0077><U0061><U0072><U0069>";/
+            "<U004D><U0061><U0074><U0073><U0068><U0069>";/
+            "<U0045><U0070><U0072><U0065><U006C><U0069>";/
+            "<U004D><U0065><U0079><U0069>";/
+            "<U004A><U0075><U006E><U0069>";/
+            "<U004A><U0075><U006C><U0061><U0079><U0069>";/
+            "<U0041><U0067><U0061><U0073><U0074><U0069>";/
+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0061>";/
+            "<U004F><U006B><U0074><U0068><U006F><U0062><U0061>";/
+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0061>";/
+            "<U0044><U0069><U0073><U0065><U006D><U0062><U0061>"
+%
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% "%a" (weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+%
+% Date representation to be referenced by the "%x" field % descriptor -
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+%
+% Time representation to be referenced by the "%X" field descriptor -
+% "%T" (24-hour clock time in format HH:MM:SS)
+t_fmt       "<U0025><U0054>"
+%
+% Define representation of ante meridiem and post meridiem strings -
+% The ""s means default to "AM" and "PM".
+am_pm       "";""
+%
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+% field descriptor -
+% The "" means that this format is not supported.
+t_fmt_ampm  ""
+%
+% Date representation not described in ISO/IEC 14652. 
+% Comes out as - "%a %b %e %H:%M:%S %Z %Y" 
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+% which is:
+% abbreviated weekday name,
+% day of month as a decimal number (01 to 31),
+% day of month as a decimal number with leading space (1 to 31),
+% hour (24-hour clock) as a decimal number (00 to 23),
+% minute as a decimal number (00 to 59),
+% seconds as a decimal number (00 to 59),
+% time-zone name,
+% year with century as a decimal number,e.g. 2001.
+%
+END LC_TIME
+
+LC_MESSAGES
+% The affirmative response -
+% "^[yYeE].*"
+yesexpr     "<U005E><U005B><U0079><U0059><U0065><U0045><U005D><U002E><U002A>"
+%
+% The negative response -
+% "^[nNhH].*"
+noexpr      "<U005E><U005B><U006E><U004E><U0068><U0048><U005D><U002E><U002A>"
+%
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+% Format for addressing a person.
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+%
+% Salutation for unmarried females - "Nkosazana"
+name_miss   "<U004E><U006B><U006F><U0073><U0061><U007A><U0061><U006E><U0061>"
+%
+% Salutation for males - "Mnumzana"
+name_mr     "<U004D><U006E><U0075><U006D><U007A><U0061><U006E><U0061>"
+%
+% Salutation for married females - "Nkosikazi"
+name_mrs    "<U004E><U006B><U006F><U0073><U0069><U006B><U0061><U007A><U0069>"
+%
+% Salutation valid for all females - "" (no term)
+name_ms     ""
+END LC_NAME
+
+LC_ADDRESS
+% Country name in Xhosa - "Mzantsi Afrika"
+country_name "<U004D><U007A><U0061><U006E><U0074><U0073><U0069><U0020>/
+<U0041><U0066><U0072><U0069><U006B><U0061>"
+%
+% Abbreviated country postal name - "ZA"
+country_post "<U005A><U0041>"
+%
+% ISO 3166 two letter country abbreviation - "ZA"
+country_ab2 "<U005A><U0041>"
+%
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/localedata/locales/zu_ZA b/localedata/locales/zu_ZA
new file mode 100644
index 0000000000..a0eed1c45a
--- /dev/null
+++ b/localedata/locales/zu_ZA
@@ -0,0 +1,241 @@
+escape_char  /
+comment_char  %
+
+% ChangeLog
+% 0.1 (2003-04-19):
+%   - Initial Zulu locale by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title      "Zulu locale for South Africa"
+source     "Zuza Software Foundation"
+address    "PO Box 13412, Mowbray, 7705, South Africa"
+contact    "Dwayne Bailey"
+email      "dwayne@translate.org.za"
+tel        "+27 (0)21 448 9265"
+fax        "+27 (0)21 448 9574"
+language   "Zulu"
+territory  "South Africa"
+revision   "0.1"
+date       "2003-04-19"
+%
+category  "zu_ZA:2003";LC_IDENTIFICATION
+category  "zu_ZA:2003";LC_CTYPE
+category  "zu_ZA:2003";LC_COLLATE
+category  "zu_ZA:2003";LC_TIME
+category  "zu_ZA:2003";LC_NUMERIC
+category  "zu_ZA:2003";LC_MONETARY
+category  "zu_ZA:2003";LC_MESSAGES
+category  "zu_ZA:2003";LC_PAPER
+category  "zu_ZA:2003";LC_NAME
+category  "zu_ZA:2003";LC_ADDRESS
+category  "zu_ZA:2003";LC_TELEPHONE
+category  "zu_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+%
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+%
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+% abday - The abbreviations for the week days:
+% - Son, Mso, Bil, Tha, Sin, Hla, Mgq
+abday       "<U0053><U006F><U006E>";/
+            "<U004D><U0073><U006F>";/
+            "<U0042><U0069><U006C>";/
+            "<U0054><U0068><U0061>";/
+            "<U0053><U0069><U006E>";/
+            "<U0048><U006C><U0061>";/
+            "<U004D><U0067><U0071>"
+ 
+% day - The full names of the week days:
+% - Sonto, Msombuluko, Lwesibili, Lwesithathu, Lwesine, Lwesihlanu, Mgqibelo
+day         "<U0053><U006F><U006E><U0074><U006F>";/
+            "<U004D><U0073><U006F><U006D><U0062><U0075><U006C><U0075><U006B><U006F>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0062><U0069><U006C><U0069>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0074><U0068><U0061><U0074><U0068><U0075>";/
+            "<U004C><U0077><U0065><U0073><U0069><U006E><U0065>";/
+            "<U004C><U0077><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
+            "<U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
+ 
+% abmon - The abbreviations for the months 
+% - Jan, Feb, Mas, Apr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
+abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+            "<U004D><U0061><U0073>";"<U0041><U0070><U0072>";/
+            "<U004D><U0065><U0079>";"<U004A><U0075><U006E>";/
+            "<U004A><U0075><U006C>";"<U0041><U0067><U0061>";/
+            "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+            "<U004E><U006F><U0076>";"<U0044><U0069><U0073>"
+ 
+% mon - The full names of the months - 
+% - Januwari, Februwari, Mashi, Apreli, Meyi, Juni, Julayi, Agasti, Septemba,
+%   Okthoba, Novemba, Disemba 
+mon         "<U004A><U0061><U006E><U0075><U0077><U0061><U0072><U0069>";/
+            "<U0046><U0065><U0062><U0072><U0075><U0077><U0061><U0072><U0069>";/
+            "<U004D><U0061><U0073><U0068><U0069>";/
+            "<U0041><U0070><U0072><U0065><U006C><U0069>";/
+            "<U004D><U0065><U0079><U0069>";/
+            "<U004A><U0075><U006E><U0069>";/
+            "<U004A><U0075><U006C><U0061><U0079><U0069>";/
+            "<U0041><U0067><U0061><U0073><U0074><U0069>";/
+            "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0061>";/
+            "<U004F><U006B><U0074><U0068><U006F><U0062><U0061>";/
+            "<U004E><U006F><U0076><U0065><U006D><U0062><U0061>";/
+            "<U0044><U0069><U0073><U0065><U006D><U0062><U0061>"
+ 
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+%
+% "%a" (short weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (short month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+
+% Date representation to be referenced by the "%x" field descriptor -
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+ 
+% Time representation to be referenced by the "%X" field descriptor -
+% "%T" (24-hour clock time in format HH:MM:SS)
+t_fmt       "<U0025><U0054>"
+ 
+% Define representation of ante meridiem and post meridiem strings -
+% The ""s mean default to "AM" and "PM".
+am_pm       "";""
+ 
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+% field descriptor -
+% The "" means that this format is not supported.
+t_fmt_ampm  ""
+
+% Date representation not described in ISO/IEC 14652. Comes out as -
+% "%a %b %e %H:%M:%S %Z %Y" 
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+% which is
+% %a - abbreviated weekday name,
+% %b - abreviated month name,
+% %e - day of month as a decimal number with leading space (1 to 31),
+% %H - hour (24-hour clock) as a decimal number (00 to 23),
+% %M - minute as a decimal number (00 to 59),
+% %S - seconds as a decimal number (00 to 59),
+% %Z - time-zone name,
+% %Y - year with century as a decimal number,e.g. 2001.
+
+END LC_TIME
+
+LC_MESSAGES
+yesexpr     "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+% The affirmative response -
+% "^[yY].*"
+%
+noexpr      "<U005E><U005B><U006E><U004E><U0063><U0043><U005D><U002E><U002A>"
+% The negative response -
+% "^[nNcC].*"
+%
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% Format for addressing a person.
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+%
+name_miss   "<U004E><U006B><U006F><U0073><U0061><U007A><U0061><U006E><U0065>"
+% Salutation for unmarried females - "Nkosazane"
+%
+name_mr     "<U004D><U006E><U0075><U006D><U007A><U0061><U006E><U0065>"
+% Salutation for males - "Mnumzane"
+%
+name_mrs    "<U004E><U006B><U006F><U0073><U0069><U006B><U0061><U007A><U0069>"
+% Salutation for married females - "Nkosikazi"
+%
+name_ms     ""
+% Salutation valid for all females - "" (no term)
+END LC_NAME
+
+LC_ADDRESS
+country_name "<U004D><U007A><U0061><U006E><U0073><U0069><U0020>/
+<U0041><U0066><U0072><U0069><U006B><U0061>"
+% Country name in Zulu - "Mzansi Afrika"
+%
+country_post "<U005A><U0041>"
+% Abbreviated country postal name - "ZA"
+%
+country_ab2 "<U005A><U0041>"
+% ISO 3166 two letter country abbreviation - "ZA"
+%
+lang_name "<U0049><U0073><U0069><U007A><U0075><U006C><U0075>"
+% Language name in Zulu - "Isizulu"
+%
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/manual/llio.texi b/manual/llio.texi
index e9b5573ddd..4ac6c5fa4f 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -1542,19 +1542,28 @@ empty set.
 @comment BSD
 @deftypefn Macro void FD_SET (int @var{filedes}, fd_set *@var{set})
 This macro adds @var{filedes} to the file descriptor set @var{set}.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
 @end deftypefn
 
 @comment sys/types.h
 @comment BSD
 @deftypefn Macro void FD_CLR (int @var{filedes}, fd_set *@var{set})
 This macro removes @var{filedes} from the file descriptor set @var{set}.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
 @end deftypefn
 
 @comment sys/types.h
 @comment BSD
-@deftypefn Macro int FD_ISSET (int @var{filedes}, fd_set *@var{set})
+@deftypefn Macro int FD_ISSET (int @var{filedes}, const fd_set *@var{set})
 This macro returns a nonzero value (true) if @var{filedes} is a member
 of the file descriptor set @var{set}, and zero (false) otherwise.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
 @end deftypefn
 
 Next, here is the description of the @code{select} function itself.
diff --git a/manual/resource.texi b/manual/resource.texi
index 9d2e17bed4..0c394f2620 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -558,6 +558,7 @@ POSIX syntax had in mind.
 * Realtime Scheduling::             Scheduling among the process nobility
 * Basic Scheduling Functions::      Get/set scheduling policy, priority
 * Traditional Scheduling::          Scheduling among the vulgar masses
+* CPU Affinity::                    Limiting execution to certain CPUs
 @end menu
 
 
@@ -1246,6 +1247,180 @@ nice (int increment)
 @end smallexample
 @end deftypefun
 
+
+@node CPU Affinity
+@subsection Limiting execution to certain CPUs
+
+On a multi-processor system the operating system usually distributes
+the different processes which are runnable on all available CPUs in a
+way which allows the system to work most efficiently.  Which processes
+and threads run can be to some extend be control with the scheduling
+functionality described in the last sections.  But which CPU finally
+executes which process or thread is not covered.
+
+There are a number of reasons why a program might want to have control
+over this aspect of the system as well:
+
+@itemize @bullet
+@item
+One thread or process is responsible for absolutely critical work
+which under no circumstances must be interrupted or hindered from
+making process by other process or threads using CPU resources.  In
+this case the special process would be confined to a CPU which no
+other process or thread is allowed to use.
+
+@item
+The access to certain resources (RAM, I/O ports) has different costs
+from different CPUs.  This is the case in NUMA (Non-Uniform Memory
+Architecture) machines.  Preferrably memory should be accessed locally
+but this requirement is usually not visible to the scheduler.
+Therefore forcing a process or thread to the CPUs which have local
+access to the mostly used memory helps to significantly boost the
+performance.
+
+@item
+In controlled runtimes resource allocation and book-keeping work (for
+instance garbage collection) is performance local to processors.  This
+can help to reduce locking costs if the resources do not have to be
+protected from concurrent accesses from different processors.
+@end itemize
+
+The POSIX standard up to this date is of not much help to solve this
+problem.  The Linux kernel provides a set of interfaces to allow
+specifying @emph{affinity sets} for a process.  The scheduler will
+schedule the thread or process on on CPUs specified by the affinity
+masks.  The interfaces which the GNU C library define follow to some
+extend the Linux kernel interface.
+
+@comment sched.h
+@comment GNU
+@deftp {Data Type} cpu_set_t
+This data set is a bitset where each bit represents a CPU.  How the
+system's CPUs are mapped to bits in the bitset is system dependent.
+The data type has a fixed size; in the unlikely case that the number
+of bits are not sufficient to describe the CPUs of the system a
+different interface has to be used.
+
+This type is a GNU extension and is defined in @file{sched.h}.
+@end deftp
+
+To manipulate the bitset, to set and reset bits, a number of macros is
+defined.  Some of the macros take a CPU number as a parameter.  Here
+it is important to never exceed the size of the bitset.  The following
+macro specifies the number of bits in the @code{cpu_set_t} bitset.
+
+@comment sched.h
+@comment GNU
+@deftypevr Macro int CPU_SETSIZE
+The value of this macro is the maximum number of CPUs which can be
+handled with a @code{cpu_set_t} object.
+@end deftypevr
+
+The type @code{cpu_set_t} should be considered opaque; all
+manipulation should happen via the next four macros.
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_ZERO (cpu_set_t *@var{set})
+This macro initializes the CPU set @var{set} to be the empty set.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_SET (int @var{cpu}, cpu_set_t *@var{set})
+This macro adds @var{cpu} to the CPU set @var{set}.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_CLR (int @var{cpu}, cpu_set_t *@var{set})
+This macro removes @var{cpu} from the CPU set @var{set}.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro int CPU_ISSET (int @var{cpu}, const cpu_set_t *@var{set})
+This macro returns a nonzero value (true) if @var{cpu} is a member
+of the CPU set @var{set}, and zero (false) otherwise.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+
+CPU bitsets can be constructed from scratch or the currently installed
+affinity mask can be retrieved from the system.
+
+@comment sched.h
+@comment GNU
+@deftypefun int sched_getaffinity (pid_t @var{pid}, cpu_set_t *@var{cpuset})
+
+This functions stores the CPU affinity mask for the process or thread
+with the ID @var{pid} in the memory pointed to by @var{cpuset}.  If
+successful, the function always initializes all bits in the
+@code{cpu_set_t} object and returns zero.
+
+If @var{pid} does not correspond to a process or thread on the system
+the or the function fails for some other reason, it returns @code{-1}
+and @code{errno} is set to represent the error condition.
+
+@table @code
+@item ESRCH
+No process or thread with the given ID found.
+
+@item EFAULT
+The pointer @var{cpuset} is does not point to a valid object.
+@end table
+
+This function is a GNU extension and is declared in @file{sched.h}.
+@end deftypefun
+
+Note that it is not portably possible to use this information to
+retrieve the information for different POSIX threads.  A separate
+interface must be provided for that.
+
+@comment sched.h
+@comment GNU
+@deftypefun int sched_setaffinity (pid_t @var{pid}, const cpu_set_t *@var{cpuset})
+
+This function installs the affinity mask pointed to by @var{cpuset}
+for the process or thread with the ID @var{pid}.  If successful the
+function returns zero and the scheduler will in future take the
+affinity information into account.
+
+If the function fails it will return @code{-1} and @code{errno} is set
+to the error code:
+
+@table @code
+@item ESRCH
+No process or thread with the given ID found.
+
+@item EFAULT
+The pointer @var{cpuset} is does not point to a valid object.
+
+@item EINVAL
+The bitset is not valid.  This might mean that the affinity set might
+not leave a processor for the process or thread to run on.
+@end table
+
+This function is a GNU extension and is declared in @file{sched.h}.
+@end deftypefun
+
+
 @node Memory Resources
 @section Querying memory available resources
 
diff --git a/sysdeps/pthread/lio_listio64.c b/sysdeps/pthread/lio_listio64.c
index 0249a05c13..165ce05b48 100644
--- a/sysdeps/pthread/lio_listio64.c
+++ b/sysdeps/pthread/lio_listio64.c
@@ -1,5 +1,5 @@
 /* Enqueue and list of read or write requests, 64bit offset version.
-   Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -42,6 +42,7 @@ lio_listio64 (mode, list, nent, sig)
      int nent;
      struct sigevent *sig;
 {
+  struct sigevent defsigev;
   struct requestlist *requests[nent];
   int cnt;
   volatile int total = 0;
@@ -54,6 +55,12 @@ lio_listio64 (mode, list, nent, sig)
       return -1;
     }
 
+  if (sig == NULL)
+    {
+      defsigev.sigev_notify = SIGEV_NONE;
+      sig = &defsigev;
+    }
+
   /* Request the mutex.  */
   pthread_mutex_lock (&__aio_requests_mutex);
 
diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist
index 6cae4ca0b5..f9f6a1a5f8 100644
--- a/sysdeps/unix/sysv/linux/Dist
+++ b/sysdeps/unix/sysv/linux/Dist
@@ -40,7 +40,6 @@ netax25/ax25.h
 neteconet/ec.h
 netinet/if_fddi.h
 netinet/if_tr.h
-netinet/igmp.h
 netpacket/packet.h
 netipx/ipx.h
 netrom/netrom.h
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 9df9d6a206..d402dd16da 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -116,7 +116,7 @@ sysdep_routines += exit-thread
 endif
 
 ifeq ($(subdir),inet)
-sysdep_headers += netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \
+sysdep_headers += netinet/if_fddi.h netinet/if_tr.h \
 		  netipx/ipx.h netash/ash.h netax25/ax25.h netatalk/at.h \
 		  netrom/netrom.h netpacket/packet.h netrose/rose.h \
 		  neteconet/ec.h