From 63e9edcb6084d4b164439065e2d71f3e900ec3c7 Mon Sep 17 00:00:00 2001
From: Kurtis Rader <krader@skepticism.us>
Date: Wed, 22 May 2019 19:30:12 -0700
Subject: [PATCH] Stop dynamically generating conftab.c and conftab.h

GCC 9.1 changes the output of `gcc -E` which breaks the conf.sh script.
We want to eliminate the `getconf` builtin and the `astconf()` function.
No unit tests depend on either of those. And it is highly unlikely any
real world scripts do so. So as the first step in removing those APIs and
to make building this possible with gcc 9.1 just use a static version of
conftab.c and conftab.h.

Fixes #1315
Related #1118
---
 scripts/libast_prereq.sh                      |   14 -
 scripts/sort_symbols.py                       |   31 -
 src/lib/libast/comp/conf.sh                   | 1341 ------------
 src/lib/libast/comp/conf.tab                  |  484 -----
 src/lib/libast/comp/conftab.c                 | 1869 +++++++++++++++++
 src/lib/libast/comp/conftab.c.in              |   36 -
 .../{comp/conftab.h.in => include/conftab.h}  |   56 +-
 src/lib/libast/meson.build                    |    4 +-
 8 files changed, 1904 insertions(+), 1931 deletions(-)
 delete mode 100644 scripts/sort_symbols.py
 delete mode 100755 src/lib/libast/comp/conf.sh
 delete mode 100644 src/lib/libast/comp/conf.tab
 create mode 100644 src/lib/libast/comp/conftab.c
 delete mode 100644 src/lib/libast/comp/conftab.c.in
 rename src/lib/libast/{comp/conftab.h.in => include/conftab.h} (60%)

diff --git a/scripts/libast_prereq.sh b/scripts/libast_prereq.sh
index 92c5c0e2a46..88aa1f90a31 100755
--- a/scripts/libast_prereq.sh
+++ b/scripts/libast_prereq.sh
@@ -10,7 +10,6 @@
 #
 set -e
 bin_dir="$MESON_SOURCE_ROOT/bin"
-comp_dir="$MESON_SOURCE_ROOT/src/lib/libast/comp"
 PATH=$bin_dir:$PATH
 INC_DIRS=""
 INC_DIRS="$INC_DIRS -I$MESON_BUILD_ROOT"
@@ -25,19 +24,6 @@ fi
 
 cd "$MESON_BUILD_ROOT"
 
-if cc --version | grep -q "GCC"
-then
-    gcc_major_version=$(cc -dumpversion | cut -d. -f1)
-    if [ "$gcc_major_version" -ge 9 ]
-    then
-        extra_flags="-fno-diagnostics-show-line-numbers"
-    fi
-fi
-
-# Generate the conftab.[ch] source files.
-# shellcheck disable=SC2086
-"$comp_dir/conf.sh" $CC -std=gnu99 -D_BLD_DLL $INC_DIRS $extra_flags
-
 # Generate header files whose content depends on the current platform.
 "$MESON_SOURCE_ROOT/scripts/siglist.sh" > features/siglist.h
 # shellcheck disable=SC2086
diff --git a/scripts/sort_symbols.py b/scripts/sort_symbols.py
deleted file mode 100644
index 2d9b108ed29..00000000000
--- a/scripts/sort_symbols.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# This replaces the following pipeline in the original .../libast/comp.conf.sh
-# script. We're now using a python program not for efficiency but because we
-# need to sort the strings from longest to shortest to work around a bug with
-# the macOS `fgrep -x -v` behavior.
-#
-# sed "s/[^_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789][^_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]*/${snl}/g" $tmp.e |
-# grep '^[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz][_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789]*$' |
-# sort -u > $tmp.n
-#
-from __future__ import print_function  # in case we're being run by python2
-import re
-import sys
-
-
-def sort_key(k):
-    return (len(k), k)
-
-
-# Capture all the lines consisting solely of single tokens that are valid
-# C symbols.
-lines = []
-for line in sys.stdin:
-    m = re.match(r'^\s*(\w+),$', line)
-    if m:
-        lines.append(m.group(1))
-
-# Sort by line length then lexicographically for lines of the same length.
-lines.sort(key=sort_key, reverse=True)
-
-for line in lines:
-    print(line)
diff --git a/src/lib/libast/comp/conf.sh b/src/lib/libast/comp/conf.sh
deleted file mode 100755
index abda3529ed2..00000000000
--- a/src/lib/libast/comp/conf.sh
+++ /dev/null
@@ -1,1341 +0,0 @@
-#!/bin/sh
-set -x
-########################################################################
-#                                                                      #
-#               This software is part of the ast package               #
-#          Copyright (c) 1985-2013 AT&T Intellectual Property          #
-#                      and is licensed under the                       #
-#                 Eclipse Public License, Version 1.0                  #
-#                    by AT&T Intellectual Property                     #
-#                                                                      #
-#                A copy of the License is available at                 #
-#          http://www.eclipse.org/org/documents/epl-v10.html           #
-#         (with md5 checksum b35adb5213ca9657e911e9befb180842)         #
-#                                                                      #
-#              Information and Software Systems Research               #
-#                            AT&T Research                             #
-#                           Florham Park NJ                            #
-#                                                                      #
-#               Glenn Fowler <glenn.s.fowler@gmail.com>                #
-#                    David Korn <dgkorn@gmail.com>                     #
-#                     Phong Vo <phongvo@gmail.com>                     #
-#                                                                      #
-########################################################################
-#
-# @(#)conf.sh (AT&T Research) 2011-08-26
-#
-# This script generates these files from the table file:
-#
-# conflim.h  supplemental limits.h definitions
-# conftab.h  readonly string table definitions
-# conftab.c  readonly string table data
-#
-# You may think it should be simpler but you shall be confused anyway.
-#
-export LC_ALL=C
-
-command=`basename $0`
-source_dir="$MESON_SOURCE_ROOT/src/lib/libast/comp"
-target_dir="$MESON_BUILD_ROOT/src/lib/libast/comp"
-table=$source_dir/conf.tab
-test $# -gt 0 || { echo missing expected compiler args >&2; exit 1; }
-cc=$*
-
-PATH="$MESON_SOURCE_ROOT/scripts:$PATH"
-
-# The use of `mktemp -dt` isn't ideal as it has slightly different meaning on BSD and GNU. But for
-# our purposes that doesn't matter. It simply means the temp file name will contain the X's on a BSD
-# system. See https://github.com/att/ast/issues/939
-tmpdir=$(mktemp -dt ksh.XXXXXX)
-tmp=$tmpdir/conf
-cd $tmpdir || exit
-trap "cd /tmp; rm -rf $tmpdir" EXIT
-
-# We need to create the Meson build directory that will contain the
-# dynamically generated source files.
-test -d "$target_dir" || mkdir -p "$target_dir"
-
-# We don't bother doing this test before creating the temp dir because we
-# don't expect this to ever fail unless the project source has been damaged.
-if test ! -f $table
-then
-    echo "$command: cannot read: $table" >&2
-    exit 1
-fi
-
-# Setting the compiler's error-limit to zero (or a number much larger than the usual default of 20)
-# is important to the proper functioning of the `defined()` function below. The default limit can,
-# through pure chance, cause the inner loop of that function to terminate prematurely when it
-# decides it isn't making forward progress in eliminating symbol errors. This also makes that
-# process much more efficient. Unfortunately we can't just assume the compiler supports this so
-# only use the flag if it does. Otherwise hope for the best with the default error limit.
-cat > $tmp.c <<!
-int main() { return 1; }
-!
-error_limit=''
-if $cc -ferror-limit=0 $tmp.c
-then
-    error_limit="-ferror-limit=0"
-fi
-
-append=0
-extra=0
-keep_call='*'
-keep_name='*'
-
-# Note that header "config_ast.h" is created during the Meson feature detection phase. And this
-# script runs after that has completed. That header contains things like the definition of
-# `_ast_intmax_t` that this script depends upon.
-head='
-#include "config_ast.h"
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <sys/types.h>
-'
-
-tail='
-#include <sys/param.h>
-#include <sys/stat.h>
-'
-
-headers=
-ifs=${IFS}
-tab='	'  # this should be the only place a literal tab appears in this script
-nl='
-'
-sym=[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]*
-
-# determine the intmax_t printf format
-
-cat > $tmp.c <<!
-${head}
-
-int main() {
-#if _ast_intmax_long
-    return 1;
-#else
-    return 0;
-#endif
-}
-!
-
-if $cc -o $tmp.exe $tmp.c && $tmp.exe
-then
-    LL_format='ll'
-else
-    LL_format='l'
-fi
-
-# determine the intmax_t constant suffix
-
-cat > $tmp.c <<!
-${head}
-
-int main() {
-#if _ast_intmax_long
-    return 1;
-#else
-    _ast_intmax_t           s = 0x7fffffffffffffffLL;
-    unsigned _ast_intmax_t  u = 0xffffffffffffffffLL;
-
-    return 0;
-#endif
-}
-!
-
-if $cc -o $tmp.exe $tmp.c
-then
-    if $tmp.exe
-    then
-        LL_suffix='LL'
-    else
-        LL_suffix='L'
-    fi
-else
-    LL_suffix=''
-fi
-
-# This value was dynamically determined by the legacy IFFE based version of this script. Since we
-# can now safely assume every platform we run on supports this syntax (e.g., `1U`) just hardcode it
-# rather than running a compiler test to see if it works.
-U_suffix='U'
-
-# Set up the names and keys.
-
-keys=
-standards=
-
-case $append$extra in
-00)
-    echo "$command: read $table" >&2
-    exec < $table
-    while :
-    do
-        IFS=""
-        read line
-        eof=$?
-        IFS=$ifs
-        case $eof in
-        0)      ;;
-        *)      break ;;
-        esac
-        case $line in
-        ""|\#*) ;;
-        *) set x $line
-            shift; name=$1
-            shift; standard=$1
-            shift; call=$1
-            shift; section=$1
-            shift; flags=$1
-            alternates=
-            define=
-            values=
-            script=
-            headers=
-            while   :
-            do      shift
-                    case $# in
-                    0)      break ;;
-                    esac
-                    case $1 in
-                    ":")    shift
-                            eval script='$'script_$1
-                            break
-                            ;;
-                    *"{")   case $1 in
-                            "sh{")  script="# $name" ;;
-                            *)      script= ;;
-                            esac
-                            shift
-                            args="$*"
-                            IFS=""
-                            while   read line
-                            do      case $line in
-                                    "}")    break ;;
-                                    esac
-                                    script="$script$nl$line"
-                            done
-                            IFS=$ifs
-                            break
-                            ;;
-                    *.h)    # These conf.tab entries are now ignored.
-                            # We no longer build or use iffe to detect whether
-                            # a given header is available. Too, not doing this
-                            # appears to have no material effect on the build.
-                            ;;
-                    *)      values="$values $1"
-                            case $1 in
-                            $sym)   echo "$1" >> $tmp.v ;;
-                            esac
-                            ;;
-                    esac
-            done
-            case " $standards " in
-            *" $standard "*)
-                    ;;
-            *)      standards="$standards $standard"
-                    ;;
-            esac
-            case $name:$flags in
-            *:*S*)  ;;
-            VERSION)flags="${flags}S" ;;
-            esac
-            case $name in
-            *VERSION*)key=${standard}${section} ;;
-            *)        key= ;;
-            esac
-            case $key in
-            ''|*_)  key=${key}${name} ;;
-            *)      key=${key}_${name} ;;
-            esac
-            eval sys='$'CONF_call_${key}
-            case $sys in
-            ?*)     call=$sys ;;
-            esac
-            case $call in
-            SI)     sys=CS ;;
-            *)      sys=$call ;;
-            esac
-            key=${sys}_${key}
-            keys="$keys$nl$key"
-            eval CONF_name_${key}='$'name
-            eval CONF_standard_${key}='$'standard
-            eval CONF_call_${key}='$'call
-            eval CONF_section_${key}='$'section
-            eval CONF_flags_${key}='$'flags
-            eval CONF_define_${key}='$'define
-            eval CONF_values_${key}='$'values
-            eval CONF_script_${key}='$'script
-            eval CONF_args_${key}='$'args
-            eval CONF_headers_${key}='$'headers
-            eval CONF_keys_${name}=\"'$'CONF_keys_${name} '$'key\"
-            ;;
-        esac
-    done
-    ;;
-esac
-
-# ====================
-# Check for native getconf(1).
-#
-CONF_getconf=
-CONF_getconf_a=
-for d in /usr/bin /bin /usr/sbin /sbin
-do      if      test -x $d/getconf
-        then    case `$d/getconf --?-version 2>&1` in
-                *"AT&T"*"Research"*)
-                        : presumably an implementation also configured from conf.tab
-                        ;;
-                *)      CONF_getconf=$d/getconf
-                        if      $CONF_getconf -a >/dev/null 2>&1
-                        then    CONF_getconf_a=-a
-                        fi
-                        ;;
-                esac
-                break
-        fi
-done
-export CONF_getconf CONF_getconf_a
-
-echo "$command: check ${CONF_getconf:+$CONF_getconf(1),}confstr(2),pathconf(2),sysconf(2),sysinfo(2) configuration names" >&2
-
-{
-    echo "
-${head}
-#include <unistd.h>
-
-int i = 0;" > $tmp.c
-    $cc -E $tmp.c
-} |
-sed -e '/^#[^0123456789]*1[ '"$tab"']*".*".*/!d' \
-    -e 's/^#[^0123456789]*1[ '"$tab"']*"\(.*\)".*/\1/' |
-sort -u > $tmp.f
-
-{
-    sed -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]/ /g' \
-        -e 's/[ '"$tab"'][ '"$tab"']*/\n/g' \
-        `cat $tmp.f` 2>/dev/null |
-        egrep '^(SI|_(CS|PC|SC|SI))_.'
-        case $CONF_getconf_a in
-        ?*)     $CONF_getconf $CONF_getconf_a | sed 's,[=:    ].*,,'
-                ;;
-        *)      case $CONF_getconf in
-                ?*)     for v in `strings $CONF_getconf | grep '^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*$'`
-                        do      if      $CONF_getconf $v >/dev/null
-                                then    echo $v
-                                fi
-                        done
-                        ;;
-                esac
-                ;;
-        esac 2>/dev/null
-} |
-egrep -v '^_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]+_(COUNT|LAST|N|STR)$' |
-sort -u > $tmp.g
-{
-        grep '^_' $tmp.g
-        grep '^[^_]' $tmp.g
-} > $tmp.t
-mv $tmp.t $tmp.g
-
-HOST=`"$MESON_SOURCE_ROOT/scripts/hosttype" | sed -e 's,[0123456789.].*,,' | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
-case $HOST in
-'')     HOST=SYSTEM ;;
-esac
-
-exec < $tmp.g
-while   read line
-do      flags=F
-        section=
-        underscore=
-        define=$line
-        IFS=_
-        set $line
-        IFS=$ifs
-        case $1 in
-        '')     case $# in
-                0)      continue ;;
-                esac
-                shift
-                ;;
-        esac
-        case $1 in
-        CS|PC|SC|SI)
-                call=$1
-                shift
-                standard=$1
-                ;;
-        *)      flags=${flags}R
-                standard=$1
-                while   :
-                do      case $# in
-                        0)      continue 2 ;;
-                        esac
-                        shift
-                        case $1 in
-                        CS|PC|SC|SI)
-                                call=$1
-                                shift
-                                break
-                                ;;
-                        O|o|OLD|old)
-                                continue 2
-                                ;;
-                        esac
-                        standard=${standard}_$1
-                done
-                ;;
-        esac
-        case $1 in
-        SET)    continue ;;
-        esac
-        case $standard in
-        _*)     standard=`echo $standard | sed 's,^_*,,'` ;;
-        esac
-        case " $standards " in
-        *" $standard "*)
-                ;;
-        *)      case $standard in
-                [0123456789]*)
-                        section=$standard
-                        standard=POSIX
-                        ;;
-                *[0123456789])
-                        eval `echo $standard | sed 's,\(.*\)\([0123456789]*\),standard=\1 section=\2,'`
-                        ;;
-                esac
-                ;;
-        esac
-        case $flags in
-        *R*)    case $call in
-                SI)     ;;
-                *)      underscore=U ;;
-                esac
-                ;;
-        *)      case " $standards " in
-                " C ")  shift
-                        ;;
-                *" $standard "*)
-                        case $call in
-                        SI)     ;;
-                        *)      flags=${flags}P
-                                underscore=U
-                                ;;
-                        esac
-                        shift
-                        ;;
-                *)      standard=
-                        ;;
-                esac
-                ;;
-        esac
-        case $standard in
-        '')     standard=$HOST
-                case $call in
-                SI)     ;;
-                *)      underscore=U ;;
-                esac
-                case $call in
-                CS|PC|SC)
-                        case $define in
-                        _${call}_*)
-                                standard=POSIX
-                                ;;
-                        esac
-                        ;;
-                esac
-                ;;
-        esac
-        part=$section
-        case $section in
-        '')     section=1
-                case $standard in
-                POSIX|XOPEN) part=$section ;;
-                esac
-                ;;
-        esac
-        name=
-        while   :
-        do      case $# in
-                0)      break ;;
-                esac
-                case $name in
-                '')     name=$1 ;;
-                *)      name=${name}_$1 ;;
-                esac
-                shift
-        done
-        case $name in
-        '')     ;;
-        HOSTTYPE|LIBPATH|LIBPREFIX|LIBSUFFIX|PATH_ATTRIBUTES|PATH_RESOLVE|UNIVERSE)
-                ;;
-        *)      values=
-                script=
-                args=
-                headers=
-                case $name in
-                V[123456789]_*|V[123456789][0123456789]_*)      underscore=VW ;;
-                esac
-                case $call in
-                CS|SI)  key=CS ;;
-                *)      key=$call ;;
-                esac
-                case $name in
-                *VERSION*)key=${key}_${standard}${part} ;;
-                esac
-                key=${key}_${name}
-                eval x='$'CONF_keys_$name
-                case $x in
-                '')     eval x='$'CONF_name_$key
-                        case $x in
-                        '')     case $call in
-                                SI)     flags=O$flags ;;
-                                esac
-                                case $underscore in
-                                ?*)     flags=${flags}${underscore} ;;
-                                esac
-                                old=QQ
-                                case $name in
-                                *VERSION*)old=${old}_${standard}${part} ;;
-                                esac
-                                old=${old}_${name}
-                                eval x='$'CONF_name_$old
-                                case $x in
-                                ?*)     eval CONF_name_$old=
-                                        eval flags='$'flags'$'CONF_flags_$old
-                                        eval values='$'CONF_values_$old
-                                        eval script='$'CONF_script_$old
-                                        eval args='$'CONF_args_$old
-                                        eval headers='$'CONF_headers_$old
-                                        ;;
-                                esac
-                                keys="$keys$nl$key"
-                                eval CONF_name_${key}='$'name
-                                eval CONF_standard_${key}='$'standard
-                                eval CONF_call_${key}='$'call
-                                eval CONF_section_${key}='$'section
-                                eval CONF_flags_${key}=d'$'flags
-                                eval CONF_define_${key}='$'define
-                                eval CONF_values_${key}='$'values
-                                eval CONF_script_${key}='$'script
-                                eval CONF_args_${key}='$'args
-                                eval CONF_headers_${key}='$'headers
-                                ;;
-                        *)      eval x='$'CONF_define_$key
-                                case $x in
-                                ?*)     case $call in
-                                        CS)     eval x='$'CONF_call_$key
-                                                case $x in
-                                                SI)     ;;
-                                                *)      define= ;;
-                                                esac
-                                                ;;
-                                        *)      define=
-                                                ;;
-                                        esac
-                                        ;;
-                                esac
-                                case $define in
-                                ?*)     eval CONF_define_${key}='$'define
-                                        eval CONF_call_${key}='$'call
-                                        eval x='$'CONF_call_${key}
-                                        case $x in
-                                        QQ)     ;;
-                                        *)      case $flags in
-                                                *R*)    flags=R ;;
-                                                *)      flags= ;;
-                                                esac
-                                                ;;
-                                        esac
-                                        case $call in
-                                        SI)     flags=O$flags ;;
-                                        esac
-                                        eval CONF_flags_${key}=d'$'flags'$'CONF_flags_${key}
-                                        ;;
-                                esac
-                                old=QQ
-                                case $name in
-                                *VERSION*)old=${old}_${standard}${part} ;;
-                                esac
-                                old=${old}_${name}
-                                eval CONF_name_$old=
-                        esac
-                        ;;
-                *)      for key in $x
-                        do      eval x='$'CONF_call_${key}
-                                case $x in
-                                XX)     eval CONF_call_${key}=QQ
-                                        eval CONF_flags_${key}=S'$'CONF_flags_${key}
-                                        ;;
-                                esac
-                        done
-                esac
-                ;;
-        esac
-done
-
-# sort keys by name
-
-keys=`for key in $keys
-do      eval echo '$'CONF_name_$key '$'key
-done | sort -u | sed 's,.* ,,'`
-
-# mark the dups CONF_PREFIXED
-
-prev_key=
-prev_name=
-for key in $keys
-do      eval name=\"'$'CONF_name_$key\"
-        case $name in
-        '')     continue
-                ;;
-        $prev_name)
-                eval p='$'CONF_flags_${prev_key}
-                eval c='$'CONF_flags_${key}
-                case $p:$c in
-                *L*:*L*);;
-                *L*:*)  c=L${c} ;;
-                *:*L*)  p=L${p} ;;
-                *)      p=P$p c=P$c ;;
-                esac
-                eval CONF_flags_${prev_key}=$p
-                eval CONF_flags_${key}=$c
-                ;;
-        esac
-        prev_name=$name
-        prev_key=$key
-done
-
-# collect all the macros/enums
-
-for key in $keys
-do      eval name=\"'$'CONF_name_$key\"
-        case $name in
-        '')             continue ;;
-        $keep_name)     ;;
-        *)              continue ;;
-        esac
-        eval call=\"'$'CONF_call_$key\"
-        case $call in
-        $keep_call)     ;;
-        *)              continue ;;
-        esac
-        eval standard=\"'$'CONF_standard_$key\"
-        eval section=\"'$'CONF_section_$key\"
-        eval flags=\"'$'CONF_flags_$key\"
-        eval define=\"'$'CONF_define_$key\"
-        eval values=\"'$'CONF_values_$key\"
-        eval script=\"'$'CONF_script_$key\"
-        eval args=\"'$'CONF_args_$key\"
-        eval headers=\"'$'CONF_headers_$key\"
-        conf_name=$name
-        case $call in
-        QQ)     call=XX
-                for c in SC PC CS
-                do      case $flags in
-                        *S*)    case $section in
-                                1)      eval x='$'CONF_call_${c}_${standard}_${name} ;;
-                                *)      eval x='$'CONF_call_${c}_${standard}${section}_${name} ;;
-                                esac
-                                ;;
-                        *)      eval x='$'CONF_call_${c}_${name}
-                                ;;
-                        esac
-                        case $x in
-                        ?*)     call=$x
-                                break
-                                ;;
-                        esac
-                done
-                case $call in
-                XX)     for c in SC PC CS
-                        do      echo "_${c}_${name}"
-                                case $flags in
-                                *S*)    case $section in
-                                        1)      echo "_${c}_${standard}_${name}" ;;
-                                        *)      echo "_${c}_${standard}${section}_${name}" ;;
-                                        esac
-                                        ;;
-                                esac
-                        done
-                        ;;
-                esac
-                ;;
-        esac
-        case $call in
-        CS|PC|SC|SI|XX)
-                ;;
-        *)      echo "$command: $name: $call: invalid call" >&2
-                exit 1
-                ;;
-        esac
-        case $flags in
-        *[ABEGHIJQTYZabcefghijklmnopqrstuvwxyz_123456789]*)
-                echo "$command: $name: $flags: invalid flag(s)" >&2
-                exit 1
-                ;;
-        esac
-        case $section in
-        [01])   ;;
-        *)      case $flags in
-                *N*)    ;;
-                *)      name=${section}_${name} ;;
-                esac
-                standard=${standard}${section}
-                ;;
-        esac
-        case $call in
-        XX)     ;;
-        *)      case $flags in
-                *d*)    conf_op=${define} ;;
-                *O*)    conf_op=${call}_${name} ;;
-                *R*)    conf_op=_${standard}_${call}_${name} ;;
-                *S*)    conf_op=_${call}_${standard}_${name} ;;
-                *)      conf_op=_${call}_${name} ;;
-                esac
-                echo "${conf_op}"
-                ;;
-        esac
-        case $standard:$flags in
-        C:*)    ;;
-        *:*L*)  echo "${conf_name}"
-                echo "_${standard}_${conf_name}"
-                ;;
-        *:*M*)  case $section in
-                1)      echo "_${standard}_${conf_name}" ;;
-                *)      echo "_${standard}${section}_${conf_name}" ;;
-                esac
-                ;;
-        esac
-done > $tmp.q
-sort -u < $tmp.q > $tmp.t
-mv $tmp.t $tmp.q
-sort -u < $tmp.v > $tmp.t
-mv $tmp.t $tmp.v
-
-# test all the macros in a few batches (some compilers have an error limit)
-
-defined() # list-file
-{
-        : > $tmp.p
-        while   :
-        do      {
-                        cat <<!
-${head}
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-#undef conf
-unsigned int conf[] = {
-!
-                        sed 's/$/,/' $1
-                        echo "};"
-                } > $tmp.c
-                if $cc $error_limit -c $tmp.c > $tmp.e 2>&1
-                then
-                    break  # no compiler error implies all the symbols are valid
-                fi
-                python.sh sort_symbols.py < $tmp.e > $tmp.n
-                cmp -s $tmp.n $tmp.p && break
-                fgrep -x -v -f $tmp.n $1 > $tmp.y
-                mv $tmp.y $1
-                mv $tmp.n $tmp.p
-        done
-        {
-                cat <<!
-${head}
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-#undef conf
-!
-                sed 's/.*/conf "&" = &/' $1
-        } > $tmp.c
-        $cc -E $error_limit $tmp.c 2>/dev/null |
-        sed -e '/conf[ '"$tab"']*".*"[ '"$tab"']*=[ '"$tab"']*/!d' \
-            -e '/[_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789][ '"$tab"']*(/!d' -e 's/.*"\(.*\)".*/\1/' > $tmp.n
-        if      test -s $tmp.n
-        then    fgrep -x -v -f $tmp.n $1 > $tmp.y
-                mv $tmp.y $1
-        fi
-}
-
-echo "$command: check macros/enums as static initializers" >&2
-
-defined $tmp.q
-defined $tmp.v
-
-# mark the constant macros/enums
-
-exec < $tmp.q
-while   read line
-do      eval CONF_const_${line}=1
-done
-
-exec < $tmp.v
-while   read line
-do      eval CONF_const_${line}=1
-done
-
-# mark the string literal values
-
-{
-        cat <<!
-${head}
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-#undef conf
-!
-        sed 's/.*/conf "&" = &/' $tmp.q
-} > $tmp.c
-$cc -E $tmp.c |
-sed -e '/conf[ '"$tab"']*".*"[ '"$tab"']*=[ '"$tab"']*"/!d' -e 's/.*"\([^"]*\)".*/\1/' > $tmp.e
-exec < $tmp.e
-while   read line
-do      eval CONF_string_${line}=1
-done
-
-# Walk through the table.
-
-name_max=1
-export tmp name standard call cc
-
-exec > $tmp.t
-for key in $keys
-do      eval name=\"'$'CONF_name_$key\"
-        case $name in
-        '')             continue ;;
-        $keep_name)     ;;
-        *)              continue ;;
-        esac
-        eval call=\"'$'CONF_call_$key\"
-        case $call in
-        $keep_call)     ;;
-        *)              continue ;;
-        esac
-        eval standard=\"'$'CONF_standard_$key\"
-        eval section=\"'$'CONF_section_$key\"
-        eval flags=\"'$'CONF_flags_$key\"
-        eval define=\"'$'CONF_define_$key\"
-        eval values=\"'$'CONF_values_$key\"
-        eval script=\"'$'CONF_script_$key\"
-        eval args=\"'$'CONF_args_$key\"
-        eval headers=\"'$'CONF_headers_$key\"
-        conf_name=$name
-        case $call in
-        QQ)     call=XX
-                for c in SC PC CS
-                do      case $flags in
-                        *S*)    case $section in
-                                1)      eval x='$'CONF_call_${c}_${standard}_${name} ;;
-                                *)      eval x='$'CONF_call_${c}_${standard}${section}_${name} ;;
-                                esac
-                                ;;
-                        *)      eval x='$'CONF_call_${c}_${name}
-                                ;;
-                        esac
-                        case $x in
-                        ?*)     call=$x
-                                break
-                                ;;
-                        esac
-                done
-                case $call in
-                XX)     for c in SC PC CS
-                        do      case $flags in
-                                *S*)    case $section in
-                                        1)      eval x='$'CONF_const__${c}_${standard}_${name} ;;
-                                        *)      eval x='$'CONF_const__${c}_${standard}${section}_${name} ;;
-                                        esac
-                                        ;;
-                                *)      eval x='$'CONF_const__${c}_${name}
-                                        ;;
-                                esac
-                                case $x in
-                                1)      call=$c
-                                        break
-                                        ;;
-                                esac
-                        done
-                        ;;
-                esac
-                case $call in
-                XX)     case $standard in
-                        C)      standard=POSIX ;;
-                        esac
-                        case $flags in
-                        *L*)    flags=lFU ;;
-                        *)      flags=FU ;;
-                        esac
-                        ;;
-                esac
-                ;;
-        esac
-        case " $standards " in
-        *" $standard "*)
-                ;;
-        *)      standards="$standards $standard"
-                ;;
-        esac
-        conf_standard=CONF_${standard}
-        case $call in
-        CS)     conf_call=CONF_confstr
-                ;;
-        PC)     conf_call=CONF_pathconf
-                ;;
-        SC)     conf_call=CONF_sysconf
-                ;;
-        SI)     conf_call=CONF_sysinfo
-                ;;
-        XX)     conf_call=CONF_nop
-                ;;
-        esac
-        conf_op=-1
-        for s in _${call}_${standard}${section}_${name} _${call}_${standard}_${name} _${call}_${section}_${name} _${call}_${name} ${call}_${name}
-        do      eval x='$'CONF_const_${s}
-                case $x in
-                1)      conf_op=${s}
-                        break
-                        ;;
-                esac
-        done
-        conf_section=$section
-        conf_flags=0
-        case $flags in
-        *C*)    conf_flags="${conf_flags}|CONF_DEFER_CALL" ;;
-        esac
-        case $flags in
-        *D*)    conf_flags="${conf_flags}|CONF_DEFER_MM" ;;
-        esac
-        case $flags in
-        *F*)    conf_flags="${conf_flags}|CONF_FEATURE" ;;
-        esac
-        case $flags in
-        *L*)    conf_flags="${conf_flags}|CONF_LIMIT" ;;
-        esac
-        case $flags in
-        *M*)    conf_flags="${conf_flags}|CONF_MINMAX" ;;
-        esac
-        case $flags in
-        *N*)    conf_flags="${conf_flags}|CONF_NOSECTION" ;;
-        esac
-        case $flags in
-        *P*)    conf_flags="${conf_flags}|CONF_PREFIXED" ;;
-        esac
-        case $flags in
-        *S*)    conf_flags="${conf_flags}|CONF_STANDARD" ;;
-        esac
-        case $flags in
-        *U*)    conf_flags="${conf_flags}|CONF_UNDERSCORE" ;;
-        esac
-        case $flags in
-        *V*)    conf_flags="${conf_flags}|CONF_NOUNDERSCORE" ;;
-        esac
-        case $flags in
-        *W*)    conf_flags="${conf_flags}|CONF_PREFIX_ONLY" ;;
-        esac
-        case $call in
-        CS|SI)  conf_flags="${conf_flags}|CONF_STRING"
-                string=1
-                ;;
-        *)      eval string='$'CONF_string_${key}
-                ;;
-        esac
-        conf_limit=0
-        case $flags in
-        *[Ll]*) d=
-                case ${conf_name} in
-                LONG_MAX|SSIZE_MAX)
-                        x=
-                        ;;
-                *)      eval x='$'CONF_const_${conf_name}
-                        ;;
-                esac
-                case $x in
-                '')     for s in ${values}
-                        do      case $s in
-                                $sym)   eval x='$'CONF_const_${s}
-                                        case $x in
-                                        1)      eval a='$'CONF_const_${standard}_${s}
-                                                case $a in
-                                                $x)     x= ;;
-                                                *)      x=$s ;;
-                                                esac
-                                                break
-                                                ;;
-                                        esac
-                                        ;;
-                                [0123456789]*|[-+][0123456789]*)
-                                        d=$s
-                                        break
-                                        ;;
-                                esac
-                        done
-                        case ${x:+1}:$flags:$conf_op in
-                        :*:-1|:*X*:*)
-                                echo "$command: probe for ${conf_name} <limits.h> value" >&2
-                                x=
-                                case $CONF_getconf in
-                                ?*)     if      $CONF_getconf $conf_name > $tmp.x 2>/dev/null
-                                        then    x=`cat $tmp.x`
-                                                case $x in
-                                                undefined)      x= ;;
-                                                esac
-                                        fi
-                                        ;;
-                                esac
-                                case ${x:+1} in
-                                '')     case $script in
-                                        '#'*)   echo "$script" > $tmp.sh
-                                                chmod +x $tmp.sh
-                                                x=`$tmp.sh 2>/dev/null`
-                                                ;;
-                                        '')     case $conf_name in
-                                                SIZE_*|U*|*_MAX)
-                                                        f="%${LL_format}u"
-                                                        t="unsigned _ast_intmax_t"
-                                                        ;;
-                                                *)      f="%${LL_format}d"
-                                                        t="_ast_intmax_t"
-                                                        ;;
-                                                esac
-                                                cat > $tmp.c <<!
-${head}
-#include <stdio.h>
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-int
-main()
-{
-        printf("$f\n", ($t)$conf_name);
-        return 0;
-}
-!
-                                                ;;
-                                        *)      cat > $tmp.c <<!
-${head}
-#include <stdio.h>
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-${script}
-!
-                                                ;;
-                                        esac
-                                        case $args in
-                                        '')     set "" ;;
-                                        *)      eval set '""' '"'$args'"'; shift ;;
-                                        esac
-                                        for a
-                                        do      case $script in
-                                                '#'*)   $tmp.sh $a > $tmp.x
-                                                        x=$?
-                                                        ;;
-                                                *)      $cc $a -o $tmp.exe $tmp.c && $tmp.exe > $tmp.x
-                                                        x=$?
-                                                        ;;
-                                                esac
-                                                case $x in
-                                                0)      x=`cat $tmp.x`
-                                                        case $x in
-                                                        "-")    x=$a ;;
-                                                        esac
-                                                        break
-                                                        ;;
-                                                *)      x=
-                                                        ;;
-                                                esac
-                                        done
-                                        ;;
-                                esac
-                                case $x in
-                                '')     x=$d ;;
-                                esac
-                                ;;
-                        esac
-                        case ${x:+1}:$flags:$conf_op in
-                        1:*:-1|1:*X*:*)
-                                conf_limit=$x
-                                case $flags in
-                                *L*)    ;;
-                                *)      conf_flags="${conf_flags}|CONF_LIMIT" ;;
-                                esac
-                                conf_flags="${conf_flags}|CONF_LIMIT_DEF"
-                        esac
-                        ;;
-                esac
-                ;;
-        esac
-        case $section in
-        [01])   ;;
-        *)      case $flags in
-                *N*)    ;;
-                *)      name=${section}_${name} ;;
-                esac
-                standard=${standard}${section}
-                ;;
-        esac
-        conf_minmax=0
-        case $call:$standard:$flags in
-        *:C:*M*)for s in _${standard}_${conf_name} ${values}
-                do      case $s in
-                        $sym)   ;;
-                        *)      conf_minmax=$s
-                                conf_flags="${conf_flags}|CONF_MINMAX_DEF"
-                                break
-                                ;;
-                        esac
-                done
-                ;;
-        *:C:*)  ;;
-        [CPSX][CSX]:*:*[FM]*)
-                x=
-                for s in _${standard}_${conf_name} ${values}
-                do      case $s in
-                        $sym)   eval x='$'CONF_const_${s} ;;
-                        *)      x=1 ;;
-                        esac
-                        case $x in
-                        1)      conf_minmax=$s
-                                case $flags in
-                                *M*)    conf_flags="${conf_flags}|CONF_MINMAX_DEF" ;;
-                                esac
-                                case $conf_minmax in
-                                [-+0123456789]*)        x= ;;
-                                esac
-                                break
-                                ;;
-                        esac
-                done
-                case ${x:+1}:${script:+1} in
-                :1)
-                        echo "$command: probe for _${standard}_${conf_name} minmax value" >&2
-                        case $CONF_getconf in
-                        ?*)     if      $CONF_getconf _${standard}_${conf_name} > $tmp.x
-                                then    x=`cat $tmp.x`
-                                        case $x in
-                                        undefined)      x= ;;
-                                        esac
-                                fi
-                                ;;
-                        esac
-                        case $x in
-                        '')     case $script in
-                                '#'*)   echo "$script" > $tmp.sh
-                                        chmod +x $tmp.sh
-                                        x=`$tmp.sh`
-                                        ;;
-                                *)      cat > $tmp.c <<!
-${head}
-#include <sys/types.h>
-#include <limits.h>
-#include <unistd.h>
-${headers}
-${tail}
-${script}
-!
-                                        ;;
-                                esac
-                                case $args in
-                                '')     set "" ;;
-                                *)      eval set '""' "$args"; shift ;;
-                                esac
-                                for a
-                                do      case $script in
-                                        '#'*)   $tmp.sh $a > $tmp.x
-                                                x=$?
-                                                ;;
-                                        *)      $cc $a -o $tmp.exe $tmp.c && $tmp.exe > $tmp.x
-                                                x=$?
-                                                ;;
-                                        esac
-                                        case $x in
-                                        0)      x=`cat $tmp.x`
-                                                case $x in
-                                                "-")    x=$a ;;
-                                                esac
-                                                break
-                                                ;;
-                                        *)      x=
-                                                ;;
-                                        esac
-                                done
-                                ;;
-                        esac
-                        case $x in
-                        ?*)     conf_minmax=$x
-                                case $flags in
-                                *M*)    case "|$conf_flags|" in
-                                        *'|CONF_MINMAX_DEF|'*)
-                                                ;;
-                                        *)      conf_flags="${conf_flags}|CONF_MINMAX_DEF"
-                                                ;;
-                                        esac
-                                        ;;
-                                esac
-                                ;;
-                        esac
-                        ;;
-                esac
-                ;;
-        esac
-        case $string in
-        1)      conf_limit="{ 0, $conf_limit }" conf_minmax="{ 0, $conf_minmax }"
-                ;;
-        *)      case $conf_limit in
-                0[xX]*|-*|+*|[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]*)
-                        ;;
-                *[!0123456789abcdefABCDEF]*)
-                        conf_limit=0
-                        ;;
-                *[!0123456789]*)
-                        conf_limit=0x$conf_limit
-                        ;;
-                esac
-                case $conf_minmax in
-                0[xX]*|-*|+*|[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]*)
-                        ;;
-                *[!0123456789abcdefABCDEF]*)
-                        conf_minmax=0
-                        ;;
-                *[!0123456789]*)
-                        conf_minmax=0x$conf_minmax
-                        ;;
-                esac
-                case $conf_limit in
-                ?*[-+]*|*['()']*)
-                        ;;
-                *[lLuU])
-                        case $LL_suffix in
-                        ??)     case $conf_limit in
-                                *[!lL][lL]|*[!lL][lL][uU])
-                                        conf_limit=${conf_limit}L
-                                        ;;
-                                esac
-                                ;;
-                        esac
-                        ;;
-                -*[2468])
-                        eval `echo '' $conf_limit | sed 's/ *\(.*\)\(.\) */p=\1 s=\2/'`
-                        s=`expr $s - 1`
-                        conf_limit=${p}${s}${LL_suffix}-1${LL_suffix}
-                        ;;
-                0[xX]*[abcdefABCDEF])
-                        conf_limit=${conf_limit}${LL_suffix}
-                        ;;
-                -*[0123456789])
-                        conf_limit=${conf_limit}${LL_suffix}
-                        ;;
-                *[0123456789])
-                        conf_limit=${conf_limit}${U_suffix}${LL_suffix}
-                        ;;
-                esac
-                case $conf_minmax in
-                ?*[-+]*|*['()']*)
-                        ;;
-                *[lLuU])
-                        case $LL_suffix in
-                        ??)     case $conf_minmax in
-                                *[!lL][lL]|*[!lL][lL][uU])
-                                        conf_minmax=${conf_minmax}L
-                                        ;;
-                                esac
-                                ;;
-                        esac
-                        ;;
-                -*[2468])
-                        eval `echo '' $conf_minmax | sed 's/ *\(.*\)\(.\) */p=\1 s=\2/'`
-                        s=`expr $s - 1`
-                        conf_minmax=${p}${s}${LL_suffix}-1${LL_suffix}
-                        ;;
-                0[xX]*[abcdefABCDEF])
-                        conf_minmax=${conf_minmax}${LL_suffix}
-                        ;;
-                -*[0123456789])
-                        conf_minmax=${conf_minmax}${LL_suffix}
-                        ;;
-                *[0123456789])
-                        conf_minmax=${conf_minmax}${U_suffix}${LL_suffix}
-                        ;;
-                esac
-                conf_limit="{ $conf_limit, 0 }" conf_minmax="{ $conf_minmax, 0 }"
-                ;;
-        esac
-
-        case $conf_flags in
-        '0|'*)  conf_flags=`echo "$conf_flags" | sed 's/^0.//'`
-                ;;
-        esac
-
-        echo "{ \"$conf_name\", $conf_limit, $conf_minmax, $conf_flags, $conf_standard, $conf_section, $conf_call, $conf_op },"
-        len=`echo ${conf_name} | wc -c`
-        if      expr \( $len - 1 \) \>= ${name_max} >/dev/null
-        then    name_max=$len
-        fi
-done
-
-# ====================
-# Create the conftab.h header file.
-#
-echo "$command: generate conftab.h string table header" >&2
-
-name_max=`expr \( $name_max + 3 \) / 4 \* 4`
-
-conf_standards=
-index=0
-for standard in $standards
-do
-    standard="#define CONF_${standard} ${index}"
-    conf_standards="$conf_standards$nl$standard"
-    index=`expr $index + 1`
-done
-conf_standards="$conf_standards$nl#define CONF_call ${index}"
-
-getconf=
-case $CONF_getconf in
-?*) getconf="$getconf$nl#define _pth_getconf \"$CONF_getconf\""
-    case $CONF_getconf_a in
-    ?*) getconf="$getconf$nl#define _pth_getconf_a \"$CONF_getconf_a\"" ;;
-    esac
-    ;;
-esac
-
-python.sh fill_template.py < ${source_dir}/conftab.h.in > ${target_dir}/conftab.h \
-    conf_standards "$conf_standards" \
-    getconf "$getconf" \
-    name_max "$name_max"
-test $? -eq 0 || { rm ${target_dir}/conftab.*; exit 1; }
-
-# ====================
-# Create the conftab.c source file.
-#
-echo "$command: generate conftab.c string table" >&2
-
-prefix_standards=
-for standard in $standards
-do
-        len=`echo ${standard} | wc -c`; len=`expr $len - 1`
-        entry="    { \"${standard}\", ${len}, CONF_${standard}, -1 },"
-        prefix_standards="$prefix_standards$nl$entry"
-done
-
-getconf=`cat $tmp.t`
-
-python.sh fill_template.py < ${source_dir}/conftab.c.in > ${target_dir}/conftab.c \
-    getconf "$getconf" \
-    headers "$headers" \
-    prefix_standards "$prefix_standards"
-test $? -eq 0 || { rm ${target_dir}/conftab.*; exit 1; }
diff --git a/src/lib/libast/comp/conf.tab b/src/lib/libast/comp/conf.tab
deleted file mode 100644
index b26f185ae60..00000000000
--- a/src/lib/libast/comp/conf.tab
+++ /dev/null
@@ -1,484 +0,0 @@
-#
-# posix { getconf limits } macro table
-#
-# @(#)conf.tab (AT&T Research) 2013-12-01
-#
-# name standard section call flags [ header ... ] [ value ... ]
-#
-# name:		sans prefix
-# standard:	AST, C, POSIX, SVID, XOPEN, <vendor> { SCO, SGI, SUN, ... }
-# section:	section number in standard
-# call:		CS=confstr PC=pathconf SC=sysconf SI=sysinfo QQ=query XX=none
-# flags:	0	no flags
-#		C	defer call to native getconf(1)
-#		D	defer minmax to native getconf(1)
-#		F	unistd.h feature
-#		L	limits.h constant
-#		M	has _<standard><section>_<name> minmax value
-#		N	_<call>_<name>
-#		O	use original name and definition
-#		R	_<standard>_<call>_<section>_<name>
-#		S	_<call>_<standard><section>_<name>
-#		U	<standard><section>_<name> prefixed by underscore
-#		V	_ prefix not allowed
-#		W	standard required
-#		X	define even if native is dynamic (ast special)
-#
-# default names if <section> <= 1
-#
-#	_<call>_<name>
-#	<standard>_<name>
-#
-# default names if <section> > 1
-#
-#	_<call>_<section>_<name>
-#	<standard><section>_<name>
-#
-# the [NSU] flags modify the default names
-#
-
-ABI_AIO_XFER_MAX		C	QQ 1 L
-ABI_ASYNCHRONOUS_IO		C	QQ 1 L
-ABI_ASYNC_IO			C	QQ 1 L
-ACL_ENABLED			SUN	PC 1 0
-ADVISORY_INFO			POSIX	SC 1 FUW
-AIO_LISTIO_MAX			POSIX	SC 1 LMU	2
-AIO_MAX				POSIX	SC 1 LMU	1
-AIO_PRIO_DELTA_MAX		POSIX	SC 1 LMU
-ALLOC_SIZE_MIN			POSIX	PC 1 LUVW
-ARCHITECTURE			SVID	SI 1 O
-ARG_MAX				POSIX	SC 1 CDLMUX	NCARGS 4096
-ASYNCHRONOUS_IO			POSIX	SC 1 CDFUW
-ASYNC_IO			POSIX	PC 1 FUW
-ATEXIT_MAX			XOPEN	SC 1 LMU	32
-AUDIT				C	QQ 1 L
-AVAIL_PROCESSORS		C	QQ 1 L
-AVPHYS_PAGES			SUN	SC 1 0
-BARRIERS			POSIX	SC 1 FUW
-BC_BASE_MAX			POSIX	SC 2 LMN	99
-BC_DIM_MAX			POSIX	SC 2 LMN	2048
-BC_SCALE_MAX			POSIX	SC 2 LMN	99
-BC_STRING_MAX			POSIX	SC 2 LMN	1000
-BUSTYPES			SVID	SI 1 O
-CHARCLASS_NAME_MAX		XOPEN	XX 1 L		14
-CHAR_BIT			C	XX 1 L		8
-CHAR_MAX			C	XX 1 L
-CHAR_MIN			C	XX 1 L
-CHAR_TERM			POSIX	SC 2 FUW
-CHILD_MAX			POSIX	SC 1 CDLMUX	6	cc{
-	#define child()		fork()
-	extern int		spawnve(const char*, char* const[], char* const[]);
-	static char*		cmd[] = { "/bin/echo", 0 };
-	#define child()		spawnve(cmd[0],cmd,(char**)0)
-	#endif
-	int main()
-	{
-		int	i;
-		int	n;
-		for (i = 3; i < 512 && (n = child()) >= 0; i++)
-			if (!n) _exit(0);
-		while (wait((int*)0) > 0);
-		for (n = 8; n < i; n <<= 1);
-		printf("%d", n);
-		return 0;
-	}
-}
-CHOWN_RESTRICTED		POSIX	PC 1 FUW
-CKPT				POSIX	SC 1 FU
-CLK_TCK				POSIX	SC 1 L		HZ 60
-CLOCKRES_MIN			POSIX	SC 1 MUW	1
-CLOCKS_PER_SEC			C	QQ 1 L
-CLOCK_SELECTION			POSIX	SC 1 FUVW
-COLL_WEIGHTS_MAX		POSIX	SC 2 DLMN	2
-CPUTIME				POSIX	SC 1 FUW
-CPU_KEYBITS1			C	QQ 1 L
-CPU_VERSION			C	QQ 1 L
-CRYPT				XOPEN	SC 1 FSUW
-C_BIND				POSIX	SC 2 CFU
-C_DEV				POSIX	SC 2 CFU
-C_VERSION			POSIX	SC 2 CDFU
-DATAKEYS_MAX			C	QQ 1 0
-DELAYTIMER_MAX			POSIX	SC 1 LMU	32
-ENH_I18N			XOPEN	SC 1 FSUW
-EQUIV_CLASS_MAX			C	QQ 1 L
-EXEC_INTERPRETER_LENGTH		C	QQ 1 L
-EXPR_NEST_MAX			POSIX	SC 2 LMN	32
-FCHR_MAX			SVID	SC 1 LMU	LONG_MAX 2147483647
-FILESIZEBITS			POSIX	PC 1 LMU	(8*sizeof(off_t)) 32
-FILE_LOCKING			POSIX	SC 1 FU
-FORT_DEV			POSIX	SC 2 CFUW
-FORT_RUN			POSIX	SC 2 CFUW
-FSYNC				POSIX	SC 1 CDFUW	_lib_fsync
-GETGR_R_SIZE_MAX		C	QQ 1 L
-GETPW_R_SIZE_MAX		C	QQ 1 L
-HOSTID				C	QQ 1 L
-HOSTNAME			SVID	SI 1 O
-HOST_NAME_MAX			POSIX	SC 1 LMU	255
-HW_PROVIDER			SVID	SI 1 O
-HW_SERIAL			C	QQ 1 L
-INITTAB_NAME			SVID	SI 1 O
-INT_MAX				C	XX 1 L		32767
-INT_MIN				C	XX 1 L		-32767
-IOV_MAX				XOPEN	SC 1 LMU	16
-IO_TYPE				C	QQ 1 L
-IPV6				POSIX	SC 1 FUW
-IP_SECOPTS			C	QQ 1 L
-JOB_CONTROL			POSIX	SC 1 FUW	cc{
-	int main()
-	{
-		printf("1");
-		return 0;
-	}
-}
-KERNEL_CLIST			SCO	SC 1 0
-KERNEL_CLIST_MAX		SCO	SC 1 0
-KERNEL_DISK			SCO	SC 1 0
-KERNEL_DISK_MAX			SCO	SC 1 0
-KERNEL_DMABUF			SCO	SC 1 0
-KERNEL_DMABUF_MAX		SCO	SC 1 0
-KERNEL_FILE			SCO	SC 1 0
-KERNEL_FILE_MAX			SCO	SC 1 0
-KERNEL_FLCKREC			SCO	SC 1 0
-KERNEL_FLCKREC_MAX		SCO	SC 1 0
-KERNEL_INODE			SCO	SC 1 0
-KERNEL_INODE_MAX		SCO	SC 1 0
-KERNEL_MOUNT			SCO	SC 1 0
-KERNEL_MOUNT_MAX		SCO	SC 1 0
-KERNEL_PINODE			SCO	SC 1 0
-KERNEL_PINODE_MAX		SCO	SC 1 0
-KERNEL_PROC			SCO	SC 1 0
-KERNEL_PROC_MAX			SCO	SC 1 0
-KERNEL_REGION			SCO	SC 1 0
-KERNEL_REGION_MAX		SCO	SC 1 0
-KERNEL_S5INODE			SCO	SC 1 0
-KERNEL_S5INODE_MAX		SCO	SC 1 0
-KERNEL_STAMP			SVID	SI 1 O
-KERN_POINTERS			C	QQ 1 L
-KERN_SIM			C	QQ 1 L
-LEGACY				XOPEN	SC 1 FU
-LINE_MAX			POSIX	SC 2 LMN	2048
-LINK_MAX			POSIX	PC 1 LMU	MAXLINK SHRT_MAX 8
-LLONG_MAX			C	XX 1 L
-LLONG_MIN			C	XX 1 L
-LOCALEDEF			POSIX	SC 1 FUW
-LOCALEDEF			POSIX	SC 2 CFUW
-LOGIN_NAME_MAX			POSIX	SC 1 LMU
-LOGNAME_MAX			SVID	SC 1 MU		8
-LONG_BIT			XOPEN	XX 1 L		(8*sizeof(long)) 32
-LONG_MAX			C	XX 1 L		2147483647
-LONG_MIN			C	XX 1 L		-2147483647
-MACHINE				SVID	SI 1 O
-MAPPED_FILES			POSIX	SC 1 CDFUW	_lib_mmap
-MAX_CANON			POSIX	PC 1 LMU	CANBSIZ 255
-MAX_INPUT			POSIX	PC 1 LMU	MAX_CANON 255
-MB_LEN_MAX			C	XX 1 L		1
-MCAS_OFFSET			C	QQ 1 L
-MEMLOCK				POSIX	SC 1 CDFUW
-MEMLOCK_RANGE			POSIX	SC 1 CDFUW
-MEMORY_PROTECTION		POSIX	SC 1 CDFUW
-MESSAGE_PASSING			POSIX	SC 1 CDFUW
-MIN_HOLE_SIZE			POSIX	PC 1 LMU
-MMAP_FIXED_ALIGNMENT		C	QQ 1 L		_AST_PAGESIZE
-MONOTONIC_CLOCK			POSIX	SC 1 FUW
-MQ_OPEN_MAX			POSIX	SC 1 LMU	8
-MQ_PRIO_MAX			POSIX	SC 1 LMU	32
-MSEM_LOCKID			C	QQ 1 L
-MULTI_PROCESS			POSIX	SC 1 FU
-NACLS_MAX			SVID	SC 1 0
-NAME_MAX			POSIX	PC 1 LMU	14	cc{
-	int main()
-	{
-	#ifdef MAXNAMLEN
-		printf("%d", MAXNAMLEN);
-	#else
-	#if !defined(remove)
-	#define remove		unlink
-	#endif
-		int	i;
-		int	n;
-		int	v;
-		char	name[256];
-		for (i = 0; i < sizeof(name); i++)
-			name[i] = 'F';
-		name[8] = '.';
-		name[sizeof(name) - 1] = 0;
-		if ((n = creat(name, 0666)) >= 0)
-		{
-			close(n);
-			for (v = 12; v < sizeof(name); v++)
-			{
-				name[v] = 0;
-				if (remove(name) >= 0) break;
-				name[v] = 'F';
-			}
-		}
-		else for (v = 12; v < sizeof(name); v++)
-		{
-			name[v] = 0;
-			if ((n = creat(name, 0666)) >= 0)
-			{
-				close(n);
-				remove(name);
-				name[v] = 'F';
-			}
-			else
-			{
-				v--;
-				break;
-			}
-		}
-		printf("%d", v);
-		return 0;
-	}
-	#endif
-}
-NGROUPS_MAX			POSIX	SC 1 CDLMU	8	cc{
-	int main()
-	{
-		int	n;
-		gid_t	g;
-		if ((n = getgroups(0, &g)) < 0)
-	#if defined(NGROUPS) && (NGROUPS-0) > 0
-			n = NGROUPS;
-	#else
-			return 1;
-	#endif
-		printf("%d", n);
-		return 0;
-	}
-}
-NL_ARGMAX			XOPEN	XX 1 L		9
-NL_LANGMAX			XOPEN	XX 1 L		14
-NL_MAX				C	QQ 1 L
-NL_MSGMAX			XOPEN	XX 1 L		32767
-NL_NMAX				XOPEN	XX 1 L		1
-NL_SETMAX			XOPEN	XX 1 L		255
-NL_SPECMAX			C	QQ 1 L
-NL_TEXTMAX			XOPEN	XX 1 L		LINE_MAX
-NO_TRUNC			POSIX	PC 1 FUW
-NPROCESSORS_CONF		SVID	SC 1 0
-NPROCESSORS_MAX			SVID	SC 1 0
-NPROCESSORS_ONLN		SVID	SC 1 0
-NPROC_CONF			C	QQ 1 L
-NPROC_ONLN			C	QQ 1 L
-NSS_BUFLEN_GROUP		C	QQ 1 L
-NSS_BUFLEN_PASSWD		C	QQ 1 L
-NUM_PROCESSORS			C	QQ 1 L
-NZERO				XOPEN	XX 1 L		20
-OPEN_MAX			POSIX	SC 1 CDLMUX	16	cc{
-	extern int		getdtablesize(void);
-	int main()
-	{
-		printf("%d", getdtablesize());
-		return 0;
-	}
-}
-OPEN_MAX_CEIL			AST	XX 1 L		OPEN_MAX
-OSREL_MAJ			C	QQ 1 L
-OSREL_MIN			C	QQ 1 L
-OSREL_PATCH			C	QQ 1 L
-OS_BASE				SVID	SI 1 O
-OS_PROVIDER			SVID	SI 1 O
-OS_VERSION			AES	SC 1 FSU
-PAGESIZE			POSIX	SC 1 MU		PAGESIZE PAGE_SIZE 4096
-PAGE_SIZE			POSIX	SC 1 MU		_AST_PAGESIZE
-PASS_MAX			SVID	SC 1 CDLMU	8
-PATH				POSIX	CS 1 CMU	"/bin:/usr/bin"
-PATH_MAX			POSIX	PC 1 CDLMUX	MAXPATHLEN 1024
-PBS				POSIX	SC 2 FUW
-PBS_ACCOUNTING			POSIX	SC 2 FUW
-PBS_CHECKPOINT			POSIX	SC 2 FUW
-PBS_LOCATE			POSIX	SC 2 FUW
-PBS_MESSAGE			POSIX	SC 2 FUW
-PBS_TRACK			POSIX	SC 2 FUW
-PHYS_PAGES			SUN	SC 1 0
-PID_MAX				SVID	SC 1 LMU	30000	cc{
-	int main()
-	{
-		long	v;
-		int	fd;
-		int	n;
-		char	buf[1024];
-#ifdef PID_MAX
-		v = PID_MAX;
-#else
-		v = 99999;
-#endif
-		if ((fd = open("/proc/sys/kernel/pid_max", 0)) >= 0 && (n = read(fd, buf, sizeof(buf)-1)) > 1)
-		{
-			buf[n] = 0;
-			v = strtol(buf, (char**)0, 0);
-		}
-		else
-		{
-#ifdef __sgi
-			v = 0x7fffffff;
-#endif
-		}
-		printf("%ld", v);
-		return 0;
-	}
-}
-PII				POSIX	SC 1 FU
-PII_INTERNET			POSIX	SC 1 FU
-PII_INTERNET_DGRAM		POSIX	SC 1 FU
-PII_INTERNET_STREAM		POSIX	SC 1 FU
-PII_OSI				POSIX	SC 1 FU
-PII_OSI_CLTS			POSIX	SC 1 FU
-PII_OSI_COTS			POSIX	SC 1 FU
-PII_OSI_M			POSIX	SC 1 FU
-PII_SOCKET			POSIX	SC 1 FU
-PII_XTI				POSIX	SC 1 FU
-PIPE_BUF			POSIX	PC 1 LMU	512
-POLL				POSIX	SC 1 FU
-PRIORITIZED_IO			POSIX	SC 1 FUW
-PRIORITY_SCHEDULING		POSIX	SC 1 CDFUW
-PRIO_IO				POSIX	PC 1 FUW
-PROC_RSRC_MGR			C	QQ 1 L
-PTHREAD_DESTRUCTOR_ITERATIONS	C	QQ 1 L
-PTHREAD_KEYS_MAX		C	QQ 1 L
-PTHREAD_STACK_MIN		C	QQ 1 L
-PTHREAD_THREADS_MAX		C	QQ 1 L
-PTRDIFF_MAX			C	XX 1 LMU	stdint.h 65535
-PTRDIFF_MIN			C	XX 1 LMU	stdint.h -65535
-RAW_SOCKETS			POSIX	SC 1 FUW
-READER_WRITER_LOCKS		POSIX	SC 1 FUW
-REALTIME			XOPEN	SC 1 FU
-REALTIME_SIGNALS		POSIX	SC 1 CDFUW
-REALTIME_THREADS		XOPEN	SC 1 FU
-REC_INCR_XFER_SIZE		POSIX	PC 1 LVW
-REC_MAX_XFER_SIZE		POSIX	PC 1 LVW
-REC_MIN_XFER_SIZE		POSIX	PC 1 LVW
-REC_XFER_ALIGN			POSIX	PC 1 LVW
-REENTRANT_FUNCTIONS		POSIX	SC 1 FU
-REGEXP				POSIX	SC 1 FUW
-REGEX_VERSION			POSIX	SC 1 F		20030916
-RELEASE				AST	XX 1 L
-RESOURCE_LIMITS			POSIX	SC 1 FU
-RE_DUP_MAX			POSIX	SC 2 LMN	255
-RTSIG_MAX			POSIX	SC 1 LMU	8
-SATTR_ENABLED			SUN	PC 1 0
-SAVED_IDS			POSIX	SC 1 FUW	cc{
-}
-SCHAR_MAX			C	XX 1 L		127
-SCHAR_MIN			C	XX 1 L		-127
-SECURITY_CLASS			C	QQ 1 L
-SELECT				POSIX	SC 1 FU
-SEMAPHORES			POSIX	SC 1 CDFUW
-SEM_NSEMS_MAX			POSIX	SC 1 LMU	256
-SEM_VALUE_MAX			POSIX	SC 1 LMU	32767
-SHARED_MEMORY_OBJECTS		POSIX	SC 1 CDFUW
-SHELL				POSIX	SC 1 FUVW
-SHM				XOPEN	SC 1 FSUW
-SHRT_MAX			C	XX 1 L		32767
-SHRT_MIN			C	XX 1 L		-32767
-SIG_ATOMIC_MAX			C	XX 1 L		signal.h
-SIG_ATOMIC_MIN			C	XX 1 L		signal.h
-SIGQUEUE_MAX			POSIX	SC 1 LMU	32
-SIGQUEUE_MAX			POSIX	SC 1 LMU	32
-SIGRT_MAX			SVID	SC 1 0
-SIGRT_MIN			SVID	SC 1 0
-SIZE_MAX			C	XX 1 LMX	stdint.h UINT_MAX 65535
-SLVM_MAXNODES			C	QQ 1 L
-SOCK_MAXBUF			C	QQ 1 0
-SOFTPOWER			C	QQ 1 L
-SPAWN				POSIX	SC 1 FUW
-SPIN_LOCKS			POSIX	SC 1 FUW
-SPORADIC_SERVER			POSIX	SC 1 FUW
-SRPC_DOMAIN			C	QQ 1 0
-SS_REPL_MAX			POSIX	SC 1 FUW
-SSIZE_MAX			POSIX	XX 1 LMUX	INT_MAX 32767
-STD_BLK				SVID	SC 1 LMU	1024
-STREAM_MAX			POSIX	SC 1 LMU	OPEN_MAX 8
-STREAMS				XOPEN	SC 1 FSUW
-SW_DEV				POSIX	SC 2 CFUW
-SYMLINK_MAX			POSIX	PC 1 LMU	255	cc{
-	int main()
-	{
-		printf("%d", PATH_MAX-1);
-		return 0;
-	}
-}
-SYMLINKS			POSIX	PC 2 FUW
-SYMLOOP_MAX			POSIX	SC 1 LMU	8
-SYNCHRONIZED_IO			POSIX	SC 1 CDFUW
-SYNC_IO				POSIX	PC 1 FUW
-SYSNAME				SVID	SI 1 O
-SYSPID_MAX			SVID	SC 1 LMU	2
-THREADS				POSIX	SC 1 CDFUW
-THREADS_PRIO_CEILING		POSIX	SC 1 FUW
-THREADS_PRIO_INHERIT		POSIX	SC 1 FUW
-THREAD_ATTR_STACKADDR		POSIX	SC 1 CDFUW
-THREAD_ATTR_STACKSIZE		POSIX	SC 1 CDFUW
-THREAD_CPUTIME			POSIX	SC 1 FUW
-THREAD_DESTRUCTOR_ITERATIONS	POSIX	SC 1 LMUW	PTHREAD_DESTRUCTOR_ITERATIONS 4
-THREAD_KEYS_MAX			POSIX	SC 1 LMUW	PTHREAD_KEYS_MAX 128
-THREAD_PRIORITY_SCHEDULING	POSIX	SC 1 CDFUW
-THREAD_PRIO_INHERIT		POSIX	SC 1 CDFUW
-THREAD_PRIO_PROTECT		POSIX	SC 1 CDFUW
-THREAD_PROCESS_SHARED		POSIX	SC 1 CDFUW
-THREAD_SAFE_FUNCTIONS		POSIX	SC 1 CDFUW
-THREAD_SPORADIC_SERVER		POSIX	SC 1 FUW
-THREAD_STACK_MIN		POSIX	SC 1 LUW	PTHREAD_STACK_MIN
-THREAD_THREADS_MAX		POSIX	SC 1 LMUW	PTHREAD_THREADS_MAX 64
-TIMEOUTS			POSIX	SC 1 FUW
-TIMERS				POSIX	SC 1 CDFUW
-TIMER_MAX			POSIX	SC 1 LMU	32
-TMP				AST	CS 1 MU		"/tmp"
-TMP_MAX				C	SC 1 LMU	10000
-TRACE				POSIX	SC 1 FUW
-TRACE_EVENT_FILTER		POSIX	SC 1 FUW
-TRACE_EVENT_NAME_MAX		POSIX	SC 1 FUVW
-TRACE_INHERIT			POSIX	SC 1 FUW
-TRACE_LOG			POSIX	SC 1 FUW
-TRACE_NAME_MAX			POSIX	SC 1 FUVW
-TRACE_SYS_MAX			POSIX	SC 1 FUVW
-TRACE_USER_EVENT_MAX		POSIX	SC 1 FUVW
-TTY_NAME_MAX			POSIX	SC 1 LMU	9
-TYPED_MEMORY_OBJECTS		POSIX	SC 1 FUW
-TZNAME_MAX			POSIX	SC 1 CDLMU	6
-T_IOV_MAX			C	QQ 1 0
-UCHAR_MAX			C	XX 1 L		255
-UCHAR_MIN			C	XX 1 L
-UID_MAX				SVID	SC 1 LMU	60002
-UINT_MAX			C	XX 1 L		65535
-UIO_MAXIOV			C	QQ 1 0
-ULLONG_MAX			C	XX 1 L
-ULONG_MAX			C	XX 1 L		4294967295
-UNIX				XOPEN	SC 1 FSUW
-UPE				POSIX	SC 2 CFUW
-USER_LIMIT			SVID	SI 1 O
-USHRT_MAX			C	XX 1 L		65535
-V6_ILP32_OFF32			POSIX	SC 1 W
-V6_ILP32_OFFBIG			POSIX	SC 1 W
-V6_LP64_OFF64			POSIX	SC 1 W
-V6_LPBIG_OFFBIG			POSIX	SC 1 W
-VDISABLE			POSIX	PC 1 FUW
-VERSION				POSIX	SC 1 CDFSU	200112
-VERSION				POSIX	SC 2 CDFSU	200112
-VERSION				XOPEN	SC 1 CDFSU	600
-VERSION				SVID	SI 1 S
-VERSION				XPG	SC 3 DFSU
-VERSION				XPG	SC 4 DFSU
-VERSION_88			C	XX 1 L
-VERSION_88			POSIX	SC 1 FSU
-VERSION_90			C	XX 1 L
-VERSION_90			POSIX	SC 1 FSU
-VERSION_93			C	XX 1 L
-VERSION_93			POSIX	SC 1 FSU
-WCHAR_MAX			C	XX 1 L		stddef.h
-WCHAR_MIN			C	XX 1 L		stddef.h
-WINT_MIN			C	XX 1 L		wchar.h
-WINT_MAX			C	XX 1 L		wchar.h
-WORD_BIT			XOPEN	XX 1 L		(8*sizeof(int))
-XATTR_ENABLED			SUN	PC 1 0
-XATTR_EXISTS			SUN	PC 1 0
-XCU_VERSION			XOPEN	SC 1 CDFSU
-XPG2				XOPEN	XX 1 FU
-XPG3				XOPEN	XX 1 FU
-XPG4				XOPEN	XX 1 FU
-
-# vendor prefixes
-
-VERSION				GNU		XX 1 S
-VERSION				TRUSTEDBSD	XX 1 S
diff --git a/src/lib/libast/comp/conftab.c b/src/lib/libast/comp/conftab.c
new file mode 100644
index 00000000000..9c628220ee3
--- /dev/null
+++ b/src/lib/libast/comp/conftab.c
@@ -0,0 +1,1869 @@
+#include <config_ast.h>
+
+#include <limits.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "conftab.h"
+
+//
+// Prefix strings -- the first few are indexed by Conf_t.standard.
+//
+const Prefix_t prefix[] = {
+
+    {"C", 1, CONF_C, -1},
+    {"SUN", 3, CONF_SUN, -1},
+    {"POSIX", 5, CONF_POSIX, -1},
+    {"SVID", 4, CONF_SVID, -1},
+    {"XOPEN", 5, CONF_XOPEN, -1},
+    {"SCO", 3, CONF_SCO, -1},
+    {"AST", 3, CONF_AST, -1},
+    {"AES", 3, CONF_AES, -1},
+    {"XPG", 3, CONF_XPG, -1},
+    {"GNU", 3, CONF_GNU, -1},
+    {"TRUSTEDBSD", 10, CONF_TRUSTEDBSD, -1},
+    {"XX", 2, CONF_POSIX, CONF_nop},
+    {"CS", 2, CONF_POSIX, CONF_confstr},
+    {"PC", 2, CONF_POSIX, CONF_pathconf},
+    {"SC", 2, CONF_POSIX, CONF_sysconf},
+    {"SI", 2, CONF_SVID, CONF_sysinfo},
+};
+
+const int prefix_elements = (int)sizeof(prefix) / (int)sizeof(prefix[0]);
+
+//
+// Conf strings sorted in ascending order.
+//
+const Conf_t conf[] = {
+    {"ABI_AIO_XFER_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"ABI_ASYNCHRONOUS_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"ABI_ASYNC_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"ACL_ENABLED", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_pathconf, -1},
+    {"ADVISORY_INFO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_ADVISORY_INFO},
+    {"AIO_LISTIO_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"AIO_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"AIO_PRIO_DELTA_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_AIO_PRIO_DELTA_MAX},
+    {"ALLOC_SIZE_MIN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_ALLOC_SIZE_MIN},
+    {"ARCHITECTURE", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"ARG_MAX",
+     {0UL, 0},
+     {_POSIX_ARG_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_ARG_MAX},
+    {"ASYNCHRONOUS_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_ASYNCHRONOUS_IO},
+    {"ASYNC_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_ASYNC_IO},
+    {"ATEXIT_MAX",
+     {0UL, 0},
+     {32UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_ATEXIT_MAX},
+    {"AUDIT", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"AVAIL_PROCESSORS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"AVPHYS_PAGES", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_sysconf, -1},
+    {"BARRIERS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_BARRIERS},
+    {"BC_BASE_MAX",
+     {0UL, 0},
+     {_POSIX2_BC_BASE_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_BC_BASE_MAX},
+    {"BC_DIM_MAX",
+     {0UL, 0},
+     {_POSIX2_BC_DIM_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_BC_DIM_MAX},
+    {"BC_SCALE_MAX",
+     {0UL, 0},
+     {_POSIX2_BC_SCALE_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_BC_SCALE_MAX},
+    {"BC_STRING_MAX",
+     {0UL, 0},
+     {_POSIX2_BC_STRING_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_BC_STRING_MAX},
+    {"BUSTYPES", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"CHARCLASS_NAME_MAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"CHAR_BIT", {8UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"CHAR_MAX", {127UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"CHAR_MIN", {-127L - 1L, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"CHAR_TERM",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_CHAR_TERM},
+    {"CHILD_MAX",
+     {0UL, 0},
+     {_POSIX_CHILD_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_CHILD_MAX},
+    {"CHOWN_RESTRICTED",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_CHOWN_RESTRICTED},
+    {"CKPT", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_sysconf, -1},
+    {"CLK_TCK", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_POSIX, 1, CONF_sysconf, _SC_CLK_TCK},
+    {"CLOCKRES_MIN",
+     {0UL, 0},
+     {_POSIX_CLOCKRES_MIN, 0},
+     CONF_MINMAX | CONF_UNDERSCORE | CONF_PREFIX_ONLY | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"CLOCKS_PER_SEC",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"CLOCK_SELECTION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_CLOCK_SELECTION},
+    {"COLL_WEIGHTS_MAX",
+     {0UL, 0},
+     {_POSIX2_COLL_WEIGHTS_MAX, 0},
+     CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_COLL_WEIGHTS_MAX},
+    {"CPUTIME",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_CPUTIME},
+    {"CPU_KEYBITS1",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"CPU_VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"CRYPT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_CRYPT},
+    {"C_BIND",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_C_BIND},
+    {"C_DEV",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_C_DEV},
+    {"C_VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     -1},
+    {"DATAKEYS_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"DELAYTIMER_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"ENH_I18N",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_ENH_I18N},
+    {"EQUIV_CLASS_MAX",
+     {2UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"EXEC_INTERPRETER_LENGTH",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"EXPR_NEST_MAX",
+     {0UL, 0},
+     {_POSIX2_EXPR_NEST_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_EXPR_NEST_MAX},
+    {"FCHR_MAX",
+     {LONG_MAX, 0},
+     {LONG_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"FILESIZEBITS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_FILESIZEBITS},
+    {"FILE_LOCKING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"FORT_DEV",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_FORT_DEV},
+    {"FORT_RUN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_FORT_RUN},
+    {"FSYNC",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_FSYNC},
+    {"GETGR_R_SIZE_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT,
+     CONF_C,
+     1,
+     CONF_sysconf,
+     _SC_GETGR_R_SIZE_MAX},
+    {"GETPW_R_SIZE_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT,
+     CONF_C,
+     1,
+     CONF_sysconf,
+     _SC_GETPW_R_SIZE_MAX},
+    {"HOSTID", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"HOSTNAME", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"HOST_NAME_MAX",
+     {0UL, 0},
+     {_POSIX_HOST_NAME_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_HOST_NAME_MAX},
+    {"HW_PROVIDER", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"HW_SERIAL", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"INITTAB_NAME", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"INT_MAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"INT_MIN",
+     {-2147483647L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"IOV_MAX",
+     {0UL, 0},
+     {_XOPEN_IOV_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_IOV_MAX},
+    {"IO_TYPE", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"IPV6",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_IPV6},
+    {"IP_SECOPTS", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"JOB_CONTROL",
+     {0UL, 0},
+     {200112UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_JOB_CONTROL},
+    {"KERNEL_CLIST", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_CLIST_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_DISK", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_DISK_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_DMABUF", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_DMABUF_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_FILE", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_FILE_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_FLCKREC", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_FLCKREC_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_INODE", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_INODE_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_MOUNT", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_MOUNT_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_PINODE", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_PINODE_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_PROC", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_PROC_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_REGION", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_REGION_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_S5INODE", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_S5INODE_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SCO, 1, CONF_sysconf, -1},
+    {"KERNEL_STAMP", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"KERN_POINTERS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"KERN_SIM", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"LEGACY", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_XOPEN, 1, CONF_sysconf, -1},
+    {"LINE_MAX",
+     {0UL, 0},
+     {_POSIX2_LINE_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_LINE_MAX},
+    {"LINK_MAX",
+     {0UL, 0},
+     {_POSIX_LINK_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_LINK_MAX},
+    {"LLONG_MAX",
+     {9223372036854775807UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"LLONG_MIN",
+     {-9223372036854775807L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"LOCALEDEF",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_LOCALEDEF},
+    {"LOGIN_NAME_MAX",
+     {0UL, 0},
+     {_POSIX_LOGIN_NAME_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_LOGIN_NAME_MAX},
+    {"LOGNAME_MAX",
+     {0UL, 0},
+     {8UL, 0},
+     CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"LONG_BIT", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"LONG_MAX",
+     {9223372036854775807UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"LONG_MIN",
+     {-9223372036854775807L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"MACHINE", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"MAPPED_FILES",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MAPPED_FILES},
+    {"MAX_CANON",
+     {0UL, 0},
+     {_POSIX_MAX_CANON, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_MAX_CANON},
+    {"MAX_INPUT",
+     {0UL, 0},
+     {_POSIX_MAX_INPUT, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_MAX_INPUT},
+    {"MB_LEN_MAX", {6UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"MCAS_OFFSET",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"MEMLOCK",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MEMLOCK},
+    {"MEMLOCK_RANGE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MEMLOCK_RANGE},
+    {"MEMORY_PROTECTION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MEMORY_PROTECTION},
+    {"MESSAGE_PASSING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MESSAGE_PASSING},
+    {"MIN_HOLE_SIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     -1},
+    {"MMAP_FIXED_ALIGNMENT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"MONOTONIC_CLOCK",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_MONOTONIC_CLOCK},
+    {"MQ_OPEN_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"MQ_PRIO_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"MSEM_LOCKID",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"MULTI_PROCESS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"NACLS_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, -1},
+    {"NAME_MAX",
+     {0UL, 0},
+     {_POSIX_NAME_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_NAME_MAX},
+    {"NGROUPS_MAX",
+     {0UL, 0},
+     {_POSIX_NGROUPS_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_NGROUPS_MAX},
+    {"NL_ARGMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NL_LANGMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NL_MAX", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"NL_MSGMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NL_NMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NL_SETMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NL_SPECMAX", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"NL_TEXTMAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"NO_TRUNC",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_NO_TRUNC},
+    {"NPROCESSORS_CONF", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, _SC_NPROCESSORS_CONF},
+    {"NPROCESSORS_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, -1},
+    {"NPROCESSORS_ONLN", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, _SC_NPROCESSORS_ONLN},
+    {"NPROC_CONF", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"NPROC_ONLN", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"NSS_BUFLEN_GROUP",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"NSS_BUFLEN_PASSWD",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"NUM_PROCESSORS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"NZERO", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"OPEN_MAX",
+     {0UL, 0},
+     {_POSIX_OPEN_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_OPEN_MAX},
+    {"OPEN_MAX_CEIL", {0UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_AST, 1, CONF_nop, -1},
+    {"OSREL_MAJ", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"OSREL_MIN", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"OSREL_PATCH",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"OS_BASE", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"OS_PROVIDER", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"OS_VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_AES,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PAGESIZE",
+     {0UL, 0},
+     {4096UL, 0},
+     CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_PAGESIZE},
+    {"PAGE_SIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_MINMAX | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_PAGE_SIZE},
+    {"PASS_MAX",
+     {0UL, 0},
+     {8UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PATH",
+     {0, 0},
+     {0, "/bin:/usr/bin"},
+     CONF_DEFER_CALL | CONF_MINMAX | CONF_UNDERSCORE | CONF_STRING | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_confstr,
+     _CS_PATH},
+    {"PATH_MAX",
+     {0UL, 0},
+     {_POSIX_PATH_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_PATH_MAX},
+    {"PBS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS},
+    {"PBS_ACCOUNTING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS_ACCOUNTING},
+    {"PBS_CHECKPOINT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS_CHECKPOINT},
+    {"PBS_LOCATE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS_LOCATE},
+    {"PBS_MESSAGE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS_MESSAGE},
+    {"PBS_TRACK",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_PBS_TRACK},
+    {"PHYS_PAGES", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_sysconf, _SC_PHYS_PAGES},
+    {"PID_MAX",
+     {99999UL, 0},
+     {99999UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_sysconf, -1},
+    {"PII_INTERNET",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_INTERNET_DGRAM",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_INTERNET_STREAM",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_OSI",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_OSI_CLTS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_OSI_COTS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_OSI_M",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_SOCKET",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PII_XTI",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"PIPE_BUF",
+     {0UL, 0},
+     {_POSIX_PIPE_BUF, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_PIPE_BUF},
+    {"POLL", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_sysconf, -1},
+    {"PRIORITIZED_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_PRIORITIZED_IO},
+    {"PRIORITY_SCHEDULING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_PRIORITY_SCHEDULING},
+    {"PRIO_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_PRIO_IO},
+    {"PROC_RSRC_MGR",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"PTHREAD_DESTRUCTOR_ITERATIONS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"PTHREAD_KEYS_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"PTHREAD_STACK_MIN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"PTHREAD_THREADS_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"PTRDIFF_MAX",
+     {9223372036854775807UL, 0},
+     {65535UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"PTRDIFF_MIN",
+     {-9223372036854775807L - 1L, 0},
+     {-65535L, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"RAW_SOCKETS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_RAW_SOCKETS},
+    {"READER_WRITER_LOCKS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_READER_WRITER_LOCKS},
+    {"REALTIME",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     -1},
+    {"REALTIME_SIGNALS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_REALTIME_SIGNALS},
+    {"REALTIME_THREADS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     -1},
+    {"REC_INCR_XFER_SIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_REC_INCR_XFER_SIZE},
+    {"REC_MAX_XFER_SIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_REC_MAX_XFER_SIZE},
+    {"REC_MIN_XFER_SIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_REC_MIN_XFER_SIZE},
+    {"REC_XFER_ALIGN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_REC_XFER_ALIGN},
+    {"REENTRANT_FUNCTIONS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"REGEXP",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_REGEXP},
+    {"REGEX_VERSION", {0UL, 0}, {20030916UL, 0}, CONF_FEATURE, CONF_POSIX, 1, CONF_sysconf, -1},
+    {"RELEASE", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_AST, 1, CONF_nop, -1},
+    {"RESOURCE_LIMITS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"RE_DUP_MAX",
+     {0UL, 0},
+     {_POSIX2_RE_DUP_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_NOSECTION | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_RE_DUP_MAX},
+    {"RTSIG_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"SATTR_ENABLED", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_pathconf, -1},
+    {"SAVED_IDS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SAVED_IDS},
+    {"SCHAR_MAX", {127UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"SCHAR_MIN", {-127L - 1L, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"SECURITY_CLASS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"SELECT", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_sysconf, -1},
+    {"SEMAPHORES",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SEMAPHORES},
+    {"SEM_NSEMS_MAX",
+     {0UL, 0},
+     {_POSIX_SEM_NSEMS_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SEM_NSEMS_MAX},
+    {"SEM_VALUE_MAX",
+     {0UL, 0},
+     {_POSIX_SEM_VALUE_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SEM_VALUE_MAX},
+    {"SHARED_MEMORY_OBJECTS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SHARED_MEMORY_OBJECTS},
+    {"SHELL",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SHELL},
+    {"SHM",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_SHM},
+    {"SHRT_MAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"SHRT_MIN", {-32767L - 1L, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"SIGQUEUE_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"SIGRT_MAX", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, -1},
+    {"SIGRT_MIN", {0UL, 0}, {0UL, 0}, 0, CONF_SVID, 1, CONF_sysconf, -1},
+    {"SIG_ATOMIC_MAX",
+     {2147483647UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"SIG_ATOMIC_MIN",
+     {-2147483647L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"SIZE_MAX",
+     {UINT_MAX, 0},
+     {65535UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"SLVM_MAXNODES",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"SOCK_MAXBUF",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"SOFTPOWER", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"SPAWN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SPAWN},
+    {"SPIN_LOCKS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SPIN_LOCKS},
+    {"SPORADIC_SERVER",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SPORADIC_SERVER},
+    {"SRPC_DOMAIN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"SSIZE_MAX",
+     {INT_MAX, 0},
+     {_POSIX_SSIZE_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_nop,
+     -1},
+    {"SS_REPL_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"STD_BLK",
+     {1024UL, 0},
+     {1024UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"STREAMS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_STREAMS},
+    {"STREAM_MAX",
+     {0UL, 0},
+     {_POSIX_STREAM_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_STREAM_MAX},
+    {"SW_DEV",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_SW_DEV},
+    {"SYMLINKS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_pathconf,
+     -1},
+    {"SYMLINK_MAX",
+     {0UL, 0},
+     {_POSIX_SYMLINK_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_SYMLINK_MAX},
+    {"SYMLOOP_MAX",
+     {0UL, 0},
+     {_POSIX_SYMLOOP_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SYMLOOP_MAX},
+    {"SYNCHRONIZED_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_SYNCHRONIZED_IO},
+    {"SYNC_IO",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_SYNC_IO},
+    {"SYSNAME", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"SYSPID_MAX",
+     {2UL, 0},
+     {2UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"THREADS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREADS},
+    {"THREADS_PRIO_CEILING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"THREADS_PRIO_INHERIT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"THREAD_ATTR_STACKADDR",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_ATTR_STACKADDR},
+    {"THREAD_ATTR_STACKSIZE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_ATTR_STACKSIZE},
+    {"THREAD_CPUTIME",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_CPUTIME},
+    {"THREAD_DESTRUCTOR_ITERATIONS",
+     {0UL, 0},
+     {_POSIX_THREAD_DESTRUCTOR_ITERATIONS, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_PREFIX_ONLY | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_DESTRUCTOR_ITERATIONS},
+    {"THREAD_KEYS_MAX",
+     {0UL, 0},
+     {_POSIX_THREAD_KEYS_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_PREFIX_ONLY | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_KEYS_MAX},
+    {"THREAD_PRIORITY_SCHEDULING",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_PRIORITY_SCHEDULING},
+    {"THREAD_PRIO_INHERIT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_PRIO_INHERIT},
+    {"THREAD_PRIO_PROTECT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_PRIO_PROTECT},
+    {"THREAD_PROCESS_SHARED",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_PROCESS_SHARED},
+    {"THREAD_SAFE_FUNCTIONS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_SAFE_FUNCTIONS},
+    {"THREAD_SPORADIC_SERVER",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_SPORADIC_SERVER},
+    {"THREAD_STACK_MIN",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_STACK_MIN},
+    {"THREAD_THREADS_MAX",
+     {0UL, 0},
+     {_POSIX_THREAD_THREADS_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_PREFIX_ONLY | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_THREAD_THREADS_MAX},
+    {"TIMEOUTS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TIMEOUTS},
+    {"TIMERS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TIMERS},
+    {"TIMER_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TMP",
+     {0, 0},
+     {0, "/tmp"},
+     CONF_MINMAX | CONF_UNDERSCORE | CONF_STRING | CONF_MINMAX_DEF,
+     CONF_AST,
+     1,
+     CONF_confstr,
+     -1},
+    {"TMP_MAX",
+     {308915776UL, 0},
+     {10000UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_LIMIT_DEF | CONF_MINMAX_DEF,
+     CONF_C,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TRACE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TRACE},
+    {"TRACE_EVENT_FILTER",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TRACE_EVENT_FILTER},
+    {"TRACE_EVENT_NAME_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TRACE_INHERIT",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TRACE_INHERIT},
+    {"TRACE_LOG",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TRACE_LOG},
+    {"TRACE_NAME_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TRACE_SYS_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TRACE_USER_EVENT_MAX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_NOUNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"TTY_NAME_MAX",
+     {0UL, 0},
+     {_POSIX_TTY_NAME_MAX, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TTY_NAME_MAX},
+    {"TYPED_MEMORY_OBJECTS",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TYPED_MEMORY_OBJECTS},
+    {"TZNAME_MAX",
+     {0UL, 0},
+     {_POSIX_TZNAME_MAX, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_TZNAME_MAX},
+    {"T_IOV_MAX", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"UCHAR_MAX", {255UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"UCHAR_MIN", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"UID_MAX",
+     {0UL, 0},
+     {60002UL, 0},
+     CONF_LIMIT | CONF_MINMAX | CONF_UNDERSCORE | CONF_MINMAX_DEF,
+     CONF_SVID,
+     1,
+     CONF_sysconf,
+     -1},
+    {"UINT_MAX", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"UIO_MAXIOV", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_POSIX, 1, CONF_nop, -1},
+    {"ULLONG_MAX", {-1L, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"ULONG_MAX", {-1L, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"UNIX",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_UNIX},
+    {"UPE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     _SC_2_UPE},
+    {"USER_LIMIT", {0, 0}, {0, 0}, CONF_STRING, CONF_SVID, 1, CONF_sysinfo, -1},
+    {"USHRT_MAX", {65535UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"V6_ILP32_OFF32",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_V6_ILP32_OFF32},
+    {"V6_ILP32_OFFBIG",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_V6_ILP32_OFFBIG},
+    {"V6_LP64_OFF64",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_V6_LP64_OFF64},
+    {"V6_LPBIG_OFFBIG",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     _SC_V6_LPBIG_OFFBIG},
+    {"VDISABLE",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_UNDERSCORE | CONF_PREFIX_ONLY,
+     CONF_POSIX,
+     1,
+     CONF_pathconf,
+     _PC_VDISABLE},
+    {"VERSION",
+     {0, 0},
+     {0, 0},
+     CONF_PREFIXED | CONF_STANDARD | CONF_STRING,
+     CONF_SVID,
+     1,
+     CONF_sysinfo,
+     -1},
+    {"VERSION",
+     {0UL, 0},
+     {200112UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_PREFIXED | CONF_STANDARD |
+         CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"VERSION",
+     {0UL, 0},
+     {200112UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_PREFIXED | CONF_STANDARD |
+         CONF_UNDERSCORE,
+     CONF_POSIX,
+     2,
+     CONF_sysconf,
+     -1},
+    {"VERSION",
+     {0UL, 0},
+     {600UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_PREFIXED | CONF_STANDARD |
+         CONF_UNDERSCORE,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     _SC_XOPEN_VERSION},
+    {"VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_MM | CONF_FEATURE | CONF_PREFIXED | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_XPG,
+     3,
+     CONF_sysconf,
+     -1},
+    {"VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_MM | CONF_FEATURE | CONF_PREFIXED | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_XPG,
+     4,
+     CONF_sysconf,
+     -1},
+    {"VERSION", {0UL, 0}, {0UL, 0}, CONF_PREFIXED | CONF_STANDARD, CONF_GNU, 1, CONF_nop, -1},
+    {"VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_PREFIXED | CONF_STANDARD,
+     CONF_TRUSTEDBSD,
+     1,
+     CONF_nop,
+     -1},
+    {"VERSION_88",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_LIMIT | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"VERSION_88", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"VERSION_90",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_LIMIT | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"VERSION_90", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"VERSION_93",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_FEATURE | CONF_LIMIT | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_POSIX,
+     1,
+     CONF_sysconf,
+     -1},
+    {"VERSION_93", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_C, 1, CONF_nop, -1},
+    {"WCHAR_MAX",
+     {2147483647UL, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"WCHAR_MIN",
+     {-2147483647L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"WINT_MAX", {2147483647UL, 0}, {0UL, 0}, CONF_LIMIT | CONF_LIMIT_DEF, CONF_C, 1, CONF_nop, -1},
+    {"WINT_MIN",
+     {-2147483647L - 1L, 0},
+     {0UL, 0},
+     CONF_LIMIT | CONF_LIMIT_DEF,
+     CONF_C,
+     1,
+     CONF_nop,
+     -1},
+    {"WORD_BIT", {0UL, 0}, {0UL, 0}, CONF_LIMIT, CONF_XOPEN, 1, CONF_nop, -1},
+    {"XATTR_ENABLED", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_pathconf, -1},
+    {"XATTR_EXISTS", {0UL, 0}, {0UL, 0}, 0, CONF_SUN, 1, CONF_pathconf, -1},
+    {"XCU_VERSION",
+     {0UL, 0},
+     {0UL, 0},
+     CONF_DEFER_CALL | CONF_DEFER_MM | CONF_FEATURE | CONF_STANDARD | CONF_UNDERSCORE,
+     CONF_XOPEN,
+     1,
+     CONF_sysconf,
+     -1},
+    {"XPG2", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_XOPEN, 1, CONF_nop, -1},
+    {"XPG3", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_XOPEN, 1, CONF_nop, -1},
+    {"XPG4", {0UL, 0}, {0UL, 0}, CONF_FEATURE | CONF_UNDERSCORE, CONF_XOPEN, 1, CONF_nop, -1},
+};
+
+const int conf_elements = (int)sizeof(conf) / (int)sizeof(conf[0]);
diff --git a/src/lib/libast/comp/conftab.c.in b/src/lib/libast/comp/conftab.c.in
deleted file mode 100644
index 618d20b813d..00000000000
--- a/src/lib/libast/comp/conftab.c.in
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <config_ast.h>
-
-{headers}
-
-#include <limits.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-
-#include "conftab.h"
-
-//
-// Prefix strings -- the first few are indexed by Conf_t.standard.
-//
-const Prefix_t prefix[] = {{
-    {prefix_standards}
-    {{"XX", 2, CONF_POSIX, CONF_nop}},
-    {{"CS", 2, CONF_POSIX, CONF_confstr}},
-    {{"PC", 2, CONF_POSIX, CONF_pathconf}},
-    {{"SC", 2, CONF_POSIX, CONF_sysconf}},
-    {{"SI", 2, CONF_SVID, CONF_sysinfo}},
-}};
-
-const int prefix_elements = (int)sizeof(prefix) / (int)sizeof(prefix[0]);
-
-//
-// Conf strings sorted in ascending order.
-//
-const Conf_t conf[] = {{
-{getconf}
-}};
-
-const int conf_elements = (int)sizeof(conf) / (int)sizeof(conf[0]);
diff --git a/src/lib/libast/comp/conftab.h.in b/src/lib/libast/include/conftab.h
similarity index 60%
rename from src/lib/libast/comp/conftab.h.in
rename to src/lib/libast/include/conftab.h
index 2706e54ee50..2d6f8faf348 100644
--- a/src/lib/libast/comp/conftab.h.in
+++ b/src/lib/libast/include/conftab.h
@@ -19,9 +19,21 @@
 #define CONF_sysconf 3
 #define CONF_sysinfo 4
 
-{conf_standards}
+#define CONF_C 0
+#define CONF_SUN 1
+#define CONF_POSIX 2
+#define CONF_SVID 3
+#define CONF_XOPEN 4
+#define CONF_SCO 5
+#define CONF_AST 6
+#define CONF_AES 7
+#define CONF_XPG 8
+#define CONF_GNU 9
+#define CONF_TRUSTEDBSD 10
+#define CONF_call 11
 
-{getconf}
+#define _pth_getconf "/usr/bin/getconf"
+#define _pth_getconf_a "-a"
 
 #define CONF_DEFER_CALL 0x0001
 #define CONF_DEFER_MM 0x0002
@@ -42,28 +54,28 @@
 struct Conf_s;
 typedef struct Conf_s Conf_t;
 
-typedef struct Value_s {{
-        int64_t number;
-        const char *string;
-    }} Value_t;
+typedef struct Value_s {
+    int64_t number;
+    const char *string;
+} Value_t;
 
-struct Conf_s {{
-        const char name[{name_max}];
-        Value_t limit;
-        Value_t minmax;
-        unsigned int flags;
-        short standard;
-        short section;
-        short call;
-        short op;
-    }};
+struct Conf_s {
+    const char name[32];
+    Value_t limit;
+    Value_t minmax;
+    unsigned int flags;
+    short standard;
+    short section;
+    short call;
+    short op;
+};
 
-typedef struct Prefix_s {{
-        const char name[16];
-        short length;
-        short standard;
-        short call;
-    }} Prefix_t;
+typedef struct Prefix_s {
+    const char name[16];
+    short length;
+    short standard;
+    short call;
+} Prefix_t;
 
 extern const Conf_t conf[];
 extern const int conf_elements;
diff --git a/src/lib/libast/meson.build b/src/lib/libast/meson.build
index d4af8589147..18153562477 100644
--- a/src/lib/libast/meson.build
+++ b/src/lib/libast/meson.build
@@ -1,6 +1,4 @@
-# The conftab.c file is unusual in that it is dynamically generated during the Meson config step
-# and is placed in the build tree.
-libast_files = [meson.build_root() + '/src/lib/libast/comp/conftab.c']
+libast_files = ['comp/conftab.c']
 libast_incdir = include_directories('include', 'aso', 'cdt', 'comp',
                                     'sfio', 'path', 'port', 'string', 'misc',
                                     'tm')
