about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-11-30 06:33:11 +0000
committerJakub Jelinek <jakub@redhat.com>2004-11-30 06:33:11 +0000
commitc1f8ef75d3ddf687efc5ee23e16075c256fa77be (patch)
treea3ea2de6f93ff7c1abd4190b14414cf458474436
parentf94203900a978cda33df395c36827a17d171f98e (diff)
downloadglibc-c1f8ef75d3ddf687efc5ee23e16075c256fa77be.tar.gz
glibc-c1f8ef75d3ddf687efc5ee23e16075c256fa77be.tar.xz
glibc-c1f8ef75d3ddf687efc5ee23e16075c256fa77be.zip
Updated to fedora-glibc-20041130T0624
-rw-r--r--ChangeLog51
-rw-r--r--fedora/branch.mk4
-rw-r--r--include/dlfcn.h3
-rw-r--r--libio/iolibio.h55
-rw-r--r--libio/libioP.h49
-rw-r--r--linuxthreads/ChangeLog19
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h15
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h15
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h15
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h15
-rw-r--r--localedata/ChangeLog5
-rw-r--r--localedata/README21
-rw-r--r--localedata/locales/pa_IN58
-rw-r--r--nptl/ChangeLog19
-rw-r--r--nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h15
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h15
-rw-r--r--nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h15
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h15
-rw-r--r--posix/Makefile2
-rw-r--r--posix/confstr.c12
-rw-r--r--posix/getconf.c6
-rw-r--r--posix/tst-sysconf.c114
-rw-r--r--sysdeps/generic/bits/confname.h7
-rw-r--r--sysdeps/posix/sysconf.c14
-rw-r--r--sysdeps/unix/sysv/linux/mips/pread.c5
-rw-r--r--sysdeps/unix/sysv/linux/mips/pread64.c5
-rw-r--r--sysdeps/unix/sysv/linux/mips/pwrite.c5
-rw-r--r--sysdeps/unix/sysv/linux/mips/pwrite64.c2
28 files changed, 454 insertions, 122 deletions
diff --git a/ChangeLog b/ChangeLog
index 46387f69ff..67012de252 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,54 @@
+2004-11-29  Roland McGrath  <roland@redhat.com>
+
+	* posix/confstr.c: Avoid punctuation in #error text.
+
+2004-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* posix/Makefile (tests): Add tst-sysconf.
+	* posix/tst-sysconf.c: New file.
+
+	* posix/getconf.c (vars): Add support for _SC_IPV6 and
+	_SC_RAW_SOCKETS.
+	* sysdeps/posix/sysconf.c (__sysconf): Add support for _SC_IPV6
+	and _SC_RAW_SOCKETS.
+	* sysdeps/generic/bits/confname.h: Define _SC_IPV6 and
+	_SC_RAW_SOCKETS.
+
+2004-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
+
+2004-11-26  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+	* sysdeps/unix/sysv/linux/mips/pread.c: Include sgidefs.h only if
+	NO_SGIDEFS_H isn't defined.  Don't include sgidefs.h twice.
+	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
+	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
+	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
+
+2004-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* include/dlfcn.h (__libc_dlopen): Add __RTLD_DLOPEN to the mode
+	parameter.  Reported by VY Newsum <newsum@fel.tno.nl>.
+
+2004-11-10  Daniel Jacobowitz  <dan@debian.org>
+
+	* libio/iolibio.h (_IO_fclose, _IO_new_fclose, _IO_old_fclose,
+	_IO_fflush, _IO_fgetpos, _IO_fgetpos64, _IO_fgets, _IO_fopen,
+	_IO_old_fopen, _IO_new_fopen, _IO_fopen64, __fopen_internal,
+	_IO_fprintf, _IO_fputs, _IO_fsetpos, _IO_fsetpos64, _IO_ftell,
+	_IO_fread, _IO_fwrite, _IO_gets, _IO_printf, _IO_puts, _IO_scanf,
+	_IO_fflush_internal, _IO_ftell_internal, _IO_fputs_internal)
+	_IO_fwrite_internal): Remove incorrect __THROW.
+	* libio/libioP.h (_IO_default_xsputn, _IO_wdefault_xsputn,
+	_IO_default_xsgetn, _IO_wdefault_xsgetn, _IO_default_write,
+	_IO_default_read, _IO_getline, _IO_getline_info, _IO_getwline,
+	_IO_getwline_info, _IO_file_read_internal, _IO_sgetn_internal,
+	_IO_wdo_write_internal, _IO_do_write_internal,
+	_IO_getline_info_internal, _IO_getline_internal,
+	_IO_vfprintf_internal, _IO_putc_internal, _IO_read, _IO_write,
+	_IO_close): Likewise.
+
 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
 
 	* sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
diff --git a/fedora/branch.mk b/fedora/branch.mk
index f9802a9166..9b5e669da3 100644
--- a/fedora/branch.mk
+++ b/fedora/branch.mk
@@ -1,5 +1,5 @@
 # This file is updated automatically by Makefile.
 glibc-branch := fedora
 glibc-base := HEAD
-fedora-sync-date := 2004-11-26 13:18 UTC
-fedora-sync-tag := fedora-glibc-20041126T1318
+fedora-sync-date := 2004-11-30 06:24 UTC
+fedora-sync-tag := fedora-glibc-20041130T0624
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 3ff855a367..bfa1b9041b 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -12,7 +12,8 @@
 
 /* Now define the internal interfaces.  */
 
-#define __libc_dlopen(name) __libc_dlopen_mode (name, RTLD_LAZY)
+#define __libc_dlopen(name) \
+  __libc_dlopen_mode (name, RTLD_LAZY | __RTLD_DLOPEN)
 extern void *__libc_dlopen_mode  (__const char *__name, int __mode);
 extern void *__libc_dlsym   (void *__map, __const char *__name);
 extern int   __libc_dlclose (void *__map);
diff --git a/libio/iolibio.h b/libio/iolibio.h
index 4b914fc02e..00a4f56c50 100644
--- a/libio/iolibio.h
+++ b/libio/iolibio.h
@@ -7,36 +7,35 @@
 extern "C" {
 #endif
 
-extern int _IO_fclose (_IO_FILE*) __THROW;
-extern int _IO_new_fclose (_IO_FILE*) __THROW;
-extern int _IO_old_fclose (_IO_FILE*) __THROW;
+extern int _IO_fclose (_IO_FILE*);
+extern int _IO_new_fclose (_IO_FILE*);
+extern int _IO_old_fclose (_IO_FILE*);
 extern _IO_FILE *_IO_fdopen (int, const char*) __THROW;
 extern _IO_FILE *_IO_old_fdopen (int, const char*) __THROW;
 extern _IO_FILE *_IO_new_fdopen (int, const char*) __THROW;
-extern int _IO_fflush (_IO_FILE*) __THROW;
-extern int _IO_fgetpos (_IO_FILE*, _IO_fpos_t*) __THROW;
-extern int _IO_fgetpos64 (_IO_FILE*, _IO_fpos64_t*) __THROW;
-extern char* _IO_fgets (char*, int, _IO_FILE*) __THROW;
-extern _IO_FILE *_IO_fopen (const char*, const char*) __THROW;
-extern _IO_FILE *_IO_old_fopen (const char*, const char*) __THROW;
-extern _IO_FILE *_IO_new_fopen (const char*, const char*) __THROW;
-extern _IO_FILE *_IO_fopen64 (const char*, const char*) __THROW;
-extern _IO_FILE *__fopen_internal (const char*, const char*, int) __THROW;
+extern int _IO_fflush (_IO_FILE*);
+extern int _IO_fgetpos (_IO_FILE*, _IO_fpos_t*);
+extern int _IO_fgetpos64 (_IO_FILE*, _IO_fpos64_t*);
+extern char* _IO_fgets (char*, int, _IO_FILE*);
+extern _IO_FILE *_IO_fopen (const char*, const char*);
+extern _IO_FILE *_IO_old_fopen (const char*, const char*);
+extern _IO_FILE *_IO_new_fopen (const char*, const char*);
+extern _IO_FILE *_IO_fopen64 (const char*, const char*);
+extern _IO_FILE *__fopen_internal (const char*, const char*, int);
 extern _IO_FILE *__fopen_maybe_mmap (_IO_FILE *) __THROW;
-extern int _IO_fprintf (_IO_FILE*, const char*, ...) __THROW;
-extern int _IO_fputs (const char*, _IO_FILE*) __THROW;
+extern int _IO_fprintf (_IO_FILE*, const char*, ...);
+extern int _IO_fputs (const char*, _IO_FILE*);
 libc_hidden_proto (_IO_fputs)
-extern int _IO_fsetpos (_IO_FILE*, const _IO_fpos_t *) __THROW;
-extern int _IO_fsetpos64 (_IO_FILE*, const _IO_fpos64_t *) __THROW;
-extern long int _IO_ftell (_IO_FILE*) __THROW;
-extern _IO_size_t _IO_fread (void*, _IO_size_t, _IO_size_t, _IO_FILE*) __THROW;
-extern _IO_size_t _IO_fwrite (const void*, _IO_size_t, _IO_size_t, _IO_FILE*)
-       __THROW;
-extern char* _IO_gets (char*) __THROW;
+extern int _IO_fsetpos (_IO_FILE*, const _IO_fpos_t *);
+extern int _IO_fsetpos64 (_IO_FILE*, const _IO_fpos64_t *);
+extern long int _IO_ftell (_IO_FILE*);
+extern _IO_size_t _IO_fread (void*, _IO_size_t, _IO_size_t, _IO_FILE*);
+extern _IO_size_t _IO_fwrite (const void*, _IO_size_t, _IO_size_t, _IO_FILE*);
+extern char* _IO_gets (char*);
 extern void _IO_perror (const char*) __THROW;
-extern int _IO_printf (const char*, ...) __THROW;
-extern int _IO_puts (const char*) __THROW;
-extern int _IO_scanf (const char*, ...) __THROW;
+extern int _IO_printf (const char*, ...);
+extern int _IO_puts (const char*);
+extern int _IO_scanf (const char*, ...);
 extern void _IO_setbuffer (_IO_FILE *, char*, _IO_size_t) __THROW;
 extern int _IO_setvbuf (_IO_FILE*, char*, int, _IO_size_t) __THROW;
 extern int _IO_sscanf (const char*, const char*, ...) __THROW;
@@ -89,11 +88,11 @@ extern _IO_size_t _IO_fread_internal (void*, _IO_size_t, _IO_size_t, _IO_FILE*)
        __THROW;
 extern _IO_FILE *_IO_fdopen_internal (int, const char*) __THROW;
 extern int _IO_vsprintf_internal (char*, const char*, _IO_va_list) __THROW;
-extern int _IO_fflush_internal (_IO_FILE*) __THROW;
+extern int _IO_fflush_internal (_IO_FILE*);
 extern _IO_size_t _IO_fwrite_internal (const void*, _IO_size_t,
-				       _IO_size_t, _IO_FILE*) __THROW;
-extern long int _IO_ftell_internal (_IO_FILE*) __THROW;
-extern int _IO_fputs_internal (const char*, _IO_FILE*) __THROW;
+				       _IO_size_t, _IO_FILE*);
+extern long int _IO_ftell_internal (_IO_FILE*);
+extern int _IO_fputs_internal (const char*, _IO_FILE*);
 extern int _IO_setvbuf_internal (_IO_FILE*, char*, int, _IO_size_t) __THROW;
 
 #ifdef __cplusplus
diff --git a/libio/libioP.h b/libio/libioP.h
index d11704d028..319b0fd5f3 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -440,18 +440,15 @@ extern void _IO_wdefault_finish (_IO_FILE *, int) __THROW;
 extern int _IO_default_pbackfail (_IO_FILE *, int) __THROW;
 extern wint_t _IO_wdefault_pbackfail (_IO_FILE *, wint_t) __THROW;
 extern _IO_FILE* _IO_default_setbuf (_IO_FILE *, char *, _IO_ssize_t) __THROW;
-extern _IO_size_t _IO_default_xsputn (_IO_FILE *, const void *, _IO_size_t)
-     __THROW;
-extern _IO_size_t _IO_wdefault_xsputn (_IO_FILE *, const void *, _IO_size_t)
-     __THROW;
-extern _IO_size_t _IO_default_xsgetn (_IO_FILE *, void *, _IO_size_t) __THROW;
-extern _IO_size_t _IO_wdefault_xsgetn (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern _IO_size_t _IO_default_xsputn (_IO_FILE *, const void *, _IO_size_t);
+extern _IO_size_t _IO_wdefault_xsputn (_IO_FILE *, const void *, _IO_size_t);
+extern _IO_size_t _IO_default_xsgetn (_IO_FILE *, void *, _IO_size_t);
+extern _IO_size_t _IO_wdefault_xsgetn (_IO_FILE *, void *, _IO_size_t);
 extern _IO_off64_t _IO_default_seekoff (_IO_FILE *, _IO_off64_t, int, int)
      __THROW;
 extern _IO_off64_t _IO_default_seekpos (_IO_FILE *, _IO_off64_t, int) __THROW;
-extern _IO_ssize_t _IO_default_write (_IO_FILE *, const void *, _IO_ssize_t)
-     __THROW;
-extern _IO_ssize_t _IO_default_read (_IO_FILE *, void *, _IO_ssize_t) __THROW;
+extern _IO_ssize_t _IO_default_write (_IO_FILE *, const void *, _IO_ssize_t);
+extern _IO_ssize_t _IO_default_read (_IO_FILE *, void *, _IO_ssize_t);
 extern int _IO_default_stat (_IO_FILE *, void *) __THROW;
 extern _IO_off64_t _IO_default_seek (_IO_FILE *, _IO_off64_t, int) __THROW;
 extern int _IO_default_sync (_IO_FILE *) __THROW;
@@ -657,16 +654,14 @@ extern int _IO_vsnprintf (char *string, _IO_size_t maxlen,
 			  __const char *format, _IO_va_list args) __THROW;
 
 
-extern _IO_size_t _IO_getline (_IO_FILE *,char *, _IO_size_t, int, int)
-     __THROW;
+extern _IO_size_t _IO_getline (_IO_FILE *,char *, _IO_size_t, int, int);
 extern _IO_size_t _IO_getline_info (_IO_FILE *,char *, _IO_size_t,
-				    int, int, int *) __THROW;
+				    int, int, int *);
 extern _IO_ssize_t _IO_getdelim (char **, _IO_size_t *, int, _IO_FILE *)
      __THROW;
-extern _IO_size_t _IO_getwline (_IO_FILE *,wchar_t *, _IO_size_t, wint_t, int)
-     __THROW;
+extern _IO_size_t _IO_getwline (_IO_FILE *,wchar_t *, _IO_size_t, wint_t, int);
 extern _IO_size_t _IO_getwline_info (_IO_FILE *,wchar_t *, _IO_size_t,
-				     wint_t, int, wint_t *) __THROW;
+				     wint_t, int, wint_t *);
 extern double _IO_strtod (const char *, char **) __THROW;
 extern char *_IO_dtoa (double __d, int __mode, int __ndigits,
 		       int *__decpt, int *__sign, char **__rve) __THROW;
@@ -718,7 +713,7 @@ extern _IO_FILE* _IO_file_attach_internal (_IO_FILE *, int) __THROW;
 extern _IO_FILE* _IO_file_fopen_internal (_IO_FILE *, const char *,
 					  const char *, int) __THROW;
 extern _IO_ssize_t _IO_file_read_internal (_IO_FILE *, void *,
-					   _IO_ssize_t) __THROW;
+					   _IO_ssize_t);
 extern int _IO_file_sync_internal (_IO_FILE *) __THROW;
 extern _IO_off64_t _IO_file_seek_internal (_IO_FILE *, _IO_off64_t, int)
      __THROW;
@@ -747,20 +742,18 @@ extern void _IO_link_in_internal (struct _IO_FILE_plus *) __THROW;
 extern int _IO_sputbackc_internal (_IO_FILE *, int) __THROW;
 extern void _IO_wdoallocbuf_internal (_IO_FILE *) __THROW;
 
-extern _IO_size_t _IO_sgetn_internal (_IO_FILE *, void *, _IO_size_t) __THROW;
+extern _IO_size_t _IO_sgetn_internal (_IO_FILE *, void *, _IO_size_t);
 extern void _IO_flush_all_linebuffered_internal (void) __THROW;
 extern int _IO_switch_to_wget_mode_internal (_IO_FILE *) __THROW;
 extern void _IO_unsave_markers_internal (_IO_FILE *) __THROW;
 extern void _IO_switch_to_main_wget_area_internal (_IO_FILE *) __THROW;
-extern int _IO_wdo_write_internal (_IO_FILE *, const wchar_t *, _IO_size_t)
-     __THROW;
-extern int _IO_do_write_internal (_IO_FILE *, const char *, _IO_size_t)
-     __THROW;
+extern int _IO_wdo_write_internal (_IO_FILE *, const wchar_t *, _IO_size_t);
+extern int _IO_do_write_internal (_IO_FILE *, const char *, _IO_size_t);
 extern _IO_ssize_t _IO_padn_internal (_IO_FILE *, int, _IO_ssize_t) __THROW;
 extern _IO_size_t _IO_getline_info_internal (_IO_FILE *,char *, _IO_size_t,
-					     int, int, int *) __THROW;
+					     int, int, int *);
 extern _IO_size_t _IO_getline_internal (_IO_FILE *, char *, _IO_size_t, int,
-					int) __THROW;
+					int);
 extern void _IO_free_wbackup_area_internal (_IO_FILE *) __THROW;
 extern void _IO_free_backup_area_internal (_IO_FILE *) __THROW;
 extern void _IO_switch_to_wbackup_area_internal (_IO_FILE *) __THROW;
@@ -771,7 +764,7 @@ extern int _IO_vfscanf_internal (_IO_FILE * __restrict,
 				 const char * __restrict,
 				 _IO_va_list, int *__restrict);
 extern int _IO_vfprintf_internal (_IO_FILE *__restrict, const char *__restrict,
-				  _IO_va_list) __THROW;
+				  _IO_va_list);
 extern void _IO_doallocbuf_internal (_IO_FILE *) __THROW;
 extern void _IO_wsetb_internal (_IO_FILE *, wchar_t *, wchar_t *, int)
      __THROW;
@@ -779,7 +772,7 @@ extern _IO_off64_t _IO_seekoff_unlocked (_IO_FILE *, _IO_off64_t, int, int)
      attribute_hidden __THROW;
 extern _IO_off64_t _IO_seekpos_unlocked (_IO_FILE *, _IO_off64_t, int)
      attribute_hidden __THROW;
-extern int _IO_putc_internal (int __c, _IO_FILE *__fp) __THROW;
+extern int _IO_putc_internal (int __c, _IO_FILE *__fp);
 extern void _IO_init_internal (_IO_FILE *, int) __THROW;
 extern void _IO_un_link_internal (struct _IO_FILE_plus *) __THROW;
 
@@ -871,10 +864,10 @@ extern void _IO_un_link_internal (struct _IO_FILE_plus *) __THROW;
 # define OS_FSTAT fstat
 #endif
 struct stat;
-extern _IO_ssize_t _IO_read (int, void *, _IO_size_t) __THROW;
-extern _IO_ssize_t _IO_write (int, const void *, _IO_size_t) __THROW;
+extern _IO_ssize_t _IO_read (int, void *, _IO_size_t);
+extern _IO_ssize_t _IO_write (int, const void *, _IO_size_t);
 extern _IO_off64_t _IO_lseek (int, _IO_off64_t, int) __THROW;
-extern int _IO_close (int) __THROW;
+extern int _IO_close (int);
 extern int _IO_fstat (int, struct stat *) __THROW;
 extern int _IO_vscanf (const char *, _IO_va_list) __THROW;
 
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 529d03d2e2..ca2f39ee5a 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,22 @@
+2004-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
+	_POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
+	_POSIX_THREAD_PRIO_PROTECT): Define.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
+
+2004-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
+	_POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
+	_POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
+	_POSIX_TYPED_MEMORY_OBJECTS): Define.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
+
 2004-11-05  Maciej W. Rozycki  <macro@mips.com>
 
 	* sysdeps/mips/pspinlock.c: Include <sgidefs.h>.  Use _ABIO32,
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 6a7a8c3532..23baba8915 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -93,6 +93,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -144,6 +146,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -157,4 +168,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
index 98ea45644d..a9b9f098a9 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
@@ -93,6 +93,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -150,6 +152,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -163,4 +174,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
index 4c32379e0e..95728c106f 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
@@ -93,6 +93,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -150,6 +152,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -163,4 +174,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
index 0e4b565608..8973bc8fdf 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
@@ -93,6 +93,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -150,6 +152,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -163,4 +174,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 4467bc16c9..392833f6a0 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* locales/pa_IN: Add some missing fields and fix some spelling
+	mistakes.  Patch by Jatin Nansi <jnansi@redhat.com>.
+
 2004-10-31  Petter Reinholdtsen  <pere@hungry.com>
 
 	[BZ #337]
diff --git a/localedata/README b/localedata/README
index 8ce09c16ed..f05bf15ceb 100644
--- a/localedata/README
+++ b/localedata/README
@@ -2,8 +2,8 @@
 				  and
 		    POSIX character set descriptions
 
-Ulrich Drepper			Time-stamp: <2000/07/20 13:08:24 aj>
-drepper@cygnus.com
+Ulrich Drepper			Time-stamp: <2004/11/27 13:06:54 drepper>
+drepper@redhat.com
 
 
 This directory contains the data needed to build the locale data files
@@ -40,22 +40,9 @@ current directory simply use
 How to use these data files is described in the GNU libc manual,
 especially in the section describing the `setlocale' function.
 
+All problems should be reported using
 
-The files contained here were originally from
-
-	ftp://dkuug.dk/i18n/WG15-collection
-
-Keld Jörn Simonsen from the Danish Unix User Group maintains this
-archive on behalf of the POSIX working groups.  When you find some wrong
-data or want to add something please contact
-
-	Keld Jörn Simonsen <keld@dkuug.dk>
-and
-	Ulrich Drepper <drepper@cygnus.com>
-
-Please make sure your corrections are relative to the originally
-distributed files.  Consult the CHECKSUMS file which contains the MD5
-sums for all data files.
+  http://sources.redhat.com/bugzilla/
 
 
 One more note: the `POSIX' locale definition is not meant to be used
diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN
index a1b49943bf..2a2072837b 100644
--- a/localedata/locales/pa_IN
+++ b/localedata/locales/pa_IN
@@ -1,11 +1,11 @@
 comment_char    %
 escape_char     /
-% Punjabi language locale for India.
-% used hi_IN as guideline, Rajneesh K Saini <rajneeshksaini@yahoo.com>
+% Punjabi language locale for Indian Punjabi(Gurmukhi)
+% Last update by A Alam <amanlinux@netscape.net>
 
 LC_IDENTIFICATION
-title      "Punjabi language locale for India"
-source     "IndLinux.org"
+title      "Punjabi language locale for Indian Punjabi(Gurmukhi)"
+source     "IndLinux.org"	
 address    ""
 contact    ""
 email      "bug-glibc-locales@gnu.org"
@@ -13,8 +13,8 @@ tel        ""
 fax        ""
 language   "Punjabi"
 territory  "India"
-revision   "0.01"
-date       "2002-04-10"
+revision   "0.2"
+date       "2004-09-30"	
 %
 category  "pa_IN:2000";LC_IDENTIFICATION
 category  "pa_IN:2000";LC_CTYPE
@@ -45,7 +45,7 @@ END LC_COLLATE
 LC_MONETARY
 % This is the POSIX Locale definition the LC_MONETARY category.
 int_curr_symbol       "<U0049><U004E><U0052><U0020>"
-currency_symbol       "<U0A30><U0A42><U0A2A><U0A72><U0A48>"
+currency_symbol       "<U0A30><U0A41><U0A2A><U0A0F>"
 mon_decimal_point     "<U002E>"
 mon_thousands_sep     "<U002C>"
 mon_grouping          3
@@ -74,56 +74,56 @@ LC_TIME
 % for IBM Class for Unicode/Java
 %
 % Abbreviated weekday names (%a)
-abday       "<U0A06><U0A48><U0A24><U0020>";/
+abday       "<U0A10><U0A24><U0020>";/
             "<U0A38><U0A4B><U0A2E><U0020>";/
             "<U0A2E><U0A70><U0A17><U0A32><U0020>";/
             "<U0A2C><U0A41><U0A71><U0A27><U0020>";/
             "<U0A35><U0A40><U0A30><U0020>";/
-            "<U0A36><U0A41><U0A15><U0A30><U0020>";/
-            "<U0A36><U0A28><U0A40><U0020>"
+            "<U0A36><U0A41><U0A71><U0A15><U0A30><U0020>";/
+            "<U0A36><U0A28><U0A40><U0A1A><U0A30><U0020>"
 %
 % Full weekday names (%A)
-day       "<U0A06><U0A48><U0A24><U0A35><U0A3E><U0A30><U0020>";/
+day       "<U0A10><U0A24><U0A35><U0A3E><U0A30><U0020>";/
             "<U0A38><U0A4B><U0A2E><U0A35><U0A3E><U0A30><U0020>";/
             "<U0A2E><U0A70><U0A17><U0A32><U0A35><U0A3E><U0A30><U0020>";/
             "<U0A2C><U0A41><U0A71><U0A27><U0A35><U0A3E><U0A30><U0020>";/
             "<U0A35><U0A40><U0A30><U0A35><U0A3E><U0A30><U0020>";/
-            "<U0A36><U0A41><U0A15><U0A30><U0A35><U0A3E><U0A30><U0020>";/
-            "<U0A36><U0A28><U0A40><U0A35><U0A3E><U0A30><U0020>"
+            "<U0A36><U0A41><U0A71><U0A15><U0A30><U0A35><U0A3E><U0A30><U0020>";/
+            "<U0A36><U0A28><U0A40><U0A1A><U0A30><U0A35><U0A3E><U0A30><U0020>"
 
 
 % Abbreviated month names (%b)
 abmon       "<U0A1C><U0A28><U0A35><U0A30><U0A40>";/
-            "<U0A2B><U0A3C><U0A30><U0A35><U0A30><U0A40>";/
-            "<U0A2E><U0A3E><U0A30><U0A1B>";/
-            "<U0A05><U0A2A><U0A3C><U0A48><U0A32>";/
-            "<U0A2E><U0A72><U0A40>";/
+            "<U0A5E><U0A30><U0A35><U0A30><U0A40>";/
+            "<U0A2E><U0A3E><U0A30><U0A1A>";/
+            "<U0A05><U0A2A><U0A30><U0A48><U0A32>";/
+            "<U0A2E><U0A08>";/
 	    "<U0A1C><U0A42><U0A28>";/
-            "<U0A1C><U0A41><U0A32><U0A3E><U0A72><U0A40>";/
+            "<U0A1C><U0A41><U0A32><U0A3E><U0A08>";/
             "<U0A05><U0A17><U0A38><U0A24>";/
-            "<U0A38><U0A3F><U0A24><U0A70><U0A2C><U0A30>";/
+            "<U0A38><U0A24><U0A70><U0A2C><U0A30>";/
             "<U0A05><U0A15><U0A24><U0A42><U0A2C><U0A30>";/
             "<U0A28><U0A35><U0A70><U0A2C><U0A30>";/
-            "<U0A26><U0A3F><U0A38><U0A70><U0A2C><U0A30>"
+            "<U0A26><U0A38><U0A70><U0A2C><U0A30>"
 %
 % Full month names (%B)
 mon         "<U0A1C><U0A28><U0A35><U0A30><U0A40>";/
-            "<U0A2B><U0A3C><U0A30><U0A35><U0A30><U0A40>";/
-            "<U0A2E><U0A3E><U0A30><U0A1B>";/
-            "<U0A05><U0A2A><U0A3C><U0A48><U0A32>";/
-            "<U0A2E><U0A72><U0A40>";/
+            "<U0A5E><U0A30><U0A35><U0A30><U0A40>";/
+            "<U0A2E><U0A3E><U0A30><U0A1A>";/
+            "<U0A05><U0A2A><U0A30><U0A48><U0A32>";/
+            "<U0A2E><U0A08>";/
 	    "<U0A1C><U0A42><U0A28>";/
-            "<U0A1C><U0A41><U0A32><U0A3E><U0A72><U0A40>";/
+            "<U0A1C><U0A41><U0A32><U0A3E><U0A08>";/
             "<U0A05><U0A17><U0A38><U0A24>";/
-            "<U0A38><U0A3F><U0A24><U0A70><U0A2C><U0A30>";/
+            "<U0A38><U0A24><U0A70><U0A2C><U0A30>";/
             "<U0A05><U0A15><U0A24><U0A42><U0A2C><U0A30>";/
             "<U0A28><U0A35><U0A70><U0A2C><U0A30>";/
-            "<U0A26><U0A3F><U0A38><U0A70><U0A2C><U0A30>"
+            "<U0A26><U0A38><U0A70><U0A2C><U0A30>"
 
 %
 % Equivalent of AM PM
-am_pm       "<U092A><U0942><U0930><U094D><U0935><U093E><U0939><U094D><U0928>";/
-            "<U0905><U092A><U0930><U093E><U0939><U094D><U0928>"
+am_pm       "<U0A38><U035><U0A47><U0A30><U0A47>";/
+            "<U0A36><U0A3E><U02E>"
 
 %
 % Appropriate date and time representation
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index a0ece15297..9e193981de 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,22 @@
+2004-11-27  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
+	_POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
+	_POSIX_THREAD_PRIO_PROTECT): Define.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
+
+2004-11-26  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
+	_POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
+	_POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
+	_POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
+
 2004-11-24  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
diff --git a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 5d84a25486..8c8c1ed773 100644
--- a/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -90,6 +90,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -141,6 +143,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -154,4 +165,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection so far.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
index e0f02b0544..7a93ec36b7 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
@@ -90,6 +90,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -147,6 +149,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -160,4 +171,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection so far.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
index 07753c3535..f46b381406 100644
--- a/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
@@ -90,6 +90,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -147,6 +149,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -160,4 +171,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection so far.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
index 07753c3535..f46b381406 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
@@ -90,6 +90,8 @@
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
+/* Support for prioritization is also available.  */
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -147,6 +149,15 @@
 /* Advisory information interfaces are available.  */
 #define _POSIX_ADVISORY_INFO	200112L
 
+/* IPv6 support is available.  */
+#define _POSIX_IPV6	200112L
+
+/* Raw socket support is available.  */
+#define _POSIX_RAW_SOCKETS	200112L
+
+/* We have at least one terminal.  */
+#define _POSIX2_CHAR_TERM	200112L
+
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
 #define _POSIX_THREAD_SPORADIC_SERVER	-1
@@ -160,4 +171,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
+/* No support for priority inheritance or protection so far.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
 #endif /* posix_opt.h */
diff --git a/posix/Makefile b/posix/Makefile
index 5a3534a6ad..7f2bcb9d01 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -83,7 +83,7 @@ tests		:= tstgetopt testfnm runtests runptests	     \
 		   tst-nice tst-nanosleep tst-regex2 \
 		   transbug tst-rxspencer tst-pcre tst-boost \
 		   bug-ga1 tst-vfork1 tst-vfork2 tst-waitid \
-		   tst-getaddrinfo2 bug-glob1 bug-glob2
+		   tst-getaddrinfo2 bug-glob1 bug-glob2 tst-sysconf
 xtests		:= bug-ga2
 ifeq (yes,$(build-shared))
 test-srcs	:= globtest
diff --git a/posix/confstr.c b/posix/confstr.c
index 6b0dcf0c20..da929c25df 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -113,7 +113,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_ILP32_OFF32_CFLAGS:
 #ifdef __ILP32_OFF32_CFLAGS
 # if _POSIX_V6_ILP32_OFF32 == -1
-#  error __ILP32_OFF32_CFLAGS shouldn't be defined
+#  error __ILP32_OFF32_CFLAGS should not be defined
 # elif !defined _POSIX_V6_ILP32_OFF32
       if (__sysconf (_SC_V6_ILP32_OFF32) < 0)
         break;
@@ -127,7 +127,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS:
 #ifdef __ILP32_OFFBIG_CFLAGS
 # if _POSIX_V6_ILP32_OFFBIG == -1
-#  error __ILP32_OFFBIG_CFLAGS shouldn't be defined
+#  error __ILP32_OFFBIG_CFLAGS should not be defined
 # elif !defined _POSIX_V6_ILP32_OFFBIG
       if (__sysconf (_SC_V6_ILP32_OFFBIG) < 0)
         break;
@@ -141,7 +141,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_LP64_OFF64_CFLAGS:
 #ifdef __LP64_OFF64_CFLAGS
 # if _POSIX_V6_LP64_OFF64 == -1
-#  error __LP64_OFF64_CFLAGS shouldn't be defined
+#  error __LP64_OFF64_CFLAGS should not be defined
 # elif !defined _POSIX_V6_LP64_OFF64
       if (__sysconf (_SC_V6_LP64_OFF64) < 0)
         break;
@@ -155,7 +155,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_ILP32_OFF32_LDFLAGS:
 #ifdef __ILP32_OFF32_LDFLAGS
 # if _POSIX_V6_ILP32_OFF32 == -1
-#  error __ILP32_OFF32_LDFLAGS shouldn't be defined
+#  error __ILP32_OFF32_LDFLAGS should not be defined
 # elif !defined _POSIX_V6_ILP32_OFF32
       if (__sysconf (_SC_V6_ILP32_OFF32) < 0)
         break;
@@ -169,7 +169,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS:
 #ifdef __ILP32_OFFBIG_LDFLAGS
 # if _POSIX_V6_ILP32_OFFBIG == -1
-#  error __ILP32_OFFBIG_LDFLAGS shouldn't be defined
+#  error __ILP32_OFFBIG_LDFLAGS should not be defined
 # elif !defined _POSIX_V6_ILP32_OFFBIG
       if (__sysconf (_SC_V6_ILP32_OFFBIG) < 0)
         break;
@@ -183,7 +183,7 @@ confstr (name, buf, len)
     case _CS_POSIX_V6_LP64_OFF64_LDFLAGS:
 #ifdef __LP64_OFF64_LDFLAGS
 # if _POSIX_V6_LP64_OFF64 == -1
-#  error __LP64_OFF64_LDFLAGS shouldn't be defined
+#  error __LP64_OFF64_LDFLAGS should not be defined
 # elif !defined _POSIX_V6_LP64_OFF64
       if (__sysconf (_SC_V6_LP64_OFF64) < 0)
         break;
diff --git a/posix/getconf.c b/posix/getconf.c
index 6175dfec26..5aac25e4ca 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -912,6 +912,12 @@ static const struct conf vars[] =
     { "LEVEL4_CACHE_ASSOC", _SC_LEVEL4_CACHE_ASSOC, SYSCONF },
 #endif
 
+#ifdef _SC_IPV6
+    { "IPV6", _SC_IPV6, SYSCONF },
+#endif
+#ifdef _SC_RAW_SOCKETS
+    { "RAW_SOCKETS", _SC_RAW_SOCKETS, SYSCONF },
+#endif
 
     { NULL, 0, SYSCONF }
   };
diff --git a/posix/tst-sysconf.c b/posix/tst-sysconf.c
new file mode 100644
index 0000000000..e9ff06a8da
--- /dev/null
+++ b/posix/tst-sysconf.c
@@ -0,0 +1,114 @@
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+static struct
+{
+  long int _P_val;
+  const char *name;
+  int _SC_val;
+  bool positive;
+  bool posix2;
+} posix_options[] =
+  {
+#define N_(name, pos) { _POSIX_##name, #name, _SC_##name, pos, false }
+#define NP(name) N_ (name, true)
+#define N(name) N_ (name, false)
+#define N2(name) { _POSIX2_##name, #name, _SC_2_##name, false, true }
+    N (ADVISORY_INFO),
+    N (ASYNCHRONOUS_IO),
+    N (BARRIERS),
+    N (CLOCK_SELECTION),
+    N (CPUTIME),
+    N (FSYNC),
+    N (IPV6),
+    NP (JOB_CONTROL),
+    N (MAPPED_FILES),
+    N (MEMLOCK),
+    N (MEMLOCK_RANGE),
+    N (MEMORY_PROTECTION),
+    N (MESSAGE_PASSING),
+    N (MONOTONIC_CLOCK),
+    N (PRIORITIZED_IO),
+    N (PRIORITY_SCHEDULING),
+    N (RAW_SOCKETS),
+    N (READER_WRITER_LOCKS),
+    N (REALTIME_SIGNALS),
+    NP (REGEXP),
+    NP (SAVED_IDS),
+    N (SEMAPHORES),
+    N (SHARED_MEMORY_OBJECTS),
+    NP (SHELL),
+    N (SPAWN),
+    N (SPIN_LOCKS),
+    N (SPORADIC_SERVER),
+    N (SYNCHRONIZED_IO),
+    N (THREAD_ATTR_STACKADDR),
+    N (THREAD_ATTR_STACKSIZE),
+    N (THREAD_CPUTIME),
+    N (THREAD_PRIO_INHERIT),
+    N (THREAD_PRIO_PROTECT),
+    N (THREAD_PRIORITY_SCHEDULING),
+    N (THREAD_PROCESS_SHARED),
+    N (THREAD_SAFE_FUNCTIONS),
+    N (THREAD_SPORADIC_SERVER),
+    N (THREADS),
+    N (TIMEOUTS),
+    N (TIMERS),
+    N (TRACE),
+    N (TRACE_EVENT_FILTER),
+    N (TRACE_INHERIT),
+    N (TRACE_LOG),
+    N (TYPED_MEMORY_OBJECTS),
+    N2 (C_BIND),
+    N2 (C_DEV),
+    N2 (CHAR_TERM)
+  };
+#define nposix_options (sizeof (posix_options) / sizeof (posix_options[0]))
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+  for (int i = 0; i < nposix_options; ++i)
+    {
+      long int scret = sysconf (posix_options[i]._SC_val);
+
+      if (scret == 0)
+	{
+	  printf ("sysconf(_SC_%s%s) returned zero\n",
+		  posix_options[i].posix2 ? "2_" : "", posix_options[i].name);
+	  result = 1;
+	}
+      if (posix_options[i]._P_val != 0 && posix_options[i]._P_val != scret)
+	{
+	  printf ("sysconf(_SC_%s%s) = %ld does not match _POSIX%s_%s = %ld\n",
+		  posix_options[i].posix2 ? "2_" : "", posix_options[i].name,
+		  scret,
+		  posix_options[i].posix2 ? "2" : "", posix_options[i].name,
+		  posix_options[i]._P_val);
+	  result = 1;
+	}
+      else if (posix_options[i].positive && scret < 0)
+	{
+	  printf ("sysconf(_SC_%s%s) must be > 0\n",
+		  posix_options[i].posix2 ? "2_" : "", posix_options[i].name);
+	  result = 1;
+	}
+
+#define STDVER 200112L
+      if (scret > 0 && scret != STDVER && !posix_options[i].positive)
+	{
+	  printf ("sysconf(_SC_%s%s) must be %ldL\n",
+		  posix_options[i].posix2 ? "2_" : "", posix_options[i].name,
+		  STDVER);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/sysdeps/generic/bits/confname.h b/sysdeps/generic/bits/confname.h
index d097a4ba1a..8947d48ed7 100644
--- a/sysdeps/generic/bits/confname.h
+++ b/sysdeps/generic/bits/confname.h
@@ -492,9 +492,14 @@ enum
 #define _SC_LEVEL4_CACHE_SIZE		_SC_LEVEL4_CACHE_SIZE
     _SC_LEVEL4_CACHE_ASSOC,
 #define _SC_LEVEL4_CACHE_ASSOC		_SC_LEVEL4_CACHE_ASSOC
-    _SC_LEVEL4_CACHE_LINESIZE
+    _SC_LEVEL4_CACHE_LINESIZE,
 #define _SC_LEVEL4_CACHE_LINESIZE	_SC_LEVEL4_CACHE_LINESIZE
     /* Leave room here, maybe we need a few more cache levels some day.  */
+
+    _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+#define _SC_IPV6			_SC_IPV6
+    _SC_RAW_SOCKETS
+#define _SC_RAW_SOCKETS			_SC_RAW_SOCKETS
   };
 
 /* Values for the NAME argument to `confstr'.  */
diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
index de81c2120b..a4bc2e78b1 100644
--- a/sysdeps/posix/sysconf.c
+++ b/sysdeps/posix/sysconf.c
@@ -1189,6 +1189,20 @@ __sysconf (name)
 	 return zero which indicates that no information is
 	 available.  */
       return 0;
+
+    case _SC_IPV6:
+#ifdef _POSIX_IPV6
+      return _POSIX_IPV6;
+#else
+      return -1;
+#endif
+
+    case _SC_RAW_SOCKETS:
+#ifdef _POSIX_RAW_SOCKETS
+      return _POSIX_RAW_SOCKETS;
+#else
+      return -1;
+#endif
     }
 }
 
diff --git a/sysdeps/unix/sysv/linux/mips/pread.c b/sysdeps/unix/sysv/linux/mips/pread.c
index d0947bea42..eff7d473d0 100644
--- a/sysdeps/unix/sysv/linux/mips/pread.c
+++ b/sysdeps/unix/sysv/linux/mips/pread.c
@@ -20,7 +20,9 @@
 
 #include <assert.h>
 #include <errno.h>
+#ifndef NO_SGIDEFS_H
 #include <sgidefs.h>
+#endif
 #include <unistd.h>
 #include <endian.h>
 
@@ -29,9 +31,6 @@
 #include <bp-checks.h>
 
 #include <kernel-features.h>
-#ifndef NO_SGIDEFS_H
-#include <sgidefs.h>
-#endif
 
 #ifdef __NR_pread64             /* Newer kernels renamed but it's the same.  */
 # ifdef __NR_pread
diff --git a/sysdeps/unix/sysv/linux/mips/pread64.c b/sysdeps/unix/sysv/linux/mips/pread64.c
index e8a45da5b1..d8763acabb 100644
--- a/sysdeps/unix/sysv/linux/mips/pread64.c
+++ b/sysdeps/unix/sysv/linux/mips/pread64.c
@@ -19,7 +19,9 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#ifndef NO_SGIDEFS_H
 #include <sgidefs.h>
+#endif
 #include <unistd.h>
 #include <endian.h>
 
@@ -28,9 +30,6 @@
 #include <bp-checks.h>
 
 #include <kernel-features.h>
-#ifndef NO_SGIDEFS_H
-#include <sgidefs.h>
-#endif
 
 #ifdef __NR_pread64             /* Newer kernels renamed but it's the same.  */
 # ifdef __NR_pread
diff --git a/sysdeps/unix/sysv/linux/mips/pwrite.c b/sysdeps/unix/sysv/linux/mips/pwrite.c
index 130515af6d..4378ebc859 100644
--- a/sysdeps/unix/sysv/linux/mips/pwrite.c
+++ b/sysdeps/unix/sysv/linux/mips/pwrite.c
@@ -20,7 +20,9 @@
 
 #include <assert.h>
 #include <errno.h>
+#ifndef NO_SGIDEFS_H
 #include <sgidefs.h>
+#endif
 #include <unistd.h>
 #include <endian.h>
 
@@ -29,9 +31,6 @@
 #include <bp-checks.h>
 
 #include <kernel-features.h>
-#ifndef NO_SGIDEFS_H
-#include <sgidefs.h>
-#endif
 
 #ifdef __NR_pwrite64            /* Newer kernels renamed but it's the same.  */
 # ifdef __NR_pwrite
diff --git a/sysdeps/unix/sysv/linux/mips/pwrite64.c b/sysdeps/unix/sysv/linux/mips/pwrite64.c
index e4908fa779..e5853e432e 100644
--- a/sysdeps/unix/sysv/linux/mips/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/mips/pwrite64.c
@@ -19,7 +19,9 @@
    02111-1307 USA.  */
 
 #include <errno.h>
+#ifndef NO_SGIDEFS_H
 #include <sgidefs.h>
+#endif
 #include <unistd.h>
 #include <endian.h>