summaryrefslogtreecommitdiff
path: root/posix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-04-22 06:21:54 +0000
committerUlrich Drepper <drepper@redhat.com>2001-04-22 06:21:54 +0000
commitd20f21a2154de2960b13a67a6acfb78cc7cde13e (patch)
treeaba874c5d8fb516893e55746c63bce4fd9898e0c /posix
parentd290c57b5f8a6cfcdf3e4fded96ced1dc342e525 (diff)
downloadglibc-d20f21a2154de2960b13a67a6acfb78cc7cde13e.tar.gz
Update.
* 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.
Diffstat (limited to 'posix')
-rw-r--r--posix/confstr.c21
-rw-r--r--posix/getconf.c114
2 files changed, 130 insertions, 5 deletions
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 ();