summaryrefslogtreecommitdiff
path: root/posix/getconf.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/getconf.c')
-rw-r--r--posix/getconf.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/posix/getconf.c b/posix/getconf.c
index c6371cb60b..8aaa75ba67 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -20,10 +20,14 @@
#include <errno.h>
#include <error.h>
#include <libintl.h>
+#include <locale.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
+#include "../version.h"
+#define PACKAGE _libc_intl_domainname
+
struct conf
{
const char *name;
@@ -148,6 +152,9 @@ static const struct conf vars[] =
{ "_T_IOV_MAX", _SC_T_IOV_MAX, SYSCONF },
{ "_XOPEN_CRYPT", _SC_XOPEN_CRYPT, SYSCONF },
{ "_XOPEN_ENH_I18N", _SC_XOPEN_ENH_I18N, SYSCONF },
+ { "_XOPEN_LEGACY", _SC_XOPEN_LEGACY, SYSCONF },
+ { "_XOPEN_REALTIME", _SC_XOPEN_REALTIME, SYSCONF },
+ { "_XOPEN_REALTIME_THREADS", _SC_XOPEN_REALTIME_THREADS, SYSCONF },
{ "_XOPEN_SHM", _SC_XOPEN_SHM, SYSCONF },
{ "_XOPEN_UNIX", _SC_XOPEN_UNIX, SYSCONF },
{ "_XOPEN_VERSION", _SC_XOPEN_VERSION, SYSCONF },
@@ -198,6 +205,31 @@ static const struct conf vars[] =
{ "LFS64_LIBS", _CS_LFS64_LIBS, CONFSTR },
{ "LFS64_LINTFLAGS", _CS_LFS64_LINTFLAGS, CONFSTR },
+ /* Programming environments. */
+ { "XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32, SYSCONF },
+ { "XBS5_ILP32_OFF32_CFLAGS", _CS_XBS5_ILP32_OFF32_CFLAGS, CONFSTR },
+ { "XBS5_ILP32_OFF32_LDFLAGS", _CS_XBS5_ILP32_OFF32_LDFLAGS, CONFSTR },
+ { "XBS5_ILP32_OFF32_LIBS", _CS_XBS5_ILP32_OFF32_LIBS, CONFSTR },
+ { "XBS5_ILP32_OFF32_LINTFLAGS", _CS_XBS5_ILP32_OFF32_LINTFLAGS, CONFSTR },
+
+ { "XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG, SYSCONF },
+ { "XBS5_ILP32_OFFBIG_CFLAGS", _CS_XBS5_ILP32_OFFBIG_CFLAGS, CONFSTR },
+ { "XBS5_ILP32_OFFBIG_LDFLAGS", _CS_XBS5_ILP32_OFFBIG_LDFLAGS, CONFSTR },
+ { "XBS5_ILP32_OFFBIG_LIBS", _CS_XBS5_ILP32_OFFBIG_LIBS, CONFSTR },
+ { "XBS5_ILP32_OFFBIG_LINTFLAGS", _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, CONFSTR },
+
+ { "XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64, SYSCONF },
+ { "XBS5_LP64_OFF64_CFLAGS", _CS_XBS5_LP64_OFF64_CFLAGS, CONFSTR },
+ { "XBS5_LP64_OFF64_LDFLAGS", _CS_XBS5_LP64_OFF64_LDFLAGS, CONFSTR },
+ { "XBS5_LP64_OFF64_LIBS", _CS_XBS5_LP64_OFF64_LIBS, CONFSTR },
+ { "XBS5_LP64_OFF64_LINTFLAGS", _CS_XBS5_LP64_OFF64_LINTFLAGS, CONFSTR },
+
+ { "XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG, SYSCONF },
+ { "XBS5_LPBIG_OFFBIG_CFLAGS", _CS_XBS5_LPBIG_OFFBIG_CFLAGS, CONFSTR },
+ { "XBS5_LPBIG_OFFBIG_LDFLAGS", _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, CONFSTR },
+ { "XBS5_LPBIG_OFFBIG_LIBS", _CS_XBS5_LPBIG_OFFBIG_LIBS, CONFSTR },
+ { "XBS5_LPBIG_OFFBIG_LINTFLAGS", _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
+
{ NULL, 0, SYSCONF }
};
@@ -216,6 +248,26 @@ main (int argc, char *argv[])
{
register const struct conf *c;
+ /* Set locale. Do not set LC_ALL because the other categories must
+ not be affected (according to POSIX.2). */
+ setlocale (LC_CTYPE, "");
+ setlocale (LC_MESSAGES, "");
+
+ /* Initialize the message catalog. */
+ textdomain (PACKAGE);
+
+ if (argc > 1 && strcmp (argv[1], "--version") == 0)
+ {
+ fprintf (stderr, "getconf (GNU %s) %s\n", PACKAGE, VERSION);
+ fprintf (stderr, gettext ("\
+Copyright (C) %s Free Software Foundation, Inc.\n\
+This is free software; see the source for copying conditions. There is NO\n\
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
+"), "1991, 1992, 1995, 1996, 1997");
+ fprintf (stderr, gettext ("Written by %s.\n"), "Roland McGrath");
+ return 0;
+ }
+
if (argc < 2 || argc > 3)
usage ();