summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-04-22 17:37:40 +0000
committerUlrich Drepper <drepper@redhat.com>2001-04-22 17:37:40 +0000
commita3bbce5b6895a927b60ba92e384e9682afb9d8c3 (patch)
treed887d4cc901a31f44c93ad69e578380df84b88ec
parente17e51b4dac7c359049a915d380c4793231e0eda (diff)
downloadglibc-a3bbce5b6895a927b60ba92e384e9682afb9d8c3.tar.gz
glibc-a3bbce5b6895a927b60ba92e384e9682afb9d8c3.tar.xz
glibc-a3bbce5b6895a927b60ba92e384e9682afb9d8c3.zip
Update.
2001-04-22  Ulrich Drepper  <drepper@redhat.com>

	* posix/getconf.c: Fix names of XBS5 LFS test variables.
	Add missing configuration variables from XPG6.
	* posix/tst-getconf.c: New file.
	* posix/Makefile (generated): Add tst-getconf.out.
	(tests): Add ($objpfx)tst-getconf.out.
	Add rule to run tst-getconf.sh.
	* sysdeps/generic/bits/confname.h: Add missing _PC_ and _SC_ values
	from XPG6.
	* sysdeps/posix/fpathconf.c: Add handling of _PC_ALLOC_SIZE_MIN and
	_PC_SYMLINK_MAX.
	* sysdeps/posix/pathconf.c: Likewise.
	* sysdeps/posix/sysconf.c: Correct spelling of _SC_MULTI_PROCESS
	and _SC_SYMLOOP_MAX.
-rw-r--r--ChangeLog16
-rw-r--r--bits/confname.h27
-rw-r--r--linuxthreads/ChangeLog5
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h3
-rw-r--r--linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h5
-rw-r--r--posix/Makefile7
-rw-r--r--posix/getconf.c195
-rw-r--r--posix/tst-getconf.sh233
-rw-r--r--sysdeps/generic/bits/confname.h27
-rw-r--r--sysdeps/posix/fpathconf.c17
-rw-r--r--sysdeps/posix/pathconf.c17
-rw-r--r--sysdeps/posix/sysconf.c8
12 files changed, 479 insertions, 81 deletions
diff --git a/ChangeLog b/ChangeLog
index dd2d5db398..e71c4a4d07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2001-04-22  Ulrich Drepper  <drepper@redhat.com>
+
+	* posix/getconf.c: Fix names of XBS5 LFS test variables.
+	Add missing configuration variables from XPG6.
+	* posix/tst-getconf.c: New file.
+	* posix/Makefile (generated): Add tst-getconf.out.
+	(tests): Add ($objpfx)tst-getconf.out.
+	Add rule to run tst-getconf.sh.
+	* sysdeps/generic/bits/confname.h: Add missing _PC_ and _SC_ values
+	from XPG6.
+	* sysdeps/posix/fpathconf.c: Add handling of _PC_ALLOC_SIZE_MIN and
+	_PC_SYMLINK_MAX.
+	* sysdeps/posix/pathconf.c: Likewise.
+	* sysdeps/posix/sysconf.c: Correct spelling of _SC_MULTI_PROCESS
+	and _SC_SYMLOOP_MAX.
+
 2001-04-22  Philip Blundell  <philb@gnu.org>
 
 	* sysdeps/arm/fpu/feenablxcpt.c: New file.
diff --git a/bits/confname.h b/bits/confname.h
index 56dc02181d..7c785e87e6 100644
--- a/bits/confname.h
+++ b/bits/confname.h
@@ -58,8 +58,12 @@ enum
 #define _PC_REC_MAX_XFER_SIZE		_PC_REC_MAX_XFER_SIZE
     _PC_REC_MIN_XFER_SIZE,
 #define _PC_REC_MIN_XFER_SIZE		_PC_REC_MIN_XFER_SIZE
-    _PC_REC_XFER_ALIGN
+    _PC_REC_XFER_ALIGN,
 #define _PC_REC_XFER_ALIGN		_PC_REC_XFER_ALIGN
+    _PC_ALLOC_SIZE_MIN,
+#define _PC_ALLOC_SIZE_MIN		_PC_ALLOC_SIZE_MIN
+    _PC_SYMLINK_MAX
+#define _PC_SYMLINK_MAX			_PC_SYMLINK_MAX
   };
 
 /* Values for the argument to `sysconf'.  */
@@ -384,8 +388,8 @@ enum
 #define _SC_FILE_SYSTEM			_SC_FILE_SYSTEM
     _SC_MONOTONIC_CLOCK,
 #define _SC_MONOTONIC_CLOCK		_SC_MONOTONIC_CLOCK
-    _SC_MULTIPLE_PROCESS,
-#define _SC_MULTIPLE_PROCESS		_SC_MULTIPLE_PROCESS
+    _SC_MULTI_PROCESS,
+#define _SC_MULTI_PROCESS		_SC_MULTI_PROCESS
     _SC_SINGLE_PROCESS,
 #define _SC_SINGLE_PROCESS		_SC_SINGLE_PROCESS
     _SC_NETWORKING,
@@ -430,8 +434,8 @@ enum
 #define _SC_2_PBS_MESSAGE		_SC_2_PBS_MESSAGE
     _SC_2_PBS_TRACK,
 #define _SC_2_PBS_TRACK			_SC_2_PBS_TRACK
-    _SC_SYMLOOP,
-#define _SC_SYMLOOP			_SC_SYMLOOP
+    _SC_SYMLOOP_MAX,
+#define _SC_SYMLOOP_MAX			_SC_SYMLOOP_MAX
     _SC_STREAMS,
 #define _SC_STREAMS			_SC_STREAMS
     _SC_2_PBS_CHECKPOINT,
@@ -443,8 +447,19 @@ enum
 #define _SC_V6_ILP32_OFFBIG		_SC_V6_ILP32_OFFBIG
     _SC_V6_LP64_OFF64,
 #define _SC_V6_LP64_OFF64		_SC_V6_LP64_OFF64
-    _SC_V6_LPBIG_OFFBIG
+    _SC_V6_LPBIG_OFFBIG,
 #define _SC_V6_LPBIG_OFFBIG		_SC_V6_LPBIG_OFFBIG
+
+    _SC_HOST_NAME_MAX,
+#define _SC_HOST_NAME_MAX		_SC_HOST_NAME_MAX
+    _SC_TRACE,
+#define _SC_TRACE			_SC_TRACE
+    _SC_TRACE_EVENT_FILTER,
+#define _SC_TRACE_EVENT_FILTER		_SC_TRACE_EVENT_FILTER
+    _SC_TRACE_INHERIT,
+#define _SC_TRACE_INHERIT		_SC_TRACE_INHERIT
+    _SC_TRACE_LOG
+#define _SC_TRACE_LOG			_SC_TRACE_LOG
   };
 
 #if (defined __USE_POSIX2 || defined __USE_UNIX98 \
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 4596333bed..0e9c9fb73b 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,8 @@
+2001-04-22  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _POSIX_ASYNCH_IO.
+	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
+
 2001-04-21  Andreas Jaeger  <aj@suse.de>
 
 	* sysdeps/pthread/timer_routines.c (thread_func): Add noreturn
diff --git a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
index 83c5152e37..54640bb56c 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -1,5 +1,5 @@
 /* Define POSIX options for Linux.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 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
@@ -96,6 +96,7 @@
 
 /* We support asynchronous I/O.  */
 #define _POSIX_ASYNCHRONOUS_IO	1
+#define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
 
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 e290c63cc9..1789607580 100644
--- a/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
+++ b/linuxthreads/sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
@@ -1,5 +1,5 @@
-/* Define POSIX options for Linux.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Define POSIX options for Linux/ix86.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 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
@@ -96,6 +96,7 @@
 
 /* We support asynchronous I/O.  */
 #define _POSIX_ASYNCHRONOUS_IO	1
+#define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
 
diff --git a/posix/Makefile b/posix/Makefile
index 1104609c37..f61c3a2747 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -83,7 +83,7 @@ before-compile	:= testcases.h ptestcases.h
 # So they get cleaned up.
 generated := $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
 	     annexc annexc.out wordexp-tst.out bug-regex2-mem \
-	     bug-regex2.mtrace
+	     bug-regex2.mtrace tst-getconf.out
 
 include ../Rules
 
@@ -140,7 +140,7 @@ endif
 # XXX Please note that for now we ignore the result of this test.
 tests: $(objpfx)annexc.out
 ifeq (no,$(cross-compiling))
-tests:$(objpfx)bug-regex2-mem
+tests:$(objpfx)bug-regex2-mem $(objpfx)tst-getconf.out
 endif
 
 $(objpfx)annexc.out: $(objpfx)annexc
@@ -154,3 +154,6 @@ bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace
 
 $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out
 	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex2.mtrace > $@
+
+$(objpfx)tst-getconf.out: tst-getconf.sh $(objpfx)getconf
+	$(SHELL) -e $< $(common-objpfx) $(elf-objpfx) $(rtld-installed-name)
diff --git a/posix/getconf.c b/posix/getconf.c
index 903ad02af2..9458e1ef4b 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -365,6 +365,9 @@ static const struct conf vars[] =
 #ifdef _SC_TIMERS
     { "_POSIX_TIMERS", _SC_TIMERS, SYSCONF },
 #endif
+#ifdef _SC_TIMER_MAX
+    { "TIMER_MAX", _SC_TIMER_MAX, SYSCONF },
+#endif
 #ifdef _SC_TZNAME_MAX
     { "_POSIX_TZNAME_MAX", _SC_TZNAME_MAX, SYSCONF },
 #endif
@@ -473,7 +476,7 @@ static const struct conf vars[] =
     { "POSIX2_FORT_RUN", _SC_2_FORT_RUN, SYSCONF },
 #endif
 #ifdef _SC_LINE_MAX
-    { "POSIX2_LINE_MAX", _SC_LINE_MAX, SYSCONF },
+    { "_POSIX2_LINE_MAX", _SC_LINE_MAX, SYSCONF },
 #endif
 #ifdef _SC_2_LOCALEDEF
     { "POSIX2_LOCALEDEF", _SC_2_LOCALEDEF, SYSCONF },
@@ -527,7 +530,7 @@ static const struct conf vars[] =
 
     /* Programming environments.  */
 #ifdef _SC_XBS5_ILP32_OFF32
-    { "XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32, SYSCONF },
+    { "_XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32, SYSCONF },
 #endif
 #ifdef _CS_XBS5_ILP32_OFF32_CFLAGS
     { "XBS5_ILP32_OFF32_CFLAGS", _CS_XBS5_ILP32_OFF32_CFLAGS, CONFSTR },
@@ -543,7 +546,7 @@ static const struct conf vars[] =
 #endif
 
 #ifdef _SC_XBS5_ILP32_OFFBIG
-    { "XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG, SYSCONF },
+    { "_XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG, SYSCONF },
 #endif
 #ifdef _CS_XBS5_ILP32_OFFBIG_CFLAGS
     { "XBS5_ILP32_OFFBIG_CFLAGS", _CS_XBS5_ILP32_OFFBIG_CFLAGS, CONFSTR },
@@ -559,7 +562,7 @@ static const struct conf vars[] =
 #endif
 
 #ifdef _SC_XBS5_LP64_OFF64
-    { "XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64, SYSCONF },
+    { "_XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64, SYSCONF },
 #endif
 #ifdef _CS_XBS5_LP64_OFF64_CFLAGS
     { "XBS5_LP64_OFF64_CFLAGS", _CS_XBS5_LP64_OFF64_CFLAGS, CONFSTR },
@@ -575,7 +578,7 @@ static const struct conf vars[] =
 #endif
 
 #ifdef _SC_XBS5_LPBIG_OFFBIG
-    { "XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG, SYSCONF },
+    { "_XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG, SYSCONF },
 #endif
 #ifdef _CS_XBS5_LPBIG_OFFBIG_CFLAGS
     { "XBS5_LPBIG_OFFBIG_CFLAGS", _CS_XBS5_LPBIG_OFFBIG_CFLAGS, CONFSTR },
@@ -650,135 +653,207 @@ static const struct conf vars[] =
 #ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
     { "POSIX_V6_LPBIG_OFFBIG_LIBS", _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, CONFSTR },
 #endif
-#ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAG
-    { "POSIX_V6_LPBIG_OFFBIG_LINTFLAG", _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAG, CONFSTR },
+#ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+    { "POSIX_V6_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
 #endif
 
 #ifdef _SC_ADVISORY_INFO
-    { "ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF },
+    { "_POSIX_ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF },
 #endif
 #ifdef _SC_BARRIERS
-    { "BARRIERS", _SC_BARRIERS, SYSCONF },
+    { "_POSIX_BARRIERS", _SC_BARRIERS, SYSCONF },
 #endif
 #ifdef _SC_BASE
-    { "BASE", _SC_BASE, SYSCONF },
+    { "_POSIX_BASE", _SC_BASE, SYSCONF },
 #endif
 #ifdef _SC_C_LANG_SUPPORT
-    { "C_LANG_SUPPORT", _SC_C_LANG_SUPPORT, SYSCONF },
+    { "_POSIX_C_LANG_SUPPORT", _SC_C_LANG_SUPPORT, SYSCONF },
 #endif
 #ifdef _SC_C_LANG_SUPPORT_R
-    { "C_LANG_SUPPORT_R", _SC_C_LANG_SUPPORT_R, SYSCONF },
+    { "_POSIX_C_LANG_SUPPORT_R", _SC_C_LANG_SUPPORT_R, SYSCONF },
 #endif
 #ifdef _SC_CLOCK_SELECTION
-    { "CLOCK_SELECTION", _SC_CLOCK_SELECTION, SYSCONF },
+    { "_POSIX_CLOCK_SELECTION", _SC_CLOCK_SELECTION, SYSCONF },
 #endif
 #ifdef _SC_CPUTIME
-    { "CPUTIME", _SC_CPUTIME, SYSCONF },
+    { "_POSIX_CPUTIME", _SC_CPUTIME, SYSCONF },
 #endif
 #ifdef _SC_THREAD_CPUTIME
-    { "THREAD_CPUTIME", _SC_THREAD_CPUTIME, SYSCONF },
+    { "_POSIX_THREAD_CPUTIME", _SC_THREAD_CPUTIME, SYSCONF },
 #endif
 #ifdef _SC_DEVICE_SPECIFIC
-    { "DEVICE_SPECIFIC", _SC_DEVICE_SPECIFIC, SYSCONF },
+    { "_POSIX_DEVICE_SPECIFIC", _SC_DEVICE_SPECIFIC, SYSCONF },
 #endif
 #ifdef _SC_DEVICE_SPECIFIC_R
-    { "DEVICE_SPECIFIC_R", _SC_DEVICE_SPECIFIC_R, SYSCONF },
+    { "_POSIX_DEVICE_SPECIFIC_R", _SC_DEVICE_SPECIFIC_R, SYSCONF },
 #endif
 #ifdef _SC_FD_MGMT
-    { "FD_MGMT", _SC_FD_MGMT, SYSCONF },
+    { "_POSIX_FD_MGMT", _SC_FD_MGMT, SYSCONF },
 #endif
 #ifdef _SC_FIFO
-    { "FIFO", _SC_FIFO, SYSCONF },
+    { "_POSIX_FIFO", _SC_FIFO, SYSCONF },
 #endif
 #ifdef _SC_PIPE
-    { "PIPE", _SC_PIPE, SYSCONF },
+    { "_POSIX_PIPE", _SC_PIPE, SYSCONF },
 #endif
 #ifdef _SC_FILE_ATTRIBUTES
-    { "FILE_ATTRIBUTES", _SC_FILE_ATTRIBUTES, SYSCONF },
+    { "_POSIX_FILE_ATTRIBUTES", _SC_FILE_ATTRIBUTES, SYSCONF },
 #endif
 #ifdef _SC_FILE_LOCKING
-    { "FILE_LOCKING", _SC_FILE_LOCKING, SYSCONF },
+    { "_POSIX_FILE_LOCKING", _SC_FILE_LOCKING, SYSCONF },
 #endif
 #ifdef _SC_FILE_SYSTEM
-    { "FILE_SYSTEM", _SC_FILE_SYSTEM, SYSCONF },
+    { "_POSIX_FILE_SYSTEM", _SC_FILE_SYSTEM, SYSCONF },
 #endif
 #ifdef _SC_MONOTONIC_CLOCK
-    { "MONOTONIC_CLOCK", _SC_MONOTONIC_CLOCK, SYSCONF },
+    { "_POSIX_MONOTONIC_CLOCK", _SC_MONOTONIC_CLOCK, SYSCONF },
 #endif
-#ifdef _SC_MULTIPLE_PROCESS
-    { "MULTIPLE_PROCESS", _SC_MULTIPLE_PROCESS, SYSCONF },
+#ifdef _SC_MULTI_PROCESS
+    { "_POSIX_MULTI_PROCESS", _SC_MULTI_PROCESS, SYSCONF },
 #endif
 #ifdef _SC_SINGLE_PROCESS
-    { "SINGLE_PROCESS", _SC_SINGLE_PROCESS, SYSCONF },
+    { "_POSIX_SINGLE_PROCESS", _SC_SINGLE_PROCESS, SYSCONF },
 #endif
 #ifdef _SC_NETWORKING
-    { "NETWORKING", _SC_NETWORKING, SYSCONF },
+    { "_POSIX_NETWORKING", _SC_NETWORKING, SYSCONF },
 #endif
 #ifdef _SC_READER_WRITER_LOCKS
-    { "READER_WRITER_LOCKS", _SC_READER_WRITER_LOCKS, SYSCONF },
+    { "_POSIX_READER_WRITER_LOCKS", _SC_READER_WRITER_LOCKS, SYSCONF },
 #endif
 #ifdef _SC_SPIN_LOCKS
-    { "SPIN_LOCKS", _SC_SPIN_LOCKS, SYSCONF },
-#endif
-#ifdef _SC_REXEXP
-    { "REGEXP", _SC_REXEXP, SYSCONF },
+    { "_POSIX_SPIN_LOCKS", _SC_SPIN_LOCKS, SYSCONF },
 #endif
-#ifdef _SC_REXEXP
-    { "REGEXP", _SC_REXEXP, SYSCONF },
+#ifdef _SC_REGEXP
+    { "_POSIX_REGEXP", _SC_REGEXP, SYSCONF },
 #endif
-#ifdef _SC_REXEX_VERSION
-    { "REGEX_VERSION", _SC_REXEX_VERSION, SYSCONF },
+#ifdef _SC_REGEX_VERSION
+    { "_REGEX_VERSION", _SC_REGEX_VERSION, SYSCONF },
 #endif
 #ifdef _SC_SHELL
-    { "SHELL", _SC_SHELL, SYSCONF },
+    { "_POSIX_SHELL", _SC_SHELL, SYSCONF },
 #endif
 #ifdef _SC_SIGNALS
-    { "SIGNALS", _SC_SIGNALS, SYSCONF },
+    { "_POSIX_SIGNALS", _SC_SIGNALS, SYSCONF },
 #endif
 #ifdef _SC_SPAWN
-    { "SPAWN", _SC_SPAWN, SYSCONF },
+    { "_POSIX_SPAWN", _SC_SPAWN, SYSCONF },
 #endif
 #ifdef _SC_SPORADIC_SERVER
-    { "SPORADIC_SERVER", _SC_SPORADIC_SERVER, SYSCONF },
+    { "_POSIX_SPORADIC_SERVER", _SC_SPORADIC_SERVER, SYSCONF },
 #endif
 #ifdef _SC_THREAD_SPORADIC_SERVER
-    { "THREAD_SPORADIC_SERVER", _SC_THREAD_SPORADIC_SERVER, SYSCONF },
+    { "_POSIX_THREAD_SPORADIC_SERVER", _SC_THREAD_SPORADIC_SERVER, SYSCONF },
 #endif
 #ifdef _SC_SYSTEM_DATABASE
-    { "SYSTEM_DATABASE", _SC_SYSTEM_DATABASE, SYSCONF },
+    { "_POSIX_SYSTEM_DATABASE", _SC_SYSTEM_DATABASE, SYSCONF },
 #endif
 #ifdef _SC_SYSTEM_DATABASE_R
-    { "SYSTEM_DATABASE_R", _SC_SYSTEM_DATABASE_R, SYSCONF },
+    { "_POSIX_SYSTEM_DATABASE_R", _SC_SYSTEM_DATABASE_R, SYSCONF },
 #endif
 #ifdef _SC_TIMEOUTS
-    { "TIMEOUTS", _SC_TIMEOUTS, SYSCONF },
+    { "_POSIX_TIMEOUTS", _SC_TIMEOUTS, SYSCONF },
 #endif
 #ifdef _SC_TYPED_MEMORY_OBJECTS
-    { "TYPED_MEMORY_OBJECTS", _SC_TYPED_MEMORY_OBJECTS, SYSCONF },
+    { "_POSIX_TYPED_MEMORY_OBJECTS", _SC_TYPED_MEMORY_OBJECTS, SYSCONF },
 #endif
 #ifdef _SC_USER_GROUPS
-    { "USER_GROUPS", _SC_USER_GROUPS, SYSCONF },
+    { "_POSIX_USER_GROUPS", _SC_USER_GROUPS, SYSCONF },
 #endif
 #ifdef _SC_USER_GROUPS_R
-    { "USER_GROUPS_R", _SC_USER_GROUPS_R, SYSCONF },
+    { "_POSIX_USER_GROUPS_R", _SC_USER_GROUPS_R, SYSCONF },
+#endif
+#ifdef _SC_2_PBS
+    { "POSIX2_PBS", _SC_2_PBS, SYSCONF },
+#endif
+#ifdef _SC_2_PBS_ACCOUNTING
+    { "POSIX2_PBS_ACCOUNTING", _SC_2_PBS_ACCOUNTING, SYSCONF },
+#endif
+#ifdef _SC_2_PBS_LOCATE
+    { "POSIX2_PBS_LOCATE", _SC_2_PBS_LOCATE, SYSCONF },
+#endif
+#ifdef _SC_2_PBS_TRACK
+    { "POSIX2_PBS_TRACK", _SC_2_PBS_TRACK, SYSCONF },
+#endif
+#ifdef _SC_2_PBS_MESSAGE
+    { "POSIX2_PBS_MESSAGE", _SC_2_PBS_MESSAGE, SYSCONF },
+#endif
+#ifdef _SC_SYMLOOP_MAX
+    { "SYMLOOP_MAX", _SC_SYMLOOP_MAX, SYSCONF },
+#endif
+#ifdef _SC_STREAM_MAX
+    { "STREAM_MAX", _SC_STREAM_MAX, SYSCONF },
+#endif
+#ifdef _SC_AIO_LISTIO_MAX
+    { "AIO_LISTIO_MAX", _SC_AIO_LISTIO_MAX, SYSCONF },
+#endif
+#ifdef _SC_AIO_MAX
+    { "AIO_MAX", _SC_AIO_MAX, SYSCONF },
+#endif
+#ifdef _SC_AIO_PRIO_DELTA_MAX
+    { "AIO_PRIO_DELTA_MAX", _SC_AIO_PRIO_DELTA_MAX, SYSCONF },
+#endif
+#ifdef _SC_DELAYTIMER_MAX
+    { "DELAYTIMER_MAX", _SC_DELAYTIMER_MAX, SYSCONF },
+#endif
+#ifdef _SC_HOST_NAME_MAX
+    { "HOST_NAME_MAX", _SC_HOST_NAME_MAX, SYSCONF },
+#endif
+#ifdef _SC_LOGIN_NAME_MAX
+    { "LOGIN_NAME_MAX", _SC_LOGIN_NAME_MAX, SYSCONF },
+#endif
+#ifdef _SC_MQ_OPEN_MAX
+    { "MQ_OPEN_MAX", _SC_MQ_OPEN_MAX, SYSCONF },
+#endif
+#ifdef _SC_MQ_PRIO_MAX
+    { "MQ_PRIO_MAX", _SC_MQ_PRIO_MAX, SYSCONF },
+#endif
+#ifdef _SC_DEVICE_IO
+    { "_POSIX_DEVICE_IO", _SC_DEVICE_IO, SYSCONF },
+#endif
+#ifdef _SC_TRACE
+    { "_POSIX_TRACE", _SC_TRACE, SYSCONF },
+#endif
+#ifdef _SC_TRACE_EVENT_FILTER
+    { "_POSIX_TRACE_EVENT_FILTER", _SC_TRACE_EVENT_FILTER, SYSCONF },
+#endif
+#ifdef _SC_TRACE_INHERIT
+    { "_POSIX_TRACE_INHERIT", _SC_TRACE_INHERIT, SYSCONF },
+#endif
+#ifdef _SC_TRACE_LOG
+    { "_POSIX_TRACE_LOG", _SC_TRACE_LOG, SYSCONF },
+#endif
+#ifdef _SC_RTSIG_MAX
+    { "RTSIG_MAX", _SC_RTSIG_MAX, SYSCONF },
+#endif
+#ifdef _SC_SEM_NSEMS_MAX
+    { "SEM_NSEMS_MAX", _SC_SEM_NSEMS_MAX, SYSCONF },
+#endif
+#ifdef _SC_SEM_VALUE_MAX
+    { "SEM_VALUE_MAX", _SC_SEM_VALUE_MAX, SYSCONF },
+#endif
+#ifdef _SC_SIGQUEUE_MAX
+    { "SIGQUEUE_MAX", _SC_SIGQUEUE_MAX, SYSCONF },
+#endif
+#ifdef _PC_FILESIZEBITS
+    { "FILESIZEBITS", _PC_FILESIZEBITS, PATHCONF },
 #endif
-#ifdef _SC_PBS
-    { "PBS", _SC_PBS, SYSCONF },
+#ifdef _PC_ALLOC_SIZE_MIN
+    { "POSIX_ALLOC_SIZE_MIN", _PC_ALLOC_SIZE_MIN, PATHCONF },
 #endif
-#ifdef _SC_PBS_ACCOUNTING
-    { "PBS_ACCOUNT", _SC_PBS_ACCOUNTING, SYSCONF },
+#ifdef _PC_REC_INCR_XFER_SIZE
+    { "POSIX_REC_INCR_XFER_SIZE", _PC_REC_INCR_XFER_SIZE, PATHCONF },
 #endif
-#ifdef _SC_PBS_LOCATE
-    { "PBS_LOCATE", _SC_PBS_LOCATE, SYSCONF },
+#ifdef _PC_REC_MAX_XFER_SIZE
+    { "POSIX_REC_MAX_XFER_SIZE", _PC_REC_MAX_XFER_SIZE, PATHCONF },
 #endif
-#ifdef _SC_PBS_TRACK
-    { "PBS_TRACK", _SC_PBS_TRACK, SYSCONF },
+#ifdef _PC_REC_MIN_XFER_SIZE
+    { "POSIX_REC_MIN_XFER_SIZE", _PC_REC_MIN_XFER_SIZE, PATHCONF },
 #endif
-#ifdef _SC_PBS_MESSAGE
-    { "PBS_MESSAGE", _SC_PBS_MESSAGE, SYSCONF },
+#ifdef _PC_REC_XFER_ALIGN
+    { "POSIX_REC_XFER_ALIGN", _PC_REC_XFER_ALIGN, PATHCONF },
 #endif
-#ifdef _SC_SYMLOOP
-    { "SYMLOOP", _SC_SYMLOOP, SYSCONF },
+#ifdef _PC_SYMLINK_MAX
+    { "SYMLINK_MAX", _PC_SYMLINK_MAX, PATHCONF },
 #endif
 
     { NULL, 0, SYSCONF }
diff --git a/posix/tst-getconf.sh b/posix/tst-getconf.sh
new file mode 100644
index 0000000000..e8f27b323f
--- /dev/null
+++ b/posix/tst-getconf.sh
@@ -0,0 +1,233 @@
+#! /bin/sh
+
+common_objpfx=$1; shift
+elf_objpfx=$1; shift
+rtld_installed_name=$1; shift
+logfile=$common_objpfx/posix/tst-getconf.out
+
+# Since we use `sort' we must make sure to use the same locale everywhere.
+LC_ALL=C
+export LC_ALL
+LANG=C
+export LANG
+
+rm -f $logfile
+result=0
+while read name; do
+  echo -n "getconf $name: " >> $logfile
+  ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \
+  ${common_objpfx}posix/getconf "$name" 2>> $logfile >> $logfile
+  if test $? -ne 0; then
+    echo "*** $name FAILED" >> $logfile
+    result=1
+  fi
+done <<EOF
+AIO_LISTIO_MAX
+AIO_MAX
+AIO_PRIO_DELTA_MAX
+ARG_MAX
+ATEXIT_MAX
+BC_BASE_MAX
+BC_DIM_MAX
+BC_SCALE_MAX
+BC_STRING_MAX
+CHILD_MAX
+COLL_WEIGHTS_MAX
+DELAYTIMER_MAX
+EXPR_NEST_MAX
+HOST_NAME_MAX
+IOV_MAX
+LINE_MAX
+LOGIN_NAME_MAX
+NGROUPS_MAX
+MQ_OPEN_MAX
+MQ_PRIO_MAX
+OPEN_MAX
+_POSIX_ADVISORY_INFO
+_POSIX_BARRIERS
+_POSIX_ASYNCHRONOUS_IO
+_POSIX_BASE
+_POSIX_C_LANG_SUPPORT
+_POSIX_C_LANG_SUPPORT_R
+_POSIX_CLOCK_SELECTION
+_POSIX_CPUTIME
+_POSIX_DEVICE_IO
+_POSIX_DEVICE_SPECIFIC
+_POSIX_DEVICE_SPECIFIC_R
+_POSIX_FD_MGMT
+_POSIX_FIFO
+_POSIX_FILE_ATTRIBUTES
+_POSIX_FILE_LOCKING
+_POSIX_FILE_SYSTEM
+_POSIX_FSYNC
+_POSIX_JOB_CONTROL
+_POSIX_MAPPED_FILES
+_POSIX_MEMLOCK
+_POSIX_MEMLOCK_RANGE
+_POSIX_MEMORY_PROTECTION
+_POSIX_MESSAGE_PASSING
+_POSIX_MONOTONIC_CLOCK
+_POSIX_MULTI_PROCESS
+_POSIX_NETWORKING
+_POSIX_PIPE
+_POSIX_PRIORITIZED_IO
+_POSIX_PRIORITY_SCHEDULING
+_POSIX_READER_WRITER_LOCKS
+_POSIX_REALTIME_SIGNALS
+_POSIX_REGEXP
+_POSIX_SAVED_IDS
+_POSIX_SEMAPHORES
+_POSIX_SHARED_MEMORY_OBJECTS
+_POSIX_SHELL
+_POSIX_SIGNALS
+_POSIX_SINGLE_PROCESS
+_POSIX_SPAWN
+_POSIX_SPIN_LOCKS
+_POSIX_SPORADIC_SERVER
+_POSIX_SYNCHRONIZED_IO
+_POSIX_SYSTEM_DATABASE
+_POSIX_SYSTEM_DATABASE_R
+_POSIX_THREAD_ATTR_STACKADDR
+_POSIX_THREAD_ATTR_STACKSIZE
+_POSIX_THREAD_CPUTIME
+_POSIX_THREAD_PRIO_INHERIT
+_POSIX_THREAD_PRIO_PROTECT
+_POSIX_THREAD_PRIORITY_SCHEDULING
+_POSIX_THREAD_PROCESS_SHARED
+_POSIX_THREAD_SAFE_FUNCTIONS
+_POSIX_THREAD_SPORADIC_SERVER
+_POSIX_THREADS
+_POSIX_TIMEOUTS
+_POSIX_TIMERS
+_POSIX_TRACE
+_POSIX_TRACE_EVENT_FILTER
+_POSIX_TRACE_INHERIT
+_POSIX_TRACE_LOG
+_POSIX_TYPED_MEMORY_OBJECTS
+_POSIX_USER_GROUPS
+_POSIX_USER_GROUPS_R
+_POSIX_VERSION
+_POSIX_V6_ILP32_OFF32
+_POSIX_V6_ILP32_OFFBIG
+_POSIX_V6_LP64_OFF64
+_POSIX_V6_LPBIG_OFFBIG
+POSIX2_C_BIND
+POSIX2_C_DEV
+POSIX2_C_VERSION
+POSIX2_CHAR_TERM
+POSIX2_FORT_DEV
+POSIX2_FORT_RUN
+POSIX2_LOCALEDEF
+POSIX2_PBS
+POSIX2_PBS_ACCOUNTING
+POSIX2_PBS_LOCATE
+POSIX2_PBS_MESSAGE
+POSIX2_PBS_TRACK
+POSIX2_SW_DEV
+POSIX2_UPE
+POSIX2_VERSION
+_REGEX_VERSION
+PAGE_SIZE
+PAGESIZE
+PTHREAD_DESTRUCTOR_ITERATIONS
+PTHREAD_KEYS_MAX
+PTHREAD_STACK_MIN
+PTHREAD_THREADS_MAX
+RE_DUP_MAX
+RTSIG_MAX
+SEM_NSEMS_MAX
+SEM_VALUE_MAX
+SIGQUEUE_MAX
+STREAM_MAX
+SYMLOOP_MAX
+TIMER_MAX
+TTY_NAME_MAX
+TZNAME_MAX
+_XBS5_ILP32_OFF32
+_XBS5_ILP32_OFFBIG
+_XBS5_LP64_OFF64
+_XBS5_LPBIG_OFFBIG
+_XOPEN_CRYPT
+_XOPEN_ENH_I18N
+_XOPEN_LEGACY
+_XOPEN_REALTIME
+_XOPEN_REALTIME_THREADS
+_XOPEN_SHM
+_XOPEN_UNIX
+_XOPEN_VERSION
+_XOPEN_XCU_VERSION
+PATH
+POSIX_V6_ILP32_OFF32_CFLAGS
+POSIX_V6_ILP32_OFF32_LDFLAGS
+POSIX_V6_ILP32_OFF32_LIBS
+POSIX_V6_ILP32_OFF32_LINTFLAGS
+POSIX_V6_ILP32_OFFBIG_CFLAGS
+POSIX_V6_ILP32_OFFBIG_LDFLAGS
+POSIX_V6_ILP32_OFFBIG_LIBS
+POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+POSIX_V6_LP64_OFF64_CFLAGS
+POSIX_V6_LP64_OFF64_LDFLAGS
+POSIX_V6_LP64_OFF64_LIBS
+POSIX_V6_LP64_OFF64_LINTFLAGS
+POSIX_V6_LPBIG_OFFBIG_CFLAGS
+POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+POSIX_V6_LPBIG_OFFBIG_LIBS
+POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+XBS5_ILP32_OFF32_CFLAGS
+XBS5_ILP32_OFF32_LDFLAGS
+XBS5_ILP32_OFF32_LIBS
+XBS5_ILP32_OFF32_LINTFLAGS
+XBS5_ILP32_OFFBIG_CFLAGS
+XBS5_ILP32_OFFBIG_LDFLAGS
+XBS5_ILP32_OFFBIG_LIBS
+XBS5_ILP32_OFFBIG_LINTFLAGS
+XBS5_LP64_OFF64_CFLAGS
+XBS5_LP64_OFF64_LDFLAGS
+XBS5_LP64_OFF64_LIBS
+XBS5_LP64_OFF64_LINTFLAGS
+XBS5_LPBIG_OFFBIG_CFLAGS
+XBS5_LPBIG_OFFBIG_LDFLAGS
+XBS5_LPBIG_OFFBIG_LIBS
+XBS5_LPBIG_OFFBIG_LINTFLAGS
+EOF
+
+while read name; do
+  echo -n "getconf $name /: " >> $logfile
+  ${elf_objpfx}${rtld_installed_name} --library-path ${common_objpfx} \
+  ${common_objpfx}posix/getconf "$name" / 2>> $logfile >> $logfile
+  if test $? -ne 0; then
+    echo "*** $name FAILED" >> $logfile
+    result=1
+  fi
+done <<EOF
+FILESIZEBITS
+LINK_MAX
+MAX_CANON
+MAX_INPUT
+NAME_MAX
+PATH_MAX
+PIPE_BUF
+POSIX_ALLOC_SIZE_MIN
+POSIX_REC_INCR_XFER_SIZE
+POSIX_REC_MAX_XFER_SIZE
+POSIX_REC_MIN_XFER_SIZE
+POSIX_REC_XFER_ALIGN
+SYMLINK_MAX
+_POSIX_CHOWN_RESTRICTED
+_POSIX_NO_TRUNC
+_POSIX_VDISABLE
+_POSIX_ASYNC_IO
+_POSIX_PRIO_IO
+_POSIX_SYNC_IO
+EOF
+
+exit $result
+
+# Preserve executable bits for this shell script.
+Local Variables:
+eval:(defun frobme () (set-file-modes buffer-file-name file-mode))
+eval:(make-local-variable 'file-mode)
+eval:(setq file-mode (file-modes (buffer-file-name)))
+eval:(make-local-variable 'after-save-hook)
+eval:(add-hook 'after-save-hook 'frobme)
+End:
diff --git a/sysdeps/generic/bits/confname.h b/sysdeps/generic/bits/confname.h
index 56dc02181d..7c785e87e6 100644
--- a/sysdeps/generic/bits/confname.h
+++ b/sysdeps/generic/bits/confname.h
@@ -58,8 +58,12 @@ enum
 #define _PC_REC_MAX_XFER_SIZE		_PC_REC_MAX_XFER_SIZE
     _PC_REC_MIN_XFER_SIZE,
 #define _PC_REC_MIN_XFER_SIZE		_PC_REC_MIN_XFER_SIZE
-    _PC_REC_XFER_ALIGN
+    _PC_REC_XFER_ALIGN,
 #define _PC_REC_XFER_ALIGN		_PC_REC_XFER_ALIGN
+    _PC_ALLOC_SIZE_MIN,
+#define _PC_ALLOC_SIZE_MIN		_PC_ALLOC_SIZE_MIN
+    _PC_SYMLINK_MAX
+#define _PC_SYMLINK_MAX			_PC_SYMLINK_MAX
   };
 
 /* Values for the argument to `sysconf'.  */
@@ -384,8 +388,8 @@ enum
 #define _SC_FILE_SYSTEM			_SC_FILE_SYSTEM
     _SC_MONOTONIC_CLOCK,
 #define _SC_MONOTONIC_CLOCK		_SC_MONOTONIC_CLOCK
-    _SC_MULTIPLE_PROCESS,
-#define _SC_MULTIPLE_PROCESS		_SC_MULTIPLE_PROCESS
+    _SC_MULTI_PROCESS,
+#define _SC_MULTI_PROCESS		_SC_MULTI_PROCESS
     _SC_SINGLE_PROCESS,
 #define _SC_SINGLE_PROCESS		_SC_SINGLE_PROCESS
     _SC_NETWORKING,
@@ -430,8 +434,8 @@ enum
 #define _SC_2_PBS_MESSAGE		_SC_2_PBS_MESSAGE
     _SC_2_PBS_TRACK,
 #define _SC_2_PBS_TRACK			_SC_2_PBS_TRACK
-    _SC_SYMLOOP,
-#define _SC_SYMLOOP			_SC_SYMLOOP
+    _SC_SYMLOOP_MAX,
+#define _SC_SYMLOOP_MAX			_SC_SYMLOOP_MAX
     _SC_STREAMS,
 #define _SC_STREAMS			_SC_STREAMS
     _SC_2_PBS_CHECKPOINT,
@@ -443,8 +447,19 @@ enum
 #define _SC_V6_ILP32_OFFBIG		_SC_V6_ILP32_OFFBIG
     _SC_V6_LP64_OFF64,
 #define _SC_V6_LP64_OFF64		_SC_V6_LP64_OFF64
-    _SC_V6_LPBIG_OFFBIG
+    _SC_V6_LPBIG_OFFBIG,
 #define _SC_V6_LPBIG_OFFBIG		_SC_V6_LPBIG_OFFBIG
+
+    _SC_HOST_NAME_MAX,
+#define _SC_HOST_NAME_MAX		_SC_HOST_NAME_MAX
+    _SC_TRACE,
+#define _SC_TRACE			_SC_TRACE
+    _SC_TRACE_EVENT_FILTER,
+#define _SC_TRACE_EVENT_FILTER		_SC_TRACE_EVENT_FILTER
+    _SC_TRACE_INHERIT,
+#define _SC_TRACE_INHERIT		_SC_TRACE_INHERIT
+    _SC_TRACE_LOG
+#define _SC_TRACE_LOG			_SC_TRACE_LOG
   };
 
 #if (defined __USE_POSIX2 || defined __USE_UNIX98 \
diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c
index 93f0b99590..539a6caa25 100644
--- a/sysdeps/posix/fpathconf.c
+++ b/sysdeps/posix/fpathconf.c
@@ -202,6 +202,23 @@ __fpathconf (fd, name)
 	  return -1;
 	return sv.f_frsize;
       }
+
+    case _PC_ALLOC_SIZE_MIN:
+      {
+	/* XXX It is not entirely clear what the limit is supposed to do.
+	   I assume that the number should reflect the minimal block
+	   alignment.  */
+	struct statvfs64 sv;
+
+	if (__fstatvfs64 (fd, &sv) < 0)
+	  return -1;
+	return sv.f_frsize;
+      }
+
+    case _PC_SYMLINK_MAX:
+      /* In general there are no limits.  If a system has one it should
+	 overwrite this case.  */
+      return -1;
     }
 }
 
diff --git a/sysdeps/posix/pathconf.c b/sysdeps/posix/pathconf.c
index edb3961c67..4ce5c0d1d7 100644
--- a/sysdeps/posix/pathconf.c
+++ b/sysdeps/posix/pathconf.c
@@ -198,6 +198,23 @@ __pathconf (const char *path, int name)
 	  return -1;
 	return sv.f_frsize;
       }
+
+    case _PC_ALLOC_SIZE_MIN:
+      {
+	/* XXX It is not entirely clear what the limit is supposed to do.
+	   I assume that the number should reflect the minimal block
+	   alignment.  */
+	struct statvfs64 sv;
+
+	if (__statvfs64 (path, &sv) < 0)
+	  return -1;
+	return sv.f_frsize;
+      }
+
+    case _PC_SYMLINK_MAX:
+      /* In general there are no limits.  If a system has one it should
+	 overwrite this case.  */
+      return -1;
     }
 }
 
diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
index 4b6eced244..7a0cd4204c 100644
--- a/sysdeps/posix/sysconf.c
+++ b/sysdeps/posix/sysconf.c
@@ -951,9 +951,9 @@ __sysconf (name)
       return -1;
 #endif
 
-    case _SC_MULTIPLE_PROCESS:
-#ifdef _POSIX_MULTIPLE_PROCESS
-      return _POSIX_MULTIPLE_PROCESS;
+    case _SC_MULTI_PROCESS:
+#ifdef _POSIX_MULTI_PROCESS
+      return _POSIX_MULTI_PROCESS;
 #else
       return -1;
 #endif
@@ -1109,7 +1109,7 @@ __sysconf (name)
       return -1;
 #endif
 
-    case _SC_SYMLOOP:
+    case _SC_SYMLOOP_MAX:
 #ifdef SYMLOOP_MAX
       return SYMLOOP_MAX;
 #else