Blame posix/getconf.c

Packit Service 82fcde
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
   This program is free software; you can redistribute it and/or modify
Packit Service 82fcde
   it under the terms of the GNU General Public License as published
Packit Service 82fcde
   by the Free Software Foundation; version 2 of the License, or
Packit Service 82fcde
   (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   This program is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 82fcde
   GNU General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU General Public License
Packit Service 82fcde
   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#include <unistd.h>
Packit Service 82fcde
#include <errno.h>
Packit Service 82fcde
#include <error.h>
Packit Service 82fcde
#include <libintl.h>
Packit Service 82fcde
#include <locale.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
#include <stdlib.h>
Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
Packit Service 82fcde
#include "../version.h"
Packit Service 82fcde
#define PACKAGE _libc_intl_domainname
Packit Service 82fcde
Packit Service 82fcde
#define NEED_SPEC_ARRAY 1
Packit Service 82fcde
#include <posix-conf-vars.h>
Packit Service 82fcde
Packit Service 82fcde
/* If all of the environments are defined in environments.h, then we don't need
Packit Service 82fcde
   to bother with doing a runtime check for a specific environment.  */
Packit Service 82fcde
#if (defined _SC_V6_ILP32_OFF32 \
Packit Service 82fcde
     && defined _SC_V7_LPBIG_OFFBIG \
Packit Service 82fcde
     && defined _SC_XBS5_LP64_OFF64 \
Packit Service 82fcde
     && defined _SC_V6_LP64_OFF64 \
Packit Service 82fcde
     && defined _SC_V7_ILP32_OFFBIG \
Packit Service 82fcde
     && defined _SC_V6_LPBIG_OFFBIG \
Packit Service 82fcde
     && defined _SC_V7_LP64_OFF64 \
Packit Service 82fcde
     && defined _SC_V7_ILP32_OFF32 \
Packit Service 82fcde
     && defined _SC_XBS5_LPBIG_OFFBIG \
Packit Service 82fcde
     && defined _SC_XBS5_ILP32_OFFBIG \
Packit Service 82fcde
     && defined _SC_V6_ILP32_OFFBIG \
Packit Service 82fcde
     && defined _SC_XBS5_ILP32_OFF32)
Packit Service 82fcde
# define ALL_ENVIRONMENTS_DEFINED 1
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
struct conf
Packit Service 82fcde
  {
Packit Service 82fcde
    const char *name;
Packit Service 82fcde
    const int call_name;
Packit Service 82fcde
    const enum { SYSCONF, CONFSTR, PATHCONF } call;
Packit Service 82fcde
  };
Packit Service 82fcde
Packit Service 82fcde
static const struct conf vars[] =
Packit Service 82fcde
  {
Packit Service 82fcde
    { "LINK_MAX", _PC_LINK_MAX, PATHCONF },
Packit Service 82fcde
    { "_POSIX_LINK_MAX", _PC_LINK_MAX, PATHCONF },
Packit Service 82fcde
    { "MAX_CANON", _PC_MAX_CANON, PATHCONF },
Packit Service 82fcde
    { "_POSIX_MAX_CANON", _PC_MAX_CANON, PATHCONF },
Packit Service 82fcde
    { "MAX_INPUT", _PC_MAX_INPUT, PATHCONF },
Packit Service 82fcde
    { "_POSIX_MAX_INPUT", _PC_MAX_INPUT, PATHCONF },
Packit Service 82fcde
    { "NAME_MAX", _PC_NAME_MAX, PATHCONF },
Packit Service 82fcde
    { "_POSIX_NAME_MAX", _PC_NAME_MAX, PATHCONF },
Packit Service 82fcde
    { "PATH_MAX", _PC_PATH_MAX, PATHCONF },
Packit Service 82fcde
    { "_POSIX_PATH_MAX", _PC_PATH_MAX, PATHCONF },
Packit Service 82fcde
    { "PIPE_BUF", _PC_PIPE_BUF, PATHCONF },
Packit Service 82fcde
    { "_POSIX_PIPE_BUF", _PC_PIPE_BUF, PATHCONF },
Packit Service 82fcde
    { "SOCK_MAXBUF", _PC_SOCK_MAXBUF, PATHCONF },
Packit Service 82fcde
    { "_POSIX_ASYNC_IO", _PC_ASYNC_IO, PATHCONF },
Packit Service 82fcde
    { "_POSIX_CHOWN_RESTRICTED", _PC_CHOWN_RESTRICTED, PATHCONF },
Packit Service 82fcde
    { "_POSIX_NO_TRUNC", _PC_NO_TRUNC, PATHCONF },
Packit Service 82fcde
    { "_POSIX_PRIO_IO", _PC_PRIO_IO, PATHCONF },
Packit Service 82fcde
    { "_POSIX_SYNC_IO", _PC_SYNC_IO, PATHCONF },
Packit Service 82fcde
    { "_POSIX_VDISABLE", _PC_VDISABLE, PATHCONF },
Packit Service 82fcde
Packit Service 82fcde
    { "ARG_MAX", _SC_ARG_MAX, SYSCONF },
Packit Service 82fcde
    { "ATEXIT_MAX", _SC_ATEXIT_MAX, SYSCONF },
Packit Service 82fcde
    { "CHAR_BIT", _SC_CHAR_BIT, SYSCONF },
Packit Service 82fcde
    { "CHAR_MAX", _SC_CHAR_MAX, SYSCONF },
Packit Service 82fcde
    { "CHAR_MIN", _SC_CHAR_MIN, SYSCONF },
Packit Service 82fcde
    { "CHILD_MAX", _SC_CHILD_MAX, SYSCONF },
Packit Service 82fcde
    { "CLK_TCK", _SC_CLK_TCK, SYSCONF },
Packit Service 82fcde
    { "INT_MAX", _SC_INT_MAX, SYSCONF },
Packit Service 82fcde
    { "INT_MIN", _SC_INT_MIN, SYSCONF },
Packit Service 82fcde
    { "IOV_MAX", _SC_UIO_MAXIOV, SYSCONF },
Packit Service 82fcde
    { "LOGNAME_MAX", _SC_LOGIN_NAME_MAX, SYSCONF },
Packit Service 82fcde
    { "LONG_BIT", _SC_LONG_BIT, SYSCONF },
Packit Service 82fcde
    { "MB_LEN_MAX", _SC_MB_LEN_MAX, SYSCONF },
Packit Service 82fcde
    { "NGROUPS_MAX", _SC_NGROUPS_MAX, SYSCONF },
Packit Service 82fcde
    { "NL_ARGMAX", _SC_NL_ARGMAX, SYSCONF },
Packit Service 82fcde
    { "NL_LANGMAX", _SC_NL_LANGMAX, SYSCONF },
Packit Service 82fcde
    { "NL_MSGMAX", _SC_NL_MSGMAX, SYSCONF },
Packit Service 82fcde
    { "NL_NMAX", _SC_NL_NMAX, SYSCONF },
Packit Service 82fcde
    { "NL_SETMAX", _SC_NL_SETMAX, SYSCONF },
Packit Service 82fcde
    { "NL_TEXTMAX", _SC_NL_TEXTMAX, SYSCONF },
Packit Service 82fcde
    { "NSS_BUFLEN_GROUP", _SC_GETGR_R_SIZE_MAX, SYSCONF },
Packit Service 82fcde
    { "NSS_BUFLEN_PASSWD", _SC_GETPW_R_SIZE_MAX, SYSCONF },
Packit Service 82fcde
    { "NZERO", _SC_NZERO, SYSCONF },
Packit Service 82fcde
    { "OPEN_MAX", _SC_OPEN_MAX, SYSCONF },
Packit Service 82fcde
    { "PAGESIZE", _SC_PAGESIZE, SYSCONF },
Packit Service 82fcde
    { "PAGE_SIZE", _SC_PAGESIZE, SYSCONF },
Packit Service 82fcde
    { "PASS_MAX", _SC_PASS_MAX, SYSCONF },
Packit Service 82fcde
    { "PTHREAD_DESTRUCTOR_ITERATIONS", _SC_THREAD_DESTRUCTOR_ITERATIONS, SYSCONF },
Packit Service 82fcde
    { "PTHREAD_KEYS_MAX", _SC_THREAD_KEYS_MAX, SYSCONF },
Packit Service 82fcde
    { "PTHREAD_STACK_MIN", _SC_THREAD_STACK_MIN, SYSCONF },
Packit Service 82fcde
    { "PTHREAD_THREADS_MAX", _SC_THREAD_THREADS_MAX, SYSCONF },
Packit Service 82fcde
    { "SCHAR_MAX", _SC_SCHAR_MAX, SYSCONF },
Packit Service 82fcde
    { "SCHAR_MIN", _SC_SCHAR_MIN, SYSCONF },
Packit Service 82fcde
    { "SHRT_MAX", _SC_SHRT_MAX, SYSCONF },
Packit Service 82fcde
    { "SHRT_MIN", _SC_SHRT_MIN, SYSCONF },
Packit Service 82fcde
    { "SSIZE_MAX", _SC_SSIZE_MAX, SYSCONF },
Packit Service 82fcde
    { "TTY_NAME_MAX", _SC_TTY_NAME_MAX, SYSCONF },
Packit Service 82fcde
    { "TZNAME_MAX", _SC_TZNAME_MAX, SYSCONF },
Packit Service 82fcde
    { "UCHAR_MAX", _SC_UCHAR_MAX, SYSCONF },
Packit Service 82fcde
    { "UINT_MAX", _SC_UINT_MAX, SYSCONF },
Packit Service 82fcde
    { "UIO_MAXIOV", _SC_UIO_MAXIOV, SYSCONF },
Packit Service 82fcde
    { "ULONG_MAX", _SC_ULONG_MAX, SYSCONF },
Packit Service 82fcde
    { "USHRT_MAX", _SC_USHRT_MAX, SYSCONF },
Packit Service 82fcde
    { "WORD_BIT", _SC_WORD_BIT, SYSCONF },
Packit Service 82fcde
    { "_AVPHYS_PAGES", _SC_AVPHYS_PAGES, SYSCONF },
Packit Service 82fcde
    { "_NPROCESSORS_CONF", _SC_NPROCESSORS_CONF, SYSCONF },
Packit Service 82fcde
    { "_NPROCESSORS_ONLN", _SC_NPROCESSORS_ONLN, SYSCONF },
Packit Service 82fcde
    { "_PHYS_PAGES", _SC_PHYS_PAGES, SYSCONF },
Packit Service 82fcde
    { "_POSIX_ARG_MAX", _SC_ARG_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_ASYNCHRONOUS_IO", _SC_ASYNCHRONOUS_IO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_CHILD_MAX", _SC_CHILD_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FSYNC", _SC_FSYNC, SYSCONF },
Packit Service 82fcde
    { "_POSIX_JOB_CONTROL", _SC_JOB_CONTROL, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MAPPED_FILES", _SC_MAPPED_FILES, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MEMLOCK", _SC_MEMLOCK, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MEMLOCK_RANGE", _SC_MEMLOCK_RANGE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MEMORY_PROTECTION", _SC_MEMORY_PROTECTION, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MESSAGE_PASSING", _SC_MESSAGE_PASSING, SYSCONF },
Packit Service 82fcde
    { "_POSIX_NGROUPS_MAX", _SC_NGROUPS_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_OPEN_MAX", _SC_OPEN_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII", _SC_PII, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_INTERNET", _SC_PII_INTERNET, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_INTERNET_DGRAM", _SC_PII_INTERNET_DGRAM, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_INTERNET_STREAM", _SC_PII_INTERNET_STREAM, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_OSI", _SC_PII_OSI, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_OSI_CLTS", _SC_PII_OSI_CLTS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_OSI_COTS", _SC_PII_OSI_COTS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_OSI_M", _SC_PII_OSI_M, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_SOCKET", _SC_PII_SOCKET, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PII_XTI", _SC_PII_XTI, SYSCONF },
Packit Service 82fcde
    { "_POSIX_POLL", _SC_POLL, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PRIORITIZED_IO", _SC_PRIORITIZED_IO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PRIORITY_SCHEDULING", _SC_PRIORITY_SCHEDULING, SYSCONF },
Packit Service 82fcde
    { "_POSIX_REALTIME_SIGNALS", _SC_REALTIME_SIGNALS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SAVED_IDS", _SC_SAVED_IDS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SELECT", _SC_SELECT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SEMAPHORES", _SC_SEMAPHORES, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SHARED_MEMORY_OBJECTS", _SC_SHARED_MEMORY_OBJECTS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SSIZE_MAX", _SC_SSIZE_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_STREAM_MAX", _SC_STREAM_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SYNCHRONIZED_IO", _SC_SYNCHRONIZED_IO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREADS", _SC_THREADS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_ATTR_STACKADDR", _SC_THREAD_ATTR_STACKADDR, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_ATTR_STACKSIZE", _SC_THREAD_ATTR_STACKSIZE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_PRIORITY_SCHEDULING", _SC_THREAD_PRIORITY_SCHEDULING, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_PRIO_INHERIT", _SC_THREAD_PRIO_INHERIT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_PRIO_PROTECT", _SC_THREAD_PRIO_PROTECT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_ROBUST_PRIO_INHERIT", _SC_THREAD_ROBUST_PRIO_INHERIT,
Packit Service 82fcde
      SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_ROBUST_PRIO_PROTECT", _SC_THREAD_ROBUST_PRIO_PROTECT,
Packit Service 82fcde
      SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_PROCESS_SHARED", _SC_THREAD_PROCESS_SHARED, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_SAFE_FUNCTIONS", _SC_THREAD_SAFE_FUNCTIONS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TIMERS", _SC_TIMERS, SYSCONF },
Packit Service 82fcde
    { "TIMER_MAX", _SC_TIMER_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TZNAME_MAX", _SC_TZNAME_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_VERSION", _SC_VERSION, SYSCONF },
Packit Service 82fcde
    { "_T_IOV_MAX", _SC_T_IOV_MAX, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_CRYPT", _SC_XOPEN_CRYPT, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_ENH_I18N", _SC_XOPEN_ENH_I18N, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_LEGACY", _SC_XOPEN_LEGACY, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_REALTIME", _SC_XOPEN_REALTIME, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_REALTIME_THREADS", _SC_XOPEN_REALTIME_THREADS, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_SHM", _SC_XOPEN_SHM, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_UNIX", _SC_XOPEN_UNIX, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_VERSION", _SC_XOPEN_VERSION, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_XCU_VERSION", _SC_XOPEN_XCU_VERSION, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_XPG2", _SC_XOPEN_XPG2, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_XPG3", _SC_XOPEN_XPG3, SYSCONF },
Packit Service 82fcde
    { "_XOPEN_XPG4", _SC_XOPEN_XPG4, SYSCONF },
Packit Service 82fcde
    /* POSIX.2  */
Packit Service 82fcde
    { "BC_BASE_MAX", _SC_BC_BASE_MAX, SYSCONF },
Packit Service 82fcde
    { "BC_DIM_MAX", _SC_BC_DIM_MAX, SYSCONF },
Packit Service 82fcde
    { "BC_SCALE_MAX", _SC_BC_SCALE_MAX, SYSCONF },
Packit Service 82fcde
    { "BC_STRING_MAX", _SC_BC_STRING_MAX, SYSCONF },
Packit Service 82fcde
    { "CHARCLASS_NAME_MAX", _SC_CHARCLASS_NAME_MAX, SYSCONF },
Packit Service 82fcde
    { "COLL_WEIGHTS_MAX", _SC_COLL_WEIGHTS_MAX, SYSCONF },
Packit Service 82fcde
    { "EQUIV_CLASS_MAX", _SC_EQUIV_CLASS_MAX, SYSCONF },
Packit Service 82fcde
    { "EXPR_NEST_MAX", _SC_EXPR_NEST_MAX, SYSCONF },
Packit Service 82fcde
    { "LINE_MAX", _SC_LINE_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_BC_BASE_MAX", _SC_BC_BASE_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_BC_DIM_MAX", _SC_BC_DIM_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_BC_SCALE_MAX", _SC_BC_SCALE_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_BC_STRING_MAX", _SC_BC_STRING_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_CHAR_TERM", _SC_2_CHAR_TERM, SYSCONF },
Packit Service 82fcde
    { "POSIX2_COLL_WEIGHTS_MAX", _SC_COLL_WEIGHTS_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_C_BIND", _SC_2_C_BIND, SYSCONF },
Packit Service 82fcde
    { "POSIX2_C_DEV", _SC_2_C_DEV, SYSCONF },
Packit Service 82fcde
    { "POSIX2_C_VERSION", _SC_2_C_VERSION, SYSCONF },
Packit Service 82fcde
    { "POSIX2_EXPR_NEST_MAX", _SC_EXPR_NEST_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_FORT_DEV", _SC_2_FORT_DEV, SYSCONF },
Packit Service 82fcde
    { "POSIX2_FORT_RUN", _SC_2_FORT_RUN, SYSCONF },
Packit Service 82fcde
    { "_POSIX2_LINE_MAX", _SC_LINE_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_LINE_MAX", _SC_LINE_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_LOCALEDEF", _SC_2_LOCALEDEF, SYSCONF },
Packit Service 82fcde
    { "POSIX2_RE_DUP_MAX", _SC_RE_DUP_MAX, SYSCONF },
Packit Service 82fcde
    { "POSIX2_SW_DEV", _SC_2_SW_DEV, SYSCONF },
Packit Service 82fcde
    { "POSIX2_UPE", _SC_2_UPE, SYSCONF },
Packit Service 82fcde
    { "POSIX2_VERSION", _SC_2_VERSION, SYSCONF },
Packit Service 82fcde
    { "RE_DUP_MAX", _SC_RE_DUP_MAX, SYSCONF },
Packit Service 82fcde
Packit Service 82fcde
    { "PATH", _CS_PATH, CONFSTR },
Packit Service 82fcde
    { "CS_PATH", _CS_PATH, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    /* LFS */
Packit Service 82fcde
    { "LFS_CFLAGS", _CS_LFS_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "LFS_LDFLAGS", _CS_LFS_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "LFS_LIBS", _CS_LFS_LIBS, CONFSTR },
Packit Service 82fcde
    { "LFS_LINTFLAGS", _CS_LFS_LINTFLAGS, CONFSTR },
Packit Service 82fcde
    { "LFS64_CFLAGS", _CS_LFS64_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "LFS64_LDFLAGS", _CS_LFS64_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "LFS64_LIBS", _CS_LFS64_LIBS, CONFSTR },
Packit Service 82fcde
    { "LFS64_LINTFLAGS", _CS_LFS64_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    /* Programming environments.  */
Packit Service 82fcde
    { "_XBS5_WIDTH_RESTRICTED_ENVS", _CS_V5_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
    { "XBS5_WIDTH_RESTRICTED_ENVS", _CS_V5_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32, SYSCONF },
Packit Service 82fcde
    { "XBS5_ILP32_OFF32_CFLAGS", _CS_XBS5_ILP32_OFF32_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFF32_LDFLAGS", _CS_XBS5_ILP32_OFF32_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFF32_LIBS", _CS_XBS5_ILP32_OFF32_LIBS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFF32_LINTFLAGS", _CS_XBS5_ILP32_OFF32_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "XBS5_ILP32_OFFBIG_CFLAGS", _CS_XBS5_ILP32_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFFBIG_LDFLAGS", _CS_XBS5_ILP32_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFFBIG_LIBS", _CS_XBS5_ILP32_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "XBS5_ILP32_OFFBIG_LINTFLAGS", _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64, SYSCONF },
Packit Service 82fcde
    { "XBS5_LP64_OFF64_CFLAGS", _CS_XBS5_LP64_OFF64_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LP64_OFF64_LDFLAGS", _CS_XBS5_LP64_OFF64_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LP64_OFF64_LIBS", _CS_XBS5_LP64_OFF64_LIBS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LP64_OFF64_LINTFLAGS", _CS_XBS5_LP64_OFF64_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "XBS5_LPBIG_OFFBIG_CFLAGS", _CS_XBS5_LPBIG_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LPBIG_OFFBIG_LDFLAGS", _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LPBIG_OFFBIG_LIBS", _CS_XBS5_LPBIG_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "XBS5_LPBIG_OFFBIG_LINTFLAGS", _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V6_ILP32_OFF32", _SC_V6_ILP32_OFF32, SYSCONF },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFF32_CFLAGS", _CS_POSIX_V6_ILP32_OFF32_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFF32_LDFLAGS", _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFF32_LIBS", _CS_POSIX_V6_ILP32_OFF32_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFF32_LINTFLAGS", _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V6_WIDTH_RESTRICTED_ENVS", _CS_V6_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_WIDTH_RESTRICTED_ENVS", _CS_V6_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V6_ILP32_OFFBIG", _SC_V6_ILP32_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFFBIG_CFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFFBIG_LDFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFFBIG_LIBS", _CS_POSIX_V6_ILP32_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_ILP32_OFFBIG_LINTFLAGS", _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V6_LP64_OFF64", _SC_V6_LP64_OFF64, SYSCONF },
Packit Service 82fcde
    { "POSIX_V6_LP64_OFF64_CFLAGS", _CS_POSIX_V6_LP64_OFF64_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LP64_OFF64_LDFLAGS", _CS_POSIX_V6_LP64_OFF64_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LP64_OFF64_LIBS", _CS_POSIX_V6_LP64_OFF64_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LP64_OFF64_LINTFLAGS", _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "POSIX_V6_LPBIG_OFFBIG_CFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LPBIG_OFFBIG_LDFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LPBIG_OFFBIG_LIBS", _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V6_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V7_ILP32_OFF32", _SC_V7_ILP32_OFF32, SYSCONF },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFF32_CFLAGS", _CS_POSIX_V7_ILP32_OFF32_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFF32_LDFLAGS", _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFF32_LIBS", _CS_POSIX_V7_ILP32_OFF32_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFF32_LINTFLAGS", _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V7_WIDTH_RESTRICTED_ENVS", _CS_V7_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_WIDTH_RESTRICTED_ENVS", _CS_V7_WIDTH_RESTRICTED_ENVS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V7_ILP32_OFFBIG", _SC_V7_ILP32_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFFBIG_CFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFFBIG_LDFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFFBIG_LIBS", _CS_POSIX_V7_ILP32_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_ILP32_OFFBIG_LINTFLAGS", _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V7_LP64_OFF64", _SC_V7_LP64_OFF64, SYSCONF },
Packit Service 82fcde
    { "POSIX_V7_LP64_OFF64_CFLAGS", _CS_POSIX_V7_LP64_OFF64_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LP64_OFF64_LDFLAGS", _CS_POSIX_V7_LP64_OFF64_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LP64_OFF64_LIBS", _CS_POSIX_V7_LP64_OFF64_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LP64_OFF64_LINTFLAGS", _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_V7_LPBIG_OFFBIG", _SC_V7_LPBIG_OFFBIG, SYSCONF },
Packit Service 82fcde
    { "POSIX_V7_LPBIG_OFFBIG_CFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LPBIG_OFFBIG_LDFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LPBIG_OFFBIG_LIBS", _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, CONFSTR },
Packit Service 82fcde
    { "POSIX_V7_LPBIG_OFFBIG_LINTFLAGS", _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, CONFSTR },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_ADVISORY_INFO", _SC_ADVISORY_INFO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_BARRIERS", _SC_BARRIERS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_BASE", _SC_BASE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_C_LANG_SUPPORT", _SC_C_LANG_SUPPORT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_C_LANG_SUPPORT_R", _SC_C_LANG_SUPPORT_R, SYSCONF },
Packit Service 82fcde
    { "_POSIX_CLOCK_SELECTION", _SC_CLOCK_SELECTION, SYSCONF },
Packit Service 82fcde
    { "_POSIX_CPUTIME", _SC_CPUTIME, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_CPUTIME", _SC_THREAD_CPUTIME, SYSCONF },
Packit Service 82fcde
    { "_POSIX_DEVICE_SPECIFIC", _SC_DEVICE_SPECIFIC, SYSCONF },
Packit Service 82fcde
    { "_POSIX_DEVICE_SPECIFIC_R", _SC_DEVICE_SPECIFIC_R, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FD_MGMT", _SC_FD_MGMT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FIFO", _SC_FIFO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_PIPE", _SC_PIPE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FILE_ATTRIBUTES", _SC_FILE_ATTRIBUTES, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FILE_LOCKING", _SC_FILE_LOCKING, SYSCONF },
Packit Service 82fcde
    { "_POSIX_FILE_SYSTEM", _SC_FILE_SYSTEM, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MONOTONIC_CLOCK", _SC_MONOTONIC_CLOCK, SYSCONF },
Packit Service 82fcde
    { "_POSIX_MULTI_PROCESS", _SC_MULTI_PROCESS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SINGLE_PROCESS", _SC_SINGLE_PROCESS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_NETWORKING", _SC_NETWORKING, SYSCONF },
Packit Service 82fcde
    { "_POSIX_READER_WRITER_LOCKS", _SC_READER_WRITER_LOCKS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SPIN_LOCKS", _SC_SPIN_LOCKS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_REGEXP", _SC_REGEXP, SYSCONF },
Packit Service 82fcde
    { "_REGEX_VERSION", _SC_REGEX_VERSION, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SHELL", _SC_SHELL, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SIGNALS", _SC_SIGNALS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SPAWN", _SC_SPAWN, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SPORADIC_SERVER", _SC_SPORADIC_SERVER, SYSCONF },
Packit Service 82fcde
    { "_POSIX_THREAD_SPORADIC_SERVER", _SC_THREAD_SPORADIC_SERVER, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SYSTEM_DATABASE", _SC_SYSTEM_DATABASE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_SYSTEM_DATABASE_R", _SC_SYSTEM_DATABASE_R, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TIMEOUTS", _SC_TIMEOUTS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TYPED_MEMORY_OBJECTS", _SC_TYPED_MEMORY_OBJECTS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_USER_GROUPS", _SC_USER_GROUPS, SYSCONF },
Packit Service 82fcde
    { "_POSIX_USER_GROUPS_R", _SC_USER_GROUPS_R, SYSCONF },
Packit Service 82fcde
    { "POSIX2_PBS", _SC_2_PBS, SYSCONF },
Packit Service 82fcde
    { "POSIX2_PBS_ACCOUNTING", _SC_2_PBS_ACCOUNTING, SYSCONF },
Packit Service 82fcde
    { "POSIX2_PBS_LOCATE", _SC_2_PBS_LOCATE, SYSCONF },
Packit Service 82fcde
    { "POSIX2_PBS_TRACK", _SC_2_PBS_TRACK, SYSCONF },
Packit Service 82fcde
    { "POSIX2_PBS_MESSAGE", _SC_2_PBS_MESSAGE, SYSCONF },
Packit Service 82fcde
    { "SYMLOOP_MAX", _SC_SYMLOOP_MAX, SYSCONF },
Packit Service 82fcde
    { "STREAM_MAX", _SC_STREAM_MAX, SYSCONF },
Packit Service 82fcde
    { "AIO_LISTIO_MAX", _SC_AIO_LISTIO_MAX, SYSCONF },
Packit Service 82fcde
    { "AIO_MAX", _SC_AIO_MAX, SYSCONF },
Packit Service 82fcde
    { "AIO_PRIO_DELTA_MAX", _SC_AIO_PRIO_DELTA_MAX, SYSCONF },
Packit Service 82fcde
    { "DELAYTIMER_MAX", _SC_DELAYTIMER_MAX, SYSCONF },
Packit Service 82fcde
    { "HOST_NAME_MAX", _SC_HOST_NAME_MAX, SYSCONF },
Packit Service 82fcde
    { "LOGIN_NAME_MAX", _SC_LOGIN_NAME_MAX, SYSCONF },
Packit Service 82fcde
    { "MQ_OPEN_MAX", _SC_MQ_OPEN_MAX, SYSCONF },
Packit Service 82fcde
    { "MQ_PRIO_MAX", _SC_MQ_PRIO_MAX, SYSCONF },
Packit Service 82fcde
    { "_POSIX_DEVICE_IO", _SC_DEVICE_IO, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TRACE", _SC_TRACE, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TRACE_EVENT_FILTER", _SC_TRACE_EVENT_FILTER, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TRACE_INHERIT", _SC_TRACE_INHERIT, SYSCONF },
Packit Service 82fcde
    { "_POSIX_TRACE_LOG", _SC_TRACE_LOG, SYSCONF },
Packit Service 82fcde
    { "RTSIG_MAX", _SC_RTSIG_MAX, SYSCONF },
Packit Service 82fcde
    { "SEM_NSEMS_MAX", _SC_SEM_NSEMS_MAX, SYSCONF },
Packit Service 82fcde
    { "SEM_VALUE_MAX", _SC_SEM_VALUE_MAX, SYSCONF },
Packit Service 82fcde
    { "SIGQUEUE_MAX", _SC_SIGQUEUE_MAX, SYSCONF },
Packit Service 82fcde
    { "FILESIZEBITS", _PC_FILESIZEBITS, PATHCONF },
Packit Service 82fcde
    { "POSIX_ALLOC_SIZE_MIN", _PC_ALLOC_SIZE_MIN, PATHCONF },
Packit Service 82fcde
    { "POSIX_REC_INCR_XFER_SIZE", _PC_REC_INCR_XFER_SIZE, PATHCONF },
Packit Service 82fcde
    { "POSIX_REC_MAX_XFER_SIZE", _PC_REC_MAX_XFER_SIZE, PATHCONF },
Packit Service 82fcde
    { "POSIX_REC_MIN_XFER_SIZE", _PC_REC_MIN_XFER_SIZE, PATHCONF },
Packit Service 82fcde
    { "POSIX_REC_XFER_ALIGN", _PC_REC_XFER_ALIGN, PATHCONF },
Packit Service 82fcde
    { "SYMLINK_MAX", _PC_SYMLINK_MAX, PATHCONF },
Packit Service 82fcde
    { "GNU_LIBC_VERSION", _CS_GNU_LIBC_VERSION, CONFSTR },
Packit Service 82fcde
    { "GNU_LIBPTHREAD_VERSION", _CS_GNU_LIBPTHREAD_VERSION, CONFSTR },
Packit Service 82fcde
    { "POSIX2_SYMLINKS", _PC_2_SYMLINKS, PATHCONF },
Packit Service 82fcde
Packit Service 82fcde
    { "LEVEL1_ICACHE_SIZE", _SC_LEVEL1_ICACHE_SIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL1_ICACHE_ASSOC", _SC_LEVEL1_ICACHE_ASSOC, SYSCONF },
Packit Service 82fcde
    { "LEVEL1_ICACHE_LINESIZE", _SC_LEVEL1_ICACHE_LINESIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL1_DCACHE_SIZE", _SC_LEVEL1_DCACHE_SIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL1_DCACHE_ASSOC", _SC_LEVEL1_DCACHE_ASSOC, SYSCONF },
Packit Service 82fcde
    { "LEVEL1_DCACHE_LINESIZE", _SC_LEVEL1_DCACHE_LINESIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL2_CACHE_SIZE", _SC_LEVEL2_CACHE_SIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL2_CACHE_ASSOC", _SC_LEVEL2_CACHE_ASSOC, SYSCONF },
Packit Service 82fcde
    { "LEVEL2_CACHE_LINESIZE", _SC_LEVEL2_CACHE_LINESIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL3_CACHE_SIZE", _SC_LEVEL3_CACHE_SIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL3_CACHE_ASSOC", _SC_LEVEL3_CACHE_ASSOC, SYSCONF },
Packit Service 82fcde
    { "LEVEL3_CACHE_LINESIZE", _SC_LEVEL3_CACHE_LINESIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL4_CACHE_SIZE", _SC_LEVEL4_CACHE_SIZE, SYSCONF },
Packit Service 82fcde
    { "LEVEL4_CACHE_ASSOC", _SC_LEVEL4_CACHE_ASSOC, SYSCONF },
Packit Service 82fcde
    { "LEVEL4_CACHE_LINESIZE", _SC_LEVEL4_CACHE_LINESIZE, SYSCONF },
Packit Service 82fcde
Packit Service 82fcde
    { "IPV6", _SC_IPV6, SYSCONF },
Packit Service 82fcde
    { "RAW_SOCKETS", _SC_RAW_SOCKETS, SYSCONF },
Packit Service 82fcde
Packit Service 82fcde
    { "_POSIX_IPV6", _SC_IPV6, SYSCONF },
Packit Service 82fcde
    { "_POSIX_RAW_SOCKETS", _SC_RAW_SOCKETS, SYSCONF },
Packit Service 82fcde
Packit Service 82fcde
    { NULL, 0, SYSCONF }
Packit Service 82fcde
  };
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
extern const char *__progname;
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
static void
Packit Service 82fcde
usage (void)
Packit Service 82fcde
{
Packit Service 82fcde
  fprintf (stderr,
Packit Service 82fcde
	   _("Usage: %s [-v specification] variable_name [pathname]\n"),
Packit Service 82fcde
	   __progname);
Packit Service 82fcde
  fprintf (stderr,
Packit Service 82fcde
	   _("       %s -a [pathname]\n"), __progname);
Packit Service 82fcde
  exit (2);
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
static void
Packit Service 82fcde
print_all (const char *path)
Packit Service 82fcde
{
Packit Service 82fcde
  const struct conf *c;
Packit Service 82fcde
  size_t clen;
Packit Service 82fcde
  long int value;
Packit Service 82fcde
  char *cvalue;
Packit Service 82fcde
  for (c = vars; c->name != NULL; ++c) {
Packit Service 82fcde
    printf("%-35s", c->name);
Packit Service 82fcde
    switch (c->call) {
Packit Service 82fcde
      case PATHCONF:
Packit Service 82fcde
	value = pathconf (path, c->call_name);
Packit Service 82fcde
	if (value != -1) {
Packit Service 82fcde
	  printf("%ld", value);
Packit Service 82fcde
	}
Packit Service 82fcde
	printf("\n");
Packit Service 82fcde
	break;
Packit Service 82fcde
      case SYSCONF:
Packit Service 82fcde
	value = sysconf (c->call_name);
Packit Service 82fcde
	if (value == -1l) {
Packit Service 82fcde
	  if (c->call_name == _SC_UINT_MAX
Packit Service 82fcde
	    || c->call_name == _SC_ULONG_MAX)
Packit Service 82fcde
	    printf ("%lu", value);
Packit Service 82fcde
	}
Packit Service 82fcde
	else {
Packit Service 82fcde
	  printf ("%ld", value);
Packit Service 82fcde
	}
Packit Service 82fcde
	printf ("\n");
Packit Service 82fcde
	break;
Packit Service 82fcde
      case CONFSTR:
Packit Service 82fcde
	clen = confstr (c->call_name, (char *) NULL, 0);
Packit Service 82fcde
	cvalue = (char *) malloc (clen);
Packit Service 82fcde
	if (cvalue == NULL)
Packit Service 82fcde
	  error (3, 0, _("memory exhausted"));
Packit Service 82fcde
	if (confstr (c->call_name, cvalue, clen) != clen)
Packit Service 82fcde
	  error (3, errno, "confstr");
Packit Service 82fcde
	printf ("%.*s\n", (int) clen, cvalue);
Packit Service 82fcde
	free (cvalue);
Packit Service 82fcde
	break;
Packit Service 82fcde
    }
Packit Service 82fcde
  }
Packit Service 82fcde
  exit (0);
Packit Service 82fcde
}
Packit Service 82fcde
Packit Service 82fcde
int
Packit Service 82fcde
main (int argc, char *argv[])
Packit Service 82fcde
{
Packit Service 82fcde
  const struct conf *c;
Packit Service 82fcde
Packit Service 82fcde
  /* Set locale.  Do not set LC_ALL because the other categories must
Packit Service 82fcde
     not be affected (according to POSIX.2).  */
Packit Service 82fcde
  setlocale (LC_CTYPE, "");
Packit Service 82fcde
  setlocale (LC_MESSAGES, "");
Packit Service 82fcde
Packit Service 82fcde
  /* Initialize the message catalog.  */
Packit Service 82fcde
  textdomain (PACKAGE);
Packit Service 82fcde
Packit Service 82fcde
  if (argc > 1 && strcmp (argv[1], "--version") == 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      printf ("getconf %s%s\n", PKGVERSION, VERSION);
Packit Service 82fcde
      printf (gettext ("\
Packit Service 82fcde
Copyright (C) %s Free Software Foundation, Inc.\n\
Packit Service 82fcde
This is free software; see the source for copying conditions.  There is NO\n\
Packit Service 82fcde
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
Packit Service 82fcde
"), "2018");
Packit Service 82fcde
      printf (gettext ("Written by %s.\n"), "Roland McGrath");
Packit Service 82fcde
      return 0;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  if (argc > 1 && strcmp (argv[1], "--help") == 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      printf (gettext ("\
Packit Service 82fcde
Usage: getconf [-v SPEC] VAR\n\
Packit Service 82fcde
  or:  getconf [-v SPEC] PATH_VAR PATH\n\
Packit Service 82fcde
\n\
Packit Service 82fcde
Get the configuration value for variable VAR, or for variable PATH_VAR\n\
Packit Service 82fcde
for path PATH.  If SPEC is given, give values for compilation\n\
Packit Service 82fcde
environment SPEC.\n\n"));
Packit Service 82fcde
      printf (gettext ("For bug reporting instructions, please see:\n\
Packit Service 82fcde
%s.\n"), REPORT_BUGS_TO);
Packit Service 82fcde
      return 0;
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
#ifdef ALL_ENVIRONMENTS_DEFINED
Packit Service 82fcde
  if (argc > 1 && strncmp (argv[1], "-v", 2) == 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      if (argv[1][2] == '\0')
Packit Service 82fcde
	{
Packit Service 82fcde
	  if (argc < 3)
Packit Service 82fcde
	    usage ();
Packit Service 82fcde
Packit Service 82fcde
	  argv += 2;
Packit Service 82fcde
	  argc -= 2;
Packit Service 82fcde
	}
Packit Service 82fcde
      else
Packit Service 82fcde
	{
Packit Service 82fcde
	  argv += 1;
Packit Service 82fcde
	  argc += 1;
Packit Service 82fcde
	}
Packit Service 82fcde
    }
Packit Service 82fcde
#else
Packit Service 82fcde
  const char *getconf_dir = getenv ("GETCONF_DIR") ?: GETCONF_DIR;
Packit Service 82fcde
  size_t getconf_dirlen = strlen (getconf_dir);
Packit Service 82fcde
Packit Service 82fcde
  const char *spec = NULL;
Packit Service 82fcde
  char buf[sizeof "POSIX_V6_LPBIG_OFFBIG"];
Packit Service 82fcde
  char *argv0 = argv[0];
Packit Service 82fcde
  if (argc > 1 && strncmp (argv[1], "-v", 2) == 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      if (argv[1][2] == '\0')
Packit Service 82fcde
	{
Packit Service 82fcde
	  if (argc < 3)
Packit Service 82fcde
	    usage ();
Packit Service 82fcde
Packit Service 82fcde
	  spec = argv[2];
Packit Service 82fcde
	  argv += 2;
Packit Service 82fcde
	  argc -= 2;
Packit Service 82fcde
	}
Packit Service 82fcde
      else
Packit Service 82fcde
	{
Packit Service 82fcde
	  spec = &argv[1][2];
Packit Service 82fcde
	  argv += 1;
Packit Service 82fcde
	  argc += 1;
Packit Service 82fcde
	}
Packit Service 82fcde
    }
Packit Service 82fcde
  else
Packit Service 82fcde
    {
Packit Service 82fcde
      char default_name[getconf_dirlen + sizeof "/default"];
Packit Service 82fcde
      memcpy (mempcpy (default_name, getconf_dir, getconf_dirlen),
Packit Service 82fcde
	      "/default", sizeof "/default");
Packit Service 82fcde
      int len = readlink (default_name, buf, sizeof buf - 1);
Packit Service 82fcde
      if (len > 0)
Packit Service 82fcde
	{
Packit Service 82fcde
	  buf[len] = '\0';
Packit Service 82fcde
	  spec = buf;
Packit Service 82fcde
	}
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  /* Check for the specifications we know.  */
Packit Service 82fcde
  if (spec != NULL)
Packit Service 82fcde
    {
Packit Service 82fcde
      size_t i;
Packit Service 82fcde
      for (i = 0; i < nspecs; ++i)
Packit Service 82fcde
	if (strcmp (spec, specs[i].name) == 0)
Packit Service 82fcde
	  break;
Packit Service 82fcde
Packit Service 82fcde
      if (i == nspecs)
Packit Service 82fcde
	error (2, 0, _("unknown specification \"%s\""), spec);
Packit Service 82fcde
Packit Service 82fcde
      switch (specs[i].num)
Packit Service 82fcde
	{
Packit Service 82fcde
# ifndef _XBS5_ILP32_OFF32
Packit Service 82fcde
	  case _SC_XBS5_ILP32_OFF32:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _XBS5_ILP32_OFFBIG
Packit Service 82fcde
	  case _SC_XBS5_ILP32_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _XBS5_LP64_OFF64
Packit Service 82fcde
	  case _SC_XBS5_LP64_OFF64:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _XBS5_LPBIG_OFFBIG
Packit Service 82fcde
	  case _SC_XBS5_LPBIG_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V6_ILP32_OFF32
Packit Service 82fcde
	  case _SC_V6_ILP32_OFF32:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V6_ILP32_OFFBIG
Packit Service 82fcde
	  case _SC_V6_ILP32_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V6_LP64_OFF64
Packit Service 82fcde
	  case _SC_V6_LP64_OFF64:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V6_LPBIG_OFFBIG
Packit Service 82fcde
	  case _SC_V6_LPBIG_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V7_ILP32_OFF32
Packit Service 82fcde
	  case _SC_V7_ILP32_OFF32:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V7_ILP32_OFFBIG
Packit Service 82fcde
	  case _SC_V7_ILP32_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V7_LP64_OFF64
Packit Service 82fcde
	  case _SC_V7_LP64_OFF64:
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifndef _POSIX_V7_LPBIG_OFFBIG
Packit Service 82fcde
	  case _SC_V7_LPBIG_OFFBIG:
Packit Service 82fcde
# endif
Packit Service 82fcde
	    {
Packit Service 82fcde
	      const char *args[argc + 3];
Packit Service 82fcde
	      size_t spec_len = strlen (spec);
Packit Service 82fcde
	      char getconf_name[getconf_dirlen + 1 + spec_len + 1];
Packit Service 82fcde
	      memcpy (mempcpy (mempcpy (getconf_name, getconf_dir,
Packit Service 82fcde
					getconf_dirlen),
Packit Service 82fcde
			       "/", 1), spec, spec_len + 1);
Packit Service 82fcde
	      args[0] = argv0;
Packit Service 82fcde
	      args[1] = "-v";
Packit Service 82fcde
	      args[2] = spec;
Packit Service 82fcde
	      memcpy (&args[3], &argv[1], argc * sizeof (argv[1]));
Packit Service 82fcde
	      execv (getconf_name, (char * const *) args);
Packit Service 82fcde
	      error (4, errno, _("Couldn't execute %s"), getconf_name);
Packit Service 82fcde
	    }
Packit Service 82fcde
	  default:
Packit Service 82fcde
	    break;
Packit Service 82fcde
	}
Packit Service 82fcde
    }
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
  if (argc > 1 && strcmp (argv[1], "-a") == 0)
Packit Service 82fcde
    {
Packit Service 82fcde
      if (argc == 2)
Packit Service 82fcde
	print_all ("/");
Packit Service 82fcde
      else if (argc == 3)
Packit Service 82fcde
	print_all (argv[2]);
Packit Service 82fcde
      else
Packit Service 82fcde
	usage ();
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  int ai = 1;
Packit Service 82fcde
  if (argc > ai && strcmp (argv[ai], "--") == 0)
Packit Service 82fcde
    ++ai;
Packit Service 82fcde
Packit Service 82fcde
  if (argc - ai < 1 || argc - ai > 2)
Packit Service 82fcde
    usage ();
Packit Service 82fcde
Packit Service 82fcde
  for (c = vars; c->name != NULL; ++c)
Packit Service 82fcde
    if (strcmp (c->name, argv[ai]) == 0
Packit Service 82fcde
	|| (strncmp (c->name, "_POSIX_", 7) == 0
Packit Service 82fcde
	    && strcmp (c->name + 7, argv[ai]) == 0))
Packit Service 82fcde
      {
Packit Service 82fcde
	long int value;
Packit Service 82fcde
	size_t clen;
Packit Service 82fcde
	char *cvalue;
Packit Service 82fcde
	switch (c->call)
Packit Service 82fcde
	  {
Packit Service 82fcde
	  case PATHCONF:
Packit Service 82fcde
	    if (argc - ai < 2)
Packit Service 82fcde
	      usage ();
Packit Service 82fcde
	    errno = 0;
Packit Service 82fcde
	    value = pathconf (argv[ai + 1], c->call_name);
Packit Service 82fcde
	    if (value == -1)
Packit Service 82fcde
	      {
Packit Service 82fcde
		if (errno)
Packit Service 82fcde
		  error (3, errno, "pathconf: %s", argv[ai + 1]);
Packit Service 82fcde
		else
Packit Service 82fcde
		  puts (_("undefined"));
Packit Service 82fcde
	      }
Packit Service 82fcde
	    else
Packit Service 82fcde
	      printf ("%ld\n", value);
Packit Service 82fcde
	    exit (0);
Packit Service 82fcde
Packit Service 82fcde
	  case SYSCONF:
Packit Service 82fcde
	    if (argc - ai > 1)
Packit Service 82fcde
	      usage ();
Packit Service 82fcde
	    value = sysconf (c->call_name);
Packit Service 82fcde
	    if (value == -1l)
Packit Service 82fcde
	      {
Packit Service 82fcde
		if (c->call_name == _SC_UINT_MAX
Packit Service 82fcde
		    || c->call_name == _SC_ULONG_MAX)
Packit Service 82fcde
		  printf ("%lu\n", value);
Packit Service 82fcde
		else
Packit Service 82fcde
		  puts (_("undefined"));
Packit Service 82fcde
	      }
Packit Service 82fcde
	    else
Packit Service 82fcde
	      printf ("%ld\n", value);
Packit Service 82fcde
	    exit (0);
Packit Service 82fcde
Packit Service 82fcde
	  case CONFSTR:
Packit Service 82fcde
	    if (argc - ai > 1)
Packit Service 82fcde
	      usage ();
Packit Service 82fcde
	    clen = confstr (c->call_name, (char *) NULL, 0);
Packit Service 82fcde
	    cvalue = (char *) malloc (clen);
Packit Service 82fcde
	    if (cvalue == NULL)
Packit Service 82fcde
	      error (3, 0, _("memory exhausted"));
Packit Service 82fcde
Packit Service 82fcde
	    if (confstr (c->call_name, cvalue, clen) != clen)
Packit Service 82fcde
	      error (3, errno, "confstr");
Packit Service 82fcde
Packit Service 82fcde
	    printf ("%.*s\n", (int) clen, cvalue);
Packit Service 82fcde
	    exit (0);
Packit Service 82fcde
	  }
Packit Service 82fcde
      }
Packit Service 82fcde
Packit Service 82fcde
  error (2, 0, _("Unrecognized variable `%s'"), argv[ai]);
Packit Service 82fcde
  /* NOTREACHED */
Packit Service 82fcde
  return 2;
Packit Service 82fcde
}