about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--bits/confname.h46
-rw-r--r--bits/environments.h26
-rw-r--r--posix/confstr.c21
-rw-r--r--posix/getconf.c114
-rw-r--r--sysdeps/generic/bits/confname.h46
-rw-r--r--sysdeps/generic/bits/environments.h26
-rw-r--r--sysdeps/posix/sysconf.c25
8 files changed, 292 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c43835067..a39a5f8ff7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2001-04-21  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/generic/bits/confname.h: Add _SC_V6_* and _CS_POSIX_V6_*
+	values.
+	* sysdeps/generic/bits/environments.h: Define _POSIX_V6_* values.
+	* posix/confstr.c: Handle _CS_POSIX_V6_* values.
+	* posix/getconf.c: Handle _CS_POSIX_V6_* and _SC_V6_* values.
+	* sysdeps/posix/sysconf.c: Handle _SC_V6_* values.
+
 	* sysdeps/powerpc/fpu/libm-test-ulps: Add deltas for atan2f.
 	* sysdeps/s390/fpu/libm-test-ulps: Likewise.
 	* sysdeps/sh/sh4/fpu/libm-test-ulps: Likewise.
diff --git a/bits/confname.h b/bits/confname.h
index 7565e495da..56dc02181d 100644
--- a/bits/confname.h
+++ b/bits/confname.h
@@ -434,8 +434,17 @@ enum
 #define _SC_SYMLOOP			_SC_SYMLOOP
     _SC_STREAMS,
 #define _SC_STREAMS			_SC_STREAMS
-    _SC_2_PBS_CHECKPOINT
+    _SC_2_PBS_CHECKPOINT,
 #define _SC_2_PBS_CHECKPOINT		_SC_2_PBS_CHECKPOINT
+
+    _SC_V6_ILP32_OFF32,
+#define _SC_V6_ILP32_OFF32		_SC_V6_ILP32_OFF32
+    _SC_V6_ILP32_OFFBIG,
+#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
+#define _SC_V6_LPBIG_OFFBIG		_SC_V6_LPBIG_OFFBIG
   };
 
 #if (defined __USE_POSIX2 || defined __USE_UNIX98 \
@@ -503,5 +512,40 @@ enum
     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
 # define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
 #endif
+#ifdef __USE_XOPEN2K
+    ,
+    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LIBS,
+#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
+    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
+    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+    _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LIBS,
+#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
+    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+#endif
   };
 #endif
diff --git a/bits/environments.h b/bits/environments.h
index f3af20655a..a16cf2284d 100644
--- a/bits/environments.h
+++ b/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 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
@@ -27,32 +27,46 @@
    `-1' means it is never supported.  Undefined means it cannot be
    statically decided.
 
-   _XBS5_ILP32_OFF32	32bit int, long, pointers, and off_t type
-   _XBS5_ILP32_OFFBIG	32bit int, long, and pointers and larger off_t type
+   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
 
-   _XBS5_LP64_OFF32	64bit long and pointers and 32bit off_t type
-   _XBS5_LPBIG_OFFBIG	64bit long and pointers and large off_t type
+   _POSIX_V6_LP64_OFF32	   64bit long and pointers and 32bit off_t type
+   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+
+   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
+   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
+   and are available only for compatibility.
 */
 
 #if __WORDSIZE == 64
 
 /* We can never provide environments with 32-bit wide pointers.  */
+# define _POSIX_V6_ILP32_OFF32	-1
+# define _POSIX_V6_ILP32_OFFBIG	-1
 # define _XBS5_ILP32_OFF32	-1
 # define _XBS5_ILP32_OFFBIG	-1
 
 /* By default we have 64-bit wide `long int', pointers and `off_t'.  */
+# define _POSIX_V6_LP64_OFF32	1
+# define _POSIX_V6_LPBIG_OFFBIG	1
 # define _XBS5_LP64_OFF32	1
 # define _XBS5_LPBIG_OFFBIG	1
 
 #else /* __WORDSIZE == 32 */
 
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'.  */
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+   and all platforms support LFS.  */
+# define _POSIX_V6_ILP32_OFF32	1
+# define _POSIX_V6_ILP32_OFFBIG	1
 # define _XBS5_ILP32_OFF32	1
+# define _XBS5_ILP32_OFFBIG	1
 
 /* We optionally provide an environment with the above size but an 64-bit
    side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
 
 /* We can never provide environments with 64-bit wide pointers.  */
+# define _POSIX_V6_LP64_OFF64	-1
+# define _POSIX_V6_LPBIG_OFFBIG	-1
 # define _XBS5_LP64_OFF64	-1
 # define _XBS5_LPBIG_OFFBIG	-1
 
diff --git a/posix/confstr.c b/posix/confstr.c
index 6ab76e8bed..487e5fe28a 100644
--- a/posix/confstr.c
+++ b/posix/confstr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1997, 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
@@ -45,8 +45,9 @@ confstr (name, buf, len)
       break;
 
     case _CS_XBS5_ILP32_OFFBIG_CFLAGS:
+    case _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS:
     case _CS_LFS_CFLAGS:
-#if defined _XBS5_ILP32_OFF32 && !defined _XBS5_ILP32_OFFBIG
+#if _XBS5_LP64_OFF64 == -1 && _XBS5_LPBIG_OFFBIG == -1 && _XBS5_ILP32_OFFBIG == 1
       /* Signal that we want the new ABI.  */
       {
 	static const char file_offset[] = "-D_FILE_OFFSET_BITS=64";
@@ -79,6 +80,22 @@ confstr (name, buf, len)
     case _CS_XBS5_LPBIG_OFFBIG_LDFLAGS:
     case _CS_XBS5_LPBIG_OFFBIG_LIBS:
     case _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS:
+
+    case _CS_POSIX_V6_ILP32_OFF32_CFLAGS:
+    case _CS_POSIX_V6_ILP32_OFF32_LDFLAGS:
+    case _CS_POSIX_V6_ILP32_OFF32_LIBS:
+    case _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS:
+    case _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS:
+    case _CS_POSIX_V6_ILP32_OFFBIG_LIBS:
+    case _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS:
+    case _CS_POSIX_V6_LP64_OFF64_CFLAGS:
+    case _CS_POSIX_V6_LP64_OFF64_LDFLAGS:
+    case _CS_POSIX_V6_LP64_OFF64_LIBS:
+    case _CS_POSIX_V6_LP64_OFF64_LINTFLAGS:
+    case _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS:
+    case _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS:
+    case _CS_POSIX_V6_LPBIG_OFFBIG_LIBS:
+    case _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS:
       /* GNU libc does not require special actions to use LFS functions.  */
       string = "";
       string_len = 1;
diff --git a/posix/getconf.c b/posix/getconf.c
index a1eb7ae6a5..903ad02af2 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -496,8 +496,6 @@ static const struct conf vars[] =
 
 #ifdef _CS_PATH
     { "PATH", _CS_PATH, CONFSTR },
-#endif
-#ifdef _CS_PATH
     { "CS_PATH", _CS_PATH, CONFSTR },
 #endif
 
@@ -592,6 +590,70 @@ static const struct conf vars[] =
     { "XBS5_LPBIG_OFFBIG_LINTFLAGS", _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
 #endif
 
+#ifdef _SC_V6_ILP32_OFF32
+    { "_POSIX_V6_ILP32_OFF32", _SC_V6_ILP32_OFF32, SYSCONF },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFF32_CFLAGS
+    { "POSIX_V6_ILP32_OFF32_CFLAGS", _CS_POSIX_V6_ILP32_OFF32_CFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+    { "POSIX_V6_ILP32_OFF32_LDFLAGS", _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFF32_LIBS
+    { "POSIX_V6_ILP32_OFF32_LIBS", _CS_POSIX_V6_ILP32_OFF32_LIBS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+    { "POSIX_V6_ILP32_OFF32_LINTFLAGS", _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, CONFSTR },
+#endif
+
+#ifdef _SC_V6_ILP32_OFFBIG
+    { "_POSIX_V6_ILP32_OFFBIG", _SC_V6_ILP32_OFFBIG, SYSCONF },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+    { "POSIX_V6_ILP32_OFFBIG_CFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+    { "POSIX_V6_ILP32_OFFBIG_LDFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFFBIG_LIBS
+    { "POSIX_V6_ILP32_OFFBIG_LIBS", _CS_POSIX_V6_ILP32_OFFBIG_LIBS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+    { "POSIX_V6_ILP32_OFFBIG_LINTFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, CONFSTR },
+#endif
+
+#ifdef _SC_V6_LP64_OFF64
+    { "_POSIX_V6_LP64_OFF64", _SC_V6_LP64_OFF64, SYSCONF },
+#endif
+#ifdef _CS_POSIX_V6_LP64_OFF64_CFLAGS
+    { "POSIX_V6_LP64_OFF64_CFLAGS", _CS_POSIX_V6_LP64_OFF64_CFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_LP64_OFF64_LDFLAGS
+    { "POSIX_V6_LP64_OFF64_LDFLAGS", _CS_POSIX_V6_LP64_OFF64_LDFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_LP64_OFF64_LIBS
+    { "POSIX_V6_LP64_OFF64_LIBS", _CS_POSIX_V6_LP64_OFF64_LIBS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+    { "POSIX_V6_LP64_OFF64_LINTFLAGS", _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, CONFSTR },
+#endif
+
+#ifdef _SC_V6_LPBIG_OFFBIG
+    { "_POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG, SYSCONF },
+#endif
+#ifdef _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+    { "POSIX_V6_LPBIG_OFFBIG_CFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, CONFSTR },
+#endif
+#ifdef _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+    { "POSIX_V6_LPBIG_OFFBIG_LDFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, CONFSTR },
+#endif
+#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 },
+#endif
+
 #ifdef _SC_ADVISORY_INFO
     { "ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF },
 #endif
@@ -722,13 +784,25 @@ static const struct conf vars[] =
     { NULL, 0, SYSCONF }
   };
 
+
+static const char *specs[] =
+  {
+    "POSIX_V6_ILP32_OFF32",
+    "POSIX_V6_ILP32_OFFBIG",
+    "POSIX_V6_LP64_OFF64",
+    "POSIX_V6_LPBIG_OFFBIG"
+  };
+static const int nspecs = sizeof (specs) / sizeof (specs[0]);
+
 extern const char *__progname;
 
 
 static void
 usage (void)
 {
-  fprintf (stderr, _("Usage: %s variable_name [pathname]\n"), __progname);
+  fprintf (stderr,
+	   _("Usage: %s [-v specification] variable_name [pathname]\n"),
+	   __progname);
   exit (2);
 }
 
@@ -757,6 +831,40 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
       return 0;
     }
 
+  if (argc > 1 && strncmp (argv[1], "-v", 2) == 0)
+    {
+      const char *spec;
+      int i;
+
+      if (argv[1][2] == '\0')
+	{
+	  if (argc < 3)
+	    usage ();
+
+	  spec = argv[2];
+	  argv += 2;
+	  argc -= 2;
+	}
+      else
+	{
+	  spec = &argv[1][2];
+	  argv += 1;
+	  argc += 1;
+	}
+
+      /* Check for the specifications we know.  This is simple in the
+	 moment.  */
+      for (i = 0; i < nspecs; ++i)
+	if (strcmp (spec, specs[i]) == 0)
+	  break;
+
+      if (i == nspecs)
+	error (2, 0, _("unknown specification \"%s\""), spec);
+
+      /* And now we forget the specification.  We don't do anything different
+	 with or without it.  */
+    }
+
   if (argc < 2 || argc > 3)
     usage ();
 
diff --git a/sysdeps/generic/bits/confname.h b/sysdeps/generic/bits/confname.h
index 7565e495da..56dc02181d 100644
--- a/sysdeps/generic/bits/confname.h
+++ b/sysdeps/generic/bits/confname.h
@@ -434,8 +434,17 @@ enum
 #define _SC_SYMLOOP			_SC_SYMLOOP
     _SC_STREAMS,
 #define _SC_STREAMS			_SC_STREAMS
-    _SC_2_PBS_CHECKPOINT
+    _SC_2_PBS_CHECKPOINT,
 #define _SC_2_PBS_CHECKPOINT		_SC_2_PBS_CHECKPOINT
+
+    _SC_V6_ILP32_OFF32,
+#define _SC_V6_ILP32_OFF32		_SC_V6_ILP32_OFF32
+    _SC_V6_ILP32_OFFBIG,
+#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
+#define _SC_V6_LPBIG_OFFBIG		_SC_V6_LPBIG_OFFBIG
   };
 
 #if (defined __USE_POSIX2 || defined __USE_UNIX98 \
@@ -503,5 +512,40 @@ enum
     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
 # define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
 #endif
+#ifdef __USE_XOPEN2K
+    ,
+    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LIBS,
+#define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
+    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+#define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
+    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+#define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+    _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LIBS,
+#define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
+    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+#define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+#define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+#endif
   };
 #endif
diff --git a/sysdeps/generic/bits/environments.h b/sysdeps/generic/bits/environments.h
index f3af20655a..a16cf2284d 100644
--- a/sysdeps/generic/bits/environments.h
+++ b/sysdeps/generic/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 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
@@ -27,32 +27,46 @@
    `-1' means it is never supported.  Undefined means it cannot be
    statically decided.
 
-   _XBS5_ILP32_OFF32	32bit int, long, pointers, and off_t type
-   _XBS5_ILP32_OFFBIG	32bit int, long, and pointers and larger off_t type
+   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
 
-   _XBS5_LP64_OFF32	64bit long and pointers and 32bit off_t type
-   _XBS5_LPBIG_OFFBIG	64bit long and pointers and large off_t type
+   _POSIX_V6_LP64_OFF32	   64bit long and pointers and 32bit off_t type
+   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+
+   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
+   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
+   and are available only for compatibility.
 */
 
 #if __WORDSIZE == 64
 
 /* We can never provide environments with 32-bit wide pointers.  */
+# define _POSIX_V6_ILP32_OFF32	-1
+# define _POSIX_V6_ILP32_OFFBIG	-1
 # define _XBS5_ILP32_OFF32	-1
 # define _XBS5_ILP32_OFFBIG	-1
 
 /* By default we have 64-bit wide `long int', pointers and `off_t'.  */
+# define _POSIX_V6_LP64_OFF32	1
+# define _POSIX_V6_LPBIG_OFFBIG	1
 # define _XBS5_LP64_OFF32	1
 # define _XBS5_LPBIG_OFFBIG	1
 
 #else /* __WORDSIZE == 32 */
 
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'.  */
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+   and all platforms support LFS.  */
+# define _POSIX_V6_ILP32_OFF32	1
+# define _POSIX_V6_ILP32_OFFBIG	1
 # define _XBS5_ILP32_OFF32	1
+# define _XBS5_ILP32_OFFBIG	1
 
 /* We optionally provide an environment with the above size but an 64-bit
    side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
 
 /* We can never provide environments with 64-bit wide pointers.  */
+# define _POSIX_V6_LP64_OFF64	-1
+# define _POSIX_V6_LPBIG_OFFBIG	-1
 # define _XBS5_LP64_OFF64	-1
 # define _XBS5_LPBIG_OFFBIG	-1
 
diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
index 7faaa51f94..4b6eced244 100644
--- a/sysdeps/posix/sysconf.c
+++ b/sysdeps/posix/sysconf.c
@@ -798,6 +798,31 @@ __sysconf (name)
       return -1;
 #endif
 
+    case _SC_V6_ILP32_OFF32:
+#ifdef _POSIX_V6_ILP32_OFF32
+      return _POSIX_V6_ILP32_OFF32;
+#else
+      return -1;
+#endif
+    case _SC_V6_ILP32_OFFBIG:
+#ifdef _POSIX_V6_ILP32_OFFBIG
+      return _POSIX_V6_ILP32_OFFBIG;
+#else
+      return -1;
+#endif
+    case _SC_V6_LP64_OFF64:
+#ifdef _POSIX_V6_LP64_OFF64
+      return _POSIX_V6_LP64_OFF64;
+#else
+      return -1;
+#endif
+    case _SC_V6_LPBIG_OFFBIG:
+#ifdef _POSIX_V6_LPBIG_OFFBIG
+      return _POSIX_V6_LPBIG_OFFBIG;
+#else
+      return -1;
+#endif
+
     case _SC_XOPEN_LEGACY:
       return _XOPEN_LEGACY;