diff --git a/modules/bison/3.8.2/MODULE.bazel b/modules/bison/3.8.2/MODULE.bazel
new file mode 100644
index 0000000..7233b7f
--- /dev/null
+++ b/modules/bison/3.8.2/MODULE.bazel
@@ -0,0 +1,13 @@
+"""https://www.gnu.org/software/bison/"""
+
+module(
+    name = "bison",
+    version = "3.8.2",
+    bazel_compatibility = [">=7.2.1"],
+)
+
+bazel_dep(name = "bazel_skylib", version = "1.8.2")
+bazel_dep(name = "platforms", version = "1.0.0")
+bazel_dep(name = "rules_cc", version = "0.2.4")
+bazel_dep(name = "rules_m4", version = "0.3")
+bazel_dep(name = "sed", version = "4.9.bcr.3")
diff --git a/modules/bison/3.8.2/overlay/BUILD.bazel b/modules/bison/3.8.2/overlay/BUILD.bazel
new file mode 100644
index 0000000..9f7915f
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/BUILD.bazel
@@ -0,0 +1,480 @@
+load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
+load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
+load("@rules_cc//cc:cc_library.bzl", "cc_library")
+load(":bison_utils.bzl", "bison_version_output", "sed_command")
+load(
+    ":config_linux.bzl",
+    LINUX_AUTOMAKE_VARS = "AUTOMAKE_VARIABLES",
+    LINUX_DELETE_VARS = "DELETE_VARIABLES",
+    LINUX_DIRECT_VARS = "DIRECT_VARIABLES",
+    LINUX_INLINE_VARS = "INLINE_VARIABLES",
+)
+load(
+    ":config_macos.bzl",
+    MACOS_AUTOMAKE_VARS = "AUTOMAKE_VARIABLES",
+    MACOS_DELETE_VARS = "DELETE_VARIABLES",
+    MACOS_DIRECT_VARS = "DIRECT_VARIABLES",
+    MACOS_INLINE_VARS = "INLINE_VARIABLES",
+)
+
+LOCAL_DEFINES = [
+    "HAVE_CONFIG_H",
+    "EXEEXT=\\\"\\\"",
+    "PACKAGE_VERSION=\\\"3.8.2\\\"",
+    "INSTALLDIR=\\\"/usr/local/bin\\\"",
+] + select({
+    "@platforms//os:macos": [
+        "_DARWIN_C_SOURCE",
+    ],
+    "//conditions:default": [],
+})
+
+GENERATED_SRCS = {
+    "lib/alloca.h": "lib/alloca.in.h",
+    "lib/fcntl.h": "lib/fcntl.in.h",
+    "lib/getopt-cdefs.h": "lib/getopt-cdefs.in.h",
+    "lib/getopt.h": "lib/getopt.in.h",
+    "lib/iconv.h": "lib/iconv.in.h",
+    "lib/inttypes.h": "lib/inttypes.in.h",
+    "lib/limits.h": "lib/limits.in.h",
+    "lib/locale.h": "lib/locale.in.h",
+    "lib/malloc/scratch_buffer.gl.h": "lib/malloc/scratch_buffer.h",
+    "lib/math.h": "lib/math.in.h",
+    "lib/sched.h": "lib/sched.in.h",
+    "lib/signal.h": "lib/signal.in.h",
+    "lib/spawn.h": "lib/spawn.in.h",
+    "lib/stdint.h": "lib/stdint.in.h",
+    "lib/stdio.h": "lib/stdio.in.h",
+    "lib/stdlib.h": "lib/stdlib.in.h",
+    "lib/string.h": "lib/string.in.h",
+    "lib/sys/ioctl.h": "lib/sys_ioctl.in.h",
+    "lib/sys/resource.h": "lib/sys_resource.in.h",
+    "lib/sys/stat.h": "lib/sys_stat.in.h",
+    "lib/sys/time.h": "lib/sys_time.in.h",
+    "lib/sys/times.h": "lib/sys_times.in.h",
+    "lib/sys/types.h": "lib/sys_types.in.h",
+    "lib/sys/wait.h": "lib/sys_wait.in.h",
+    "lib/termios.h": "lib/termios.in.h",
+    "lib/textstyle.h": "lib/textstyle.in.h",
+    "lib/time.h": "lib/time.in.h",
+    "lib/unistd.h": "lib/unistd.in.h",
+    "lib/unistr.h": "lib/unistr.in.h",
+    "lib/unitypes.h": "lib/unitypes.in.h",
+    "lib/uniwidth.h": "lib/uniwidth.in.h",
+    "lib/wchar.h": "lib/wchar.in.h",
+    "lib/wctype.h": "lib/wctype.in.h",
+}
+
+USES_DIRECT_REPLACEMENTS = [
+    "lib/malloc/scratch_buffer.gl.h",
+]
+
+[
+    genrule(
+        name = hdr[:-len(".h")] + "_h",
+        srcs = [template] + select({
+            "@platforms//os:macos": MACOS_INLINE_VARS.values(),
+            "//conditions:default": LINUX_INLINE_VARS.values(),
+        }),
+        outs = [hdr],
+        cmd = select({
+            "@platforms//os:macos": sed_command(
+                automake_vars = MACOS_AUTOMAKE_VARS,
+                delete_vars = MACOS_DELETE_VARS,
+                direct_vars = MACOS_DIRECT_VARS,
+                inline_vars = MACOS_INLINE_VARS,
+                sed = "@sed",
+                template = template,
+                use_direct_vars = True if hdr in USES_DIRECT_REPLACEMENTS else False,
+            ),
+            "//conditions:default": sed_command(
+                automake_vars = LINUX_AUTOMAKE_VARS,
+                delete_vars = LINUX_DELETE_VARS,
+                direct_vars = LINUX_DIRECT_VARS,
+                inline_vars = LINUX_INLINE_VARS,
+                sed = "@sed",
+                template = template,
+                use_direct_vars = True if hdr in USES_DIRECT_REPLACEMENTS else False,
+            ),
+        }),
+        cmd_bat = select({
+            "@platforms//os:macos": sed_command(
+                automake_vars = MACOS_AUTOMAKE_VARS,
+                delete_vars = MACOS_DELETE_VARS,
+                direct_vars = MACOS_DIRECT_VARS,
+                inline_vars = MACOS_INLINE_VARS,
+                is_windows = True,
+                sed = "@sed",
+                template = template,
+                use_direct_vars = True if hdr in USES_DIRECT_REPLACEMENTS else False,
+            ),
+            "//conditions:default": sed_command(
+                automake_vars = LINUX_AUTOMAKE_VARS,
+                delete_vars = LINUX_DELETE_VARS,
+                direct_vars = LINUX_DIRECT_VARS,
+                inline_vars = LINUX_INLINE_VARS,
+                is_windows = True,
+                sed = "@sed",
+                template = template,
+                use_direct_vars = True if hdr in USES_DIRECT_REPLACEMENTS else False,
+            ),
+        }),
+        tools = ["@sed"],
+    )
+    for hdr, template in GENERATED_SRCS.items()
+]
+
+copy_file(
+    name = "config_h_src",
+    src = select({
+        "@platforms//os:macos": "config_macos.h",
+        "//conditions:default": "config_linux.h",
+    }),
+    out = "lib/config.h",
+    tags = ["manual"],
+)
+
+write_file(
+    name = "configmake_h_src",
+    out = "lib/configmake.h",
+    content = [
+        "#define LOCALEDIR \"\"",
+        "#define PKGDATADIR \"bison/data\"",
+        "",
+    ],
+    newline = "unix",
+    tags = ["manual"],
+)
+
+BISON_COPTS = select({
+    "@rules_cc//cc/compiler:clang": [
+        "-w",
+        "-std=c11",
+        "-Wno-unused-but-set-variable",
+    ],
+    "@rules_cc//cc/compiler:gcc": [
+        "-w",
+        "-std=c11",
+    ],
+    "@rules_cc//cc/compiler:msvc-cl": [
+        # C4116: unnamed type definition in parentheses
+        "/wd4116",
+    ],
+    "//conditions:default": [],
+})
+
+# Gnulib library - minimal set of required functions
+cc_library(
+    name = "gnulib",
+    srcs = [
+        "lib/allocator.c",
+        "lib/areadlink.c",
+        "lib/argmatch.c",
+        "lib/asnprintf.c",
+        "lib/basename.c",
+        "lib/basename-lgpl.c",
+        "lib/binary-io.c",
+        "lib/bitrotate.c",
+        "lib/bitset.c",
+        "lib/bitset/array.c",
+        "lib/bitset/list.c",
+        "lib/bitset/stats.c",
+        "lib/bitset/table.c",
+        "lib/bitset/vector.c",
+        "lib/bitsetv.c",
+        "lib/c-ctype.c",
+        "lib/c-strcasecmp.c",
+        "lib/c-strncasecmp.c",
+        "lib/canonicalize.c",
+        "lib/careadlinkat.c",
+        "lib/cloexec.c",
+        "lib/close-stream.c",
+        "lib/closeout.c",
+        "lib/concat-filename.c",
+        "lib/dirname.c",
+        "lib/dirname-lgpl.c",
+        "lib/dup-safer.c",
+        "lib/dup-safer-flag.c",
+        "lib/execute.c",
+        "lib/exitfail.c",
+        "lib/fatal-signal.c",
+        "lib/fd-safer.c",
+        "lib/fd-safer-flag.c",
+        "lib/file-set.c",
+        "lib/findprog-in.c",
+        "lib/fopen-safer.c",
+        "lib/free.c",
+        "lib/fstrcmp.c",
+        "lib/get-errno.c",
+        "lib/gethrxtime.c",
+        "lib/getprogname.c",
+        "lib/gettime.c",
+        "lib/gl_array_list.c",
+        "lib/gl_hash_map.c",
+        "lib/gl_linked_list.c",
+        "lib/gl_list.c",
+        "lib/gl_map.c",
+        "lib/gl_oset.c",
+        "lib/gl_rbtree_oset.c",
+        "lib/gl_rbtreehash_list.c",
+        "lib/gl_xlist.c",
+        "lib/gl_xmap.c",
+        "lib/glthread/lock.c",
+        "lib/glthread/threadlib.c",
+        "lib/glthread/tls.c",
+        "lib/hash.c",
+        "lib/hash-pjw.c",
+        "lib/hash-triple-simple.c",
+        "lib/ialloc.c",
+        "lib/integer_length.c",
+        "lib/integer_length_l.c",
+        "lib/localcharset.c",
+        "lib/malloc/scratch_buffer_dupfree.c",
+        "lib/malloc/scratch_buffer_grow.c",
+        "lib/malloc/scratch_buffer_grow_preserve.c",
+        "lib/malloc/scratch_buffer_set_array_size.c",
+        "lib/math.c",
+        "lib/mbchar.c",
+        "lib/mbfile.c",
+        "lib/mbswidth.c",
+        "lib/obstack.c",
+        "lib/path-join.c",
+        "lib/pipe-safer.c",
+        "lib/pipe2.c",
+        "lib/pipe2-safer.c",
+        "lib/printf-args.c",
+        "lib/printf-frexp.c",
+        "lib/printf-frexpl.c",
+        "lib/printf-parse.c",
+        "lib/progname.c",
+        "lib/quotearg.c",
+        "lib/readline.c",
+        "lib/sig-handler.c",
+        "lib/spawn.c",
+        "lib/spawn-pipe.c",
+        "lib/spawn_faction_addchdir.c",
+        "lib/spawn_faction_addclose.c",
+        "lib/spawn_faction_adddup2.c",
+        "lib/spawn_faction_addopen.c",
+        "lib/spawn_faction_destroy.c",
+        "lib/spawn_faction_init.c",
+        "lib/spawnattr_destroy.c",
+        "lib/spawnattr_init.c",
+        "lib/spawnattr_setflags.c",
+        "lib/spawnattr_setpgroup.c",
+        "lib/spawnattr_setsigmask.c",
+        "lib/spawni.c",
+        "lib/spawnp.c",
+        "lib/stripslash.c",
+        "lib/timespec.c",
+        "lib/timevar.c",
+        "lib/unicodeio.c",
+        "lib/unistd.c",
+        "lib/unistr/u8-mbtoucr.c",
+        "lib/unistr/u8-uctomb.c",
+        "lib/unistr/u8-uctomb-aux.c",
+        "lib/uniwidth/width.c",
+        "lib/vasnprintf.c",
+        "lib/wait-process.c",
+        "lib/wctype-h.c",
+        "lib/xalloc-die.c",
+        "lib/xconcat-filename.c",
+        "lib/xhash.c",
+        "lib/xmalloc.c",
+        "lib/xmemdup0.c",
+        "lib/xreadlink.c",
+        "lib/xsize.c",
+        "lib/xstrndup.c",
+        "lib/xtime.c",
+    ] + select({
+        "@platforms//os:linux": [
+            "lib/fcntl.c",
+            "lib/hard-locale.c",
+            "lib/mbrtowc.c",
+            "lib/setlocale_null.c",
+        ],
+        "@platforms//os:macos": [
+            "lib/asprintf.c",
+            "lib/canonicalize-lgpl.c",
+            "lib/error.c",
+            "lib/fopen.c",
+            "lib/fpending.c",
+            "lib/fprintf.c",
+            "lib/fseterr.c",
+            "lib/getopt.c",
+            "lib/getopt1.c",
+            "lib/lstat.c",
+            "lib/malloca.c",
+            "lib/mempcpy.c",
+            "lib/obstack_printf.c",
+            "lib/open.c",
+            "lib/perror.c",
+            "lib/printf.c",
+            "lib/rawmemchr.c",
+            "lib/readlink.c",
+            "lib/reallocarray.c",
+            "lib/rename.c",
+            "lib/snprintf.c",
+            "lib/sprintf.c",
+            "lib/stat.c",
+            "lib/stat-time.c",
+            "lib/strerror.c",
+            "lib/strerror-override.c",
+            "lib/strerror_r.c",
+            "lib/strverscmp.c",
+            "lib/unlink.c",
+            "lib/vasprintf.c",
+            "lib/vfprintf.c",
+            "lib/vsnprintf.c",
+            "lib/vsprintf.c",
+        ],
+        "//conditions:default": [],
+    }),
+    hdrs = GENERATED_SRCS.keys() + glob(
+        include = ["lib/**/*.h"],
+        exclude = GENERATED_SRCS.keys() + [
+            "lib/config.h",
+            "lib/configmake.h",
+        ],
+    ) + [
+        "src/scan-code.c",
+        "src/scan-gram.c",
+        "src/scan-skel.c",
+        ":config_h_src",
+        ":configmake_h_src",
+    ],
+    copts = BISON_COPTS,
+    includes = ["lib"],
+    local_defines = LOCAL_DEFINES + [
+        "DEFAULT_TEXT_DOMAIN=\\\"bison-gnulib\\\"",
+    ],
+    textual_hdrs = [
+        "lib/timevar.def",
+        "lib/printf-frexp.c",
+    ],
+)
+
+# Liby library (separate from gnulib)
+cc_library(
+    name = "y",
+    srcs = [
+        "lib/main.c",
+        "lib/yyerror.c",
+    ],
+    includes = ["lib"],
+    local_defines = LOCAL_DEFINES,
+    deps = [
+        ":gnulib",
+    ],
+)
+
+alias(
+    name = "liby",
+    actual = ":y",
+)
+
+BISON_SRC_SRCS = glob(
+    include = [
+        "src/*.c",
+    ],
+    exclude = [
+        "src/bazel_runfiles.cc",
+        "src/i18n-strings.c",
+        "src/scan-code.c",
+        "src/scan-gram.c",
+        "src/scan-skel.c",
+        "src/main.c",
+    ],
+)
+
+BISON_HDRS_SRCS = glob(
+    include = ["src/*.h"],
+)
+
+cc_library(
+    name = "bison_bazel_runfiles",
+    srcs = ["src/bazel_runfiles.cc"],
+    deps = ["@rules_cc//cc/runfiles"],
+)
+
+# Main bison library
+cc_library(
+    name = "lib/bison",
+    srcs = BISON_SRC_SRCS,
+    hdrs = [
+        "src/AnnotationList.h",
+        "src/InadequacyList.h",
+        "src/complain.h",
+    ],
+    copts = BISON_COPTS,
+    includes = [
+        "lib",
+        "src",
+    ],
+    local_defines = LOCAL_DEFINES,
+    textual_hdrs = BISON_HDRS_SRCS,
+    deps = [
+        ":bison_bazel_runfiles",
+        ":gnulib",
+        ":liby",
+    ],
+)
+
+alias(
+    name = "libbison",
+    actual = ":lib/bison",
+)
+
+# Runfiles for bison binary
+filegroup(
+    name = "bison_data",
+    srcs = glob(["data/**/*"]) + [
+        "@rules_m4//m4:current_m4_toolchain",
+    ],
+)
+
+# Link options for different compilers
+BISON_LINKOPTS = select({
+    "@rules_cc//cc/compiler:msvc-cl": [
+        # LNK4001: no object files specified; libraries used
+        "/IGNORE:4001",
+    ],
+    "//conditions:default": [],
+})
+
+# Bison binary
+cc_binary(
+    name = "bin/bison",
+    srcs = ["src/main.c"],
+    data = [":bison_data"],
+    defines = LOCAL_DEFINES,
+    linkopts = BISON_LINKOPTS + select({
+        "@platforms//os:linux": ["-lpthread"],
+        "@platforms//os:macos": ["-liconv"],
+        "//conditions:default": [],
+    }),
+    visibility = ["//visibility:public"],
+    deps = [
+        ":libbison",
+        ":liby",
+    ],
+)
+
+alias(
+    name = "bison",
+    actual = ":bin/bison",
+    visibility = ["//visibility:public"],
+)
+
+# Yacc binary (alias for bison)
+alias(
+    name = "yacc",
+    actual = ":bin/bison",
+    visibility = ["//visibility:public"],
+)
+
+bison_version_output(
+    name = "bison_version_output",
+    bison = ":bison",
+)
diff --git a/modules/bison/3.8.2/overlay/MODULE.bazel b/modules/bison/3.8.2/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/bison/3.8.2/overlay/bison_utils.bzl b/modules/bison/3.8.2/overlay/bison_utils.bzl
new file mode 100644
index 0000000..eb91aeb
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/bison_utils.bzl
@@ -0,0 +1,111 @@
+"""Bison Bazel utilities"""
+
+_CMD_TEMPLATE = "$(execpath {}) $(execpath {{template}}) {} > $@"
+
+_REPLACE_TEMPLATE = "-e 's|{}|{}|g' \\"
+
+_INLINE_TEMPLATE = "-e '/{}/r $(execpath {})' \\"
+
+_DELETE_TEMPLATE = "-e '/{}/d' \\"
+
+def sed_command(
+        *,
+        sed,
+        template,
+        automake_vars,
+        inline_vars,
+        delete_vars,
+        direct_vars,
+        use_direct_vars = False,
+        is_windows = False):
+    """Generate a sed command for producing generated bison source files.
+
+    Args:
+        sed (label): The label of a sed executable
+        template (label): The label of the template
+        automake_vars (dict): Mappings of key value automake pairs.
+        inline_vars (dict): Mappings of keys to source files to inline.
+        delete_vars (list): Deletion keys for removing lines.
+        direct_vars (dict): Mappings of template keys to variables.
+        use_direct_vars (bool, optional): Whether or not to use `direct_vars` at all.
+        is_windows (bool, optional): Whether or not to generate a bat command.
+
+    Returns:
+        str: The sed command
+    """
+    sed_args = []
+    for key, val in automake_vars.items():
+        sed_args.append(_REPLACE_TEMPLATE.format(key, val))
+
+    for key, val in inline_vars.items():
+        sed_args.append(_INLINE_TEMPLATE.format(key, val))
+
+    if use_direct_vars:
+        for key, val in direct_vars.items():
+            sed_args.append(_REPLACE_TEMPLATE.format(key, val))
+
+    for key in delete_vars:
+        sed_args.append(_DELETE_TEMPLATE.format(key))
+
+    command = _CMD_TEMPLATE.format(
+        sed,
+        "\n".join(sed_args).strip("\\\n"),
+    ).replace("{template}", template)
+
+    if is_windows:
+        return command.replace("\\\n", "^\n\r")
+
+    return command
+
+def _bison_version_output_impl(ctx):
+    output = ctx.actions.declare_file("{}{}".format(
+        ctx.label.name,
+        "" if "." in ctx.label.name else ".txt",
+    ))
+
+    m4 = None
+    for file in ctx.attr.bison[DefaultInfo].default_runfiles.files.to_list():
+        if file.basename in ["m4", "m4.exe"]:
+            m4 = file
+            break
+
+    if not m4:
+        fail("Failed to find m4 binary in runfiles of {}".format(ctx.attr.bison.label))
+
+    ctx.actions.run_shell(
+        outputs = [output],
+        tools = [ctx.executable.bison],
+        mnemonic = "BisonVersionOutputGen",
+        command = "{} --version > {}".format(
+            ctx.executable.bison.path,
+            output.path,
+        ),
+        env = {
+            "BISON_PKGDATADIR": "{}.runfiles/{}/data".format(
+                ctx.executable.bison.path,
+                ctx.executable.bison.owner.workspace_name,
+            ),
+            "M4": "{}.runfiles/{}/{}".format(
+                ctx.executable.bison.path,
+                ctx.executable.bison.owner.workspace_name,
+                m4.short_path[len("../"):],
+            ),
+        },
+    )
+
+    return [DefaultInfo(
+        files = depset([output]),
+    )]
+
+bison_version_output = rule(
+    doc = "An internal rule for testing bison executions.",
+    implementation = _bison_version_output_impl,
+    attrs = {
+        "bison": attr.label(
+            doc = "The bison binary.",
+            cfg = "exec",
+            executable = True,
+            mandatory = True,
+        ),
+    },
+)
diff --git a/modules/bison/3.8.2/overlay/config_linux.bzl b/modules/bison/3.8.2/overlay/config_linux.bzl
new file mode 100644
index 0000000..fda0b0b
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/config_linux.bzl
@@ -0,0 +1,1204 @@
+"""Configuration values"""
+
+AUTOMAKE_VARIABLES = {
+    "@''APPLE_UNIVERSAL_BUILD''@": "0",
+    "@''ASM_SYMBOL_PREFIX''@": "\"\"",
+    "@''BITSIZEOF_PTRDIFF_T''@": "",
+    "@''BITSIZEOF_SIG_ATOMIC_T''@": "",
+    "@''BITSIZEOF_SIZE_T''@": "",
+    "@''BITSIZEOF_WCHAR_T''@": "",
+    "@''BITSIZEOF_WINT_T''@": "",
+    "@''EMULTIHOP_HIDDEN''@": "",
+    "@''EMULTIHOP_VALUE''@": "",
+    "@''ENOLINK_HIDDEN''@": "",
+    "@''ENOLINK_VALUE''@": "",
+    "@''EOVERFLOW_HIDDEN''@": "",
+    "@''EOVERFLOW_VALUE''@": "",
+    "@''GNULIBHEADERS_OVERRIDE_WINT_T''@": "0",
+    "@''GNULIB_ACCESS''@": "1",
+    "@''GNULIB_ACOSF''@": "0",
+    "@''GNULIB_ACOSL''@": "0",
+    "@''GNULIB_ALIGNED_ALLOC''@": "0",
+    "@''GNULIB_ALPHASORT''@": "0",
+    "@''GNULIB_ASINF''@": "0",
+    "@''GNULIB_ASINL''@": "0",
+    "@''GNULIB_ATAN2F''@": "0",
+    "@''GNULIB_ATANF''@": "0",
+    "@''GNULIB_ATANL''@": "0",
+    "@''GNULIB_ATOLL''@": "0",
+    "@''GNULIB_BTOWC''@": "0",
+    "@''GNULIB_CALLOC_POSIX''@": "1",
+    "@''GNULIB_CANONICALIZE_FILE_NAME''@": "1",
+    "@''GNULIB_CBRT''@": "0",
+    "@''GNULIB_CBRTF''@": "0",
+    "@''GNULIB_CBRTL''@": "0",
+    "@''GNULIB_CEIL''@": "0",
+    "@''GNULIB_CEILF''@": "0",
+    "@''GNULIB_CEILL''@": "0",
+    "@''GNULIB_CHDIR''@": "0",
+    "@''GNULIB_CHOWN''@": "0",
+    "@''GNULIB_CLOSE''@": "1",
+    "@''GNULIB_CLOSEDIR''@": "0",
+    "@''GNULIB_COPYSIGN''@": "0",
+    "@''GNULIB_COPYSIGNF''@": "0",
+    "@''GNULIB_COPYSIGNL''@": "0",
+    "@''GNULIB_COPY_FILE_RANGE''@": "0",
+    "@''GNULIB_COSF''@": "0",
+    "@''GNULIB_COSHF''@": "0",
+    "@''GNULIB_COSL''@": "0",
+    "@''GNULIB_CREAT''@": "0",
+    "@''GNULIB_CTIME''@": "0",
+    "@''GNULIB_DIRFD''@": "0",
+    "@''GNULIB_DPRINTF''@": "0",
+    "@''GNULIB_DUP''@": "0",
+    "@''GNULIB_DUP2''@": "1",
+    "@''GNULIB_DUP3''@": "0",
+    "@''GNULIB_DUPLOCALE''@": "0",
+    "@''GNULIB_ENVIRON''@": "1",
+    "@''GNULIB_EUIDACCESS''@": "0",
+    "@''GNULIB_EXECL''@": "0",
+    "@''GNULIB_EXECLE''@": "0",
+    "@''GNULIB_EXECLP''@": "0",
+    "@''GNULIB_EXECV''@": "0",
+    "@''GNULIB_EXECVE''@": "0",
+    "@''GNULIB_EXECVP''@": "0",
+    "@''GNULIB_EXECVPE''@": "0",
+    "@''GNULIB_EXP2''@": "0",
+    "@''GNULIB_EXP2F''@": "0",
+    "@''GNULIB_EXP2L''@": "0",
+    "@''GNULIB_EXPF''@": "0",
+    "@''GNULIB_EXPL''@": "0",
+    "@''GNULIB_EXPLICIT_BZERO''@": "0",
+    "@''GNULIB_EXPM1''@": "0",
+    "@''GNULIB_EXPM1F''@": "0",
+    "@''GNULIB_EXPM1L''@": "0",
+    "@''GNULIB_FABSF''@": "0",
+    "@''GNULIB_FABSL''@": "0",
+    "@''GNULIB_FACCESSAT''@": "0",
+    "@''GNULIB_FCHDIR''@": "0",
+    "@''GNULIB_FCHMODAT''@": "0",
+    "@''GNULIB_FCHOWNAT''@": "0",
+    "@''GNULIB_FCLOSE''@": "0",
+    "@''GNULIB_FCNTL''@": "1",
+    "@''GNULIB_FDATASYNC''@": "0",
+    "@''GNULIB_FDOPEN''@": "0",
+    "@''GNULIB_FDOPENDIR''@": "0",
+    "@''GNULIB_FFLUSH''@": "0",
+    "@''GNULIB_FFS''@": "0",
+    "@''GNULIB_FFSL''@": "1",
+    "@''GNULIB_FFSLL''@": "0",
+    "@''GNULIB_FGETC''@": "1",
+    "@''GNULIB_FGETS''@": "1",
+    "@''GNULIB_FLOOR''@": "0",
+    "@''GNULIB_FLOORF''@": "0",
+    "@''GNULIB_FLOORL''@": "0",
+    "@''GNULIB_FMA''@": "0",
+    "@''GNULIB_FMAF''@": "0",
+    "@''GNULIB_FMAL''@": "0",
+    "@''GNULIB_FMOD''@": "0",
+    "@''GNULIB_FMODF''@": "0",
+    "@''GNULIB_FMODL''@": "0",
+    "@''GNULIB_FOPEN''@": "1",
+    "@''GNULIB_FPRINTF''@": "1",
+    "@''GNULIB_FPRINTF_POSIX''@": "1",
+    "@''GNULIB_FPURGE''@": "0",
+    "@''GNULIB_FPUTC''@": "1",
+    "@''GNULIB_FPUTS''@": "1",
+    "@''GNULIB_FREAD''@": "1",
+    "@''GNULIB_FREELOCALE''@": "",
+    "@''GNULIB_FREE_POSIX''@": "1",
+    "@''GNULIB_FREOPEN''@": "0",
+    "@''GNULIB_FREXP''@": "1",
+    "@''GNULIB_FREXPF''@": "0",
+    "@''GNULIB_FREXPL''@": "1",
+    "@''GNULIB_FSCANF''@": "1",
+    "@''GNULIB_FSEEK''@": "0",
+    "@''GNULIB_FSEEKO''@": "0",
+    "@''GNULIB_FSTAT''@": "0",
+    "@''GNULIB_FSTATAT''@": "0",
+    "@''GNULIB_FSYNC''@": "1",
+    "@''GNULIB_FTELL''@": "0",
+    "@''GNULIB_FTELLO''@": "0",
+    "@''GNULIB_FTRUNCATE''@": "0",
+    "@''GNULIB_FUTIMENS''@": "0",
+    "@''GNULIB_FWRITE''@": "1",
+    "@''GNULIB_GETC''@": "1",
+    "@''GNULIB_GETCHAR''@": "1",
+    "@''GNULIB_GETCWD''@": "1",
+    "@''GNULIB_GETDELIM''@": "0",
+    "@''GNULIB_GETDOMAINNAME''@": "0",
+    "@''GNULIB_GETDTABLESIZE''@": "1",
+    "@''GNULIB_GETENTROPY''@": "0",
+    "@''GNULIB_GETGROUPS''@": "0",
+    "@''GNULIB_GETHOSTNAME''@": "0",
+    "@''GNULIB_GETLINE''@": "1",
+    "@''GNULIB_GETLOADAVG''@": "0",
+    "@''GNULIB_GETLOGIN''@": "0",
+    "@''GNULIB_GETLOGIN_R''@": "0",
+    "@''GNULIB_GETOPT_POSIX''@": "1",
+    "@''GNULIB_GETPAGESIZE''@": "0",
+    "@''GNULIB_GETPASS''@": "0",
+    "@''GNULIB_GETRUSAGE''@": "1",
+    "@''GNULIB_GETSUBOPT''@": "0",
+    "@''GNULIB_GETTIMEOFDAY''@": "1",
+    "@''GNULIB_GETUMASK''@": "0",
+    "@''GNULIB_GETUSERSHELL''@": "0",
+    "@''GNULIB_GRANTPT''@": "0",
+    "@''GNULIB_GROUP_MEMBER''@": "0",
+    "@''GNULIB_HYPOT''@": "0",
+    "@''GNULIB_HYPOTF''@": "0",
+    "@''GNULIB_HYPOTL''@": "0",
+    "@''GNULIB_ICONV''@": "1",
+    "@''GNULIB_ILOGB''@": "0",
+    "@''GNULIB_ILOGBF''@": "0",
+    "@''GNULIB_ILOGBL''@": "0",
+    "@''GNULIB_IMAXABS''@": "0",
+    "@''GNULIB_IMAXDIV''@": "0",
+    "@''GNULIB_IOCTL''@": "0",
+    "@''GNULIB_ISATTY''@": "0",
+    "@''GNULIB_ISFINITE''@": "0",
+    "@''GNULIB_ISINF''@": "0",
+    "@''GNULIB_ISNAN''@": "1",
+    "@''GNULIB_ISNAND''@": "1",
+    "@''GNULIB_ISNANF''@": "1",
+    "@''GNULIB_ISNANL''@": "1",
+    "@''GNULIB_ISWBLANK''@": "1",
+    "@''GNULIB_ISWCTYPE''@": "0",
+    "@''GNULIB_ISWDIGIT''@": "1",
+    "@''GNULIB_ISWXDIGIT''@": "1",
+    "@''GNULIB_LCHMOD''@": "0",
+    "@''GNULIB_LCHOWN''@": "0",
+    "@''GNULIB_LDEXPF''@": "0",
+    "@''GNULIB_LDEXPL''@": "1",
+    "@''GNULIB_LINK''@": "0",
+    "@''GNULIB_LINKAT''@": "0",
+    "@''GNULIB_LOCALECONV''@": "0",
+    "@''GNULIB_LOCALENAME''@": "0",
+    "@''GNULIB_LOCALTIME''@": "0",
+    "@''GNULIB_LOG''@": "0",
+    "@''GNULIB_LOG10''@": "0",
+    "@''GNULIB_LOG10F''@": "0",
+    "@''GNULIB_LOG10L''@": "0",
+    "@''GNULIB_LOG1P''@": "0",
+    "@''GNULIB_LOG1PF''@": "0",
+    "@''GNULIB_LOG1PL''@": "0",
+    "@''GNULIB_LOG2''@": "0",
+    "@''GNULIB_LOG2F''@": "0",
+    "@''GNULIB_LOG2L''@": "0",
+    "@''GNULIB_LOGB''@": "0",
+    "@''GNULIB_LOGBF''@": "0",
+    "@''GNULIB_LOGBL''@": "0",
+    "@''GNULIB_LOGF''@": "0",
+    "@''GNULIB_LOGL''@": "0",
+    "@''GNULIB_LSEEK''@": "0",
+    "@''GNULIB_LSTAT''@": "0",
+    "@''GNULIB_MALLOC_POSIX''@": "1",
+    "@''GNULIB_MBRLEN''@": "0",
+    "@''GNULIB_MBRTOWC''@": "1",
+    "@''GNULIB_MBSCASECMP''@": "0",
+    "@''GNULIB_MBSCASESTR''@": "0",
+    "@''GNULIB_MBSCHR''@": "0",
+    "@''GNULIB_MBSCSPN''@": "0",
+    "@''GNULIB_MBSINIT''@": "1",
+    "@''GNULIB_MBSLEN''@": "0",
+    "@''GNULIB_MBSNCASECMP''@": "0",
+    "@''GNULIB_MBSNLEN''@": "0",
+    "@''GNULIB_MBSNRTOWCS''@": "0",
+    "@''GNULIB_MBSPBRK''@": "0",
+    "@''GNULIB_MBSPCASECMP''@": "0",
+    "@''GNULIB_MBSRCHR''@": "0",
+    "@''GNULIB_MBSRTOWCS''@": "0",
+    "@''GNULIB_MBSSEP''@": "0",
+    "@''GNULIB_MBSSPN''@": "0",
+    "@''GNULIB_MBSSTR''@": "0",
+    "@''GNULIB_MBSTOK_R''@": "0",
+    "@''GNULIB_MBTOWC''@": "0",
+    "@''GNULIB_MDA_ACCESS''@": "1",
+    "@''GNULIB_MDA_CHDIR''@": "1",
+    "@''GNULIB_MDA_CHMOD''@": "1",
+    "@''GNULIB_MDA_CLOSE''@": "1",
+    "@''GNULIB_MDA_CREAT''@": "1",
+    "@''GNULIB_MDA_DUP''@": "1",
+    "@''GNULIB_MDA_DUP2''@": "1",
+    "@''GNULIB_MDA_ECVT''@": "1",
+    "@''GNULIB_MDA_EXECL''@": "1",
+    "@''GNULIB_MDA_EXECLE''@": "1",
+    "@''GNULIB_MDA_EXECLP''@": "1",
+    "@''GNULIB_MDA_EXECV''@": "1",
+    "@''GNULIB_MDA_EXECVE''@": "1",
+    "@''GNULIB_MDA_EXECVP''@": "1",
+    "@''GNULIB_MDA_EXECVPE''@": "1",
+    "@''GNULIB_MDA_FCLOSEALL''@": "1",
+    "@''GNULIB_MDA_FCVT''@": "1",
+    "@''GNULIB_MDA_FDOPEN''@": "1",
+    "@''GNULIB_MDA_FILENO''@": "1",
+    "@''GNULIB_MDA_GCVT''@": "1",
+    "@''GNULIB_MDA_GETCWD''@": "1",
+    "@''GNULIB_MDA_GETPID''@": "1",
+    "@''GNULIB_MDA_GETW''@": "1",
+    "@''GNULIB_MDA_ISATTY''@": "1",
+    "@''GNULIB_MDA_J0''@": "1",
+    "@''GNULIB_MDA_J1''@": "1",
+    "@''GNULIB_MDA_JN''@": "1",
+    "@''GNULIB_MDA_LSEEK''@": "1",
+    "@''GNULIB_MDA_MEMCCPY''@": "1",
+    "@''GNULIB_MDA_MKDIR''@": "1",
+    "@''GNULIB_MDA_MKTEMP''@": "1",
+    "@''GNULIB_MDA_OPEN''@": "1",
+    "@''GNULIB_MDA_PUTENV''@": "1",
+    "@''GNULIB_MDA_PUTW''@": "1",
+    "@''GNULIB_MDA_READ''@": "1",
+    "@''GNULIB_MDA_RMDIR''@": "1",
+    "@''GNULIB_MDA_STRDUP''@": "1",
+    "@''GNULIB_MDA_SWAB''@": "1",
+    "@''GNULIB_MDA_TEMPNAM''@": "1",
+    "@''GNULIB_MDA_TZSET''@": "1",
+    "@''GNULIB_MDA_UMASK''@": "1",
+    "@''GNULIB_MDA_UNLINK''@": "1",
+    "@''GNULIB_MDA_WCSDUP''@": "1",
+    "@''GNULIB_MDA_WRITE''@": "1",
+    "@''GNULIB_MDA_Y0''@": "1",
+    "@''GNULIB_MDA_Y1''@": "1",
+    "@''GNULIB_MDA_YN''@": "1",
+    "@''GNULIB_MEMCHR''@": "1",
+    "@''GNULIB_MEMMEM''@": "0",
+    "@''GNULIB_MEMPCPY''@": "1",
+    "@''GNULIB_MEMRCHR''@": "0",
+    "@''GNULIB_MKDIR''@": "0",
+    "@''GNULIB_MKDIRAT''@": "0",
+    "@''GNULIB_MKDTEMP''@": "0",
+    "@''GNULIB_MKFIFO''@": "0",
+    "@''GNULIB_MKFIFOAT''@": "0",
+    "@''GNULIB_MKNOD''@": "0",
+    "@''GNULIB_MKNODAT''@": "0",
+    "@''GNULIB_MKOSTEMP''@": "0",
+    "@''GNULIB_MKOSTEMPS''@": "0",
+    "@''GNULIB_MKSTEMP''@": "0",
+    "@''GNULIB_MKSTEMPS''@": "0",
+    "@''GNULIB_MKTIME''@": "0",
+    "@''GNULIB_MODF''@": "0",
+    "@''GNULIB_MODFF''@": "0",
+    "@''GNULIB_MODFL''@": "0",
+    "@''GNULIB_NANOSLEEP''@": "0",
+    "@''GNULIB_NEWLOCALE''@": "",
+    "@''GNULIB_NONBLOCKING''@": "0",
+    "@''GNULIB_OBSTACK_PRINTF''@": "1",
+    "@''GNULIB_OBSTACK_PRINTF_POSIX''@": "0",
+    "@''GNULIB_OPEN''@": "1",
+    "@''GNULIB_OPENAT''@": "0",
+    "@''GNULIB_OPENDIR''@": "0",
+    "@''GNULIB_OVERRIDES_STRUCT_STAT''@": "0",
+    "@''GNULIB_PCLOSE''@": "0",
+    "@''GNULIB_PERROR''@": "1",
+    "@''GNULIB_PIPE''@": "1",
+    "@''GNULIB_PIPE2''@": "1",
+    "@''GNULIB_POPEN''@": "0",
+    "@''GNULIB_POSIX_MEMALIGN''@": "0",
+    "@''GNULIB_POSIX_OPENPT''@": "0",
+    "@''GNULIB_POSIX_SPAWN''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_DESTROY''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_INIT''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@": "1",
+    "@''GNULIB_POSIX_SPAWNP''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "0",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@": "1",
+    "@''GNULIB_POWF''@": "0",
+    "@''GNULIB_PREAD''@": "0",
+    "@''GNULIB_PRINTF''@": "1",
+    "@''GNULIB_PRINTF_POSIX''@": "1",
+    "@''GNULIB_PTHREAD_SIGMASK''@": "0",
+    "@''GNULIB_PTSNAME''@": "0",
+    "@''GNULIB_PTSNAME_R''@": "0",
+    "@''GNULIB_PUTC''@": "1",
+    "@''GNULIB_PUTCHAR''@": "1",
+    "@''GNULIB_PUTENV''@": "0",
+    "@''GNULIB_PUTS''@": "1",
+    "@''GNULIB_PWRITE''@": "0",
+    "@''GNULIB_QSORT_R''@": "0",
+    "@''GNULIB_RAISE''@": "1",
+    "@''GNULIB_RANDOM''@": "0",
+    "@''GNULIB_RANDOM_R''@": "0",
+    "@''GNULIB_RAWMEMCHR''@": "1",
+    "@''GNULIB_READ''@": "0",
+    "@''GNULIB_READDIR''@": "0",
+    "@''GNULIB_READLINK''@": "1",
+    "@''GNULIB_READLINKAT''@": "0",
+    "@''GNULIB_REALLOCARRAY''@": "1",
+    "@''GNULIB_REALLOC_POSIX''@": "1",
+    "@''GNULIB_REALPATH''@": "1",
+    "@''GNULIB_REMAINDER''@": "0",
+    "@''GNULIB_REMAINDERF''@": "0",
+    "@''GNULIB_REMAINDERL''@": "0",
+    "@''GNULIB_REMOVE''@": "0",
+    "@''GNULIB_RENAME''@": "1",
+    "@''GNULIB_RENAMEAT''@": "0",
+    "@''GNULIB_REWINDDIR''@": "0",
+    "@''GNULIB_RINT''@": "0",
+    "@''GNULIB_RINTF''@": "0",
+    "@''GNULIB_RINTL''@": "0",
+    "@''GNULIB_RMDIR''@": "0",
+    "@''GNULIB_ROUND''@": "0",
+    "@''GNULIB_ROUNDF''@": "0",
+    "@''GNULIB_ROUNDL''@": "0",
+    "@''GNULIB_RPMATCH''@": "0",
+    "@''GNULIB_SCANDIR''@": "0",
+    "@''GNULIB_SCANF''@": "1",
+    "@''GNULIB_SCHED_YIELD''@": "0",
+    "@''GNULIB_SECURE_GETENV''@": "0",
+    "@''GNULIB_SETENV''@": "0",
+    "@''GNULIB_SETHOSTNAME''@": "0",
+    "@''GNULIB_SETLOCALE''@": "0",
+    "@''GNULIB_SETLOCALE_NULL''@": "1",
+    "@''GNULIB_SIGABBREV_NP''@": "0",
+    "@''GNULIB_SIGACTION''@": "1",
+    "@''GNULIB_SIGDESCR_NP''@": "0",
+    "@''GNULIB_SIGNAL_H_SIGPIPE''@": "0",
+    "@''GNULIB_SIGNBIT''@": "1",
+    "@''GNULIB_SIGPROCMASK''@": "1",
+    "@''GNULIB_SINF''@": "0",
+    "@''GNULIB_SINHF''@": "0",
+    "@''GNULIB_SINL''@": "0",
+    "@''GNULIB_SLEEP''@": "0",
+    "@''GNULIB_SNPRINTF''@": "1",
+    "@''GNULIB_SPRINTF_POSIX''@": "1",
+    "@''GNULIB_SQRTF''@": "0",
+    "@''GNULIB_SQRTL''@": "0",
+    "@''GNULIB_STAT''@": "1",
+    "@''GNULIB_STDIO_H_NONBLOCKING''@": "0",
+    "@''GNULIB_STDIO_H_SIGPIPE''@": "0",
+    "@''GNULIB_STPCPY''@": "1",
+    "@''GNULIB_STPNCPY''@": "1",
+    "@''GNULIB_STRCASESTR''@": "0",
+    "@''GNULIB_STRCHRNUL''@": "1",
+    "@''GNULIB_STRDUP''@": "1",
+    "@''GNULIB_STRERROR''@": "1",
+    "@''GNULIB_STRERRORNAME_NP''@": "0",
+    "@''GNULIB_STRERROR_R''@": "0",
+    "@''GNULIB_STRFTIME''@": "0",
+    "@''GNULIB_STRNCAT''@": "0",
+    "@''GNULIB_STRNDUP''@": "1",
+    "@''GNULIB_STRNLEN''@": "0",
+    "@''GNULIB_STRPBRK''@": "0",
+    "@''GNULIB_STRPTIME''@": "0",
+    "@''GNULIB_STRSEP''@": "0",
+    "@''GNULIB_STRSIGNAL''@": "0",
+    "@''GNULIB_STRSTR''@": "0",
+    "@''GNULIB_STRTOD''@": "1",
+    "@''GNULIB_STRTOIMAX''@": "0",
+    "@''GNULIB_STRTOK_R''@": "0",
+    "@''GNULIB_STRTOL''@": "0",
+    "@''GNULIB_STRTOLD''@": "0",
+    "@''GNULIB_STRTOLL''@": "0",
+    "@''GNULIB_STRTOUL''@": "0",
+    "@''GNULIB_STRTOULL''@": "0",
+    "@''GNULIB_STRTOUMAX''@": "0",
+    "@''GNULIB_STRVERSCMP''@": "1",
+    "@''GNULIB_SYMLINK''@": "0",
+    "@''GNULIB_SYMLINKAT''@": "0",
+    "@''GNULIB_SYSTEM_POSIX''@": "0",
+    "@''GNULIB_TANF''@": "0",
+    "@''GNULIB_TANHF''@": "0",
+    "@''GNULIB_TANL''@": "0",
+    "@''GNULIB_TCGETSID''@": "0",
+    "@''GNULIB_TIMEGM''@": "0",
+    "@''GNULIB_TIMES''@": "0",
+    "@''GNULIB_TIMESPEC_GET''@": "0",
+    "@''GNULIB_TIME_R''@": "0",
+    "@''GNULIB_TIME_RZ''@": "0",
+    "@''GNULIB_TMPFILE''@": "0",
+    "@''GNULIB_TOWCTRANS''@": "0",
+    "@''GNULIB_TRUNC''@": "0",
+    "@''GNULIB_TRUNCATE''@": "0",
+    "@''GNULIB_TRUNCF''@": "0",
+    "@''GNULIB_TRUNCL''@": "0",
+    "@''GNULIB_TTYNAME_R''@": "0",
+    "@''GNULIB_TZSET''@": "0",
+    "@''GNULIB_UNISTD_H_GETOPT''@": "00",
+    "@''GNULIB_UNLINK''@": "1",
+    "@''GNULIB_UNLINKAT''@": "0",
+    "@''GNULIB_UNLOCKPT''@": "0",
+    "@''GNULIB_UNSETENV''@": "1",
+    "@''GNULIB_USLEEP''@": "0",
+    "@''GNULIB_UTIMENSAT''@": "0",
+    "@''GNULIB_VASPRINTF''@": "1",
+    "@''GNULIB_VDPRINTF''@": "0",
+    "@''GNULIB_VFPRINTF''@": "1",
+    "@''GNULIB_VFPRINTF_POSIX''@": "0",
+    "@''GNULIB_VFSCANF''@": "0",
+    "@''GNULIB_VPRINTF''@": "1",
+    "@''GNULIB_VPRINTF_POSIX''@": "0",
+    "@''GNULIB_VSCANF''@": "0",
+    "@''GNULIB_VSNPRINTF''@": "1",
+    "@''GNULIB_VSPRINTF_POSIX''@": "1",
+    "@''GNULIB_WAITPID''@": "1",
+    "@''GNULIB_WCPCPY''@": "0",
+    "@''GNULIB_WCPNCPY''@": "0",
+    "@''GNULIB_WCRTOMB''@": "0",
+    "@''GNULIB_WCSCASECMP''@": "0",
+    "@''GNULIB_WCSCAT''@": "0",
+    "@''GNULIB_WCSCHR''@": "0",
+    "@''GNULIB_WCSCMP''@": "0",
+    "@''GNULIB_WCSCOLL''@": "0",
+    "@''GNULIB_WCSCPY''@": "0",
+    "@''GNULIB_WCSCSPN''@": "0",
+    "@''GNULIB_WCSDUP''@": "0",
+    "@''GNULIB_WCSFTIME''@": "0",
+    "@''GNULIB_WCSLEN''@": "0",
+    "@''GNULIB_WCSNCASECMP''@": "0",
+    "@''GNULIB_WCSNCAT''@": "0",
+    "@''GNULIB_WCSNCMP''@": "0",
+    "@''GNULIB_WCSNCPY''@": "0",
+    "@''GNULIB_WCSNLEN''@": "0",
+    "@''GNULIB_WCSNRTOMBS''@": "0",
+    "@''GNULIB_WCSPBRK''@": "0",
+    "@''GNULIB_WCSRCHR''@": "0",
+    "@''GNULIB_WCSRTOMBS''@": "0",
+    "@''GNULIB_WCSSPN''@": "0",
+    "@''GNULIB_WCSSTR''@": "0",
+    "@''GNULIB_WCSTOK''@": "0",
+    "@''GNULIB_WCSWIDTH''@": "0",
+    "@''GNULIB_WCSXFRM''@": "0",
+    "@''GNULIB_WCTOB''@": "0",
+    "@''GNULIB_WCTOMB''@": "0",
+    "@''GNULIB_WCTRANS''@": "0",
+    "@''GNULIB_WCTYPE''@": "0",
+    "@''GNULIB_WCWIDTH''@": "1",
+    "@''GNULIB_WMEMCHR''@": "0",
+    "@''GNULIB_WMEMCMP''@": "0",
+    "@''GNULIB_WMEMCPY''@": "0",
+    "@''GNULIB_WMEMMOVE''@": "0",
+    "@''GNULIB_WMEMPCPY''@": "0",
+    "@''GNULIB_WMEMSET''@": "0",
+    "@''GNULIB_WRITE''@": "0",
+    "@''GNULIB__EXIT''@": "0",
+    "@''GUARD_PREFIX''@": "",
+    "@''HAVE_ACOSF''@": "1",
+    "@''HAVE_ACOSL''@": "1",
+    "@''HAVE_ALIGNED_ALLOC''@": "1",
+    "@''HAVE_ALLOCA_H''@": "1",
+    "@''HAVE_ALPHASORT''@": "1",
+    "@''HAVE_ASINF''@": "1",
+    "@''HAVE_ASINL''@": "1",
+    "@''HAVE_ATAN2F''@": "1",
+    "@''HAVE_ATANF''@": "1",
+    "@''HAVE_ATANL''@": "1",
+    "@''HAVE_ATOLL''@": "1",
+    "@''HAVE_BTOWC''@": "1",
+    "@''HAVE_C99_STDINT_H''@": "1",
+    "@''HAVE_CANONICALIZE_FILE_NAME''@": "1",
+    "@''HAVE_CBRT''@": "1",
+    "@''HAVE_CHOWN''@": "1",
+    "@''HAVE_CLOSEDIR''@": "1",
+    "@''HAVE_COPYSIGN''@": "1",
+    "@''HAVE_COPYSIGNL''@": "1",
+    "@''HAVE_COPY_FILE_RANGE''@": "1",
+    "@''HAVE_COSF''@": "1",
+    "@''HAVE_COSHF''@": "1",
+    "@''HAVE_COSL''@": "1",
+    "@''HAVE_CRTDEFS_H''@": "0",
+    "@''HAVE_DECL_ACOSL''@": "1",
+    "@''HAVE_DECL_ASINL''@": "1",
+    "@''HAVE_DECL_ATANL''@": "1",
+    "@''HAVE_DECL_CBRTF''@": "1",
+    "@''HAVE_DECL_CBRTL''@": "1",
+    "@''HAVE_DECL_CEILF''@": "1",
+    "@''HAVE_DECL_CEILL''@": "1",
+    "@''HAVE_DECL_COPYSIGNF''@": "1",
+    "@''HAVE_DECL_COSL''@": "1",
+    "@''HAVE_DECL_DIRFD''@": "1",
+    "@''HAVE_DECL_ECVT''@": "1",
+    "@''HAVE_DECL_ENVIRON''@": "1",
+    "@''HAVE_DECL_EXECVPE''@": "1",
+    "@''HAVE_DECL_EXP2''@": "1",
+    "@''HAVE_DECL_EXP2F''@": "1",
+    "@''HAVE_DECL_EXP2L''@": "1",
+    "@''HAVE_DECL_EXPL''@": "1",
+    "@''HAVE_DECL_EXPM1L''@": "1",
+    "@''HAVE_DECL_FCHDIR''@": "1",
+    "@''HAVE_DECL_FCLOSEALL''@": "1",
+    "@''HAVE_DECL_FCVT''@": "1",
+    "@''HAVE_DECL_FDATASYNC''@": "1",
+    "@''HAVE_DECL_FDOPENDIR''@": "1",
+    "@''HAVE_DECL_FLOORF''@": "1",
+    "@''HAVE_DECL_FLOORL''@": "1",
+    "@''HAVE_DECL_FPURGE''@": "1",
+    "@''HAVE_DECL_FREXPL''@": "1",
+    "@''HAVE_DECL_FSEEKO''@": "1",
+    "@''HAVE_DECL_FTELLO''@": "1",
+    "@''HAVE_DECL_GCVT''@": "1",
+    "@''HAVE_DECL_GETDELIM''@": "1",
+    "@''HAVE_DECL_GETDOMAINNAME''@": "1",
+    "@''HAVE_DECL_GETLINE''@": "1",
+    "@''HAVE_DECL_GETLOADAVG''@": "1",
+    "@''HAVE_DECL_GETLOGIN''@": "1",
+    "@''HAVE_DECL_GETLOGIN_R''@": "1",
+    "@''HAVE_DECL_GETPAGESIZE''@": "1",
+    "@''HAVE_DECL_GETUSERSHELL''@": "1",
+    "@''HAVE_DECL_IMAXABS''@": "1",
+    "@''HAVE_DECL_IMAXDIV''@": "1",
+    "@''HAVE_DECL_INITSTATE''@": "1",
+    "@''HAVE_DECL_LDEXPL''@": "1",
+    "@''HAVE_DECL_LOCALTIME_R''@": "1",
+    "@''HAVE_DECL_LOG10L''@": "1",
+    "@''HAVE_DECL_LOG2''@": "1",
+    "@''HAVE_DECL_LOG2F''@": "1",
+    "@''HAVE_DECL_LOG2L''@": "1",
+    "@''HAVE_DECL_LOGB''@": "1",
+    "@''HAVE_DECL_LOGL''@": "1",
+    "@''HAVE_DECL_MEMMEM''@": "1",
+    "@''HAVE_DECL_MEMRCHR''@": "1",
+    "@''HAVE_DECL_OBSTACK_PRINTF''@": "1",
+    "@''HAVE_DECL_REMAINDER''@": "1",
+    "@''HAVE_DECL_REMAINDERL''@": "1",
+    "@''HAVE_DECL_RINTF''@": "1",
+    "@''HAVE_DECL_ROUND''@": "1",
+    "@''HAVE_DECL_ROUNDF''@": "1",
+    "@''HAVE_DECL_ROUNDL''@": "1",
+    "@''HAVE_DECL_SETENV''@": "1",
+    "@''HAVE_DECL_SETHOSTNAME''@": "1",
+    "@''HAVE_DECL_SETSTATE''@": "1",
+    "@''HAVE_DECL_SINL''@": "1",
+    "@''HAVE_DECL_SNPRINTF''@": "1",
+    "@''HAVE_DECL_SQRTL''@": "1",
+    "@''HAVE_DECL_STRDUP''@": "1",
+    "@''HAVE_DECL_STRERROR_R''@": "1",
+    "@''HAVE_DECL_STRNCASECMP''@": "1",
+    "@''HAVE_DECL_STRNDUP''@": "1",
+    "@''HAVE_DECL_STRNLEN''@": "1",
+    "@''HAVE_DECL_STRSIGNAL''@": "1",
+    "@''HAVE_DECL_STRTOIMAX''@": "1",
+    "@''HAVE_DECL_STRTOK_R''@": "1",
+    "@''HAVE_DECL_STRTOUMAX''@": "1",
+    "@''HAVE_DECL_TANL''@": "1",
+    "@''HAVE_DECL_TCGETSID''@": "1",
+    "@''HAVE_DECL_TRUNC''@": "1",
+    "@''HAVE_DECL_TRUNCATE''@": "1",
+    "@''HAVE_DECL_TRUNCF''@": "1",
+    "@''HAVE_DECL_TRUNCL''@": "1",
+    "@''HAVE_DECL_TTYNAME_R''@": "1",
+    "@''HAVE_DECL_UNSETENV''@": "1",
+    "@''HAVE_DECL_VSNPRINTF''@": "1",
+    "@''HAVE_DECL_WCSDUP''@": "1",
+    "@''HAVE_DECL_WCTOB''@": "1",
+    "@''HAVE_DECL_WCWIDTH''@": "1",
+    "@''HAVE_DIRENT_H''@": "1",
+    "@''HAVE_DPRINTF''@": "1",
+    "@''HAVE_DUP3''@": "1",
+    "@''HAVE_DUPLOCALE''@": "1",
+    "@''HAVE_EUIDACCESS''@": "1",
+    "@''HAVE_EXECVPE''@": "1",
+    "@''HAVE_EXPF''@": "1",
+    "@''HAVE_EXPL''@": "1",
+    "@''HAVE_EXPLICIT_BZERO''@": "1",
+    "@''HAVE_EXPM1''@": "1",
+    "@''HAVE_EXPM1F''@": "1",
+    "@''HAVE_FABSF''@": "1",
+    "@''HAVE_FABSL''@": "1",
+    "@''HAVE_FACCESSAT''@": "1",
+    "@''HAVE_FCHDIR''@": "1",
+    "@''HAVE_FCHMODAT''@": "1",
+    "@''HAVE_FCHOWNAT''@": "1",
+    "@''HAVE_FCNTL''@": "1",
+    "@''HAVE_FDATASYNC''@": "1",
+    "@''HAVE_FDOPENDIR''@": "1",
+    "@''HAVE_FEATURES_H''@": "1",
+    "@''HAVE_FFS''@": "1",
+    "@''HAVE_FFSL''@": "1",
+    "@''HAVE_FFSLL''@": "1",
+    "@''HAVE_FMA''@": "1",
+    "@''HAVE_FMAF''@": "1",
+    "@''HAVE_FMAL''@": "1",
+    "@''HAVE_FMODF''@": "1",
+    "@''HAVE_FMODL''@": "1",
+    "@''HAVE_FREELOCALE''@": "1",
+    "@''HAVE_FREXPF''@": "1",
+    "@''HAVE_FSTATAT''@": "1",
+    "@''HAVE_FSYNC''@": "1",
+    "@''HAVE_FTRUNCATE''@": "1",
+    "@''HAVE_FUTIMENS''@": "1",
+    "@''HAVE_GETDTABLESIZE''@": "1",
+    "@''HAVE_GETENTROPY''@": "1",
+    "@''HAVE_GETGROUPS''@": "1",
+    "@''HAVE_GETHOSTNAME''@": "1",
+    "@''HAVE_GETOPT_H''@": "1",
+    "@''HAVE_GETPAGESIZE''@": "1",
+    "@''HAVE_GETPASS''@": "1",
+    "@''HAVE_GETRUSAGE''@": "1",
+    "@''HAVE_GETSUBOPT''@": "1",
+    "@''HAVE_GETTIMEOFDAY''@": "1",
+    "@''HAVE_GETUMASK''@": "1",
+    "@''HAVE_GRANTPT''@": "1",
+    "@''HAVE_GROUP_MEMBER''@": "1",
+    "@''HAVE_HYPOTF''@": "1",
+    "@''HAVE_HYPOTL''@": "1",
+    "@''HAVE_ILOGB''@": "1",
+    "@''HAVE_ILOGBF''@": "1",
+    "@''HAVE_ILOGBL''@": "1",
+    "@''HAVE_IMAXDIV_T''@": "1",
+    "@''HAVE_INITSTATE''@": "1",
+    "@''HAVE_INTTYPES_H''@": "1",
+    "@''HAVE_ISNAND''@": "1",
+    "@''HAVE_ISNANF''@": "1",
+    "@''HAVE_ISNANL''@": "1",
+    "@''HAVE_ISWBLANK''@": "1",
+    "@''HAVE_ISWCNTRL''@": "1",
+    "@''HAVE_LCHMOD''@": "1",
+    "@''HAVE_LCHOWN''@": "1",
+    "@''HAVE_LDEXPF''@": "1",
+    "@''HAVE_LINK''@": "1",
+    "@''HAVE_LINKAT''@": "1",
+    "@''HAVE_LOG10F''@": "1",
+    "@''HAVE_LOG10L''@": "1",
+    "@''HAVE_LOG1P''@": "1",
+    "@''HAVE_LOG1PF''@": "1",
+    "@''HAVE_LOG1PL''@": "1",
+    "@''HAVE_LOGBF''@": "1",
+    "@''HAVE_LOGBL''@": "1",
+    "@''HAVE_LOGF''@": "1",
+    "@''HAVE_LOGL''@": "1",
+    "@''HAVE_LSTAT''@": "1",
+    "@''HAVE_MAX_ALIGN_T''@": "1",
+    "@''HAVE_MBRLEN''@": "1",
+    "@''HAVE_MBRTOWC''@": "1",
+    "@''HAVE_MBSINIT''@": "1",
+    "@''HAVE_MBSLEN''@": "0",
+    "@''HAVE_MBSNRTOWCS''@": "1",
+    "@''HAVE_MBSRTOWCS''@": "1",
+    "@''HAVE_MBTOWC''@": "1",
+    "@''HAVE_MEMPCPY''@": "1",
+    "@''HAVE_MKDIRAT''@": "1",
+    "@''HAVE_MKDTEMP''@": "1",
+    "@''HAVE_MKFIFO''@": "1",
+    "@''HAVE_MKFIFOAT''@": "1",
+    "@''HAVE_MKNOD''@": "1",
+    "@''HAVE_MKNODAT''@": "1",
+    "@''HAVE_MKOSTEMP''@": "1",
+    "@''HAVE_MKOSTEMPS''@": "1",
+    "@''HAVE_MKSTEMP''@": "1",
+    "@''HAVE_MKSTEMPS''@": "1",
+    "@''HAVE_MODFF''@": "1",
+    "@''HAVE_MODFL''@": "1",
+    "@''HAVE_NANOSLEEP''@": "1",
+    "@''HAVE_NEWLOCALE''@": "1",
+    "@''HAVE_OPENAT''@": "1",
+    "@''HAVE_OPENDIR''@": "1",
+    "@''HAVE_OS_H''@": "0",
+    "@''HAVE_PCLOSE''@": "1",
+    "@''HAVE_PIPE''@": "1",
+    "@''HAVE_PIPE2''@": "1",
+    "@''HAVE_POPEN''@": "1",
+    "@''HAVE_POSIX_MEMALIGN''@": "1",
+    "@''HAVE_POSIX_OPENPT''@": "1",
+    "@''HAVE_POSIX_SIGNALBLOCKING''@": "1",
+    "@''HAVE_POSIX_SPAWN''@": "1",
+    "@''HAVE_POSIX_SPAWNATTR_T''@": "1",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "0",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "1",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_T''@": "1",
+    "@''HAVE_POWF''@": "1",
+    "@''HAVE_PREAD''@": "1",
+    "@''HAVE_PTHREAD_SIGMASK''@": "1",
+    "@''HAVE_PTSNAME''@": "1",
+    "@''HAVE_PTSNAME_R''@": "1",
+    "@''HAVE_PWRITE''@": "1",
+    "@''HAVE_QSORT_R''@": "1",
+    "@''HAVE_RAISE''@": "1",
+    "@''HAVE_RANDOM''@": "1",
+    "@''HAVE_RANDOM_H''@": "1",
+    "@''HAVE_RANDOM_R''@": "1",
+    "@''HAVE_RAWMEMCHR''@": "1",
+    "@''HAVE_READDIR''@": "1",
+    "@''HAVE_READLINK''@": "1",
+    "@''HAVE_READLINKAT''@": "1",
+    "@''HAVE_REALLOCARRAY''@": "1",
+    "@''HAVE_REALPATH''@": "1",
+    "@''HAVE_REMAINDER''@": "1",
+    "@''HAVE_REMAINDERF''@": "1",
+    "@''HAVE_RENAMEAT''@": "1",
+    "@''HAVE_REWINDDIR''@": "1",
+    "@''HAVE_RINT''@": "1",
+    "@''HAVE_RINTL''@": "1",
+    "@''HAVE_RPMATCH''@": "1",
+    "@''HAVE_SCANDIR''@": "1",
+    "@''HAVE_SCHED_H''@": "1",
+    "@''HAVE_SCHED_YIELD''@": "1",
+    "@''HAVE_SECURE_GETENV''@": "1",
+    "@''HAVE_SETHOSTNAME''@": "1",
+    "@''HAVE_SETSTATE''@": "1",
+    "@''HAVE_SIGABBREV_NP''@": "1",
+    "@''HAVE_SIGACTION''@": "1",
+    "@''HAVE_SIGDESCR_NP''@": "1",
+    "@''HAVE_SIGHANDLER_T''@": "1",
+    "@''HAVE_SIGINFO_T''@": "1",
+    "@''HAVE_SIGNED_SIG_ATOMIC_T''@": "",
+    "@''HAVE_SIGNED_WCHAR_T''@": "",
+    "@''HAVE_SIGNED_WINT_T''@": "",
+    "@''HAVE_SIGSET_T''@": "1",
+    "@''HAVE_SINF''@": "1",
+    "@''HAVE_SINHF''@": "1",
+    "@''HAVE_SINL''@": "1",
+    "@''HAVE_SLEEP''@": "1",
+    "@''HAVE_SPAWN_H''@": "1",
+    "@''HAVE_SQRTF''@": "1",
+    "@''HAVE_SQRTL''@": "1",
+    "@''HAVE_STDINT_H''@": "1",
+    "@''HAVE_STPCPY''@": "1",
+    "@''HAVE_STPNCPY''@": "1",
+    "@''HAVE_STRCASECMP''@": "1",
+    "@''HAVE_STRCASESTR''@": "1",
+    "@''HAVE_STRCHRNUL''@": "1",
+    "@''HAVE_STRERRORNAME_NP''@": "1",
+    "@''HAVE_STRINGS_H''@": "1",
+    "@''HAVE_STRPBRK''@": "1",
+    "@''HAVE_STRPTIME''@": "1",
+    "@''HAVE_STRSEP''@": "1",
+    "@''HAVE_STRTOD''@": "1",
+    "@''HAVE_STRTOL''@": "1",
+    "@''HAVE_STRTOLD''@": "1",
+    "@''HAVE_STRTOLL''@": "1",
+    "@''HAVE_STRTOUL''@": "1",
+    "@''HAVE_STRTOULL''@": "1",
+    "@''HAVE_STRUCT_RANDOM_DATA''@": "1",
+    "@''HAVE_STRUCT_SCHED_PARAM''@": "1",
+    "@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@": "1",
+    "@''HAVE_STRUCT_TIMEVAL''@": "1",
+    "@''HAVE_STRUCT_TMS''@": "1",
+    "@''HAVE_STRVERSCMP''@": "1",
+    "@''HAVE_SYMLINK''@": "1",
+    "@''HAVE_SYMLINKAT''@": "1",
+    "@''HAVE_SYS_BITYPES_H''@": "0",
+    "@''HAVE_SYS_CDEFS_H''@": "1",
+    "@''HAVE_SYS_INTTYPES_H''@": "0",
+    "@''HAVE_SYS_IOCTL_H''@": "1",
+    "@''HAVE_SYS_LOADAVG_H''@": "0",
+    "@''HAVE_SYS_PARAM_H''@": "0",
+    "@''HAVE_SYS_RESOURCE_H''@": "1",
+    "@''HAVE_SYS_TIMES_H''@": "1",
+    "@''HAVE_SYS_TIME_H''@": "1",
+    "@''HAVE_SYS_TYPES_H''@": "1",
+    "@''HAVE_TANF''@": "1",
+    "@''HAVE_TANHF''@": "1",
+    "@''HAVE_TANL''@": "1",
+    "@''HAVE_TERMIOS_H''@": "1",
+    "@''HAVE_TIMEGM''@": "1",
+    "@''HAVE_TIMES''@": "1",
+    "@''HAVE_TIMESPEC_GET''@": "1",
+    "@''HAVE_TIMEZONE_T''@": "0",
+    "@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@": "1",
+    "@''HAVE_UNISTD_H''@": "1",
+    "@''HAVE_UNLINKAT''@": "1",
+    "@''HAVE_UNLOCKPT''@": "1",
+    "@''HAVE_USLEEP''@": "1",
+    "@''HAVE_UTIMENSAT''@": "1",
+    "@''HAVE_VASPRINTF''@": "1",
+    "@''HAVE_VDPRINTF''@": "1",
+    "@''HAVE_WCHAR_H''@": "1",
+    "@''HAVE_WCHAR_T''@": "1",
+    "@''HAVE_WCPCPY''@": "1",
+    "@''HAVE_WCPNCPY''@": "1",
+    "@''HAVE_WCRTOMB''@": "1",
+    "@''HAVE_WCSCASECMP''@": "1",
+    "@''HAVE_WCSCAT''@": "1",
+    "@''HAVE_WCSCHR''@": "1",
+    "@''HAVE_WCSCMP''@": "1",
+    "@''HAVE_WCSCOLL''@": "1",
+    "@''HAVE_WCSCPY''@": "1",
+    "@''HAVE_WCSCSPN''@": "1",
+    "@''HAVE_WCSDUP''@": "1",
+    "@''HAVE_WCSFTIME''@": "1",
+    "@''HAVE_WCSLEN''@": "1",
+    "@''HAVE_WCSNCASECMP''@": "1",
+    "@''HAVE_WCSNCAT''@": "1",
+    "@''HAVE_WCSNCMP''@": "1",
+    "@''HAVE_WCSNCPY''@": "1",
+    "@''HAVE_WCSNLEN''@": "1",
+    "@''HAVE_WCSNRTOMBS''@": "1",
+    "@''HAVE_WCSPBRK''@": "1",
+    "@''HAVE_WCSRCHR''@": "1",
+    "@''HAVE_WCSRTOMBS''@": "1",
+    "@''HAVE_WCSSPN''@": "1",
+    "@''HAVE_WCSSTR''@": "1",
+    "@''HAVE_WCSTOK''@": "1",
+    "@''HAVE_WCSWIDTH''@": "1",
+    "@''HAVE_WCSXFRM''@": "1",
+    "@''HAVE_WCTRANS_T''@": "1",
+    "@''HAVE_WCTYPE_H''@": "1",
+    "@''HAVE_WCTYPE_T''@": "1",
+    "@''HAVE_WINSOCK2_H''@": "0",
+    "@''HAVE_WINT_T''@": "1",
+    "@''HAVE_WMEMCHR''@": "1",
+    "@''HAVE_WMEMCMP''@": "1",
+    "@''HAVE_WMEMCPY''@": "1",
+    "@''HAVE_WMEMMOVE''@": "1",
+    "@''HAVE_WMEMPCPY''@": "1",
+    "@''HAVE_WMEMSET''@": "1",
+    "@''HAVE_XLOCALE_H''@": "0",
+    "@''HAVE__BOOL''@": "1",
+    "@''HAVE__EXIT''@": "1",
+    "@''ICONV_CONST''@": "",
+    "@''INCLUDE_NEXT''@": "include_next",
+    "@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@": "include_next",
+    "@''INT32_MAX_LT_INTMAX_MAX''@": "1",
+    "@''INT64_MAX_EQ_LONG_MAX''@": "1",
+    "@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@": "0",
+    "@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@": "<math.h>",
+    "@''NEXT_DIRENT_H''@": "<dirent.h>",
+    "@''NEXT_ERRNO_H''@": "",
+    "@''NEXT_FCNTL_H''@": "<fcntl.h>",
+    "@''NEXT_FLOAT_H''@": "",
+    "@''NEXT_GETOPT_H''@": "<getopt.h>",
+    "@''NEXT_ICONV_H''@": "<iconv.h>",
+    "@''NEXT_INTTYPES_H''@": "<inttypes.h>",
+    "@''NEXT_LIMITS_H''@": "<limits.h>",
+    "@''NEXT_LOCALE_H''@": "<locale.h>",
+    "@''NEXT_SCHED_H''@": "<sched.h>",
+    "@''NEXT_SIGNAL_H''@": "<signal.h>",
+    "@''NEXT_SPAWN_H''@": "<spawn.h>",
+    "@''NEXT_STDDEF_H''@": "",
+    "@''NEXT_STDINT_H''@": "<stdint.h>",
+    "@''NEXT_STDIO_H''@": "<stdio.h>",
+    "@''NEXT_STDLIB_H''@": "<stdlib.h>",
+    "@''NEXT_STRINGS_H''@": "<strings.h>",
+    "@''NEXT_STRING_H''@": "<string.h>",
+    "@''NEXT_SYS_IOCTL_H''@": "<sys/ioctl.h>",
+    "@''NEXT_SYS_RESOURCE_H''@": "<sys/resource.h>",
+    "@''NEXT_SYS_STAT_H''@": "<sys/stat.h>",
+    "@''NEXT_SYS_TIMES_H''@": "<sys/times.h>",
+    "@''NEXT_SYS_TIME_H''@": "<sys/time.h>",
+    "@''NEXT_SYS_TYPES_H''@": "<sys/types.h>",
+    "@''NEXT_SYS_WAIT_H''@": "<sys/wait.h>",
+    "@''NEXT_TERMIOS_H''@": "<termios.h>",
+    "@''NEXT_TIME_H''@": "<time.h>",
+    "@''NEXT_UNISTD_H''@": "<unistd.h>",
+    "@''NEXT_WCHAR_H''@": "<wchar.h>",
+    "@''NEXT_WCTYPE_H''@": "<wctype.h>",
+    "@''PRAGMA_COLUMNS''@": "",
+    "@''PRAGMA_SYSTEM_HEADER''@": "#pragma GCC system_header",
+    "@''PRIPTR_PREFIX''@": "\"l\"",
+    "@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''PTRDIFF_T_SUFFIX''@": "",
+    "@''REPLACE_ACCESS''@": "0",
+    "@''REPLACE_ACOSF''@": "0",
+    "@''REPLACE_ALIGNED_ALLOC''@": "0",
+    "@''REPLACE_ASINF''@": "0",
+    "@''REPLACE_ATAN2F''@": "0",
+    "@''REPLACE_ATANF''@": "0",
+    "@''REPLACE_BTOWC''@": "0",
+    "@''REPLACE_CALLOC''@": "0",
+    "@''REPLACE_CANONICALIZE_FILE_NAME''@": "0",
+    "@''REPLACE_CBRTF''@": "0",
+    "@''REPLACE_CBRTL''@": "0",
+    "@''REPLACE_CEIL''@": "0",
+    "@''REPLACE_CEILF''@": "0",
+    "@''REPLACE_CEILL''@": "0",
+    "@''REPLACE_CHOWN''@": "0",
+    "@''REPLACE_CLOSE''@": "0",
+    "@''REPLACE_CLOSEDIR''@": "0",
+    "@''REPLACE_COSF''@": "0",
+    "@''REPLACE_COSHF''@": "0",
+    "@''REPLACE_CREAT''@": "0",
+    "@''REPLACE_CTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_DIRFD''@": "0",
+    "@''REPLACE_DPRINTF''@": "0",
+    "@''REPLACE_DUP''@": "0",
+    "@''REPLACE_DUP2''@": "0",
+    "@''REPLACE_DUPLOCALE''@": "0",
+    "@''REPLACE_EXECL''@": "0",
+    "@''REPLACE_EXECLE''@": "0",
+    "@''REPLACE_EXECLP''@": "0",
+    "@''REPLACE_EXECV''@": "0",
+    "@''REPLACE_EXECVE''@": "0",
+    "@''REPLACE_EXECVP''@": "0",
+    "@''REPLACE_EXECVPE''@": "0",
+    "@''REPLACE_EXP2''@": "0",
+    "@''REPLACE_EXP2L''@": "0",
+    "@''REPLACE_EXPF''@": "0",
+    "@''REPLACE_EXPL''@": "0",
+    "@''REPLACE_EXPM1''@": "0",
+    "@''REPLACE_EXPM1F''@": "0",
+    "@''REPLACE_EXPM1L''@": "0",
+    "@''REPLACE_FABSL''@": "0",
+    "@''REPLACE_FACCESSAT''@": "0",
+    "@''REPLACE_FCHMODAT''@": "0",
+    "@''REPLACE_FCHOWNAT''@": "0",
+    "@''REPLACE_FCLOSE''@": "0",
+    "@''REPLACE_FCNTL''@": "1",
+    "@''REPLACE_FDOPEN''@": "0",
+    "@''REPLACE_FDOPENDIR''@": "0",
+    "@''REPLACE_FFLUSH''@": "0",
+    "@''REPLACE_FFSLL''@": "0",
+    "@''REPLACE_FLOOR''@": "0",
+    "@''REPLACE_FLOORF''@": "0",
+    "@''REPLACE_FLOORL''@": "0",
+    "@''REPLACE_FMA''@": "0",
+    "@''REPLACE_FMAF''@": "0",
+    "@''REPLACE_FMAL''@": "0",
+    "@''REPLACE_FMOD''@": "0",
+    "@''REPLACE_FMODF''@": "0",
+    "@''REPLACE_FMODL''@": "0",
+    "@''REPLACE_FOPEN''@": "0",
+    "@''REPLACE_FPRINTF''@": "0",
+    "@''REPLACE_FPURGE''@": "0",
+    "@''REPLACE_FREE''@": "1",
+    "@''REPLACE_FREELOCALE''@": "0",
+    "@''REPLACE_FREOPEN''@": "0",
+    "@''REPLACE_FREXP''@": "0",
+    "@''REPLACE_FREXPF''@": "0",
+    "@''REPLACE_FREXPL''@": "0",
+    "@''REPLACE_FSEEK''@": "0",
+    "@''REPLACE_FSEEKO''@": "0",
+    "@''REPLACE_FSTAT''@": "0",
+    "@''REPLACE_FSTATAT''@": "0",
+    "@''REPLACE_FTELL''@": "0",
+    "@''REPLACE_FTELLO''@": "0",
+    "@''REPLACE_FTRUNCATE''@": "0",
+    "@''REPLACE_FUTIMENS''@": "0",
+    "@''REPLACE_GETCWD''@": "0",
+    "@''REPLACE_GETDELIM''@": "0",
+    "@''REPLACE_GETDOMAINNAME''@": "0",
+    "@''REPLACE_GETDTABLESIZE''@": "0",
+    "@''REPLACE_GETGROUPS''@": "0",
+    "@''REPLACE_GETLINE''@": "0",
+    "@''REPLACE_GETLOGIN_R''@": "0",
+    "@''REPLACE_GETPAGESIZE''@": "0",
+    "@''REPLACE_GETPASS''@": "0",
+    "@''REPLACE_GETTIMEOFDAY''@": "0",
+    "@''REPLACE_GMTIME''@": "0",
+    "@''REPLACE_HUGE_VAL''@": "0",
+    "@''REPLACE_HYPOT''@": "0",
+    "@''REPLACE_HYPOTF''@": "0",
+    "@''REPLACE_HYPOTL''@": "0",
+    "@''REPLACE_ICONV''@": "0",
+    "@''REPLACE_ICONV_OPEN''@": "0",
+    "@''REPLACE_ICONV_UTF''@": "0",
+    "@''REPLACE_ILOGB''@": "0",
+    "@''REPLACE_ILOGBF''@": "0",
+    "@''REPLACE_ILOGBL''@": "0",
+    "@''REPLACE_INITSTATE''@": "0",
+    "@''REPLACE_IOCTL''@": "0",
+    "@''REPLACE_ISATTY''@": "0",
+    "@''REPLACE_ISFINITE''@": "0",
+    "@''REPLACE_ISINF''@": "0",
+    "@''REPLACE_ISNAN''@": "0",
+    "@''REPLACE_ISWBLANK''@": "0",
+    "@''REPLACE_ISWCNTRL''@": "0",
+    "@''REPLACE_ISWDIGIT''@": "0",
+    "@''REPLACE_ISWXDIGIT''@": "0",
+    "@''REPLACE_ITOLD''@": "0",
+    "@''REPLACE_LCHOWN''@": "0",
+    "@''REPLACE_LDEXPL''@": "0",
+    "@''REPLACE_LINK''@": "0",
+    "@''REPLACE_LINKAT''@": "0",
+    "@''REPLACE_LOCALECONV''@": "0",
+    "@''REPLACE_LOCALTIME''@": "0",
+    "@''REPLACE_LOCALTIME_R''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_LOG''@": "0",
+    "@''REPLACE_LOG10''@": "0",
+    "@''REPLACE_LOG10F''@": "0",
+    "@''REPLACE_LOG10L''@": "0",
+    "@''REPLACE_LOG1P''@": "0",
+    "@''REPLACE_LOG1PF''@": "0",
+    "@''REPLACE_LOG1PL''@": "0",
+    "@''REPLACE_LOG2''@": "0",
+    "@''REPLACE_LOG2F''@": "0",
+    "@''REPLACE_LOG2L''@": "0",
+    "@''REPLACE_LOGB''@": "0",
+    "@''REPLACE_LOGBF''@": "0",
+    "@''REPLACE_LOGBL''@": "0",
+    "@''REPLACE_LOGF''@": "0",
+    "@''REPLACE_LOGL''@": "0",
+    "@''REPLACE_LSEEK''@": "0",
+    "@''REPLACE_LSTAT''@": "0",
+    "@''REPLACE_MALLOC''@": "0",
+    "@''REPLACE_MBRLEN''@": "0",
+    "@''REPLACE_MBRTOWC''@": "1",
+    "@''REPLACE_MBSINIT''@": "0",
+    "@''REPLACE_MBSNRTOWCS''@": "0",
+    "@''REPLACE_MBSRTOWCS''@": "0",
+    "@''REPLACE_MBSTATE_T''@": "0",
+    "@''REPLACE_MBTOWC''@": "0",
+    "@''REPLACE_MEMCHR''@": "0",
+    "@''REPLACE_MEMMEM''@": "0",
+    "@''REPLACE_MKDIR''@": "0",
+    "@''REPLACE_MKFIFO''@": "0",
+    "@''REPLACE_MKFIFOAT''@": "0",
+    "@''REPLACE_MKNOD''@": "0",
+    "@''REPLACE_MKNODAT''@": "0",
+    "@''REPLACE_MKSTEMP''@": "0",
+    "@''REPLACE_MKTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_MODF''@": "0",
+    "@''REPLACE_MODFF''@": "0",
+    "@''REPLACE_MODFL''@": "0",
+    "@''REPLACE_NAN''@": "0",
+    "@''REPLACE_NANOSLEEP''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_NEWLOCALE''@": "0",
+    "@''REPLACE_NULL''@": "0",
+    "@''REPLACE_OBSTACK_PRINTF''@": "0",
+    "@''REPLACE_OPEN''@": "0",
+    "@''REPLACE_OPENAT''@": "0",
+    "@''REPLACE_OPENDIR''@": "0",
+    "@''REPLACE_PERROR''@": "0",
+    "@''REPLACE_POPEN''@": "0",
+    "@''REPLACE_POSIX_MEMALIGN''@": "0",
+    "@''REPLACE_POSIX_SPAWN''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "0",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "0",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@": "1",
+    "@''REPLACE_PREAD''@": "0",
+    "@''REPLACE_PRINTF''@": "0",
+    "@''REPLACE_PTHREAD_SIGMASK''@": "0",
+    "@''REPLACE_PTSNAME''@": "0",
+    "@''REPLACE_PTSNAME_R''@": "0",
+    "@''REPLACE_PUTENV''@": "0",
+    "@''REPLACE_PWRITE''@": "0",
+    "@''REPLACE_QSORT_R''@": "0",
+    "@''REPLACE_RAISE''@": "0",
+    "@''REPLACE_RANDOM''@": "0",
+    "@''REPLACE_RANDOM_R''@": "0",
+    "@''REPLACE_READ''@": "0",
+    "@''REPLACE_READLINK''@": "0",
+    "@''REPLACE_READLINKAT''@": "0",
+    "@''REPLACE_REALLOC''@": "0",
+    "@''REPLACE_REALLOCARRAY''@": "0",
+    "@''REPLACE_REALPATH''@": "0",
+    "@''REPLACE_REMAINDER''@": "0",
+    "@''REPLACE_REMAINDERF''@": "0",
+    "@''REPLACE_REMAINDERL''@": "0",
+    "@''REPLACE_REMOVE''@": "0",
+    "@''REPLACE_RENAME''@": "0",
+    "@''REPLACE_RENAMEAT''@": "0",
+    "@''REPLACE_RINTL''@": "0",
+    "@''REPLACE_RMDIR''@": "0",
+    "@''REPLACE_ROUND''@": "0",
+    "@''REPLACE_ROUNDF''@": "0",
+    "@''REPLACE_ROUNDL''@": "0",
+    "@''REPLACE_SCHED_YIELD''@": "0",
+    "@''REPLACE_SETENV''@": "0",
+    "@''REPLACE_SETLOCALE''@": "0",
+    "@''REPLACE_SETSTATE''@": "0",
+    "@''REPLACE_SIGNBIT''@": "0",
+    "@''REPLACE_SIGNBIT_USING_BUILTINS''@": "1",
+    "@''REPLACE_SINF''@": "0",
+    "@''REPLACE_SINHF''@": "0",
+    "@''REPLACE_SLEEP''@": "0",
+    "@''REPLACE_SNPRINTF''@": "0",
+    "@''REPLACE_SPRINTF''@": "0",
+    "@''REPLACE_SQRTF''@": "0",
+    "@''REPLACE_SQRTL''@": "0",
+    "@''REPLACE_STAT''@": "0",
+    "@''REPLACE_STDIO_READ_FUNCS''@": "0",
+    "@''REPLACE_STDIO_WRITE_FUNCS''@": "0",
+    "@''REPLACE_STPNCPY''@": "0",
+    "@''REPLACE_STRCASESTR''@": "0",
+    "@''REPLACE_STRCHRNUL''@": "0",
+    "@''REPLACE_STRDUP''@": "0",
+    "@''REPLACE_STRERROR''@": "0",
+    "@''REPLACE_STRERRORNAME_NP''@": "0",
+    "@''REPLACE_STRERROR_R''@": "1",
+    "@''REPLACE_STRFTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_STRNCAT''@": "0",
+    "@''REPLACE_STRNDUP''@": "0",
+    "@''REPLACE_STRNLEN''@": "0",
+    "@''REPLACE_STRSIGNAL''@": "0",
+    "@''REPLACE_STRSTR''@": "0",
+    "@''REPLACE_STRTOD''@": "0",
+    "@''REPLACE_STRTOIMAX''@": "0",
+    "@''REPLACE_STRTOK_R''@": "0",
+    "@''REPLACE_STRTOL''@": "0",
+    "@''REPLACE_STRTOLD''@": "0",
+    "@''REPLACE_STRTOLL''@": "0",
+    "@''REPLACE_STRTOUL''@": "0",
+    "@''REPLACE_STRTOULL''@": "0",
+    "@''REPLACE_STRTOUMAX''@": "0",
+    "@''REPLACE_STRUCT_LCONV''@": "0",
+    "@''REPLACE_STRUCT_TIMEVAL''@": "0",
+    "@''REPLACE_SYMLINK''@": "0",
+    "@''REPLACE_SYMLINKAT''@": "0",
+    "@''REPLACE_TANF''@": "0",
+    "@''REPLACE_TANHF''@": "0",
+    "@''REPLACE_TIMEGM''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_TMPFILE''@": "0",
+    "@''REPLACE_TOWLOWER''@": "0",
+    "@''REPLACE_TRUNC''@": "0",
+    "@''REPLACE_TRUNCATE''@": "0",
+    "@''REPLACE_TRUNCF''@": "0",
+    "@''REPLACE_TRUNCL''@": "0",
+    "@''REPLACE_TTYNAME_R''@": "0",
+    "@''REPLACE_TZSET''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_UNLINK''@": "0",
+    "@''REPLACE_UNLINKAT''@": "0",
+    "@''REPLACE_UNSETENV''@": "0",
+    "@''REPLACE_USLEEP''@": "0",
+    "@''REPLACE_UTIMENSAT''@": "0",
+    "@''REPLACE_VASPRINTF''@": "0",
+    "@''REPLACE_VDPRINTF''@": "0",
+    "@''REPLACE_VFPRINTF''@": "0",
+    "@''REPLACE_VPRINTF''@": "0",
+    "@''REPLACE_VSNPRINTF''@": "0",
+    "@''REPLACE_VSPRINTF''@": "0",
+    "@''REPLACE_WCRTOMB''@": "0",
+    "@''REPLACE_WCSFTIME''@": "0",
+    "@''REPLACE_WCSNRTOMBS''@": "0",
+    "@''REPLACE_WCSRTOMBS''@": "0",
+    "@''REPLACE_WCSTOK''@": "0",
+    "@''REPLACE_WCSWIDTH''@": "0",
+    "@''REPLACE_WCTOB''@": "0",
+    "@''REPLACE_WCTOMB''@": "0",
+    "@''REPLACE_WCWIDTH''@": "0",
+    "@''REPLACE_WRITE''@": "0",
+    "@''SIG_ATOMIC_T_SUFFIX''@": "",
+    "@''SIZE_T_SUFFIX''@": "",
+    "@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@": "0",
+    "@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@": "0",
+    "@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''TIME_H_DEFINES_STRUCT_TIMESPEC''@": "1",
+    "@''TIME_H_DEFINES_TIME_UTC''@": "1",
+    "@''UINT32_MAX_LT_UINTMAX_MAX''@": "1",
+    "@''UINT64_MAX_EQ_ULONG_MAX''@": "1",
+    "@''UNDEFINE_STRTOK_R''@": "0",
+    "@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''UNISTD_H_HAVE_SYS_RANDOM_H''@": "0",
+    "@''UNISTD_H_HAVE_WINSOCK2_H''@": "0",
+    "@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@": "0",
+    "@''WCHAR_T_SUFFIX''@": "",
+    "@''WINDOWS_64_BIT_OFF_T''@": "0",
+    "@''WINDOWS_64_BIT_ST_SIZE''@": "0",
+    "@''WINDOWS_STAT_INODES''@": "0",
+    "@''WINDOWS_STAT_TIMESPEC''@": "0",
+    "@''WINT_T_SUFFIX''@": "",
+}
+
+DIRECT_VARIABLES = {
+    "__always_inline": "inline _GL_ATTRIBUTE_ALWAYS_INLINE",
+    "__glibc_likely": "_GL_LIKELY",
+    "__glibc_unlikely": "_GL_UNLIKELY",
+}
+
+INLINE_VARIABLES = {
+    "definition of _GL_ARG_NONNULL": "lib/arg-nonnull.h",
+    "definition of _GL_WARN_ON_USE": "lib/warn-on-use.h",
+    "definition of _Noreturn": "lib/_Noreturn.h",
+    "definitions of _GL_FUNCDECL_RPL": "lib/c++defs.h",
+}
+
+DELETE_VARIABLES = [
+    "libc_hidden_proto",
+]
diff --git a/modules/bison/3.8.2/overlay/config_linux.h b/modules/bison/3.8.2/overlay/config_linux.h
new file mode 100644
index 0000000..2e70245
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/config_linux.h
@@ -0,0 +1,2554 @@
+/* lib/config.h.  Generated from config.in.h by configure.  */
+/* lib/config.in.h.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define to the number of bits in type 'ptrdiff_t'. */
+/* #undef BITSIZEOF_PTRDIFF_T */
+
+/* Define to the number of bits in type 'sig_atomic_t'. */
+/* #undef BITSIZEOF_SIG_ATOMIC_T */
+
+/* Define to the number of bits in type 'size_t'. */
+/* #undef BITSIZEOF_SIZE_T */
+
+/* Define to the number of bits in type 'wchar_t'. */
+/* #undef BITSIZEOF_WCHAR_T */
+
+/* Define to the number of bits in type 'wint_t'. */
+/* #undef BITSIZEOF_WINT_T */
+
+/* Define if you wish *printf() functions that have a safe handling of
+   non-IEEE-754 'long double' values. */
+#define CHECK_PRINTF_SAFE 1
+
+/* Define to 1 if using 'alloca.c'. */
+/* #undef C_ALLOCA */
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'double'. */
+#define DBL_EXPBIT0_BIT 20
+
+/* Define as the word index where to find the exponent of 'double'. */
+#define DBL_EXPBIT0_WORD 1
+
+/* Define as the bit index in the word where to find the sign of 'double'. */
+/* #undef DBL_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'double'. */
+/* #undef DBL_SIGNBIT_WORD */
+
+/* the name of the file descriptor member of DIR */
+/* #undef DIR_FD_MEMBER_NAME */
+
+#ifdef DIR_FD_MEMBER_NAME
+# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
+#else
+# define DIR_TO_FD(Dir_p) -1
+#endif
+
+
+/* Define to 1 if // is a file system root distinct from /. */
+/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */
+
+/* Define if struct dirent has a member d_ino that actually works. */
+#define D_INO_IN_DIRENT 1
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define to 1 if the package shall run at any location in the file system. */
+/* #undef ENABLE_RELOCATABLE */
+
+/* Define this to 1 if F_DUPFD behavior does not match POSIX */
+/* #undef FCNTL_DUPFD_BUGGY */
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'float'. */
+#define FLT_EXPBIT0_BIT 23
+
+/* Define as the word index where to find the exponent of 'float'. */
+#define FLT_EXPBIT0_WORD 0
+
+/* Define as the bit index in the word where to find the sign of 'float'. */
+/* #undef FLT_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'float'. */
+/* #undef FLT_SIGNBIT_WORD */
+
+/* Define to 1 if fopen() fails to recognize a trailing slash. */
+/* #undef FOPEN_TRAILING_SLASH_BUG */
+
+/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
+   and handles a trailing slash correctly. */
+/* #undef FUNC_REALPATH_NEARLY_WORKS */
+
+/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
+   and handles leading slashes and a trailing slash correctly. */
+#define FUNC_REALPATH_WORKS 1
+
+/* Define this to 'void' or 'struct timezone' to match the system's
+   declaration of the second argument to gettimeofday. */
+#define GETTIMEOFDAY_TIMEZONE struct timezone
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module canonicalize shall be considered present. */
+#define GNULIB_CANONICALIZE 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module canonicalize-lgpl shall be considered present. */
+#define GNULIB_CANONICALIZE_LGPL 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module close-stream shall be considered present. */
+#define GNULIB_CLOSE_STREAM 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module dirname shall be considered present. */
+#define GNULIB_DIRNAME 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fdopendir shall be considered present. */
+/* #undef GNULIB_FDOPENDIR */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fd-safer-flag shall be considered present. */
+#define GNULIB_FD_SAFER_FLAG 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fopen-gnu shall be considered present. */
+#define GNULIB_FOPEN_GNU 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fopen-safer shall be considered present. */
+#define GNULIB_FOPEN_SAFER 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fscanf shall be considered present. */
+#define GNULIB_FSCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module getcwd shall be considered present. */
+#define GNULIB_GETCWD 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module lock shall be considered present. */
+#define GNULIB_LOCK 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module msvc-nothrow shall be considered present. */
+#define GNULIB_MSVC_NOTHROW 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module openat shall be considered present. */
+/* #undef GNULIB_OPENAT */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module pipe2-safer shall be considered present. */
+#define GNULIB_PIPE2_SAFER 1
+
+/* Define to 1 if printf and friends should be labeled with attribute
+   "__gnu_printf__" instead of "__printf__" */
+/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module reallocarray shall be considered present. */
+#define GNULIB_REALLOCARRAY 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module scanf shall be considered present. */
+#define GNULIB_SCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module snprintf shall be considered present. */
+#define GNULIB_SNPRINTF 1
+
+/* Define to 1 if you want the FILE stream functions getc, putc, etc. to use
+   unlocked I/O if available, throughout the package. Unlocked I/O can improve
+   performance, sometimes dramatically. But unlocked I/O is safe only in
+   single-threaded programs, as well as in multithreaded programs for which
+   you can guarantee that every FILE stream, including stdin, stdout, stderr,
+   is used only in a single thread. */
+#define GNULIB_STDIO_SINGLE_THREAD 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror shall be considered present. */
+#define GNULIB_STRERROR 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror_r-posix shall be considered present. */
+/* #undef GNULIB_STRERROR_R_POSIX */
+
+/* Define to 1 when the gnulib module access should be tested. */
+#define GNULIB_TEST_ACCESS 1
+
+/* Define to 1 when the gnulib module calloc-posix should be tested. */
+#define GNULIB_TEST_CALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module canonicalize should be tested. */
+#define GNULIB_TEST_CANONICALIZE 1
+
+/* Define to 1 when the gnulib module canonicalize_file_name should be tested.
+   */
+#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1
+
+/* Define to 1 when the gnulib module chdir should be tested. */
+/* #undef GNULIB_TEST_CHDIR */
+
+/* Define to 1 when the gnulib module cloexec should be tested. */
+#define GNULIB_TEST_CLOEXEC 1
+
+/* Define to 1 when the gnulib module close should be tested. */
+#define GNULIB_TEST_CLOSE 1
+
+/* Define to 1 when the gnulib module closedir should be tested. */
+/* #undef GNULIB_TEST_CLOSEDIR */
+
+/* Define to 1 when the gnulib module dirfd should be tested. */
+/* #undef GNULIB_TEST_DIRFD */
+
+/* Define to 1 when the gnulib module dup should be tested. */
+/* #undef GNULIB_TEST_DUP */
+
+/* Define to 1 when the gnulib module dup2 should be tested. */
+#define GNULIB_TEST_DUP2 1
+
+/* Define to 1 when the gnulib module environ should be tested. */
+#define GNULIB_TEST_ENVIRON 1
+
+/* Define to 1 when the gnulib module fchdir should be tested. */
+/* #undef GNULIB_TEST_FCHDIR */
+
+/* Define to 1 when the gnulib module fcntl should be tested. */
+#define GNULIB_TEST_FCNTL 1
+
+/* Define to 1 when the gnulib module fdopendir should be tested. */
+/* #undef GNULIB_TEST_FDOPENDIR */
+
+/* Define to 1 when the gnulib module ffsl should be tested. */
+#define GNULIB_TEST_FFSL 1
+
+/* Define to 1 when the gnulib module fgetc should be tested. */
+#define GNULIB_TEST_FGETC 1
+
+/* Define to 1 when the gnulib module fgets should be tested. */
+#define GNULIB_TEST_FGETS 1
+
+/* Define to 1 when the gnulib module fopen should be tested. */
+#define GNULIB_TEST_FOPEN 1
+
+/* Define to 1 when the gnulib module fprintf should be tested. */
+#define GNULIB_TEST_FPRINTF 1
+
+/* Define to 1 when the gnulib module fprintf-posix should be tested. */
+#define GNULIB_TEST_FPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module fputc should be tested. */
+#define GNULIB_TEST_FPUTC 1
+
+/* Define to 1 when the gnulib module fputs should be tested. */
+#define GNULIB_TEST_FPUTS 1
+
+/* Define to 1 when the gnulib module fread should be tested. */
+#define GNULIB_TEST_FREAD 1
+
+/* Define to 1 when the gnulib module free-posix should be tested. */
+#define GNULIB_TEST_FREE_POSIX 1
+
+/* Define to 1 when the gnulib module frexp should be tested. */
+#define GNULIB_TEST_FREXP 1
+
+/* Define to 1 when the gnulib module frexpl should be tested. */
+#define GNULIB_TEST_FREXPL 1
+
+/* Define to 1 when the gnulib module fscanf should be tested. */
+#define GNULIB_TEST_FSCANF 1
+
+/* Define to 1 when the gnulib module fstat should be tested. */
+/* #undef GNULIB_TEST_FSTAT */
+
+/* Define to 1 when the gnulib module fstatat should be tested. */
+/* #undef GNULIB_TEST_FSTATAT */
+
+/* Define to 1 when the gnulib module fsync should be tested. */
+#define GNULIB_TEST_FSYNC 1
+
+/* Define to 1 when the gnulib module fwrite should be tested. */
+#define GNULIB_TEST_FWRITE 1
+
+/* Define to 1 when the gnulib module getc should be tested. */
+#define GNULIB_TEST_GETC 1
+
+/* Define to 1 when the gnulib module getchar should be tested. */
+#define GNULIB_TEST_GETCHAR 1
+
+/* Define to 1 when the gnulib module getcwd should be tested. */
+#define GNULIB_TEST_GETCWD 1
+
+/* Define to 1 when the gnulib module getdelim should be tested. */
+/* #undef GNULIB_TEST_GETDELIM */
+
+/* Define to 1 when the gnulib module getdtablesize should be tested. */
+#define GNULIB_TEST_GETDTABLESIZE 1
+
+/* Define to 1 when the gnulib module getline should be tested. */
+#define GNULIB_TEST_GETLINE 1
+
+/* Define to 1 when the gnulib module getopt-posix should be tested. */
+#define GNULIB_TEST_GETOPT_POSIX 1
+
+/* Define to 1 when the gnulib module getrusage should be tested. */
+#define GNULIB_TEST_GETRUSAGE 1
+
+/* Define to 1 when the gnulib module gettimeofday should be tested. */
+#define GNULIB_TEST_GETTIMEOFDAY 1
+
+/* Define to 1 when the gnulib module isnan should be tested. */
+#define GNULIB_TEST_ISNAN 1
+
+/* Define to 1 when the gnulib module isnand should be tested. */
+#define GNULIB_TEST_ISNAND 1
+
+/* Define to 1 when the gnulib module isnanf should be tested. */
+#define GNULIB_TEST_ISNANF 1
+
+/* Define to 1 when the gnulib module isnanl should be tested. */
+#define GNULIB_TEST_ISNANL 1
+
+/* Define to 1 when the gnulib module iswblank should be tested. */
+#define GNULIB_TEST_ISWBLANK 1
+
+/* Define to 1 when the gnulib module iswdigit should be tested. */
+#define GNULIB_TEST_ISWDIGIT 1
+
+/* Define to 1 when the gnulib module iswxdigit should be tested. */
+#define GNULIB_TEST_ISWXDIGIT 1
+
+/* Define to 1 when the gnulib module ldexpl should be tested. */
+#define GNULIB_TEST_LDEXPL 1
+
+/* Define to 1 when the gnulib module lstat should be tested. */
+/* #undef GNULIB_TEST_LSTAT */
+
+/* Define to 1 when the gnulib module malloc-posix should be tested. */
+#define GNULIB_TEST_MALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module mbrtowc should be tested. */
+#define GNULIB_TEST_MBRTOWC 1
+
+/* Define to 1 when the gnulib module mbsinit should be tested. */
+#define GNULIB_TEST_MBSINIT 1
+
+/* Define to 1 when the gnulib module memchr should be tested. */
+#define GNULIB_TEST_MEMCHR 1
+
+/* Define to 1 when the gnulib module mempcpy should be tested. */
+#define GNULIB_TEST_MEMPCPY 1
+
+/* Define to 1 when the gnulib module memrchr should be tested. */
+/* #undef GNULIB_TEST_MEMRCHR */
+
+/* Define to 1 when the gnulib module obstack-printf should be tested. */
+#define GNULIB_TEST_OBSTACK_PRINTF 1
+
+/* Define to 1 when the gnulib module open should be tested. */
+#define GNULIB_TEST_OPEN 1
+
+/* Define to 1 when the gnulib module openat should be tested. */
+/* #undef GNULIB_TEST_OPENAT */
+
+/* Define to 1 when the gnulib module opendir should be tested. */
+/* #undef GNULIB_TEST_OPENDIR */
+
+/* Define to 1 when the gnulib module perror should be tested. */
+#define GNULIB_TEST_PERROR 1
+
+/* Define to 1 when the gnulib module pipe should be tested. */
+#define GNULIB_TEST_PIPE 1
+
+/* Define to 1 when the gnulib module pipe2 should be tested. */
+#define GNULIB_TEST_PIPE2 1
+
+/* Define to 1 when the gnulib module posix_spawn should be tested. */
+#define GNULIB_TEST_POSIX_SPAWN 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_destroy should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_DESTROY 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_init should be tested.
+   */
+#define GNULIB_TEST_POSIX_SPAWNATTR_INIT 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setflags should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETFLAGS 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setpgroup should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETPGROUP 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setsigmask should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETSIGMASK 1
+
+/* Define to 1 when the gnulib module posix_spawnp should be tested. */
+#define GNULIB_TEST_POSIX_SPAWNP 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addchdir should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addclose should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_adddup2 should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addopen should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_destroy should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_DESTROY 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_init should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_INIT 1
+
+/* Define to 1 when the gnulib module printf should be tested. */
+#define GNULIB_TEST_PRINTF 1
+
+/* Define to 1 when the gnulib module printf-posix should be tested. */
+#define GNULIB_TEST_PRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module putc should be tested. */
+#define GNULIB_TEST_PUTC 1
+
+/* Define to 1 when the gnulib module putchar should be tested. */
+#define GNULIB_TEST_PUTCHAR 1
+
+/* Define to 1 when the gnulib module puts should be tested. */
+#define GNULIB_TEST_PUTS 1
+
+/* Define to 1 when the gnulib module raise should be tested. */
+#define GNULIB_TEST_RAISE 1
+
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+#define GNULIB_TEST_RAWMEMCHR 1
+
+/* Define to 1 when the gnulib module readdir should be tested. */
+/* #undef GNULIB_TEST_READDIR */
+
+/* Define to 1 when the gnulib module readlink should be tested. */
+#define GNULIB_TEST_READLINK 1
+
+/* Define to 1 when the gnulib module reallocarray should be tested. */
+#define GNULIB_TEST_REALLOCARRAY 1
+
+/* Define to 1 when the gnulib module realloc-posix should be tested. */
+#define GNULIB_TEST_REALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module realpath should be tested. */
+#define GNULIB_TEST_REALPATH 1
+
+/* Define to 1 when the gnulib module rename should be tested. */
+#define GNULIB_TEST_RENAME 1
+
+/* Define to 1 when the gnulib module rewinddir should be tested. */
+/* #undef GNULIB_TEST_REWINDDIR */
+
+/* Define to 1 when the gnulib module rmdir should be tested. */
+/* #undef GNULIB_TEST_RMDIR */
+
+/* Define to 1 when the gnulib module scanf should be tested. */
+#define GNULIB_TEST_SCANF 1
+
+/* Define to 1 when the gnulib module setlocale_null should be tested. */
+#define GNULIB_TEST_SETLOCALE_NULL 1
+
+/* Define to 1 when the gnulib module sigaction should be tested. */
+#define GNULIB_TEST_SIGACTION 1
+
+/* Define to 1 when the gnulib module signbit should be tested. */
+#define GNULIB_TEST_SIGNBIT 1
+
+/* Define to 1 when the gnulib module sigprocmask should be tested. */
+#define GNULIB_TEST_SIGPROCMASK 1
+
+/* Define to 1 when the gnulib module snprintf should be tested. */
+#define GNULIB_TEST_SNPRINTF 1
+
+/* Define to 1 when the gnulib module sprintf-posix should be tested. */
+#define GNULIB_TEST_SPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module stat should be tested. */
+#define GNULIB_TEST_STAT 1
+
+/* Define to 1 when the gnulib module stpcpy should be tested. */
+#define GNULIB_TEST_STPCPY 1
+
+/* Define to 1 when the gnulib module stpncpy should be tested. */
+#define GNULIB_TEST_STPNCPY 1
+
+/* Define to 1 when the gnulib module strchrnul should be tested. */
+#define GNULIB_TEST_STRCHRNUL 1
+
+/* Define to 1 when the gnulib module strdup should be tested. */
+#define GNULIB_TEST_STRDUP 1
+
+/* Define to 1 when the gnulib module strerror should be tested. */
+#define GNULIB_TEST_STRERROR 1
+
+/* Define to 1 when the gnulib module strerror_r should be tested. */
+/* #undef GNULIB_TEST_STRERROR_R */
+
+/* Define to 1 when the gnulib module strndup should be tested. */
+#define GNULIB_TEST_STRNDUP 1
+
+/* Define to 1 when the gnulib module strnlen should be tested. */
+/* #undef GNULIB_TEST_STRNLEN */
+
+/* Define to 1 when the gnulib module strtod should be tested. */
+#define GNULIB_TEST_STRTOD 1
+
+/* Define to 1 when the gnulib module strverscmp should be tested. */
+#define GNULIB_TEST_STRVERSCMP 1
+
+/* Define to 1 when the gnulib module unlink should be tested. */
+#define GNULIB_TEST_UNLINK 1
+
+/* Define to 1 when the gnulib module unsetenv should be tested. */
+#define GNULIB_TEST_UNSETENV 1
+
+/* Define to 1 when the gnulib module vasprintf should be tested. */
+#define GNULIB_TEST_VASPRINTF 1
+
+/* Define to 1 when the gnulib module vfprintf should be tested. */
+#define GNULIB_TEST_VFPRINTF 1
+
+/* Define to 1 when the gnulib module vfprintf-posix should be tested. */
+/* #undef GNULIB_TEST_VFPRINTF_POSIX */
+
+/* Define to 1 when the gnulib module vprintf should be tested. */
+#define GNULIB_TEST_VPRINTF 1
+
+/* Define to 1 when the gnulib module vsnprintf should be tested. */
+#define GNULIB_TEST_VSNPRINTF 1
+
+/* Define to 1 when the gnulib module vsprintf-posix should be tested. */
+#define GNULIB_TEST_VSPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module waitpid should be tested. */
+#define GNULIB_TEST_WAITPID 1
+
+/* Define to 1 when the gnulib module wcwidth should be tested. */
+#define GNULIB_TEST_WCWIDTH 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unistr/u8-mbtoucr shall be considered present. */
+#define GNULIB_UNISTR_U8_MBTOUCR 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unistr/u8-uctomb shall be considered present. */
+#define GNULIB_UNISTR_U8_UCTOMB 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module vfprintf-posix shall be considered present. */
+/* #undef GNULIB_VFPRINTF_POSIX */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module xalloc shall be considered present. */
+#define GNULIB_XALLOC 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module xalloc-die shall be considered present. */
+#define GNULIB_XALLOC_DIE 1
+
+/* Define if your system defines TIOCGWINSZ in sys/ioctl.h. */
+#define GWINSZ_IN_SYS_IOCTL 1
+
+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+   may be supplied by this distribution. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if <alloca.h> works. */
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have an arithmetic hrtime_t type. */
+/* #undef HAVE_ARITHMETIC_HRTIME_T */
+
+/* Define to 1 if you have the <bp-sym.h> header file. */
+/* #undef HAVE_BP_SYM_H */
+
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+#define HAVE_CANONICALIZE_FILE_NAME 1
+
+/* Define to 1 if you have the `catgets' function. */
+#define HAVE_CATGETS 1
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#define HAVE_CLOCK_GETTIME 1
+
+/* Define to 1 if you have the `clock_settime' function. */
+#define HAVE_CLOCK_SETTIME 1
+
+/* Define to 1 if you have the `closedir' function. */
+/* #undef HAVE_CLOSEDIR */
+
+/* Define to 1 if you have the `confstr' function. */
+#define HAVE_CONFSTR 1
+
+/* Define if the copysignf function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGNF_IN_LIBC */
+
+/* Define if the copysignl function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGNL_IN_LIBC */
+
+/* Define if the copysign function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGN_IN_LIBC */
+
+/* Define to 1 if you have the `copy_file_range' function. */
+/* #undef HAVE_COPY_FILE_RANGE */
+
+/* Define to 1 if you have the <crtdefs.h> header file. */
+/* #undef HAVE_CRTDEFS_H */
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
+   */
+#define HAVE_DECL_ALARM 1
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_CLEARERR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `copysign', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGN */
+
+/* Define to 1 if you have the declaration of `copysignf', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGNF */
+
+/* Define to 1 if you have the declaration of `copysignl', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGNL */
+
+/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't.
+   */
+/* #undef HAVE_DECL_DIRFD */
+
+/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_ECVT 1
+
+/* Define to 1 if you have the declaration of `execvpe', and to 0 if you
+   don't. */
+#define HAVE_DECL_EXECVPE 1
+
+/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't.
+   */
+#define HAVE_DECL_FCHDIR 1
+
+/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you
+   don't. */
+#define HAVE_DECL_FCLOSEALL 1
+
+/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_FCVT 1
+
+/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_FDOPENDIR */
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_FEOF_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FERROR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FFLUSH_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FGETS_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTS_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FREAD_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FWRITE_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_GCVT 1
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_GETCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't.
+   */
+#define HAVE_DECL_GETCWD 1
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getdelim', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETDELIM 1
+
+/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETDTABLESIZE 1
+
+/* Define to 1 if you have the declaration of `gethrtime', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETHRTIME 0
+
+/* Define to 1 if you have the declaration of `getline', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETLINE 1
+
+/* Define to 1 if you have the declaration of `iswblank', and to 0 if you
+   don't. */
+#define HAVE_DECL_ISWBLANK 1
+
+/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_MBRTOWC */
+
+/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_MBSINIT */
+
+/* Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0
+   otherwise. */
+#define HAVE_DECL_MBSWIDTH_IN_WCHAR_H 0
+
+/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
+   don't. */
+#define HAVE_DECL_MEMRCHR 1
+
+/* Define to 1 if you have the declaration of `obstack_printf', and to 0 if
+   you don't. */
+#define HAVE_DECL_OBSTACK_PRINTF 1
+
+/* Define to 1 if you have the declaration of `posix_spawn', and to 0 if you
+   don't. */
+#define HAVE_DECL_POSIX_SPAWN 1
+
+/* Define to 1 if you have the declaration of `program_invocation_name', and
+   to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
+
+/* Define to 1 if you have the declaration of `program_invocation_short_name',
+   and to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1
+
+/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_PUTCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_PUTC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+   */
+#define HAVE_DECL_SETENV 1
+
+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_SNPRINTF 1
+
+/* Define to 1 if you have the declaration of `stpncpy', and to 0 if you
+   don't. */
+#define HAVE_DECL_STPNCPY 1
+
+/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't.
+   */
+#define HAVE_DECL_STRDUP 1
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRERROR_R 1
+
+/* Define to 1 if you have the declaration of `strndup', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRNDUP 1
+
+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRNLEN 1
+
+/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_TOWLOWER */
+
+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+   don't. */
+#define HAVE_DECL_UNSETENV 1
+
+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VSNPRINTF 1
+
+/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't.
+   */
+#define HAVE_DECL_WCSDUP 1
+
+/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+   don't. */
+#define HAVE_DECL_WCWIDTH 1
+
+/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL__SNPRINTF 0
+
+/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't.
+   */
+#define HAVE_DECL___ARGV 0
+
+/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
+   don't. */
+#define HAVE_DECL___FPENDING 1
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `dirfd' function. */
+/* #undef HAVE_DIRFD */
+
+/* Define if you have the declaration of environ. */
+#define HAVE_ENVIRON_DECL 1
+
+/* Define to 1 if you have the `faccessat' function. */
+#define HAVE_FACCESSAT 1
+
+/* Define to 1 if you have the `fchdir' function. */
+#define HAVE_FCHDIR 1
+
+/* Define to 1 if you have the `fcntl' function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the `fdopendir' function. */
+#define HAVE_FDOPENDIR 1
+
+/* Define to 1 if you have the <features.h> header file. */
+#define HAVE_FEATURES_H 1
+
+/* Define to 1 if you have the `ffsl' function. */
+#define HAVE_FFSL 1
+
+/* Define to 1 if you have the `flockfile' function. */
+/* #undef HAVE_FLOCKFILE */
+
+/* Define if the 'free' function is guaranteed to preserve errno. */
+/* #undef HAVE_FREE_POSIX */
+
+/* Define if the frexpl function is available in libc. */
+#define HAVE_FREXPL_IN_LIBC 1
+
+/* Define if the frexp function is available in libc. */
+#define HAVE_FREXP_IN_LIBC 1
+
+/* Define to 1 if you have the `fstatat' function. */
+#define HAVE_FSTATAT 1
+
+/* Define to 1 if you have the `fsync' function. */
+#define HAVE_FSYNC 1
+
+/* Define to 1 if you have the `funlockfile' function. */
+/* #undef HAVE_FUNLOCKFILE */
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if getcwd works, but with shorter paths than is generally
+   tested with the replacement. */
+/* #undef HAVE_GETCWD_SHORTER */
+
+/* Define to 1 if you have the `getdelim' function. */
+#define HAVE_GETDELIM 1
+
+/* Define to 1 if you have the `getdtablesize' function. */
+#define HAVE_GETDTABLESIZE 1
+
+/* Define to 1 if you have the `getexecname' function. */
+/* #undef HAVE_GETEXECNAME */
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#define HAVE_GETOPT_LONG_ONLY 1
+
+/* Define to 1 if the system has the 'getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getprogname' function. */
+/* #undef HAVE_GETPROGNAME */
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+/* #undef HAVE_GETTEXT */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define if you have the iconv() function and it works. */
+#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#define HAVE_ICONV_H 1
+
+/* Define to 1 if the compiler supports one of the keywords 'inline',
+   '__inline__', '__inline' and effectively inlines functions marked as such.
+   */
+#define HAVE_INLINE 1
+
+/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
+#define HAVE_INTMAX_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
+   declares uintmax_t. */
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+
+/* Define to 1 if you have the `isascii' function. */
+#define HAVE_ISASCII 1
+
+/* Define if the isnan(double) function is available in libc. */
+#define HAVE_ISNAND_IN_LIBC 1
+
+/* Define if the isnan(float) function is available in libc. */
+/* #undef HAVE_ISNANF_IN_LIBC */
+
+/* Define if the isnan(long double) function is available in libc. */
+#define HAVE_ISNANL_IN_LIBC 1
+
+/* Define to 1 if you have the `iswblank' function. */
+#define HAVE_ISWBLANK 1
+
+/* Define to 1 if you have the `iswcntrl' function. */
+#define HAVE_ISWCNTRL 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#define HAVE_LANGINFO_CODESET 1
+
+/* Define if the ldexpl() function is available. */
+#define HAVE_LDEXPL 1
+
+/* Define if the ldexpl function is available in libc. */
+#define HAVE_LDEXPL_IN_LIBC 1
+
+/* Define if the ldexp function is available in libc. */
+#define HAVE_LDEXP_IN_LIBC 1
+
+/* Define if you have the libtextstyle library. */
+/* #undef HAVE_LIBTEXTSTYLE */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `link' function. */
+#define HAVE_LINK 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if the system has the type 'long long int'. */
+#define HAVE_LONG_LONG_INT 1
+
+/* Define to 1 if you have the `lstat' function. */
+#define HAVE_LSTAT 1
+
+/* Define to 1 if you have the <mach-o/dyld.h> header file. */
+/* #undef HAVE_MACH_O_DYLD_H */
+
+/* Define if malloc, realloc, and calloc set errno on allocation failure. */
+#define HAVE_MALLOC_POSIX 1
+
+/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
+   config.h and <sys/mman.h>. */
+#define HAVE_MAP_ANONYMOUS 1
+
+/* Define to 1 if you have the <math.h> header file. */
+#define HAVE_MATH_H 1
+
+/* Define to 1 if you have the `mbrtowc' function. */
+#define HAVE_MBRTOWC 1
+
+/* Define to 1 if you have the `mbsinit' function. */
+#define HAVE_MBSINIT 1
+
+/* Define to 1 if <wchar.h> declares mbstate_t. */
+#define HAVE_MBSTATE_T 1
+
+/* Define to 1 if you have the `mempcpy' function. */
+#define HAVE_MEMPCPY 1
+
+/* Define to 1 if you have the `memrchr' function. */
+/* #undef HAVE_MEMRCHR */
+
+/* Define to 1 if you have the `microuptime' function. */
+/* #undef HAVE_MICROUPTIME */
+
+/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+   when it succeeds. */
+#define HAVE_MINIMALLY_WORKING_GETCWD 1
+
+/* Define to 1 if you have the <minix/config.h> header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define to 1 if <limits.h> defines the MIN and MAX macros. */
+/* #undef HAVE_MINMAX_IN_LIMITS_H */
+
+/* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */
+#define HAVE_MINMAX_IN_SYS_PARAM_H 1
+
+/* Define to 1 if you have the `mprotect' function. */
+#define HAVE_MPROTECT 1
+
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+   concept. */
+/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */
+
+/* Define to 1 if you have the `nanouptime' function. */
+/* #undef HAVE_NANOUPTIME */
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+/* #undef HAVE_NL_LANGINFO */
+
+/* Define to 1 if the system has obstacks that work with any size object. */
+/* #undef HAVE_OBSTACK */
+
+/* Define to 1 if you have the `obstack_printf' function. */
+#define HAVE_OBSTACK_PRINTF 1
+
+/* Define to 1 if you have the `openat' function. */
+#define HAVE_OPENAT 1
+
+/* Define to 1 if you have the `opendir' function. */
+/* #undef HAVE_OPENDIR */
+
+/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't,
+   setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+/* #undef HAVE_PARTLY_WORKING_GETCWD */
+
+/* Define to 1 if you have the <paths.h> header file. */
+#define HAVE_PATHS_H 1
+
+/* Define to 1 if you have the `pipe' function. */
+#define HAVE_PIPE 1
+
+/* Define to 1 if you have the `pipe2' function. */
+#define HAVE_PIPE2 1
+
+/* Define to 1 if you have the `posix_spawn' function. */
+#define HAVE_POSIX_SPAWN 1
+
+/* Define to 1 if the system has the type `posix_spawnattr_t'. */
+#define HAVE_POSIX_SPAWNATTR_T 1
+
+/* Define to 1 if you have the `posix_spawn_file_actions_addchdir' function.
+   */
+/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR */
+
+/* Define to 1 if you have the `posix_spawn_file_actions_addchdir_np'
+   function. */
+/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP */
+
+/* Define to 1 if the system has the type `posix_spawn_file_actions_t'. */
+#define HAVE_POSIX_SPAWN_FILE_ACTIONS_T 1
+
+/* Define if you have the <pthread.h> header and the POSIX threads API. */
+#define HAVE_PTHREAD_API 1
+
+/* Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE. */
+#define HAVE_PTHREAD_MUTEX_RECURSIVE 1
+
+/* Define if the POSIX multithreading library has read/write locks. */
+#define HAVE_PTHREAD_RWLOCK 1
+
+/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a
+   reader. */
+/* #undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER */
+
+/* Define to 1 if you have the `raise' function. */
+#define HAVE_RAISE 1
+
+/* Define to 1 if you have the `rawmemchr' function. */
+#define HAVE_RAWMEMCHR 1
+
+/* Define to 1 if you have the `readdir' function. */
+/* #undef HAVE_READDIR */
+
+/* Define if you have the readline library. */
+/* #undef HAVE_READLINE */
+
+/* Define to 1 if you have the <readline/history.h> header file. */
+/* #undef HAVE_READLINE_HISTORY_H */
+
+/* Define to 1 if you have the <readline/readline.h> header file. */
+/* #undef HAVE_READLINE_READLINE_H */
+
+/* Define to 1 if you have the `readlink' function. */
+#define HAVE_READLINK 1
+
+/* Define to 1 if you have the `readlinkat' function. */
+#define HAVE_READLINKAT 1
+
+/* Define to 1 if you have the `reallocarray' function. */
+#define HAVE_REALLOCARRAY 1
+
+/* Define to 1 if you have the `realpath' function. */
+#define HAVE_REALPATH 1
+
+/* Define to 1 if you have the `rewinddir' function. */
+/* #undef HAVE_REWINDDIR */
+
+/* Define to 1 if 'long double' and 'double' have the same representation. */
+/* #undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE */
+
+/* Define to 1 if you have the <sched.h> header file. */
+#define HAVE_SCHED_H 1
+
+/* Define to 1 if you have the `sched_setparam' function. */
+#define HAVE_SCHED_SETPARAM 1
+
+/* Define to 1 if you have the `sched_setscheduler' function. */
+#define HAVE_SCHED_SETSCHEDULER 1
+
+/* Define to 1 if you have the <sdkddkver.h> header file. */
+/* #undef HAVE_SDKDDKVER_H */
+
+/* Define to 1 if you have the <search.h> header file. */
+#define HAVE_SEARCH_H 1
+
+/* Define to 1 if you have the `setdtablesize' function. */
+/* #undef HAVE_SETDTABLESIZE */
+
+/* Define to 1 if you have the `setegid' function. */
+#define HAVE_SETEGID 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `seteuid' function. */
+#define HAVE_SETEUID 1
+
+/* Define to 1 if you have the `setlocale' function. */
+#define HAVE_SETLOCALE 1
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if you have the `sigaltstack' function. */
+#define HAVE_SIGALTSTACK 1
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+/* #undef HAVE_SIGINFO_T */
+
+/* Define to 1 if you have the `siginterrupt' function. */
+#define HAVE_SIGINTERRUPT 1
+
+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_SIG_ATOMIC_T */
+
+/* Define to 1 if 'wchar_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WCHAR_T */
+
+/* Define to 1 if 'wint_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WINT_T */
+
+/* Define to 1 if the system has the type `sigset_t'. */
+#define HAVE_SIGSET_T 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define if the return value of the snprintf function is the number of of
+   bytes (excluding the terminating NUL) that would have been produced if the
+   buffer had been large enough. */
+#define HAVE_SNPRINTF_RETVAL_C99 1
+
+/* Define if the string produced by the snprintf function is always NUL
+   terminated. */
+#define HAVE_SNPRINTF_TRUNCATION_C99 1
+
+/* Define to 1 if you have the <spawn.h> header file. */
+#define HAVE_SPAWN_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
+   uintmax_t. */
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+#define HAVE_STDIO_EXT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
+#define HAVE_STPCPY 1
+
+/* Define if you have the stpncpy() function and it works. */
+#define HAVE_STPNCPY 1
+
+/* Define to 1 if you have the `strchrnul' function. */
+#define HAVE_STRCHRNUL 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
+#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1
+
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */
+
+/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC */
+
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */
+
+/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */
+
+/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */
+
+/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC */
+
+/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */
+
+/* Define to 1 if the system has the type `struct tms'. */
+#define HAVE_STRUCT_TMS 1
+
+/* Define to 1 if you have the `strverscmp' function. */
+#define HAVE_STRVERSCMP 1
+
+/* Define to 1 if you have the `symlink' function. */
+#define HAVE_SYMLINK 1
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+/* #undef HAVE_SYS_BITYPES_H */
+
+/* Define to 1 if you have the <sys/cdefs.h> header file. */
+#define HAVE_SYS_CDEFS_H 1
+
+/* Define to 1 if you have the <sys/inttypes.h> header file. */
+/* #undef HAVE_SYS_INTTYPES_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/single_threaded.h> header file. */
+/* #undef HAVE_SYS_SINGLE_THREADED_H */
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#define HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `tcdrain' function. */
+#define HAVE_TCDRAIN 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define to 1 if you have the `thrd_create' function. */
+/* #undef HAVE_THRD_CREATE */
+
+/* Define to 1 if you have the <threads.h> header file. */
+#define HAVE_THREADS_H 1
+
+/* Define to 1 if you have the `towlower' function. */
+#define HAVE_TOWLOWER 1
+
+/* Define to 1 if you have the `tsearch' function. */
+#define HAVE_TSEARCH 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unsetenv' function. */
+#define HAVE_UNSETENV 1
+
+/* Define to 1 if the system has the type 'unsigned long long int'. */
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+
+/* Define if you have a global __progname variable */
+/* #undef HAVE_VAR___PROGNAME */
+
+/* Define to 1 if you have the `vasnprintf' function. */
+/* #undef HAVE_VASNPRINTF */
+
+/* Define to 1 if you have the `vasprintf' function. */
+#define HAVE_VASPRINTF 1
+
+/* Define to 1 if you have the `vfork' function. */
+#define HAVE_VFORK 1
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+   declarations. */
+/* #undef HAVE_VISIBILITY */
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `waitid' function. */
+#define HAVE_WAITID 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define if you have the 'wchar_t' type. */
+#define HAVE_WCHAR_T 1
+
+/* Define to 1 if you have the `wcrtomb' function. */
+#define HAVE_WCRTOMB 1
+
+/* Define to 1 if you have the `wcslen' function. */
+#define HAVE_WCSLEN 1
+
+/* Define to 1 if you have the `wcsnlen' function. */
+#define HAVE_WCSNLEN 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#define HAVE_WCTYPE_H 1
+
+/* Define to 1 if you have the `wcwidth' function. */
+#define HAVE_WCWIDTH 1
+
+/* Define to 1 if the compiler and linker support weak declarations of
+   symbols. */
+#define HAVE_WEAK_SYMBOLS 1
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define if you have the 'wint_t' type. */
+#define HAVE_WINT_T 1
+
+/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+   7.1. */
+/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */
+
+/* Define to 1 if O_NOATIME works. */
+#define HAVE_WORKING_O_NOATIME 1
+
+/* Define to 1 if O_NOFOLLOW works. */
+#define HAVE_WORKING_O_NOFOLLOW 1
+
+/* Define to 1 if you have the <xlocale.h> header file. */
+/* #undef HAVE_XLOCALE_H */
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define to 1 if you have the `_NSGetExecutablePath' function. */
+/* #undef HAVE__NSGETEXECUTABLEPATH */
+
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+/* #undef HAVE__SET_INVALID_PARAMETER_HANDLER */
+
+/* Define to 1 if the compiler supports __builtin_expect,
+   and to 2 if <builtins.h> does.  */
+#define HAVE___BUILTIN_EXPECT 1
+#ifndef HAVE___BUILTIN_EXPECT
+# define __builtin_expect(e, c) (e)
+#elif HAVE___BUILTIN_EXPECT == 2
+# include <builtins.h>
+#endif
+
+
+/* Define to 1 if you have the `__fseterr' function. */
+/* #undef HAVE___FSETERR */
+
+/* Define to 1 if the compiler supports the keyword '__inline'. */
+#define HAVE___INLINE 1
+
+/* Define to 1 if you have the `__xpg_strerror_r' function. */
+#define HAVE___XPG_STRERROR_R 1
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST
+
+/* Define to a symbolic name denoting the flavor of iconv_open()
+   implementation. */
+/* #undef ICONV_FLAVOR */
+
+/* Define to the value of ${prefix}, as a string. */
+#define INSTALLPREFIX "/usr/local"
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'long double'. */
+/* #undef LDBL_EXPBIT0_BIT */
+
+/* Define as the word index where to find the exponent of 'long double'. */
+/* #undef LDBL_EXPBIT0_WORD */
+
+/* Define as the bit index in the word where to find the sign of 'long
+   double'. */
+/* #undef LDBL_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'long double'. */
+/* #undef LDBL_SIGNBIT_WORD */
+
+/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
+   slash. */
+#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
+
+/* Define to the GNU M4 executable name. */
+#define M4 "/usr/bin/m4"
+
+/* Define to "-g" if GNU M4 supports -g, otherwise to "". */
+#define M4_GNU_OPTION "--gnu"
+
+/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
+#define MALLOC_0_IS_NONNULL 1
+
+/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
+/* #undef MAP_ANONYMOUS */
+
+/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
+   */
+/* #undef MBRTOWC_EMPTY_INPUT_BUG */
+
+/* Define if the mbrtowc function may signal encoding errors in the C locale.
+   */
+#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1
+
+/* Define if the mbrtowc function has the NULL pwc argument bug. */
+/* #undef MBRTOWC_NULL_ARG1_BUG */
+
+/* Define if the mbrtowc function has the NULL string argument bug. */
+/* #undef MBRTOWC_NULL_ARG2_BUG */
+
+/* Define if the mbrtowc function does not return 0 for a NUL character. */
+/* #undef MBRTOWC_NUL_RETVAL_BUG */
+
+/* Define if the mbrtowc function returns a wrong return value. */
+/* #undef MBRTOWC_RETVAL_BUG */
+
+/* Define if the mbrtowc function stores a wide character when reporting
+   incomplete input. */
+/* #undef MBRTOWC_STORES_INCOMPLETE_BUG */
+
+/* Use GNU style printf and scanf.  */
+#ifndef __USE_MINGW_ANSI_STDIO
+# define __USE_MINGW_ANSI_STDIO 1
+#endif
+
+
+/* Define to 1 on musl libc. */
+/* #undef MUSL_LIBC */
+
+/* Define to 1 if assertions should be disabled. */
+/* #undef NDEBUG */
+
+/* Define if the vasnprintf implementation needs special code for the 'a' and
+   'A' directives. */
+/* #undef NEED_PRINTF_DIRECTIVE_A */
+
+/* Define if the vasnprintf implementation needs special code for the 'F'
+   directive. */
+/* #undef NEED_PRINTF_DIRECTIVE_F */
+
+/* Define if the vasnprintf implementation needs special code for the 'ls'
+   directive. */
+/* #undef NEED_PRINTF_DIRECTIVE_LS */
+
+/* Define if the vasnprintf implementation needs special code for 'double'
+   arguments. */
+/* #undef NEED_PRINTF_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for surviving
+   out-of-memory conditions. */
+/* #undef NEED_PRINTF_ENOMEM */
+
+/* Define if the vasnprintf implementation needs special code for the ' flag.
+   */
+/* #undef NEED_PRINTF_FLAG_GROUPING */
+
+/* Define if the vasnprintf implementation needs special code for the '-'
+   flag. */
+/* #undef NEED_PRINTF_FLAG_LEFTADJUST */
+
+/* Define if the vasnprintf implementation needs special code for the 0 flag.
+   */
+/* #undef NEED_PRINTF_FLAG_ZERO */
+
+/* Define if the vasnprintf implementation needs special code for infinite
+   'double' arguments. */
+/* #undef NEED_PRINTF_INFINITE_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for infinite
+   'long double' arguments. */
+/* #undef NEED_PRINTF_INFINITE_LONG_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for 'long
+   double' arguments. */
+/* #undef NEED_PRINTF_LONG_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for supporting
+   large precisions without arbitrary bounds. */
+/* #undef NEED_PRINTF_UNBOUNDED_PRECISION */
+
+/* Define to 1 if open() fails to recognize a trailing slash. */
+/* #undef OPEN_TRAILING_SLASH_BUG */
+
+/* Name of package */
+#define PACKAGE "bison"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "bug-bison@gnu.org"
+
+/* The copyright year for this package */
+#define PACKAGE_COPYRIGHT_YEAR 2021
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "GNU Bison"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "GNU Bison 3.8.2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "bison"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://www.gnu.org/software/bison/"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "3.8.2"
+
+/* Define to the type that is the result of default argument promotions of
+   type mode_t. */
+#define PROMOTED_MODE_T mode_t
+
+/* Define if the pthread_in_use() detection is hard. */
+/* #undef PTHREAD_IN_USE_DETECTION_HARD */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'ptrdiff_t'. */
+/* #undef PTRDIFF_T_SUFFIX */
+
+/* Define to 1 if readlink fails to recognize a trailing slash. */
+/* #undef READLINK_TRAILING_SLASH_BUG */
+
+/* Define to 1 if readlink sets errno instead of truncating a too-long link.
+   */
+/* #undef READLINK_TRUNCATE_BUG */
+
+/* Define if rename does not work when the destination file exists, as on
+   Cygwin 1.5 or Windows. */
+/* #undef RENAME_DEST_EXISTS_BUG */
+
+/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
+   Cygwin 1.5. */
+/* #undef RENAME_HARD_LINK_BUG */
+
+/* Define if rename does not correctly handle slashes on the destination
+   argument, such as on Solaris 11 or NetBSD 1.6. */
+/* #undef RENAME_TRAILING_SLASH_DEST_BUG */
+
+/* Define if rename does not correctly handle slashes on the source argument,
+   such as on Solaris 9 or cygwin 1.5. */
+/* #undef RENAME_TRAILING_SLASH_SOURCE_BUG */
+
+/* Define to 1 if gnulib's dirfd() replacement is used. */
+/* #undef REPLACE_DIRFD */
+
+/* Define to 1 if gnulib's fchdir() replacement is used. */
+/* #undef REPLACE_FCHDIR */
+
+/* Define if fprintf is overridden by a POSIX compliant gnulib implementation.
+   */
+/* #undef REPLACE_FPRINTF_POSIX */
+
+/* Define to 1 if stat needs help when passed a file name with a trailing
+   slash */
+/* #undef REPLACE_FUNC_STAT_FILE */
+
+/* Define to 1 if open() should work around the inability to open a directory.
+   */
+/* #undef REPLACE_OPEN_DIRECTORY */
+
+/* Define if gnulib uses its own posix_spawn and posix_spawnp functions. */
+#define REPLACE_POSIX_SPAWN 1
+
+/* Define if printf is overridden by a POSIX compliant gnulib implementation.
+   */
+/* #undef REPLACE_PRINTF_POSIX */
+
+/* Define to 1 if strerror(0) does not return a message implying success. */
+/* #undef REPLACE_STRERROR_0 */
+
+/* Define if vasnprintf exists but is overridden by gnulib. */
+/* #undef REPLACE_VASNPRINTF */
+
+/* Define if vfprintf is overridden by a POSIX compliant gnulib
+   implementation. */
+/* #undef REPLACE_VFPRINTF_POSIX */
+
+/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */
+#define SETLOCALE_NULL_ALL_MTSAFE 1
+
+/* Define to 1 if setlocale (category, NULL) is multithread-safe. */
+#define SETLOCALE_NULL_ONE_MTSAFE 1
+
+/* File name of the Bourne shell.  */
+#if (defined _WIN32 && !defined __CYGWIN__) || defined __CYGWIN__ || defined __ANDROID__
+/* Omit the directory part because
+   - For native Windows programs in a Cygwin environment, the Cygwin mounts
+     are not visible.
+   - For 32-bit Cygwin programs in a 64-bit Cygwin environment, the Cygwin
+     mounts are not visible.
+   - On Android, /bin/sh does not exist. It's /system/bin/sh instead.  */
+# define BOURNE_SHELL "sh"
+#else
+# define BOURNE_SHELL "/bin/sh"
+#endif
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'sig_atomic_t'. */
+/* #undef SIG_ATOMIC_T_SUFFIX */
+
+/* Define as the maximum value of type 'size_t', if the system doesn't define
+   it. */
+#ifndef SIZE_MAX
+/* # undef SIZE_MAX */
+#endif
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'size_t'. */
+/* #undef SIZE_T_SUFFIX */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at runtime.
+	STACK_DIRECTION > 0 => grows toward higher addresses
+	STACK_DIRECTION < 0 => grows toward lower addresses
+	STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if strerror_r returns char *. */
+#define STRERROR_R_CHAR_P 1
+
+/* Define to 1 if the type of the st_atim member of a struct stat is struct
+   timespec. */
+/* #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC */
+
+/* Define to 1 if unlink() on a parent directory may succeed */
+/* #undef UNLINK_PARENT_BUG */
+
+/* Define to the prefix of C symbols at the assembler and linker level, either
+   an underscore or empty. */
+#define USER_LABEL_PREFIX
+
+/* Define if the combination of the ISO C and POSIX multithreading APIs can be
+   used. */
+/* #undef USE_ISOC_AND_POSIX_THREADS */
+
+/* Define if the ISO C multithreading library can be used. */
+/* #undef USE_ISOC_THREADS */
+
+/* Define if the POSIX multithreading library can be used. */
+#define USE_POSIX_THREADS 1
+
+/* Define if references to the POSIX multithreading library are satisfied by
+   libc. */
+/* #undef USE_POSIX_THREADS_FROM_LIBC */
+
+/* Define if references to the POSIX multithreading library should be made
+   weak. */
+#define USE_POSIX_THREADS_WEAK 1
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS.  */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+   with -lxnet on HP-UX 11.11.  */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# define _HPUX_ALT_XOPEN_SOCKET_API 1
+#endif
+/* Identify the host operating system as Minix.
+   This macro does not affect the system headers' behavior.
+   A future release of Autoconf may stop defining this macro.  */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+   Enable NetBSD compatibility extensions on Minix.  */
+#ifndef _NETBSD_SOURCE
+# define _NETBSD_SOURCE 1
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+   Oddly enough, this does nothing on OpenBSD.  */
+#ifndef _OPENBSD_SOURCE
+# define _OPENBSD_SOURCE 1
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions.  Define to 500 only if necessary
+   to make mbstate_t available.  */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+
+/* An alias of GNULIB_STDIO_SINGLE_THREAD. */
+#define USE_UNLOCKED_IO GNULIB_STDIO_SINGLE_THREAD
+
+/* Define if the native Windows multithreading API can be used. */
+/* #undef USE_WINDOWS_THREADS */
+
+/* Version number of package */
+#define VERSION "3.8.2"
+
+/* Define to 1 if unsetenv returns void instead of int. */
+/* #undef VOID_UNSETENV */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wchar_t'. */
+/* #undef WCHAR_T_SUFFIX */
+
+/* Define if sys/ptem.h is required for struct winsize. */
+/* #undef WINSIZE_IN_PTEM */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wint_t'. */
+/* #undef WINT_T_SUFFIX */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 to internationalize bison runtime messages. */
+/* #undef YYENABLE_NLS */
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+   `char[]'. */
+/* #undef YYTEXT_POINTER */
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* True if the compiler says it groks GNU C version MAJOR.MINOR.  */
+#if defined __GNUC__ && defined __GNUC_MINOR__
+# define _GL_GNUC_PREREQ(major, minor) \
+    ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
+#else
+# define _GL_GNUC_PREREQ(major, minor) 0
+#endif
+
+
+/* Define to enable the declarations of ISO C 11 types and functions. */
+/* #undef _ISOC11_SOURCE */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 on Solaris. */
+/* #undef _LCONV_C99 */
+
+/* The _Noreturn keyword of C11.  */
+#ifndef _Noreturn
+# if (defined __cplusplus \
+      && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
+          || (defined _MSC_VER && 1900 <= _MSC_VER)) \
+      && 0)
+    /* [[noreturn]] is not practically usable, because with it the syntax
+         extern _Noreturn void func (...);
+       would not be valid; such a declaration would only be valid with 'extern'
+       and '_Noreturn' swapped, or without the 'extern' keyword.  However, some
+       AIX system header files and several gnulib header files use precisely
+       this syntax with 'extern'.  */
+#  define _Noreturn [[noreturn]]
+# elif ((!defined __cplusplus || defined __clang__) \
+        && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+            || (!defined __STRICT_ANSI__ \
+                && (_GL_GNUC_PREREQ (4, 7) \
+                    || (defined __apple_build_version__ \
+                        ? 6000000 <= __apple_build_version__ \
+                        : 3 < __clang_major__ + (5 <= __clang_minor__))))))
+   /* _Noreturn works as-is.  */
+# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+
+
+/* Number of bits in a timestamp, on hosts where this is settable. */
+/* #undef _TIME_BITS */
+
+/* For standard stat data types on VMS. */
+#define _USE_STD_STAT 1
+
+/* Define to rpl_ if the getopt replacement functions and variables should be
+   used. */
+/* #undef __GETOPT_PREFIX */
+
+/* For 64-bit time_t on 32-bit mingw. */
+/* #undef __MINGW_USE_VC2005_COMPAT */
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_CONSTANT_MACROS */
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_LIMIT_MACROS */
+
+/* The _GL_ASYNC_SAFE marker should be attached to functions that are
+   signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
+   invoked from such signal handlers.  Such functions have some restrictions:
+     * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
+       or should be listed as async-signal-safe in POSIX
+       <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
+       section 2.4.3.  Note that malloc(), sprintf(), and fwrite(), in
+       particular, are NOT async-signal-safe.
+     * All memory locations (variables and struct fields) that these functions
+       access must be marked 'volatile'.  This holds for both read and write
+       accesses.  Otherwise the compiler might optimize away stores to and
+       reads from such locations that occur in the program, depending on its
+       data flow analysis.  For example, when the program contains a loop
+       that is intended to inspect a variable set from within a signal handler
+           while (!signal_occurred)
+             ;
+       the compiler is allowed to transform this into an endless loop if the
+       variable 'signal_occurred' is not declared 'volatile'.
+   Additionally, recall that:
+     * A signal handler should not modify errno (except if it is a handler
+       for a fatal signal and ends by raising the same signal again, thus
+       provoking the termination of the process).  If it invokes a function
+       that may clobber errno, it needs to save and restore the value of
+       errno.  */
+#define _GL_ASYNC_SAFE
+
+
+/* Attributes.  */
+#if (defined __has_attribute \
+     && (!defined __clang_minor__ \
+         || 3 < __clang_major__ + (5 <= __clang_minor__)))
+# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
+#else
+# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
+# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
+# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95)
+# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1)
+# define _GL_ATTR_diagnose_if 0
+# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1)
+# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
+# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
+# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
+# ifdef _ICC
+#  define _GL_ATTR_may_alias 0
+# else
+#  define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
+# endif
+# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
+# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
+# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
+# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
+# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
+# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
+# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
+# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
+#endif
+
+#ifdef __has_c_attribute
+# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
+#else
+# define _GL_HAS_C_ATTRIBUTE(attr) 0
+#endif
+
+
+/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
+   is the size of the returned memory block.
+   _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
+   by the Nth argument of the function is the size of the returned memory block.
+ */
+/* Applies to: function, pointer to function, function types.  */
+#if _GL_HAS_ATTRIBUTE (alloc_size)
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+#else
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+#endif
+
+/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
+   function and report an error if it cannot do so.  */
+/* Applies to: function.  */
+#if _GL_HAS_ATTRIBUTE (always_inline)
+# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
+#else
+# define _GL_ATTRIBUTE_ALWAYS_INLINE
+#endif
+
+/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
+    in stack traces when debugging.  The compiler should omit the function from
+    stack traces.  */
+/* Applies to: function.  */
+#if _GL_HAS_ATTRIBUTE (artificial)
+# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
+#else
+# define _GL_ATTRIBUTE_ARTIFICIAL
+#endif
+
+/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed.  */
+/* Applies to: functions.  */
+/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
+   <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
+   Also, Oracle Studio 12.6 requires 'cold' not '__cold__'.  */
+#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
+# ifndef __SUNPRO_C
+#  define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+# else
+#  define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+# endif
+#else
+# define _GL_ATTRIBUTE_COLD
+#endif
+
+/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
+   calls to the function with the same arguments.
+   This attribute is safe for a function that neither depends on nor affects
+   observable state, and always returns exactly once - e.g., does not loop
+   forever, and does not call longjmp.
+   (This attribute is stricter than _GL_ATTRIBUTE_PURE.)  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (const)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.
+   _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#if _GL_GNUC_PREREQ (11, 0)
+# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+#else
+# define _GL_ATTRIBUTE_DEALLOC(f, i)
+#endif
+#define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
+
+/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
+   The compiler may warn if the entity is used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: namespace, class, template specialization.  */
+#if _GL_HAS_C_ATTRIBUTE (deprecated)
+# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
+#elif _GL_HAS_ATTRIBUTE (deprecated)
+# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+#else
+# define _GL_ATTRIBUTE_DEPRECATED
+#endif
+
+/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
+   the function call is not optimized away.
+   _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
+   the function call is not optimized away.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (error)
+# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
+# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
+#elif _GL_HAS_ATTRIBUTE (diagnose_if)
+# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
+# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
+#else
+# define _GL_ATTRIBUTE_ERROR(msg)
+# define _GL_ATTRIBUTE_WARNING(msg)
+#endif
+
+/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
+   visible to debuggers etc., even with '-fwhole-program'.  */
+/* Applies to: functions, variables.  */
+#if _GL_HAS_ATTRIBUTE (externally_visible)
+# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
+#else
+# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+#endif
+
+/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
+   the control flow falls through to the immediately following 'case' or
+   'default' label.  The compiler should not warn in this case.  */
+/* Applies to: Empty statement (;), inside a 'switch' statement.  */
+/* Always expands to something.  */
+#if _GL_HAS_C_ATTRIBUTE (fallthrough)
+# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
+#elif _GL_HAS_ATTRIBUTE (fallthrough)
+# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
+#else
+# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
+   declares that the STRING-INDEXth function argument is a format string of
+   style ARCHETYPE, which is one of:
+     printf, gnu_printf
+     scanf, gnu_scanf,
+     strftime, gnu_strftime,
+     strfmon,
+   or the same thing prefixed and suffixed with '__'.
+   If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
+   are suitable for the format string.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (format)
+# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec)
+#endif
+
+/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
+   compilation unit, it executes code from that unit only by return or by
+   exception handling.  This declaration lets the compiler optimize that unit
+   more aggressively.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (leaf)
+# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
+#else
+# define _GL_ATTRIBUTE_LEAF
+#endif
+
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (malloc)
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC
+#endif
+
+/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
+   same storage as pointers to other types.  Thus this declaration disables
+   strict aliasing optimization.  */
+/* Applies to: types.  */
+/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK.  */
+#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
+# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
+#else
+# define _GL_ATTRIBUTE_MAY_ALIAS
+#endif
+
+/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
+   the entity is not used.  The compiler should not warn if the entity is not
+   used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: class.  */
+/* In C++ and C2x, this is spelled [[__maybe_unused__]].
+   GCC's syntax is __attribute__ ((__unused__)).
+   clang supports both syntaxes.  */
+#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
+# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#else
+# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+#endif
+/* Alternative spelling of this macro, for convenience.  */
+#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
+/* Earlier spellings of this macro.  */
+#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
+
+/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
+   discard the return value.  The compiler may warn if the caller does not use
+   the return value, unless the caller uses something like ignore_value.  */
+/* Applies to: function, enumeration, class.  */
+#if _GL_HAS_C_ATTRIBUTE (nodiscard)
+# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
+# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
+#else
+# define _GL_ATTRIBUTE_NODISCARD
+#endif
+
+/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
+   function.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (noinline)
+# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
+#else
+# define _GL_ATTRIBUTE_NOINLINE
+#endif
+
+/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
+   must not be NULL.
+   _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
+   null.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (nonnull)
+# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
+#else
+# define _GL_ATTRIBUTE_NONNULL(args)
+#endif
+
+/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
+   not meant to be NUL-terminated.  */
+/* Applies to: struct/union members and variables that are arrays of element
+   type '[[un]signed] char'.  */
+#if _GL_HAS_ATTRIBUTE (nonstring)
+# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
+#else
+# define _GL_ATTRIBUTE_NONSTRING
+#endif
+
+/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead.  */
+
+/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
+ */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
+# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
+#else
+# define _GL_ATTRIBUTE_NOTHROW
+#endif
+
+/* _GL_ATTRIBUTE_PACKED declares:
+   For struct members: The member has the smallest possible alignment.
+   For struct, union, class: All members have the smallest possible alignment,
+   minimizing the memory required.  */
+/* Applies to: struct members, struct, union,
+   in C++ also: class.  */
+#if _GL_HAS_ATTRIBUTE (packed)
+# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
+#else
+# define _GL_ATTRIBUTE_PACKED
+#endif
+
+/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
+   calls to the function with the same arguments if observable state is not
+   changed between calls.
+   This attribute is safe for a function that does not affect
+   observable state, and always returns exactly once.
+   (This attribute is looser than _GL_ATTRIBUTE_CONST.)  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (pure)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE
+#endif
+
+/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
+   a non-NULL pointer.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (returns_nonnull)
+# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
+#else
+# define _GL_ATTRIBUTE_RETURNS_NONNULL
+#endif
+
+/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
+   trailing NULL argument.
+   _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
+   _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (sentinel)
+# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
+#else
+# define _GL_ATTRIBUTE_SENTINEL(pos)
+#endif
+
+/* A helper macro.  Don't use it directly.  */
+#if _GL_HAS_ATTRIBUTE (unused)
+# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#else
+# define _GL_ATTRIBUTE_UNUSED
+#endif
+
+
+/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
+   immediately preceding label is not used.  The compiler should not warn
+   if the label is not used.  */
+/* Applies to: label (both in C and C++).  */
+/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
+   syntax.  But clang does.  */
+#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
+# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+
+/* Define as 'access' if you don't have the eaccess() function. */
+/* #undef eaccess */
+
+/* Please see the Gnulib manual for how to use these macros.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Oracle Developer Studio 12.6
+   (Sun C 5.15 SunOS_sparc 2017/05/30).
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions (ISO C 99 section 6.7.4.(3).
+   This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.
+
+   GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+   inline semantics, unless -fgnu89-inline is used.  It defines a macro
+   __GNUC_STDC_INLINE__ to indicate this situation or a macro
+   __GNUC_GNU_INLINE__ to indicate the opposite situation.
+   GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+   semantics but warns, unless -fgnu89-inline is used:
+     warning: C99 inline functions are not supported; using GNU89
+     warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+   It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+ */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !defined __PGI \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE _GL_UNUSED static
+# define _GL_EXTERN_INLINE _GL_UNUSED static
+#endif
+
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+   suppress bogus "no previous prototype for 'FOO'"
+   and "no previous declaration for 'FOO'" diagnostics,
+   when FOO is an inline function in the header; see
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to long or long long if <stdint.h> and <inttypes.h> don't define. */
+/* #undef intmax_t */
+
+/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+   __APPLE__ && __MACH__ test for Mac OS X.
+   __APPLE_CC__ tests for the Apple compiler and its version.
+   __STDC_VERSION__ tests for the C99 mode.  */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif
+
+/* Define to a type if <wchar.h> does not define. */
+/* #undef mbstate_t */
+
+/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where
+   n1 and n2 are expressions without side effects, that evaluate to real
+   numbers (excluding NaN).
+   It returns
+     1  if n1 > n2
+     0  if n1 == n2
+     -1 if n1 < n2
+   The naïve code   (n1 > n2 ? 1 : n1 < n2 ? -1 : 0)  produces a conditional
+   jump with nearly all GCC versions up to GCC 10.
+   This variant     (n1 < n2 ? -1 : n1 > n2)  produces a conditional with many
+   GCC versions up to GCC 9.
+   The better code  (n1 > n2) - (n1 < n2)  from Hacker's Delight § 2-9
+   avoids conditional jumps in all GCC versions >= 3.4.  */
+#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
+
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to the type of st_nlink in struct stat, or a supertype. */
+/* #undef nlink_t */
+
+/* Define as a signed integer type capable of holding a process identifier. */
+/* #undef pid_t */
+
+/* Define as the type of the result of subtracting two pointers, if the system
+   doesn't define it. */
+/* #undef ptrdiff_t */
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+   nothing if this is not supported.  Do not define if restrict is
+   supported only directly.  */
+#define restrict __restrict__
+/* Work around a bug in older versions of Sun C++, which did not
+   #define __restrict__ or support _Restrict or __restrict__
+   even though the corresponding Sun C compiler ended up with
+   "#define restrict _Restrict" or "#define restrict __restrict__"
+   in the previous line.  This workaround can be removed once
+   we assume Oracle Developer Studio 12.5 (2016) or later.  */
+#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define as an integer type suitable for memory locations that can be
+   accessed atomically even in the presence of asynchronous signals. */
+/* #undef sig_atomic_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define as a signed type of the same size as size_t. */
+/* #undef ssize_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+
+  /* This definition is a duplicate of the one in unitypes.h.
+     It is here so that we can cope with an older version of unitypes.h
+     that does not contain this definition and that is pre-installed among
+     the public header files.  */
+  # if defined __restrict \
+       || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
+       || __clang_major__ >= 3
+  #  define _UC_RESTRICT __restrict
+  # elif 199901L <= __STDC_VERSION__ || defined restrict
+  #  define _UC_RESTRICT restrict
+  # else
+  #  define _UC_RESTRICT
+  # endif
diff --git a/modules/bison/3.8.2/overlay/config_macos.bzl b/modules/bison/3.8.2/overlay/config_macos.bzl
new file mode 100644
index 0000000..cba6fb3
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/config_macos.bzl
@@ -0,0 +1,1204 @@
+"""Configuration values"""
+
+AUTOMAKE_VARIABLES = {
+    "@''APPLE_UNIVERSAL_BUILD''@": "0",
+    "@''ASM_SYMBOL_PREFIX''@": "\"_\"",
+    "@''BITSIZEOF_PTRDIFF_T''@": "",
+    "@''BITSIZEOF_SIG_ATOMIC_T''@": "",
+    "@''BITSIZEOF_SIZE_T''@": "",
+    "@''BITSIZEOF_WCHAR_T''@": "",
+    "@''BITSIZEOF_WINT_T''@": "",
+    "@''EMULTIHOP_HIDDEN''@": "",
+    "@''EMULTIHOP_VALUE''@": "",
+    "@''ENOLINK_HIDDEN''@": "",
+    "@''ENOLINK_VALUE''@": "",
+    "@''EOVERFLOW_HIDDEN''@": "",
+    "@''EOVERFLOW_VALUE''@": "",
+    "@''GNULIBHEADERS_OVERRIDE_WINT_T''@": "0",
+    "@''GNULIB_ACCESS''@": "1",
+    "@''GNULIB_ACOSF''@": "0",
+    "@''GNULIB_ACOSL''@": "0",
+    "@''GNULIB_ALIGNED_ALLOC''@": "0",
+    "@''GNULIB_ALPHASORT''@": "0",
+    "@''GNULIB_ASINF''@": "0",
+    "@''GNULIB_ASINL''@": "0",
+    "@''GNULIB_ATAN2F''@": "0",
+    "@''GNULIB_ATANF''@": "0",
+    "@''GNULIB_ATANL''@": "0",
+    "@''GNULIB_ATOLL''@": "0",
+    "@''GNULIB_BTOWC''@": "0",
+    "@''GNULIB_CALLOC_POSIX''@": "1",
+    "@''GNULIB_CANONICALIZE_FILE_NAME''@": "1",
+    "@''GNULIB_CBRT''@": "0",
+    "@''GNULIB_CBRTF''@": "0",
+    "@''GNULIB_CBRTL''@": "0",
+    "@''GNULIB_CEIL''@": "0",
+    "@''GNULIB_CEILF''@": "0",
+    "@''GNULIB_CEILL''@": "0",
+    "@''GNULIB_CHDIR''@": "1",
+    "@''GNULIB_CHOWN''@": "0",
+    "@''GNULIB_CLOSE''@": "1",
+    "@''GNULIB_CLOSEDIR''@": "0",
+    "@''GNULIB_COPYSIGN''@": "0",
+    "@''GNULIB_COPYSIGNF''@": "0",
+    "@''GNULIB_COPYSIGNL''@": "0",
+    "@''GNULIB_COPY_FILE_RANGE''@": "0",
+    "@''GNULIB_COSF''@": "0",
+    "@''GNULIB_COSHF''@": "0",
+    "@''GNULIB_COSL''@": "0",
+    "@''GNULIB_CREAT''@": "0",
+    "@''GNULIB_CTIME''@": "0",
+    "@''GNULIB_DIRFD''@": "0",
+    "@''GNULIB_DPRINTF''@": "0",
+    "@''GNULIB_DUP''@": "0",
+    "@''GNULIB_DUP2''@": "1",
+    "@''GNULIB_DUP3''@": "0",
+    "@''GNULIB_DUPLOCALE''@": "0",
+    "@''GNULIB_ENVIRON''@": "1",
+    "@''GNULIB_EUIDACCESS''@": "0",
+    "@''GNULIB_EXECL''@": "0",
+    "@''GNULIB_EXECLE''@": "0",
+    "@''GNULIB_EXECLP''@": "0",
+    "@''GNULIB_EXECV''@": "0",
+    "@''GNULIB_EXECVE''@": "0",
+    "@''GNULIB_EXECVP''@": "0",
+    "@''GNULIB_EXECVPE''@": "0",
+    "@''GNULIB_EXP2''@": "0",
+    "@''GNULIB_EXP2F''@": "0",
+    "@''GNULIB_EXP2L''@": "0",
+    "@''GNULIB_EXPF''@": "0",
+    "@''GNULIB_EXPL''@": "0",
+    "@''GNULIB_EXPLICIT_BZERO''@": "0",
+    "@''GNULIB_EXPM1''@": "0",
+    "@''GNULIB_EXPM1F''@": "0",
+    "@''GNULIB_EXPM1L''@": "0",
+    "@''GNULIB_FABSF''@": "0",
+    "@''GNULIB_FABSL''@": "0",
+    "@''GNULIB_FACCESSAT''@": "0",
+    "@''GNULIB_FCHDIR''@": "0",
+    "@''GNULIB_FCHMODAT''@": "0",
+    "@''GNULIB_FCHOWNAT''@": "0",
+    "@''GNULIB_FCLOSE''@": "0",
+    "@''GNULIB_FCNTL''@": "1",
+    "@''GNULIB_FDATASYNC''@": "0",
+    "@''GNULIB_FDOPEN''@": "0",
+    "@''GNULIB_FDOPENDIR''@": "0",
+    "@''GNULIB_FFLUSH''@": "0",
+    "@''GNULIB_FFS''@": "0",
+    "@''GNULIB_FFSL''@": "1",
+    "@''GNULIB_FFSLL''@": "0",
+    "@''GNULIB_FGETC''@": "1",
+    "@''GNULIB_FGETS''@": "1",
+    "@''GNULIB_FLOOR''@": "0",
+    "@''GNULIB_FLOORF''@": "0",
+    "@''GNULIB_FLOORL''@": "0",
+    "@''GNULIB_FMA''@": "0",
+    "@''GNULIB_FMAF''@": "0",
+    "@''GNULIB_FMAL''@": "0",
+    "@''GNULIB_FMOD''@": "0",
+    "@''GNULIB_FMODF''@": "0",
+    "@''GNULIB_FMODL''@": "0",
+    "@''GNULIB_FOPEN''@": "1",
+    "@''GNULIB_FPRINTF''@": "1",
+    "@''GNULIB_FPRINTF_POSIX''@": "1",
+    "@''GNULIB_FPURGE''@": "0",
+    "@''GNULIB_FPUTC''@": "1",
+    "@''GNULIB_FPUTS''@": "1",
+    "@''GNULIB_FREAD''@": "1",
+    "@''GNULIB_FREELOCALE''@": "",
+    "@''GNULIB_FREE_POSIX''@": "1",
+    "@''GNULIB_FREOPEN''@": "0",
+    "@''GNULIB_FREXP''@": "1",
+    "@''GNULIB_FREXPF''@": "0",
+    "@''GNULIB_FREXPL''@": "1",
+    "@''GNULIB_FSCANF''@": "1",
+    "@''GNULIB_FSEEK''@": "0",
+    "@''GNULIB_FSEEKO''@": "0",
+    "@''GNULIB_FSTAT''@": "1",
+    "@''GNULIB_FSTATAT''@": "0",
+    "@''GNULIB_FSYNC''@": "1",
+    "@''GNULIB_FTELL''@": "0",
+    "@''GNULIB_FTELLO''@": "0",
+    "@''GNULIB_FTRUNCATE''@": "0",
+    "@''GNULIB_FUTIMENS''@": "0",
+    "@''GNULIB_FWRITE''@": "1",
+    "@''GNULIB_GETC''@": "1",
+    "@''GNULIB_GETCHAR''@": "1",
+    "@''GNULIB_GETCWD''@": "1",
+    "@''GNULIB_GETDELIM''@": "0",
+    "@''GNULIB_GETDOMAINNAME''@": "0",
+    "@''GNULIB_GETDTABLESIZE''@": "1",
+    "@''GNULIB_GETENTROPY''@": "0",
+    "@''GNULIB_GETGROUPS''@": "0",
+    "@''GNULIB_GETHOSTNAME''@": "0",
+    "@''GNULIB_GETLINE''@": "0",
+    "@''GNULIB_GETLOADAVG''@": "0",
+    "@''GNULIB_GETLOGIN''@": "0",
+    "@''GNULIB_GETLOGIN_R''@": "0",
+    "@''GNULIB_GETOPT_POSIX''@": "1",
+    "@''GNULIB_GETPAGESIZE''@": "0",
+    "@''GNULIB_GETPASS''@": "0",
+    "@''GNULIB_GETRUSAGE''@": "1",
+    "@''GNULIB_GETSUBOPT''@": "0",
+    "@''GNULIB_GETTIMEOFDAY''@": "1",
+    "@''GNULIB_GETUMASK''@": "0",
+    "@''GNULIB_GETUSERSHELL''@": "0",
+    "@''GNULIB_GRANTPT''@": "0",
+    "@''GNULIB_GROUP_MEMBER''@": "0",
+    "@''GNULIB_HYPOT''@": "0",
+    "@''GNULIB_HYPOTF''@": "0",
+    "@''GNULIB_HYPOTL''@": "0",
+    "@''GNULIB_ICONV''@": "1",
+    "@''GNULIB_ILOGB''@": "0",
+    "@''GNULIB_ILOGBF''@": "0",
+    "@''GNULIB_ILOGBL''@": "0",
+    "@''GNULIB_IMAXABS''@": "0",
+    "@''GNULIB_IMAXDIV''@": "0",
+    "@''GNULIB_IOCTL''@": "0",
+    "@''GNULIB_ISATTY''@": "0",
+    "@''GNULIB_ISFINITE''@": "0",
+    "@''GNULIB_ISINF''@": "0",
+    "@''GNULIB_ISNAN''@": "1",
+    "@''GNULIB_ISNAND''@": "1",
+    "@''GNULIB_ISNANF''@": "1",
+    "@''GNULIB_ISNANL''@": "1",
+    "@''GNULIB_ISWBLANK''@": "1",
+    "@''GNULIB_ISWCTYPE''@": "0",
+    "@''GNULIB_ISWDIGIT''@": "1",
+    "@''GNULIB_ISWXDIGIT''@": "1",
+    "@''GNULIB_LCHMOD''@": "0",
+    "@''GNULIB_LCHOWN''@": "0",
+    "@''GNULIB_LDEXPF''@": "0",
+    "@''GNULIB_LDEXPL''@": "1",
+    "@''GNULIB_LINK''@": "0",
+    "@''GNULIB_LINKAT''@": "0",
+    "@''GNULIB_LOCALECONV''@": "0",
+    "@''GNULIB_LOCALENAME''@": "0",
+    "@''GNULIB_LOCALTIME''@": "0",
+    "@''GNULIB_LOG''@": "0",
+    "@''GNULIB_LOG10''@": "0",
+    "@''GNULIB_LOG10F''@": "0",
+    "@''GNULIB_LOG10L''@": "0",
+    "@''GNULIB_LOG1P''@": "0",
+    "@''GNULIB_LOG1PF''@": "0",
+    "@''GNULIB_LOG1PL''@": "0",
+    "@''GNULIB_LOG2''@": "0",
+    "@''GNULIB_LOG2F''@": "0",
+    "@''GNULIB_LOG2L''@": "0",
+    "@''GNULIB_LOGB''@": "0",
+    "@''GNULIB_LOGBF''@": "0",
+    "@''GNULIB_LOGBL''@": "0",
+    "@''GNULIB_LOGF''@": "0",
+    "@''GNULIB_LOGL''@": "0",
+    "@''GNULIB_LSEEK''@": "0",
+    "@''GNULIB_LSTAT''@": "1",
+    "@''GNULIB_MALLOC_POSIX''@": "1",
+    "@''GNULIB_MBRLEN''@": "0",
+    "@''GNULIB_MBRTOWC''@": "1",
+    "@''GNULIB_MBSCASECMP''@": "0",
+    "@''GNULIB_MBSCASESTR''@": "0",
+    "@''GNULIB_MBSCHR''@": "0",
+    "@''GNULIB_MBSCSPN''@": "0",
+    "@''GNULIB_MBSINIT''@": "1",
+    "@''GNULIB_MBSLEN''@": "0",
+    "@''GNULIB_MBSNCASECMP''@": "0",
+    "@''GNULIB_MBSNLEN''@": "0",
+    "@''GNULIB_MBSNRTOWCS''@": "0",
+    "@''GNULIB_MBSPBRK''@": "0",
+    "@''GNULIB_MBSPCASECMP''@": "0",
+    "@''GNULIB_MBSRCHR''@": "0",
+    "@''GNULIB_MBSRTOWCS''@": "0",
+    "@''GNULIB_MBSSEP''@": "0",
+    "@''GNULIB_MBSSPN''@": "0",
+    "@''GNULIB_MBSSTR''@": "0",
+    "@''GNULIB_MBSTOK_R''@": "0",
+    "@''GNULIB_MBTOWC''@": "0",
+    "@''GNULIB_MDA_ACCESS''@": "1",
+    "@''GNULIB_MDA_CHDIR''@": "1",
+    "@''GNULIB_MDA_CHMOD''@": "1",
+    "@''GNULIB_MDA_CLOSE''@": "1",
+    "@''GNULIB_MDA_CREAT''@": "1",
+    "@''GNULIB_MDA_DUP''@": "1",
+    "@''GNULIB_MDA_DUP2''@": "1",
+    "@''GNULIB_MDA_ECVT''@": "1",
+    "@''GNULIB_MDA_EXECL''@": "1",
+    "@''GNULIB_MDA_EXECLE''@": "1",
+    "@''GNULIB_MDA_EXECLP''@": "1",
+    "@''GNULIB_MDA_EXECV''@": "1",
+    "@''GNULIB_MDA_EXECVE''@": "1",
+    "@''GNULIB_MDA_EXECVP''@": "1",
+    "@''GNULIB_MDA_EXECVPE''@": "1",
+    "@''GNULIB_MDA_FCLOSEALL''@": "1",
+    "@''GNULIB_MDA_FCVT''@": "1",
+    "@''GNULIB_MDA_FDOPEN''@": "1",
+    "@''GNULIB_MDA_FILENO''@": "1",
+    "@''GNULIB_MDA_GCVT''@": "1",
+    "@''GNULIB_MDA_GETCWD''@": "1",
+    "@''GNULIB_MDA_GETPID''@": "1",
+    "@''GNULIB_MDA_GETW''@": "1",
+    "@''GNULIB_MDA_ISATTY''@": "1",
+    "@''GNULIB_MDA_J0''@": "1",
+    "@''GNULIB_MDA_J1''@": "1",
+    "@''GNULIB_MDA_JN''@": "1",
+    "@''GNULIB_MDA_LSEEK''@": "1",
+    "@''GNULIB_MDA_MEMCCPY''@": "1",
+    "@''GNULIB_MDA_MKDIR''@": "1",
+    "@''GNULIB_MDA_MKTEMP''@": "1",
+    "@''GNULIB_MDA_OPEN''@": "1",
+    "@''GNULIB_MDA_PUTENV''@": "1",
+    "@''GNULIB_MDA_PUTW''@": "1",
+    "@''GNULIB_MDA_READ''@": "1",
+    "@''GNULIB_MDA_RMDIR''@": "1",
+    "@''GNULIB_MDA_STRDUP''@": "1",
+    "@''GNULIB_MDA_SWAB''@": "1",
+    "@''GNULIB_MDA_TEMPNAM''@": "1",
+    "@''GNULIB_MDA_TZSET''@": "1",
+    "@''GNULIB_MDA_UMASK''@": "1",
+    "@''GNULIB_MDA_UNLINK''@": "1",
+    "@''GNULIB_MDA_WCSDUP''@": "1",
+    "@''GNULIB_MDA_WRITE''@": "1",
+    "@''GNULIB_MDA_Y0''@": "1",
+    "@''GNULIB_MDA_Y1''@": "1",
+    "@''GNULIB_MDA_YN''@": "1",
+    "@''GNULIB_MEMCHR''@": "1",
+    "@''GNULIB_MEMMEM''@": "0",
+    "@''GNULIB_MEMPCPY''@": "1",
+    "@''GNULIB_MEMRCHR''@": "0",
+    "@''GNULIB_MKDIR''@": "0",
+    "@''GNULIB_MKDIRAT''@": "0",
+    "@''GNULIB_MKDTEMP''@": "0",
+    "@''GNULIB_MKFIFO''@": "0",
+    "@''GNULIB_MKFIFOAT''@": "0",
+    "@''GNULIB_MKNOD''@": "0",
+    "@''GNULIB_MKNODAT''@": "0",
+    "@''GNULIB_MKOSTEMP''@": "0",
+    "@''GNULIB_MKOSTEMPS''@": "0",
+    "@''GNULIB_MKSTEMP''@": "0",
+    "@''GNULIB_MKSTEMPS''@": "0",
+    "@''GNULIB_MKTIME''@": "0",
+    "@''GNULIB_MODF''@": "0",
+    "@''GNULIB_MODFF''@": "0",
+    "@''GNULIB_MODFL''@": "0",
+    "@''GNULIB_NANOSLEEP''@": "0",
+    "@''GNULIB_NEWLOCALE''@": "",
+    "@''GNULIB_NONBLOCKING''@": "0",
+    "@''GNULIB_OBSTACK_PRINTF''@": "1",
+    "@''GNULIB_OBSTACK_PRINTF_POSIX''@": "0",
+    "@''GNULIB_OPEN''@": "1",
+    "@''GNULIB_OPENAT''@": "0",
+    "@''GNULIB_OPENDIR''@": "0",
+    "@''GNULIB_OVERRIDES_STRUCT_STAT''@": "0",
+    "@''GNULIB_PCLOSE''@": "0",
+    "@''GNULIB_PERROR''@": "1",
+    "@''GNULIB_PIPE''@": "1",
+    "@''GNULIB_PIPE2''@": "1",
+    "@''GNULIB_POPEN''@": "0",
+    "@''GNULIB_POSIX_MEMALIGN''@": "0",
+    "@''GNULIB_POSIX_OPENPT''@": "0",
+    "@''GNULIB_POSIX_SPAWN''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_DESTROY''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_GETFLAGS''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETPGROUP''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_GETSIGMASK''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_INIT''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETFLAGS''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETPGROUP''@": "1",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT''@": "0",
+    "@''GNULIB_POSIX_SPAWNATTR_SETSIGMASK''@": "1",
+    "@''GNULIB_POSIX_SPAWNP''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "0",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY''@": "1",
+    "@''GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT''@": "1",
+    "@''GNULIB_POWF''@": "0",
+    "@''GNULIB_PREAD''@": "0",
+    "@''GNULIB_PRINTF''@": "1",
+    "@''GNULIB_PRINTF_POSIX''@": "1",
+    "@''GNULIB_PTHREAD_SIGMASK''@": "0",
+    "@''GNULIB_PTSNAME''@": "0",
+    "@''GNULIB_PTSNAME_R''@": "0",
+    "@''GNULIB_PUTC''@": "1",
+    "@''GNULIB_PUTCHAR''@": "1",
+    "@''GNULIB_PUTENV''@": "0",
+    "@''GNULIB_PUTS''@": "1",
+    "@''GNULIB_PWRITE''@": "0",
+    "@''GNULIB_QSORT_R''@": "0",
+    "@''GNULIB_RAISE''@": "1",
+    "@''GNULIB_RANDOM''@": "0",
+    "@''GNULIB_RANDOM_R''@": "0",
+    "@''GNULIB_RAWMEMCHR''@": "1",
+    "@''GNULIB_READ''@": "0",
+    "@''GNULIB_READDIR''@": "0",
+    "@''GNULIB_READLINK''@": "1",
+    "@''GNULIB_READLINKAT''@": "0",
+    "@''GNULIB_REALLOCARRAY''@": "1",
+    "@''GNULIB_REALLOC_POSIX''@": "1",
+    "@''GNULIB_REALPATH''@": "1",
+    "@''GNULIB_REMAINDER''@": "0",
+    "@''GNULIB_REMAINDERF''@": "0",
+    "@''GNULIB_REMAINDERL''@": "0",
+    "@''GNULIB_REMOVE''@": "0",
+    "@''GNULIB_RENAME''@": "1",
+    "@''GNULIB_RENAMEAT''@": "0",
+    "@''GNULIB_REWINDDIR''@": "0",
+    "@''GNULIB_RINT''@": "0",
+    "@''GNULIB_RINTF''@": "0",
+    "@''GNULIB_RINTL''@": "0",
+    "@''GNULIB_RMDIR''@": "1",
+    "@''GNULIB_ROUND''@": "0",
+    "@''GNULIB_ROUNDF''@": "0",
+    "@''GNULIB_ROUNDL''@": "0",
+    "@''GNULIB_RPMATCH''@": "0",
+    "@''GNULIB_SCANDIR''@": "0",
+    "@''GNULIB_SCANF''@": "1",
+    "@''GNULIB_SCHED_YIELD''@": "0",
+    "@''GNULIB_SECURE_GETENV''@": "0",
+    "@''GNULIB_SETENV''@": "0",
+    "@''GNULIB_SETHOSTNAME''@": "0",
+    "@''GNULIB_SETLOCALE''@": "0",
+    "@''GNULIB_SETLOCALE_NULL''@": "0",
+    "@''GNULIB_SIGABBREV_NP''@": "0",
+    "@''GNULIB_SIGACTION''@": "1",
+    "@''GNULIB_SIGDESCR_NP''@": "0",
+    "@''GNULIB_SIGNAL_H_SIGPIPE''@": "0",
+    "@''GNULIB_SIGNBIT''@": "1",
+    "@''GNULIB_SIGPROCMASK''@": "1",
+    "@''GNULIB_SINF''@": "0",
+    "@''GNULIB_SINHF''@": "0",
+    "@''GNULIB_SINL''@": "0",
+    "@''GNULIB_SLEEP''@": "0",
+    "@''GNULIB_SNPRINTF''@": "1",
+    "@''GNULIB_SPRINTF_POSIX''@": "1",
+    "@''GNULIB_SQRTF''@": "0",
+    "@''GNULIB_SQRTL''@": "0",
+    "@''GNULIB_STAT''@": "1",
+    "@''GNULIB_STDIO_H_NONBLOCKING''@": "0",
+    "@''GNULIB_STDIO_H_SIGPIPE''@": "0",
+    "@''GNULIB_STPCPY''@": "1",
+    "@''GNULIB_STPNCPY''@": "1",
+    "@''GNULIB_STRCASESTR''@": "0",
+    "@''GNULIB_STRCHRNUL''@": "1",
+    "@''GNULIB_STRDUP''@": "1",
+    "@''GNULIB_STRERROR''@": "1",
+    "@''GNULIB_STRERRORNAME_NP''@": "0",
+    "@''GNULIB_STRERROR_R''@": "1",
+    "@''GNULIB_STRFTIME''@": "0",
+    "@''GNULIB_STRNCAT''@": "0",
+    "@''GNULIB_STRNDUP''@": "1",
+    "@''GNULIB_STRNLEN''@": "0",
+    "@''GNULIB_STRPBRK''@": "0",
+    "@''GNULIB_STRPTIME''@": "0",
+    "@''GNULIB_STRSEP''@": "0",
+    "@''GNULIB_STRSIGNAL''@": "0",
+    "@''GNULIB_STRSTR''@": "0",
+    "@''GNULIB_STRTOD''@": "1",
+    "@''GNULIB_STRTOIMAX''@": "0",
+    "@''GNULIB_STRTOK_R''@": "0",
+    "@''GNULIB_STRTOL''@": "0",
+    "@''GNULIB_STRTOLD''@": "0",
+    "@''GNULIB_STRTOLL''@": "0",
+    "@''GNULIB_STRTOUL''@": "0",
+    "@''GNULIB_STRTOULL''@": "0",
+    "@''GNULIB_STRTOUMAX''@": "0",
+    "@''GNULIB_STRVERSCMP''@": "1",
+    "@''GNULIB_SYMLINK''@": "0",
+    "@''GNULIB_SYMLINKAT''@": "0",
+    "@''GNULIB_SYSTEM_POSIX''@": "0",
+    "@''GNULIB_TANF''@": "0",
+    "@''GNULIB_TANHF''@": "0",
+    "@''GNULIB_TANL''@": "0",
+    "@''GNULIB_TCGETSID''@": "0",
+    "@''GNULIB_TIMEGM''@": "0",
+    "@''GNULIB_TIMES''@": "0",
+    "@''GNULIB_TIMESPEC_GET''@": "0",
+    "@''GNULIB_TIME_R''@": "0",
+    "@''GNULIB_TIME_RZ''@": "0",
+    "@''GNULIB_TMPFILE''@": "0",
+    "@''GNULIB_TOWCTRANS''@": "0",
+    "@''GNULIB_TRUNC''@": "0",
+    "@''GNULIB_TRUNCATE''@": "0",
+    "@''GNULIB_TRUNCF''@": "0",
+    "@''GNULIB_TRUNCL''@": "0",
+    "@''GNULIB_TTYNAME_R''@": "0",
+    "@''GNULIB_TZSET''@": "0",
+    "@''GNULIB_UNISTD_H_GETOPT''@": "01",
+    "@''GNULIB_UNLINK''@": "1",
+    "@''GNULIB_UNLINKAT''@": "0",
+    "@''GNULIB_UNLOCKPT''@": "0",
+    "@''GNULIB_UNSETENV''@": "1",
+    "@''GNULIB_USLEEP''@": "0",
+    "@''GNULIB_UTIMENSAT''@": "0",
+    "@''GNULIB_VASPRINTF''@": "1",
+    "@''GNULIB_VDPRINTF''@": "0",
+    "@''GNULIB_VFPRINTF''@": "1",
+    "@''GNULIB_VFPRINTF_POSIX''@": "1",
+    "@''GNULIB_VFSCANF''@": "0",
+    "@''GNULIB_VPRINTF''@": "1",
+    "@''GNULIB_VPRINTF_POSIX''@": "0",
+    "@''GNULIB_VSCANF''@": "0",
+    "@''GNULIB_VSNPRINTF''@": "1",
+    "@''GNULIB_VSPRINTF_POSIX''@": "1",
+    "@''GNULIB_WAITPID''@": "1",
+    "@''GNULIB_WCPCPY''@": "0",
+    "@''GNULIB_WCPNCPY''@": "0",
+    "@''GNULIB_WCRTOMB''@": "0",
+    "@''GNULIB_WCSCASECMP''@": "0",
+    "@''GNULIB_WCSCAT''@": "0",
+    "@''GNULIB_WCSCHR''@": "0",
+    "@''GNULIB_WCSCMP''@": "0",
+    "@''GNULIB_WCSCOLL''@": "0",
+    "@''GNULIB_WCSCPY''@": "0",
+    "@''GNULIB_WCSCSPN''@": "0",
+    "@''GNULIB_WCSDUP''@": "0",
+    "@''GNULIB_WCSFTIME''@": "0",
+    "@''GNULIB_WCSLEN''@": "0",
+    "@''GNULIB_WCSNCASECMP''@": "0",
+    "@''GNULIB_WCSNCAT''@": "0",
+    "@''GNULIB_WCSNCMP''@": "0",
+    "@''GNULIB_WCSNCPY''@": "0",
+    "@''GNULIB_WCSNLEN''@": "0",
+    "@''GNULIB_WCSNRTOMBS''@": "0",
+    "@''GNULIB_WCSPBRK''@": "0",
+    "@''GNULIB_WCSRCHR''@": "0",
+    "@''GNULIB_WCSRTOMBS''@": "0",
+    "@''GNULIB_WCSSPN''@": "0",
+    "@''GNULIB_WCSSTR''@": "0",
+    "@''GNULIB_WCSTOK''@": "0",
+    "@''GNULIB_WCSWIDTH''@": "0",
+    "@''GNULIB_WCSXFRM''@": "0",
+    "@''GNULIB_WCTOB''@": "0",
+    "@''GNULIB_WCTOMB''@": "0",
+    "@''GNULIB_WCTRANS''@": "0",
+    "@''GNULIB_WCTYPE''@": "0",
+    "@''GNULIB_WCWIDTH''@": "1",
+    "@''GNULIB_WMEMCHR''@": "0",
+    "@''GNULIB_WMEMCMP''@": "0",
+    "@''GNULIB_WMEMCPY''@": "0",
+    "@''GNULIB_WMEMMOVE''@": "0",
+    "@''GNULIB_WMEMPCPY''@": "0",
+    "@''GNULIB_WMEMSET''@": "0",
+    "@''GNULIB_WRITE''@": "0",
+    "@''GNULIB__EXIT''@": "0",
+    "@''GUARD_PREFIX''@": "",
+    "@''HAVE_ACOSF''@": "1",
+    "@''HAVE_ACOSL''@": "1",
+    "@''HAVE_ALIGNED_ALLOC''@": "1",
+    "@''HAVE_ALLOCA_H''@": "1",
+    "@''HAVE_ALPHASORT''@": "1",
+    "@''HAVE_ASINF''@": "1",
+    "@''HAVE_ASINL''@": "1",
+    "@''HAVE_ATAN2F''@": "1",
+    "@''HAVE_ATANF''@": "1",
+    "@''HAVE_ATANL''@": "1",
+    "@''HAVE_ATOLL''@": "1",
+    "@''HAVE_BTOWC''@": "1",
+    "@''HAVE_C99_STDINT_H''@": "1",
+    "@''HAVE_CANONICALIZE_FILE_NAME''@": "0",
+    "@''HAVE_CBRT''@": "1",
+    "@''HAVE_CHOWN''@": "1",
+    "@''HAVE_CLOSEDIR''@": "1",
+    "@''HAVE_COPYSIGN''@": "1",
+    "@''HAVE_COPYSIGNL''@": "1",
+    "@''HAVE_COPY_FILE_RANGE''@": "1",
+    "@''HAVE_COSF''@": "1",
+    "@''HAVE_COSHF''@": "1",
+    "@''HAVE_COSL''@": "1",
+    "@''HAVE_CRTDEFS_H''@": "0",
+    "@''HAVE_DECL_ACOSL''@": "1",
+    "@''HAVE_DECL_ASINL''@": "1",
+    "@''HAVE_DECL_ATANL''@": "1",
+    "@''HAVE_DECL_CBRTF''@": "1",
+    "@''HAVE_DECL_CBRTL''@": "1",
+    "@''HAVE_DECL_CEILF''@": "1",
+    "@''HAVE_DECL_CEILL''@": "1",
+    "@''HAVE_DECL_COPYSIGNF''@": "1",
+    "@''HAVE_DECL_COSL''@": "1",
+    "@''HAVE_DECL_DIRFD''@": "1",
+    "@''HAVE_DECL_ECVT''@": "1",
+    "@''HAVE_DECL_ENVIRON''@": "0",
+    "@''HAVE_DECL_EXECVPE''@": "0",
+    "@''HAVE_DECL_EXP2''@": "1",
+    "@''HAVE_DECL_EXP2F''@": "1",
+    "@''HAVE_DECL_EXP2L''@": "1",
+    "@''HAVE_DECL_EXPL''@": "1",
+    "@''HAVE_DECL_EXPM1L''@": "1",
+    "@''HAVE_DECL_FCHDIR''@": "1",
+    "@''HAVE_DECL_FCLOSEALL''@": "0",
+    "@''HAVE_DECL_FCVT''@": "1",
+    "@''HAVE_DECL_FDATASYNC''@": "1",
+    "@''HAVE_DECL_FDOPENDIR''@": "1",
+    "@''HAVE_DECL_FLOORF''@": "1",
+    "@''HAVE_DECL_FLOORL''@": "1",
+    "@''HAVE_DECL_FPURGE''@": "1",
+    "@''HAVE_DECL_FREXPL''@": "1",
+    "@''HAVE_DECL_FSEEKO''@": "1",
+    "@''HAVE_DECL_FTELLO''@": "1",
+    "@''HAVE_DECL_GCVT''@": "1",
+    "@''HAVE_DECL_GETDELIM''@": "1",
+    "@''HAVE_DECL_GETDOMAINNAME''@": "1",
+    "@''HAVE_DECL_GETLINE''@": "1",
+    "@''HAVE_DECL_GETLOADAVG''@": "1",
+    "@''HAVE_DECL_GETLOGIN''@": "1",
+    "@''HAVE_DECL_GETLOGIN_R''@": "1",
+    "@''HAVE_DECL_GETPAGESIZE''@": "1",
+    "@''HAVE_DECL_GETUSERSHELL''@": "1",
+    "@''HAVE_DECL_IMAXABS''@": "1",
+    "@''HAVE_DECL_IMAXDIV''@": "1",
+    "@''HAVE_DECL_INITSTATE''@": "1",
+    "@''HAVE_DECL_LDEXPL''@": "1",
+    "@''HAVE_DECL_LOCALTIME_R''@": "1",
+    "@''HAVE_DECL_LOG10L''@": "1",
+    "@''HAVE_DECL_LOG2''@": "1",
+    "@''HAVE_DECL_LOG2F''@": "1",
+    "@''HAVE_DECL_LOG2L''@": "1",
+    "@''HAVE_DECL_LOGB''@": "1",
+    "@''HAVE_DECL_LOGL''@": "1",
+    "@''HAVE_DECL_MEMMEM''@": "1",
+    "@''HAVE_DECL_MEMRCHR''@": "1",
+    "@''HAVE_DECL_OBSTACK_PRINTF''@": "0",
+    "@''HAVE_DECL_REMAINDER''@": "1",
+    "@''HAVE_DECL_REMAINDERL''@": "1",
+    "@''HAVE_DECL_RINTF''@": "1",
+    "@''HAVE_DECL_ROUND''@": "1",
+    "@''HAVE_DECL_ROUNDF''@": "1",
+    "@''HAVE_DECL_ROUNDL''@": "1",
+    "@''HAVE_DECL_SETENV''@": "1",
+    "@''HAVE_DECL_SETHOSTNAME''@": "1",
+    "@''HAVE_DECL_SETSTATE''@": "1",
+    "@''HAVE_DECL_SINL''@": "1",
+    "@''HAVE_DECL_SNPRINTF''@": "1",
+    "@''HAVE_DECL_SQRTL''@": "1",
+    "@''HAVE_DECL_STRDUP''@": "1",
+    "@''HAVE_DECL_STRERROR_R''@": "1",
+    "@''HAVE_DECL_STRNCASECMP''@": "1",
+    "@''HAVE_DECL_STRNDUP''@": "1",
+    "@''HAVE_DECL_STRNLEN''@": "1",
+    "@''HAVE_DECL_STRSIGNAL''@": "1",
+    "@''HAVE_DECL_STRTOIMAX''@": "1",
+    "@''HAVE_DECL_STRTOK_R''@": "1",
+    "@''HAVE_DECL_STRTOUMAX''@": "1",
+    "@''HAVE_DECL_TANL''@": "1",
+    "@''HAVE_DECL_TCGETSID''@": "1",
+    "@''HAVE_DECL_TRUNC''@": "1",
+    "@''HAVE_DECL_TRUNCATE''@": "1",
+    "@''HAVE_DECL_TRUNCF''@": "1",
+    "@''HAVE_DECL_TRUNCL''@": "1",
+    "@''HAVE_DECL_TTYNAME_R''@": "1",
+    "@''HAVE_DECL_UNSETENV''@": "1",
+    "@''HAVE_DECL_VSNPRINTF''@": "1",
+    "@''HAVE_DECL_WCSDUP''@": "1",
+    "@''HAVE_DECL_WCTOB''@": "1",
+    "@''HAVE_DECL_WCWIDTH''@": "1",
+    "@''HAVE_DIRENT_H''@": "1",
+    "@''HAVE_DPRINTF''@": "1",
+    "@''HAVE_DUP3''@": "1",
+    "@''HAVE_DUPLOCALE''@": "1",
+    "@''HAVE_EUIDACCESS''@": "1",
+    "@''HAVE_EXECVPE''@": "1",
+    "@''HAVE_EXPF''@": "1",
+    "@''HAVE_EXPL''@": "1",
+    "@''HAVE_EXPLICIT_BZERO''@": "1",
+    "@''HAVE_EXPM1''@": "1",
+    "@''HAVE_EXPM1F''@": "1",
+    "@''HAVE_FABSF''@": "1",
+    "@''HAVE_FABSL''@": "1",
+    "@''HAVE_FACCESSAT''@": "1",
+    "@''HAVE_FCHDIR''@": "1",
+    "@''HAVE_FCHMODAT''@": "1",
+    "@''HAVE_FCHOWNAT''@": "1",
+    "@''HAVE_FCNTL''@": "1",
+    "@''HAVE_FDATASYNC''@": "1",
+    "@''HAVE_FDOPENDIR''@": "1",
+    "@''HAVE_FEATURES_H''@": "0",
+    "@''HAVE_FFS''@": "1",
+    "@''HAVE_FFSL''@": "1",
+    "@''HAVE_FFSLL''@": "1",
+    "@''HAVE_FMA''@": "1",
+    "@''HAVE_FMAF''@": "1",
+    "@''HAVE_FMAL''@": "1",
+    "@''HAVE_FMODF''@": "1",
+    "@''HAVE_FMODL''@": "1",
+    "@''HAVE_FREELOCALE''@": "1",
+    "@''HAVE_FREXPF''@": "1",
+    "@''HAVE_FSTATAT''@": "1",
+    "@''HAVE_FSYNC''@": "1",
+    "@''HAVE_FTRUNCATE''@": "1",
+    "@''HAVE_FUTIMENS''@": "1",
+    "@''HAVE_GETDTABLESIZE''@": "1",
+    "@''HAVE_GETENTROPY''@": "1",
+    "@''HAVE_GETGROUPS''@": "1",
+    "@''HAVE_GETHOSTNAME''@": "1",
+    "@''HAVE_GETOPT_H''@": "1",
+    "@''HAVE_GETPAGESIZE''@": "1",
+    "@''HAVE_GETPASS''@": "1",
+    "@''HAVE_GETRUSAGE''@": "1",
+    "@''HAVE_GETSUBOPT''@": "1",
+    "@''HAVE_GETTIMEOFDAY''@": "1",
+    "@''HAVE_GETUMASK''@": "1",
+    "@''HAVE_GRANTPT''@": "1",
+    "@''HAVE_GROUP_MEMBER''@": "1",
+    "@''HAVE_HYPOTF''@": "1",
+    "@''HAVE_HYPOTL''@": "1",
+    "@''HAVE_ILOGB''@": "1",
+    "@''HAVE_ILOGBF''@": "1",
+    "@''HAVE_ILOGBL''@": "1",
+    "@''HAVE_IMAXDIV_T''@": "1",
+    "@''HAVE_INITSTATE''@": "1",
+    "@''HAVE_INTTYPES_H''@": "1",
+    "@''HAVE_ISNAND''@": "1",
+    "@''HAVE_ISNANF''@": "1",
+    "@''HAVE_ISNANL''@": "1",
+    "@''HAVE_ISWBLANK''@": "1",
+    "@''HAVE_ISWCNTRL''@": "1",
+    "@''HAVE_LCHMOD''@": "1",
+    "@''HAVE_LCHOWN''@": "1",
+    "@''HAVE_LDEXPF''@": "1",
+    "@''HAVE_LINK''@": "1",
+    "@''HAVE_LINKAT''@": "1",
+    "@''HAVE_LOG10F''@": "1",
+    "@''HAVE_LOG10L''@": "1",
+    "@''HAVE_LOG1P''@": "1",
+    "@''HAVE_LOG1PF''@": "1",
+    "@''HAVE_LOG1PL''@": "1",
+    "@''HAVE_LOGBF''@": "1",
+    "@''HAVE_LOGBL''@": "1",
+    "@''HAVE_LOGF''@": "1",
+    "@''HAVE_LOGL''@": "1",
+    "@''HAVE_LSTAT''@": "1",
+    "@''HAVE_MAX_ALIGN_T''@": "1",
+    "@''HAVE_MBRLEN''@": "1",
+    "@''HAVE_MBRTOWC''@": "1",
+    "@''HAVE_MBSINIT''@": "1",
+    "@''HAVE_MBSLEN''@": "0",
+    "@''HAVE_MBSNRTOWCS''@": "1",
+    "@''HAVE_MBSRTOWCS''@": "1",
+    "@''HAVE_MBTOWC''@": "1",
+    "@''HAVE_MEMPCPY''@": "0",
+    "@''HAVE_MKDIRAT''@": "1",
+    "@''HAVE_MKDTEMP''@": "1",
+    "@''HAVE_MKFIFO''@": "1",
+    "@''HAVE_MKFIFOAT''@": "1",
+    "@''HAVE_MKNOD''@": "1",
+    "@''HAVE_MKNODAT''@": "1",
+    "@''HAVE_MKOSTEMP''@": "1",
+    "@''HAVE_MKOSTEMPS''@": "1",
+    "@''HAVE_MKSTEMP''@": "1",
+    "@''HAVE_MKSTEMPS''@": "1",
+    "@''HAVE_MODFF''@": "1",
+    "@''HAVE_MODFL''@": "1",
+    "@''HAVE_NANOSLEEP''@": "1",
+    "@''HAVE_NEWLOCALE''@": "1",
+    "@''HAVE_OPENAT''@": "1",
+    "@''HAVE_OPENDIR''@": "1",
+    "@''HAVE_OS_H''@": "0",
+    "@''HAVE_PCLOSE''@": "1",
+    "@''HAVE_PIPE''@": "1",
+    "@''HAVE_PIPE2''@": "0",
+    "@''HAVE_POPEN''@": "1",
+    "@''HAVE_POSIX_MEMALIGN''@": "1",
+    "@''HAVE_POSIX_OPENPT''@": "1",
+    "@''HAVE_POSIX_SIGNALBLOCKING''@": "1",
+    "@''HAVE_POSIX_SPAWN''@": "1",
+    "@''HAVE_POSIX_SPAWNATTR_T''@": "1",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "0",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "1",
+    "@''HAVE_POSIX_SPAWN_FILE_ACTIONS_T''@": "1",
+    "@''HAVE_POWF''@": "1",
+    "@''HAVE_PREAD''@": "1",
+    "@''HAVE_PTHREAD_SIGMASK''@": "1",
+    "@''HAVE_PTSNAME''@": "1",
+    "@''HAVE_PTSNAME_R''@": "1",
+    "@''HAVE_PWRITE''@": "1",
+    "@''HAVE_QSORT_R''@": "1",
+    "@''HAVE_RAISE''@": "1",
+    "@''HAVE_RANDOM''@": "1",
+    "@''HAVE_RANDOM_H''@": "1",
+    "@''HAVE_RANDOM_R''@": "1",
+    "@''HAVE_RAWMEMCHR''@": "0",
+    "@''HAVE_READDIR''@": "1",
+    "@''HAVE_READLINK''@": "1",
+    "@''HAVE_READLINKAT''@": "1",
+    "@''HAVE_REALLOCARRAY''@": "0",
+    "@''HAVE_REALPATH''@": "1",
+    "@''HAVE_REMAINDER''@": "1",
+    "@''HAVE_REMAINDERF''@": "1",
+    "@''HAVE_RENAMEAT''@": "1",
+    "@''HAVE_REWINDDIR''@": "1",
+    "@''HAVE_RINT''@": "1",
+    "@''HAVE_RINTL''@": "1",
+    "@''HAVE_RPMATCH''@": "1",
+    "@''HAVE_SCANDIR''@": "1",
+    "@''HAVE_SCHED_H''@": "1",
+    "@''HAVE_SCHED_YIELD''@": "1",
+    "@''HAVE_SECURE_GETENV''@": "1",
+    "@''HAVE_SETHOSTNAME''@": "1",
+    "@''HAVE_SETSTATE''@": "1",
+    "@''HAVE_SIGABBREV_NP''@": "1",
+    "@''HAVE_SIGACTION''@": "1",
+    "@''HAVE_SIGDESCR_NP''@": "1",
+    "@''HAVE_SIGHANDLER_T''@": "0",
+    "@''HAVE_SIGINFO_T''@": "1",
+    "@''HAVE_SIGNED_SIG_ATOMIC_T''@": "",
+    "@''HAVE_SIGNED_WCHAR_T''@": "",
+    "@''HAVE_SIGNED_WINT_T''@": "",
+    "@''HAVE_SIGSET_T''@": "1",
+    "@''HAVE_SINF''@": "1",
+    "@''HAVE_SINHF''@": "1",
+    "@''HAVE_SINL''@": "1",
+    "@''HAVE_SLEEP''@": "1",
+    "@''HAVE_SPAWN_H''@": "1",
+    "@''HAVE_SQRTF''@": "1",
+    "@''HAVE_SQRTL''@": "1",
+    "@''HAVE_STDINT_H''@": "1",
+    "@''HAVE_STPCPY''@": "1",
+    "@''HAVE_STPNCPY''@": "1",
+    "@''HAVE_STRCASECMP''@": "1",
+    "@''HAVE_STRCASESTR''@": "1",
+    "@''HAVE_STRCHRNUL''@": "1",
+    "@''HAVE_STRERRORNAME_NP''@": "1",
+    "@''HAVE_STRINGS_H''@": "1",
+    "@''HAVE_STRPBRK''@": "1",
+    "@''HAVE_STRPTIME''@": "1",
+    "@''HAVE_STRSEP''@": "1",
+    "@''HAVE_STRTOD''@": "1",
+    "@''HAVE_STRTOL''@": "1",
+    "@''HAVE_STRTOLD''@": "1",
+    "@''HAVE_STRTOLL''@": "1",
+    "@''HAVE_STRTOUL''@": "1",
+    "@''HAVE_STRTOULL''@": "1",
+    "@''HAVE_STRUCT_RANDOM_DATA''@": "1",
+    "@''HAVE_STRUCT_SCHED_PARAM''@": "1",
+    "@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@": "1",
+    "@''HAVE_STRUCT_TIMEVAL''@": "1",
+    "@''HAVE_STRUCT_TMS''@": "1",
+    "@''HAVE_STRVERSCMP''@": "0",
+    "@''HAVE_SYMLINK''@": "1",
+    "@''HAVE_SYMLINKAT''@": "1",
+    "@''HAVE_SYS_BITYPES_H''@": "0",
+    "@''HAVE_SYS_CDEFS_H''@": "1",
+    "@''HAVE_SYS_INTTYPES_H''@": "0",
+    "@''HAVE_SYS_IOCTL_H''@": "1",
+    "@''HAVE_SYS_LOADAVG_H''@": "0",
+    "@''HAVE_SYS_PARAM_H''@": "0",
+    "@''HAVE_SYS_RESOURCE_H''@": "1",
+    "@''HAVE_SYS_TIMES_H''@": "1",
+    "@''HAVE_SYS_TIME_H''@": "1",
+    "@''HAVE_SYS_TYPES_H''@": "1",
+    "@''HAVE_TANF''@": "1",
+    "@''HAVE_TANHF''@": "1",
+    "@''HAVE_TANL''@": "1",
+    "@''HAVE_TERMIOS_H''@": "1",
+    "@''HAVE_TIMEGM''@": "1",
+    "@''HAVE_TIMES''@": "1",
+    "@''HAVE_TIMESPEC_GET''@": "1",
+    "@''HAVE_TIMEZONE_T''@": "0",
+    "@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@": "1",
+    "@''HAVE_UNISTD_H''@": "1",
+    "@''HAVE_UNLINKAT''@": "1",
+    "@''HAVE_UNLOCKPT''@": "1",
+    "@''HAVE_USLEEP''@": "1",
+    "@''HAVE_UTIMENSAT''@": "1",
+    "@''HAVE_VASPRINTF''@": "1",
+    "@''HAVE_VDPRINTF''@": "1",
+    "@''HAVE_WCHAR_H''@": "1",
+    "@''HAVE_WCHAR_T''@": "1",
+    "@''HAVE_WCPCPY''@": "1",
+    "@''HAVE_WCPNCPY''@": "1",
+    "@''HAVE_WCRTOMB''@": "1",
+    "@''HAVE_WCSCASECMP''@": "1",
+    "@''HAVE_WCSCAT''@": "1",
+    "@''HAVE_WCSCHR''@": "1",
+    "@''HAVE_WCSCMP''@": "1",
+    "@''HAVE_WCSCOLL''@": "1",
+    "@''HAVE_WCSCPY''@": "1",
+    "@''HAVE_WCSCSPN''@": "1",
+    "@''HAVE_WCSDUP''@": "1",
+    "@''HAVE_WCSFTIME''@": "1",
+    "@''HAVE_WCSLEN''@": "1",
+    "@''HAVE_WCSNCASECMP''@": "1",
+    "@''HAVE_WCSNCAT''@": "1",
+    "@''HAVE_WCSNCMP''@": "1",
+    "@''HAVE_WCSNCPY''@": "1",
+    "@''HAVE_WCSNLEN''@": "1",
+    "@''HAVE_WCSNRTOMBS''@": "1",
+    "@''HAVE_WCSPBRK''@": "1",
+    "@''HAVE_WCSRCHR''@": "1",
+    "@''HAVE_WCSRTOMBS''@": "1",
+    "@''HAVE_WCSSPN''@": "1",
+    "@''HAVE_WCSSTR''@": "1",
+    "@''HAVE_WCSTOK''@": "1",
+    "@''HAVE_WCSWIDTH''@": "1",
+    "@''HAVE_WCSXFRM''@": "1",
+    "@''HAVE_WCTRANS_T''@": "1",
+    "@''HAVE_WCTYPE_H''@": "1",
+    "@''HAVE_WCTYPE_T''@": "1",
+    "@''HAVE_WINSOCK2_H''@": "0",
+    "@''HAVE_WINT_T''@": "1",
+    "@''HAVE_WMEMCHR''@": "1",
+    "@''HAVE_WMEMCMP''@": "1",
+    "@''HAVE_WMEMCPY''@": "1",
+    "@''HAVE_WMEMMOVE''@": "1",
+    "@''HAVE_WMEMPCPY''@": "1",
+    "@''HAVE_WMEMSET''@": "1",
+    "@''HAVE_XLOCALE_H''@": "1",
+    "@''HAVE__BOOL''@": "1",
+    "@''HAVE__EXIT''@": "1",
+    "@''ICONV_CONST''@": "",
+    "@''INCLUDE_NEXT''@": "include_next",
+    "@''INCLUDE_NEXT_AS_FIRST_DIRECTIVE''@": "include_next",
+    "@''INT32_MAX_LT_INTMAX_MAX''@": "1",
+    "@''INT64_MAX_EQ_LONG_MAX''@": "1",
+    "@''LOCALENAME_ENHANCE_LOCALE_FUNCS''@": "0",
+    "@''NEXT_AS_FIRST_DIRECTIVE_MATH_H''@": "<math.h>",
+    "@''NEXT_DIRENT_H''@": "<dirent.h>",
+    "@''NEXT_ERRNO_H''@": "",
+    "@''NEXT_FCNTL_H''@": "<fcntl.h>",
+    "@''NEXT_FLOAT_H''@": "",
+    "@''NEXT_GETOPT_H''@": "<getopt.h>",
+    "@''NEXT_ICONV_H''@": "<iconv.h>",
+    "@''NEXT_INTTYPES_H''@": "<inttypes.h>",
+    "@''NEXT_LIMITS_H''@": "<limits.h>",
+    "@''NEXT_LOCALE_H''@": "<locale.h>",
+    "@''NEXT_SCHED_H''@": "<sched.h>",
+    "@''NEXT_SIGNAL_H''@": "<signal.h>",
+    "@''NEXT_SPAWN_H''@": "<spawn.h>",
+    "@''NEXT_STDDEF_H''@": "",
+    "@''NEXT_STDINT_H''@": "<stdint.h>",
+    "@''NEXT_STDIO_H''@": "<stdio.h>",
+    "@''NEXT_STDLIB_H''@": "<stdlib.h>",
+    "@''NEXT_STRINGS_H''@": "<strings.h>",
+    "@''NEXT_STRING_H''@": "<string.h>",
+    "@''NEXT_SYS_IOCTL_H''@": "<sys/ioctl.h>",
+    "@''NEXT_SYS_RESOURCE_H''@": "<sys/resource.h>",
+    "@''NEXT_SYS_STAT_H''@": "<sys/stat.h>",
+    "@''NEXT_SYS_TIMES_H''@": "<sys/times.h>",
+    "@''NEXT_SYS_TIME_H''@": "<sys/time.h>",
+    "@''NEXT_SYS_TYPES_H''@": "<sys/types.h>",
+    "@''NEXT_SYS_WAIT_H''@": "<sys/wait.h>",
+    "@''NEXT_TERMIOS_H''@": "<termios.h>",
+    "@''NEXT_TIME_H''@": "<time.h>",
+    "@''NEXT_UNISTD_H''@": "<unistd.h>",
+    "@''NEXT_WCHAR_H''@": "<wchar.h>",
+    "@''NEXT_WCTYPE_H''@": "<wctype.h>",
+    "@''PRAGMA_COLUMNS''@": "",
+    "@''PRAGMA_SYSTEM_HEADER''@": "#pragma GCC system_header",
+    "@''PRIPTR_PREFIX''@": "\"l\"",
+    "@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''PTRDIFF_T_SUFFIX''@": "",
+    "@''REPLACE_ACCESS''@": "0",
+    "@''REPLACE_ACOSF''@": "0",
+    "@''REPLACE_ALIGNED_ALLOC''@": "0",
+    "@''REPLACE_ASINF''@": "0",
+    "@''REPLACE_ATAN2F''@": "0",
+    "@''REPLACE_ATANF''@": "0",
+    "@''REPLACE_BTOWC''@": "0",
+    "@''REPLACE_CALLOC''@": "0",
+    "@''REPLACE_CANONICALIZE_FILE_NAME''@": "0",
+    "@''REPLACE_CBRTF''@": "0",
+    "@''REPLACE_CBRTL''@": "0",
+    "@''REPLACE_CEIL''@": "0",
+    "@''REPLACE_CEILF''@": "0",
+    "@''REPLACE_CEILL''@": "0",
+    "@''REPLACE_CHOWN''@": "0",
+    "@''REPLACE_CLOSE''@": "0",
+    "@''REPLACE_CLOSEDIR''@": "0",
+    "@''REPLACE_COSF''@": "0",
+    "@''REPLACE_COSHF''@": "0",
+    "@''REPLACE_CREAT''@": "0",
+    "@''REPLACE_CTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_DIRFD''@": "0",
+    "@''REPLACE_DPRINTF''@": "0",
+    "@''REPLACE_DUP''@": "0",
+    "@''REPLACE_DUP2''@": "0",
+    "@''REPLACE_DUPLOCALE''@": "0",
+    "@''REPLACE_EXECL''@": "0",
+    "@''REPLACE_EXECLE''@": "0",
+    "@''REPLACE_EXECLP''@": "0",
+    "@''REPLACE_EXECV''@": "0",
+    "@''REPLACE_EXECVE''@": "0",
+    "@''REPLACE_EXECVP''@": "0",
+    "@''REPLACE_EXECVPE''@": "0",
+    "@''REPLACE_EXP2''@": "0",
+    "@''REPLACE_EXP2L''@": "0",
+    "@''REPLACE_EXPF''@": "0",
+    "@''REPLACE_EXPL''@": "0",
+    "@''REPLACE_EXPM1''@": "0",
+    "@''REPLACE_EXPM1F''@": "0",
+    "@''REPLACE_EXPM1L''@": "0",
+    "@''REPLACE_FABSL''@": "0",
+    "@''REPLACE_FACCESSAT''@": "0",
+    "@''REPLACE_FCHMODAT''@": "0",
+    "@''REPLACE_FCHOWNAT''@": "0",
+    "@''REPLACE_FCLOSE''@": "0",
+    "@''REPLACE_FCNTL''@": "0",
+    "@''REPLACE_FDOPEN''@": "0",
+    "@''REPLACE_FDOPENDIR''@": "0",
+    "@''REPLACE_FFLUSH''@": "0",
+    "@''REPLACE_FFSLL''@": "0",
+    "@''REPLACE_FLOOR''@": "0",
+    "@''REPLACE_FLOORF''@": "0",
+    "@''REPLACE_FLOORL''@": "0",
+    "@''REPLACE_FMA''@": "0",
+    "@''REPLACE_FMAF''@": "0",
+    "@''REPLACE_FMAL''@": "0",
+    "@''REPLACE_FMOD''@": "0",
+    "@''REPLACE_FMODF''@": "0",
+    "@''REPLACE_FMODL''@": "0",
+    "@''REPLACE_FOPEN''@": "1",
+    "@''REPLACE_FPRINTF''@": "1",
+    "@''REPLACE_FPURGE''@": "0",
+    "@''REPLACE_FREE''@": "1",
+    "@''REPLACE_FREELOCALE''@": "0",
+    "@''REPLACE_FREOPEN''@": "0",
+    "@''REPLACE_FREXP''@": "0",
+    "@''REPLACE_FREXPF''@": "0",
+    "@''REPLACE_FREXPL''@": "0",
+    "@''REPLACE_FSEEK''@": "0",
+    "@''REPLACE_FSEEKO''@": "0",
+    "@''REPLACE_FSTAT''@": "0",
+    "@''REPLACE_FSTATAT''@": "0",
+    "@''REPLACE_FTELL''@": "0",
+    "@''REPLACE_FTELLO''@": "0",
+    "@''REPLACE_FTRUNCATE''@": "0",
+    "@''REPLACE_FUTIMENS''@": "0",
+    "@''REPLACE_GETCWD''@": "0",
+    "@''REPLACE_GETDELIM''@": "0",
+    "@''REPLACE_GETDOMAINNAME''@": "0",
+    "@''REPLACE_GETDTABLESIZE''@": "0",
+    "@''REPLACE_GETGROUPS''@": "0",
+    "@''REPLACE_GETLINE''@": "0",
+    "@''REPLACE_GETLOGIN_R''@": "0",
+    "@''REPLACE_GETPAGESIZE''@": "0",
+    "@''REPLACE_GETPASS''@": "0",
+    "@''REPLACE_GETTIMEOFDAY''@": "0",
+    "@''REPLACE_GMTIME''@": "0",
+    "@''REPLACE_HUGE_VAL''@": "0",
+    "@''REPLACE_HYPOT''@": "0",
+    "@''REPLACE_HYPOTF''@": "0",
+    "@''REPLACE_HYPOTL''@": "0",
+    "@''REPLACE_ICONV''@": "0",
+    "@''REPLACE_ICONV_OPEN''@": "0",
+    "@''REPLACE_ICONV_UTF''@": "0",
+    "@''REPLACE_ILOGB''@": "0",
+    "@''REPLACE_ILOGBF''@": "0",
+    "@''REPLACE_ILOGBL''@": "0",
+    "@''REPLACE_INITSTATE''@": "0",
+    "@''REPLACE_IOCTL''@": "0",
+    "@''REPLACE_ISATTY''@": "0",
+    "@''REPLACE_ISFINITE''@": "0",
+    "@''REPLACE_ISINF''@": "0",
+    "@''REPLACE_ISNAN''@": "0",
+    "@''REPLACE_ISWBLANK''@": "0",
+    "@''REPLACE_ISWCNTRL''@": "0",
+    "@''REPLACE_ISWDIGIT''@": "0",
+    "@''REPLACE_ISWXDIGIT''@": "0",
+    "@''REPLACE_ITOLD''@": "0",
+    "@''REPLACE_LCHOWN''@": "0",
+    "@''REPLACE_LDEXPL''@": "0",
+    "@''REPLACE_LINK''@": "0",
+    "@''REPLACE_LINKAT''@": "0",
+    "@''REPLACE_LOCALECONV''@": "0",
+    "@''REPLACE_LOCALTIME''@": "0",
+    "@''REPLACE_LOCALTIME_R''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_LOG''@": "0",
+    "@''REPLACE_LOG10''@": "0",
+    "@''REPLACE_LOG10F''@": "0",
+    "@''REPLACE_LOG10L''@": "0",
+    "@''REPLACE_LOG1P''@": "0",
+    "@''REPLACE_LOG1PF''@": "0",
+    "@''REPLACE_LOG1PL''@": "0",
+    "@''REPLACE_LOG2''@": "0",
+    "@''REPLACE_LOG2F''@": "0",
+    "@''REPLACE_LOG2L''@": "0",
+    "@''REPLACE_LOGB''@": "0",
+    "@''REPLACE_LOGBF''@": "0",
+    "@''REPLACE_LOGBL''@": "0",
+    "@''REPLACE_LOGF''@": "0",
+    "@''REPLACE_LOGL''@": "0",
+    "@''REPLACE_LSEEK''@": "0",
+    "@''REPLACE_LSTAT''@": "1",
+    "@''REPLACE_MALLOC''@": "0",
+    "@''REPLACE_MBRLEN''@": "0",
+    "@''REPLACE_MBRTOWC''@": "0",
+    "@''REPLACE_MBSINIT''@": "0",
+    "@''REPLACE_MBSNRTOWCS''@": "0",
+    "@''REPLACE_MBSRTOWCS''@": "0",
+    "@''REPLACE_MBSTATE_T''@": "0",
+    "@''REPLACE_MBTOWC''@": "0",
+    "@''REPLACE_MEMCHR''@": "0",
+    "@''REPLACE_MEMMEM''@": "0",
+    "@''REPLACE_MKDIR''@": "0",
+    "@''REPLACE_MKFIFO''@": "0",
+    "@''REPLACE_MKFIFOAT''@": "0",
+    "@''REPLACE_MKNOD''@": "0",
+    "@''REPLACE_MKNODAT''@": "0",
+    "@''REPLACE_MKSTEMP''@": "0",
+    "@''REPLACE_MKTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_MODF''@": "0",
+    "@''REPLACE_MODFF''@": "0",
+    "@''REPLACE_MODFL''@": "0",
+    "@''REPLACE_NAN''@": "0",
+    "@''REPLACE_NANOSLEEP''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_NEWLOCALE''@": "0",
+    "@''REPLACE_NULL''@": "0",
+    "@''REPLACE_OBSTACK_PRINTF''@": "0",
+    "@''REPLACE_OPEN''@": "1",
+    "@''REPLACE_OPENAT''@": "0",
+    "@''REPLACE_OPENDIR''@": "0",
+    "@''REPLACE_PERROR''@": "1",
+    "@''REPLACE_POPEN''@": "0",
+    "@''REPLACE_POSIX_MEMALIGN''@": "0",
+    "@''REPLACE_POSIX_SPAWN''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR''@": "0",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2''@": "1",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR''@": "0",
+    "@''REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN''@": "1",
+    "@''REPLACE_PREAD''@": "0",
+    "@''REPLACE_PRINTF''@": "1",
+    "@''REPLACE_PTHREAD_SIGMASK''@": "0",
+    "@''REPLACE_PTSNAME''@": "0",
+    "@''REPLACE_PTSNAME_R''@": "0",
+    "@''REPLACE_PUTENV''@": "0",
+    "@''REPLACE_PWRITE''@": "0",
+    "@''REPLACE_QSORT_R''@": "0",
+    "@''REPLACE_RAISE''@": "0",
+    "@''REPLACE_RANDOM''@": "0",
+    "@''REPLACE_RANDOM_R''@": "0",
+    "@''REPLACE_READ''@": "0",
+    "@''REPLACE_READLINK''@": "1",
+    "@''REPLACE_READLINKAT''@": "0",
+    "@''REPLACE_REALLOC''@": "0",
+    "@''REPLACE_REALLOCARRAY''@": "0",
+    "@''REPLACE_REALPATH''@": "1",
+    "@''REPLACE_REMAINDER''@": "0",
+    "@''REPLACE_REMAINDERF''@": "0",
+    "@''REPLACE_REMAINDERL''@": "0",
+    "@''REPLACE_REMOVE''@": "0",
+    "@''REPLACE_RENAME''@": "1",
+    "@''REPLACE_RENAMEAT''@": "0",
+    "@''REPLACE_RINTL''@": "0",
+    "@''REPLACE_RMDIR''@": "0",
+    "@''REPLACE_ROUND''@": "0",
+    "@''REPLACE_ROUNDF''@": "0",
+    "@''REPLACE_ROUNDL''@": "0",
+    "@''REPLACE_SCHED_YIELD''@": "0",
+    "@''REPLACE_SETENV''@": "0",
+    "@''REPLACE_SETLOCALE''@": "0",
+    "@''REPLACE_SETSTATE''@": "0",
+    "@''REPLACE_SIGNBIT''@": "0",
+    "@''REPLACE_SIGNBIT_USING_BUILTINS''@": "1",
+    "@''REPLACE_SINF''@": "0",
+    "@''REPLACE_SINHF''@": "0",
+    "@''REPLACE_SLEEP''@": "0",
+    "@''REPLACE_SNPRINTF''@": "1",
+    "@''REPLACE_SPRINTF''@": "1",
+    "@''REPLACE_SQRTF''@": "0",
+    "@''REPLACE_SQRTL''@": "0",
+    "@''REPLACE_STAT''@": "1",
+    "@''REPLACE_STDIO_READ_FUNCS''@": "0",
+    "@''REPLACE_STDIO_WRITE_FUNCS''@": "0",
+    "@''REPLACE_STPNCPY''@": "0",
+    "@''REPLACE_STRCASESTR''@": "0",
+    "@''REPLACE_STRCHRNUL''@": "0",
+    "@''REPLACE_STRDUP''@": "0",
+    "@''REPLACE_STRERROR''@": "1",
+    "@''REPLACE_STRERRORNAME_NP''@": "0",
+    "@''REPLACE_STRERROR_R''@": "1",
+    "@''REPLACE_STRFTIME''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_STRNCAT''@": "0",
+    "@''REPLACE_STRNDUP''@": "0",
+    "@''REPLACE_STRNLEN''@": "0",
+    "@''REPLACE_STRSIGNAL''@": "0",
+    "@''REPLACE_STRSTR''@": "0",
+    "@''REPLACE_STRTOD''@": "0",
+    "@''REPLACE_STRTOIMAX''@": "0",
+    "@''REPLACE_STRTOK_R''@": "0",
+    "@''REPLACE_STRTOL''@": "0",
+    "@''REPLACE_STRTOLD''@": "0",
+    "@''REPLACE_STRTOLL''@": "0",
+    "@''REPLACE_STRTOUL''@": "0",
+    "@''REPLACE_STRTOULL''@": "0",
+    "@''REPLACE_STRTOUMAX''@": "0",
+    "@''REPLACE_STRUCT_LCONV''@": "0",
+    "@''REPLACE_STRUCT_TIMEVAL''@": "0",
+    "@''REPLACE_SYMLINK''@": "0",
+    "@''REPLACE_SYMLINKAT''@": "0",
+    "@''REPLACE_TANF''@": "0",
+    "@''REPLACE_TANHF''@": "0",
+    "@''REPLACE_TIMEGM''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_TMPFILE''@": "0",
+    "@''REPLACE_TOWLOWER''@": "0",
+    "@''REPLACE_TRUNC''@": "0",
+    "@''REPLACE_TRUNCATE''@": "0",
+    "@''REPLACE_TRUNCF''@": "0",
+    "@''REPLACE_TRUNCL''@": "0",
+    "@''REPLACE_TTYNAME_R''@": "0",
+    "@''REPLACE_TZSET''@": "GNULIB_PORTCHECK",
+    "@''REPLACE_UNLINK''@": "1",
+    "@''REPLACE_UNLINKAT''@": "0",
+    "@''REPLACE_UNSETENV''@": "0",
+    "@''REPLACE_USLEEP''@": "0",
+    "@''REPLACE_UTIMENSAT''@": "0",
+    "@''REPLACE_VASPRINTF''@": "1",
+    "@''REPLACE_VDPRINTF''@": "0",
+    "@''REPLACE_VFPRINTF''@": "1",
+    "@''REPLACE_VPRINTF''@": "0",
+    "@''REPLACE_VSNPRINTF''@": "1",
+    "@''REPLACE_VSPRINTF''@": "1",
+    "@''REPLACE_WCRTOMB''@": "0",
+    "@''REPLACE_WCSFTIME''@": "0",
+    "@''REPLACE_WCSNRTOMBS''@": "0",
+    "@''REPLACE_WCSRTOMBS''@": "0",
+    "@''REPLACE_WCSTOK''@": "0",
+    "@''REPLACE_WCSWIDTH''@": "0",
+    "@''REPLACE_WCTOB''@": "0",
+    "@''REPLACE_WCTOMB''@": "0",
+    "@''REPLACE_WCWIDTH''@": "0",
+    "@''REPLACE_WRITE''@": "0",
+    "@''SIG_ATOMIC_T_SUFFIX''@": "",
+    "@''SIZE_T_SUFFIX''@": "",
+    "@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@": "0",
+    "@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@": "0",
+    "@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''TIME_H_DEFINES_STRUCT_TIMESPEC''@": "1",
+    "@''TIME_H_DEFINES_TIME_UTC''@": "1",
+    "@''UINT32_MAX_LT_UINTMAX_MAX''@": "1",
+    "@''UINT64_MAX_EQ_ULONG_MAX''@": "1",
+    "@''UNDEFINE_STRTOK_R''@": "0",
+    "@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@": "0",
+    "@''UNISTD_H_HAVE_SYS_RANDOM_H''@": "0",
+    "@''UNISTD_H_HAVE_WINSOCK2_H''@": "0",
+    "@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@": "0",
+    "@''WCHAR_T_SUFFIX''@": "",
+    "@''WINDOWS_64_BIT_OFF_T''@": "0",
+    "@''WINDOWS_64_BIT_ST_SIZE''@": "0",
+    "@''WINDOWS_STAT_INODES''@": "0",
+    "@''WINDOWS_STAT_TIMESPEC''@": "0",
+    "@''WINT_T_SUFFIX''@": "",
+}
+
+DIRECT_VARIABLES = {
+    "__always_inline": "inline _GL_ATTRIBUTE_ALWAYS_INLINE",
+    "__glibc_likely": "_GL_LIKELY",
+    "__glibc_unlikely": "_GL_UNLIKELY",
+}
+
+INLINE_VARIABLES = {
+    "definition of _GL_ARG_NONNULL": "lib/arg-nonnull.h",
+    "definition of _GL_WARN_ON_USE": "lib/warn-on-use.h",
+    "definition of _Noreturn": "lib/_Noreturn.h",
+    "definitions of _GL_FUNCDECL_RPL": "lib/c++defs.h",
+}
+
+DELETE_VARIABLES = [
+    "libc_hidden_proto",
+]
diff --git a/modules/bison/3.8.2/overlay/config_macos.h b/modules/bison/3.8.2/overlay/config_macos.h
new file mode 100644
index 0000000..b7aaf1e
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/config_macos.h
@@ -0,0 +1,2554 @@
+/* lib/config.h.  Generated from config.in.h by configure.  */
+/* lib/config.in.h.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define to the number of bits in type 'ptrdiff_t'. */
+/* #undef BITSIZEOF_PTRDIFF_T */
+
+/* Define to the number of bits in type 'sig_atomic_t'. */
+/* #undef BITSIZEOF_SIG_ATOMIC_T */
+
+/* Define to the number of bits in type 'size_t'. */
+/* #undef BITSIZEOF_SIZE_T */
+
+/* Define to the number of bits in type 'wchar_t'. */
+/* #undef BITSIZEOF_WCHAR_T */
+
+/* Define to the number of bits in type 'wint_t'. */
+/* #undef BITSIZEOF_WINT_T */
+
+/* Define if you wish *printf() functions that have a safe handling of
+   non-IEEE-754 'long double' values. */
+#define CHECK_PRINTF_SAFE 1
+
+/* Define to 1 if using 'alloca.c'. */
+/* #undef C_ALLOCA */
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'double'. */
+#define DBL_EXPBIT0_BIT 20
+
+/* Define as the word index where to find the exponent of 'double'. */
+#define DBL_EXPBIT0_WORD 1
+
+/* Define as the bit index in the word where to find the sign of 'double'. */
+/* #undef DBL_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'double'. */
+/* #undef DBL_SIGNBIT_WORD */
+
+/* the name of the file descriptor member of DIR */
+/* #undef DIR_FD_MEMBER_NAME */
+
+#ifdef DIR_FD_MEMBER_NAME
+# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
+#else
+# define DIR_TO_FD(Dir_p) -1
+#endif
+
+
+/* Define to 1 if // is a file system root distinct from /. */
+/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */
+
+/* Define if struct dirent has a member d_ino that actually works. */
+#define D_INO_IN_DIRENT 1
+
+/* Define to 1 if translation of program messages to the user's native
+   language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Define to 1 if the package shall run at any location in the file system. */
+/* #undef ENABLE_RELOCATABLE */
+
+/* Define this to 1 if F_DUPFD behavior does not match POSIX */
+/* #undef FCNTL_DUPFD_BUGGY */
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'float'. */
+#define FLT_EXPBIT0_BIT 23
+
+/* Define as the word index where to find the exponent of 'float'. */
+#define FLT_EXPBIT0_WORD 0
+
+/* Define as the bit index in the word where to find the sign of 'float'. */
+/* #undef FLT_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'float'. */
+/* #undef FLT_SIGNBIT_WORD */
+
+/* Define to 1 if fopen() fails to recognize a trailing slash. */
+/* #undef FOPEN_TRAILING_SLASH_BUG */
+
+/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
+   and handles a trailing slash correctly. */
+/* #undef FUNC_REALPATH_NEARLY_WORKS */
+
+/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
+   and handles leading slashes and a trailing slash correctly. */
+/* #undef FUNC_REALPATH_WORKS */
+
+/* Define this to 'void' or 'struct timezone' to match the system's
+   declaration of the second argument to gettimeofday. */
+#define GETTIMEOFDAY_TIMEZONE void
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module canonicalize shall be considered present. */
+#define GNULIB_CANONICALIZE 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module canonicalize-lgpl shall be considered present. */
+#define GNULIB_CANONICALIZE_LGPL 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module close-stream shall be considered present. */
+#define GNULIB_CLOSE_STREAM 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module dirname shall be considered present. */
+#define GNULIB_DIRNAME 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fdopendir shall be considered present. */
+/* #undef GNULIB_FDOPENDIR */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fd-safer-flag shall be considered present. */
+#define GNULIB_FD_SAFER_FLAG 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fopen-gnu shall be considered present. */
+#define GNULIB_FOPEN_GNU 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fopen-safer shall be considered present. */
+#define GNULIB_FOPEN_SAFER 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module fscanf shall be considered present. */
+#define GNULIB_FSCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module getcwd shall be considered present. */
+#define GNULIB_GETCWD 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module lock shall be considered present. */
+#define GNULIB_LOCK 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module msvc-nothrow shall be considered present. */
+#define GNULIB_MSVC_NOTHROW 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module openat shall be considered present. */
+/* #undef GNULIB_OPENAT */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module pipe2-safer shall be considered present. */
+#define GNULIB_PIPE2_SAFER 1
+
+/* Define to 1 if printf and friends should be labeled with attribute
+   "__gnu_printf__" instead of "__printf__" */
+/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module reallocarray shall be considered present. */
+#define GNULIB_REALLOCARRAY 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module scanf shall be considered present. */
+#define GNULIB_SCANF 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module snprintf shall be considered present. */
+#define GNULIB_SNPRINTF 1
+
+/* Define to 1 if you want the FILE stream functions getc, putc, etc. to use
+   unlocked I/O if available, throughout the package. Unlocked I/O can improve
+   performance, sometimes dramatically. But unlocked I/O is safe only in
+   single-threaded programs, as well as in multithreaded programs for which
+   you can guarantee that every FILE stream, including stdin, stdout, stderr,
+   is used only in a single thread. */
+#define GNULIB_STDIO_SINGLE_THREAD 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror shall be considered present. */
+#define GNULIB_STRERROR 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module strerror_r-posix shall be considered present. */
+#define GNULIB_STRERROR_R_POSIX 1
+
+/* Define to 1 when the gnulib module access should be tested. */
+#define GNULIB_TEST_ACCESS 1
+
+/* Define to 1 when the gnulib module calloc-posix should be tested. */
+#define GNULIB_TEST_CALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module canonicalize should be tested. */
+#define GNULIB_TEST_CANONICALIZE 1
+
+/* Define to 1 when the gnulib module canonicalize_file_name should be tested.
+   */
+#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1
+
+/* Define to 1 when the gnulib module chdir should be tested. */
+#define GNULIB_TEST_CHDIR 1
+
+/* Define to 1 when the gnulib module cloexec should be tested. */
+#define GNULIB_TEST_CLOEXEC 1
+
+/* Define to 1 when the gnulib module close should be tested. */
+#define GNULIB_TEST_CLOSE 1
+
+/* Define to 1 when the gnulib module closedir should be tested. */
+/* #undef GNULIB_TEST_CLOSEDIR */
+
+/* Define to 1 when the gnulib module dirfd should be tested. */
+/* #undef GNULIB_TEST_DIRFD */
+
+/* Define to 1 when the gnulib module dup should be tested. */
+/* #undef GNULIB_TEST_DUP */
+
+/* Define to 1 when the gnulib module dup2 should be tested. */
+#define GNULIB_TEST_DUP2 1
+
+/* Define to 1 when the gnulib module environ should be tested. */
+#define GNULIB_TEST_ENVIRON 1
+
+/* Define to 1 when the gnulib module fchdir should be tested. */
+/* #undef GNULIB_TEST_FCHDIR */
+
+/* Define to 1 when the gnulib module fcntl should be tested. */
+#define GNULIB_TEST_FCNTL 1
+
+/* Define to 1 when the gnulib module fdopendir should be tested. */
+/* #undef GNULIB_TEST_FDOPENDIR */
+
+/* Define to 1 when the gnulib module ffsl should be tested. */
+#define GNULIB_TEST_FFSL 1
+
+/* Define to 1 when the gnulib module fgetc should be tested. */
+#define GNULIB_TEST_FGETC 1
+
+/* Define to 1 when the gnulib module fgets should be tested. */
+#define GNULIB_TEST_FGETS 1
+
+/* Define to 1 when the gnulib module fopen should be tested. */
+#define GNULIB_TEST_FOPEN 1
+
+/* Define to 1 when the gnulib module fprintf should be tested. */
+#define GNULIB_TEST_FPRINTF 1
+
+/* Define to 1 when the gnulib module fprintf-posix should be tested. */
+#define GNULIB_TEST_FPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module fputc should be tested. */
+#define GNULIB_TEST_FPUTC 1
+
+/* Define to 1 when the gnulib module fputs should be tested. */
+#define GNULIB_TEST_FPUTS 1
+
+/* Define to 1 when the gnulib module fread should be tested. */
+#define GNULIB_TEST_FREAD 1
+
+/* Define to 1 when the gnulib module free-posix should be tested. */
+#define GNULIB_TEST_FREE_POSIX 1
+
+/* Define to 1 when the gnulib module frexp should be tested. */
+#define GNULIB_TEST_FREXP 1
+
+/* Define to 1 when the gnulib module frexpl should be tested. */
+#define GNULIB_TEST_FREXPL 1
+
+/* Define to 1 when the gnulib module fscanf should be tested. */
+#define GNULIB_TEST_FSCANF 1
+
+/* Define to 1 when the gnulib module fstat should be tested. */
+#define GNULIB_TEST_FSTAT 1
+
+/* Define to 1 when the gnulib module fstatat should be tested. */
+/* #undef GNULIB_TEST_FSTATAT */
+
+/* Define to 1 when the gnulib module fsync should be tested. */
+#define GNULIB_TEST_FSYNC 1
+
+/* Define to 1 when the gnulib module fwrite should be tested. */
+#define GNULIB_TEST_FWRITE 1
+
+/* Define to 1 when the gnulib module getc should be tested. */
+#define GNULIB_TEST_GETC 1
+
+/* Define to 1 when the gnulib module getchar should be tested. */
+#define GNULIB_TEST_GETCHAR 1
+
+/* Define to 1 when the gnulib module getcwd should be tested. */
+#define GNULIB_TEST_GETCWD 1
+
+/* Define to 1 when the gnulib module getdelim should be tested. */
+/* #undef GNULIB_TEST_GETDELIM */
+
+/* Define to 1 when the gnulib module getdtablesize should be tested. */
+#define GNULIB_TEST_GETDTABLESIZE 1
+
+/* Define to 1 when the gnulib module getline should be tested. */
+/* #undef GNULIB_TEST_GETLINE */
+
+/* Define to 1 when the gnulib module getopt-posix should be tested. */
+#define GNULIB_TEST_GETOPT_POSIX 1
+
+/* Define to 1 when the gnulib module getrusage should be tested. */
+#define GNULIB_TEST_GETRUSAGE 1
+
+/* Define to 1 when the gnulib module gettimeofday should be tested. */
+#define GNULIB_TEST_GETTIMEOFDAY 1
+
+/* Define to 1 when the gnulib module isnan should be tested. */
+#define GNULIB_TEST_ISNAN 1
+
+/* Define to 1 when the gnulib module isnand should be tested. */
+#define GNULIB_TEST_ISNAND 1
+
+/* Define to 1 when the gnulib module isnanf should be tested. */
+#define GNULIB_TEST_ISNANF 1
+
+/* Define to 1 when the gnulib module isnanl should be tested. */
+#define GNULIB_TEST_ISNANL 1
+
+/* Define to 1 when the gnulib module iswblank should be tested. */
+#define GNULIB_TEST_ISWBLANK 1
+
+/* Define to 1 when the gnulib module iswdigit should be tested. */
+#define GNULIB_TEST_ISWDIGIT 1
+
+/* Define to 1 when the gnulib module iswxdigit should be tested. */
+#define GNULIB_TEST_ISWXDIGIT 1
+
+/* Define to 1 when the gnulib module ldexpl should be tested. */
+#define GNULIB_TEST_LDEXPL 1
+
+/* Define to 1 when the gnulib module lstat should be tested. */
+#define GNULIB_TEST_LSTAT 1
+
+/* Define to 1 when the gnulib module malloc-posix should be tested. */
+#define GNULIB_TEST_MALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module mbrtowc should be tested. */
+#define GNULIB_TEST_MBRTOWC 1
+
+/* Define to 1 when the gnulib module mbsinit should be tested. */
+#define GNULIB_TEST_MBSINIT 1
+
+/* Define to 1 when the gnulib module memchr should be tested. */
+#define GNULIB_TEST_MEMCHR 1
+
+/* Define to 1 when the gnulib module mempcpy should be tested. */
+#define GNULIB_TEST_MEMPCPY 1
+
+/* Define to 1 when the gnulib module memrchr should be tested. */
+/* #undef GNULIB_TEST_MEMRCHR */
+
+/* Define to 1 when the gnulib module obstack-printf should be tested. */
+#define GNULIB_TEST_OBSTACK_PRINTF 1
+
+/* Define to 1 when the gnulib module open should be tested. */
+#define GNULIB_TEST_OPEN 1
+
+/* Define to 1 when the gnulib module openat should be tested. */
+/* #undef GNULIB_TEST_OPENAT */
+
+/* Define to 1 when the gnulib module opendir should be tested. */
+/* #undef GNULIB_TEST_OPENDIR */
+
+/* Define to 1 when the gnulib module perror should be tested. */
+#define GNULIB_TEST_PERROR 1
+
+/* Define to 1 when the gnulib module pipe should be tested. */
+#define GNULIB_TEST_PIPE 1
+
+/* Define to 1 when the gnulib module pipe2 should be tested. */
+#define GNULIB_TEST_PIPE2 1
+
+/* Define to 1 when the gnulib module posix_spawn should be tested. */
+#define GNULIB_TEST_POSIX_SPAWN 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_destroy should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_DESTROY 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_init should be tested.
+   */
+#define GNULIB_TEST_POSIX_SPAWNATTR_INIT 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setflags should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETFLAGS 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setpgroup should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETPGROUP 1
+
+/* Define to 1 when the gnulib module posix_spawnattr_setsigmask should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWNATTR_SETSIGMASK 1
+
+/* Define to 1 when the gnulib module posix_spawnp should be tested. */
+#define GNULIB_TEST_POSIX_SPAWNP 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addchdir should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addclose should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_adddup2 should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_addopen should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_destroy should
+   be tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_DESTROY 1
+
+/* Define to 1 when the gnulib module posix_spawn_file_actions_init should be
+   tested. */
+#define GNULIB_TEST_POSIX_SPAWN_FILE_ACTIONS_INIT 1
+
+/* Define to 1 when the gnulib module printf should be tested. */
+#define GNULIB_TEST_PRINTF 1
+
+/* Define to 1 when the gnulib module printf-posix should be tested. */
+#define GNULIB_TEST_PRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module putc should be tested. */
+#define GNULIB_TEST_PUTC 1
+
+/* Define to 1 when the gnulib module putchar should be tested. */
+#define GNULIB_TEST_PUTCHAR 1
+
+/* Define to 1 when the gnulib module puts should be tested. */
+#define GNULIB_TEST_PUTS 1
+
+/* Define to 1 when the gnulib module raise should be tested. */
+#define GNULIB_TEST_RAISE 1
+
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+#define GNULIB_TEST_RAWMEMCHR 1
+
+/* Define to 1 when the gnulib module readdir should be tested. */
+/* #undef GNULIB_TEST_READDIR */
+
+/* Define to 1 when the gnulib module readlink should be tested. */
+#define GNULIB_TEST_READLINK 1
+
+/* Define to 1 when the gnulib module reallocarray should be tested. */
+#define GNULIB_TEST_REALLOCARRAY 1
+
+/* Define to 1 when the gnulib module realloc-posix should be tested. */
+#define GNULIB_TEST_REALLOC_POSIX 1
+
+/* Define to 1 when the gnulib module realpath should be tested. */
+#define GNULIB_TEST_REALPATH 1
+
+/* Define to 1 when the gnulib module rename should be tested. */
+#define GNULIB_TEST_RENAME 1
+
+/* Define to 1 when the gnulib module rewinddir should be tested. */
+/* #undef GNULIB_TEST_REWINDDIR */
+
+/* Define to 1 when the gnulib module rmdir should be tested. */
+#define GNULIB_TEST_RMDIR 1
+
+/* Define to 1 when the gnulib module scanf should be tested. */
+#define GNULIB_TEST_SCANF 1
+
+/* Define to 1 when the gnulib module setlocale_null should be tested. */
+/* #undef GNULIB_TEST_SETLOCALE_NULL */
+
+/* Define to 1 when the gnulib module sigaction should be tested. */
+#define GNULIB_TEST_SIGACTION 1
+
+/* Define to 1 when the gnulib module signbit should be tested. */
+#define GNULIB_TEST_SIGNBIT 1
+
+/* Define to 1 when the gnulib module sigprocmask should be tested. */
+#define GNULIB_TEST_SIGPROCMASK 1
+
+/* Define to 1 when the gnulib module snprintf should be tested. */
+#define GNULIB_TEST_SNPRINTF 1
+
+/* Define to 1 when the gnulib module sprintf-posix should be tested. */
+#define GNULIB_TEST_SPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module stat should be tested. */
+#define GNULIB_TEST_STAT 1
+
+/* Define to 1 when the gnulib module stpcpy should be tested. */
+#define GNULIB_TEST_STPCPY 1
+
+/* Define to 1 when the gnulib module stpncpy should be tested. */
+#define GNULIB_TEST_STPNCPY 1
+
+/* Define to 1 when the gnulib module strchrnul should be tested. */
+#define GNULIB_TEST_STRCHRNUL 1
+
+/* Define to 1 when the gnulib module strdup should be tested. */
+#define GNULIB_TEST_STRDUP 1
+
+/* Define to 1 when the gnulib module strerror should be tested. */
+#define GNULIB_TEST_STRERROR 1
+
+/* Define to 1 when the gnulib module strerror_r should be tested. */
+#define GNULIB_TEST_STRERROR_R 1
+
+/* Define to 1 when the gnulib module strndup should be tested. */
+#define GNULIB_TEST_STRNDUP 1
+
+/* Define to 1 when the gnulib module strnlen should be tested. */
+/* #undef GNULIB_TEST_STRNLEN */
+
+/* Define to 1 when the gnulib module strtod should be tested. */
+#define GNULIB_TEST_STRTOD 1
+
+/* Define to 1 when the gnulib module strverscmp should be tested. */
+#define GNULIB_TEST_STRVERSCMP 1
+
+/* Define to 1 when the gnulib module unlink should be tested. */
+#define GNULIB_TEST_UNLINK 1
+
+/* Define to 1 when the gnulib module unsetenv should be tested. */
+#define GNULIB_TEST_UNSETENV 1
+
+/* Define to 1 when the gnulib module vasprintf should be tested. */
+#define GNULIB_TEST_VASPRINTF 1
+
+/* Define to 1 when the gnulib module vfprintf should be tested. */
+#define GNULIB_TEST_VFPRINTF 1
+
+/* Define to 1 when the gnulib module vfprintf-posix should be tested. */
+#define GNULIB_TEST_VFPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module vprintf should be tested. */
+#define GNULIB_TEST_VPRINTF 1
+
+/* Define to 1 when the gnulib module vsnprintf should be tested. */
+#define GNULIB_TEST_VSNPRINTF 1
+
+/* Define to 1 when the gnulib module vsprintf-posix should be tested. */
+#define GNULIB_TEST_VSPRINTF_POSIX 1
+
+/* Define to 1 when the gnulib module waitpid should be tested. */
+#define GNULIB_TEST_WAITPID 1
+
+/* Define to 1 when the gnulib module wcwidth should be tested. */
+#define GNULIB_TEST_WCWIDTH 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unistr/u8-mbtoucr shall be considered present. */
+#define GNULIB_UNISTR_U8_MBTOUCR 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module unistr/u8-uctomb shall be considered present. */
+#define GNULIB_UNISTR_U8_UCTOMB 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module vfprintf-posix shall be considered present. */
+#define GNULIB_VFPRINTF_POSIX 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module xalloc shall be considered present. */
+#define GNULIB_XALLOC 1
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+   whether the gnulib module xalloc-die shall be considered present. */
+#define GNULIB_XALLOC_DIE 1
+
+/* Define if your system defines TIOCGWINSZ in sys/ioctl.h. */
+/* #undef GWINSZ_IN_SYS_IOCTL */
+
+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+   may be supplied by this distribution. */
+#define HAVE_ALLOCA 1
+
+/* Define to 1 if <alloca.h> works. */
+#define HAVE_ALLOCA_H 1
+
+/* Define if you have an arithmetic hrtime_t type. */
+/* #undef HAVE_ARITHMETIC_HRTIME_T */
+
+/* Define to 1 if you have the <bp-sym.h> header file. */
+/* #undef HAVE_BP_SYM_H */
+
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+/* #undef HAVE_CANONICALIZE_FILE_NAME */
+
+/* Define to 1 if you have the `catgets' function. */
+#define HAVE_CATGETS 1
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+#define HAVE_CFLOCALECOPYCURRENT 1
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#define HAVE_CLOCK_GETTIME 1
+
+/* Define to 1 if you have the `clock_settime' function. */
+#define HAVE_CLOCK_SETTIME 1
+
+/* Define to 1 if you have the `closedir' function. */
+/* #undef HAVE_CLOSEDIR */
+
+/* Define to 1 if you have the `confstr' function. */
+#define HAVE_CONFSTR 1
+
+/* Define if the copysignf function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGNF_IN_LIBC */
+
+/* Define if the copysignl function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGNL_IN_LIBC */
+
+/* Define if the copysign function is declared in <math.h> and available in
+   libc. */
+/* #undef HAVE_COPYSIGN_IN_LIBC */
+
+/* Define to 1 if you have the `copy_file_range' function. */
+/* #undef HAVE_COPY_FILE_RANGE */
+
+/* Define to 1 if you have the <crtdefs.h> header file. */
+/* #undef HAVE_CRTDEFS_H */
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+   */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
+   */
+#define HAVE_DECL_ALARM 1
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_CLEARERR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `copysign', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGN */
+
+/* Define to 1 if you have the declaration of `copysignf', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGNF */
+
+/* Define to 1 if you have the declaration of `copysignl', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_COPYSIGNL */
+
+/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't.
+   */
+/* #undef HAVE_DECL_DIRFD */
+
+/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_ECVT 1
+
+/* Define to 1 if you have the declaration of `execvpe', and to 0 if you
+   don't. */
+#define HAVE_DECL_EXECVPE 0
+
+/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't.
+   */
+#define HAVE_DECL_FCHDIR 1
+
+/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you
+   don't. */
+#define HAVE_DECL_FCLOSEALL 0
+
+/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_FCVT 1
+
+/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_FDOPENDIR */
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_FEOF_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FERROR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FFLUSH_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FGETS_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTC_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FPUTS_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FREAD_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_FWRITE_UNLOCKED 0
+
+/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't.
+   */
+#define HAVE_DECL_GCVT 1
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_GETCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't.
+   */
+#define HAVE_DECL_GETCWD 1
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `getdelim', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETDELIM 1
+
+/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETDTABLESIZE 1
+
+/* Define to 1 if you have the declaration of `gethrtime', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETHRTIME 0
+
+/* Define to 1 if you have the declaration of `getline', and to 0 if you
+   don't. */
+#define HAVE_DECL_GETLINE 1
+
+/* Define to 1 if you have the declaration of `iswblank', and to 0 if you
+   don't. */
+#define HAVE_DECL_ISWBLANK 1
+
+/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_MBRTOWC */
+
+/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_MBSINIT */
+
+/* Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0
+   otherwise. */
+#define HAVE_DECL_MBSWIDTH_IN_WCHAR_H 0
+
+/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
+   don't. */
+#define HAVE_DECL_MEMRCHR 0
+
+/* Define to 1 if you have the declaration of `obstack_printf', and to 0 if
+   you don't. */
+#define HAVE_DECL_OBSTACK_PRINTF 0
+
+/* Define to 1 if you have the declaration of `posix_spawn', and to 0 if you
+   don't. */
+#define HAVE_DECL_POSIX_SPAWN 1
+
+/* Define to 1 if you have the declaration of `program_invocation_name', and
+   to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0
+
+/* Define to 1 if you have the declaration of `program_invocation_short_name',
+   and to 0 if you don't. */
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0
+
+/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+   you don't. */
+#define HAVE_DECL_PUTCHAR_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+   don't. */
+#define HAVE_DECL_PUTC_UNLOCKED 1
+
+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+   */
+#define HAVE_DECL_SETENV 1
+
+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_SNPRINTF 1
+
+/* Define to 1 if you have the declaration of `stpncpy', and to 0 if you
+   don't. */
+#define HAVE_DECL_STPNCPY 1
+
+/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't.
+   */
+#define HAVE_DECL_STRDUP 1
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRERROR_R 1
+
+/* Define to 1 if you have the declaration of `strndup', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRNDUP 1
+
+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+   don't. */
+#define HAVE_DECL_STRNLEN 1
+
+/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_TOWLOWER */
+
+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+   don't. */
+#define HAVE_DECL_UNSETENV 1
+
+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL_VSNPRINTF 1
+
+/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't.
+   */
+#define HAVE_DECL_WCSDUP 1
+
+/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+   don't. */
+#define HAVE_DECL_WCWIDTH 1
+
+/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
+   don't. */
+#define HAVE_DECL__SNPRINTF 0
+
+/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't.
+   */
+#define HAVE_DECL___ARGV 0
+
+/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL___FPENDING */
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#define HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `dirfd' function. */
+/* #undef HAVE_DIRFD */
+
+/* Define if you have the declaration of environ. */
+/* #undef HAVE_ENVIRON_DECL */
+
+/* Define to 1 if you have the `faccessat' function. */
+#define HAVE_FACCESSAT 1
+
+/* Define to 1 if you have the `fchdir' function. */
+#define HAVE_FCHDIR 1
+
+/* Define to 1 if you have the `fcntl' function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the `fdopendir' function. */
+#define HAVE_FDOPENDIR 1
+
+/* Define to 1 if you have the <features.h> header file. */
+/* #undef HAVE_FEATURES_H */
+
+/* Define to 1 if you have the `ffsl' function. */
+#define HAVE_FFSL 1
+
+/* Define to 1 if you have the `flockfile' function. */
+/* #undef HAVE_FLOCKFILE */
+
+/* Define if the 'free' function is guaranteed to preserve errno. */
+/* #undef HAVE_FREE_POSIX */
+
+/* Define if the frexpl function is available in libc. */
+#define HAVE_FREXPL_IN_LIBC 1
+
+/* Define if the frexp function is available in libc. */
+#define HAVE_FREXP_IN_LIBC 1
+
+/* Define to 1 if you have the `fstatat' function. */
+#define HAVE_FSTATAT 1
+
+/* Define to 1 if you have the `fsync' function. */
+#define HAVE_FSYNC 1
+
+/* Define to 1 if you have the `funlockfile' function. */
+/* #undef HAVE_FUNLOCKFILE */
+
+/* Define to 1 if you have the `getcwd' function. */
+#define HAVE_GETCWD 1
+
+/* Define to 1 if getcwd works, but with shorter paths than is generally
+   tested with the replacement. */
+/* #undef HAVE_GETCWD_SHORTER */
+
+/* Define to 1 if you have the `getdelim' function. */
+#define HAVE_GETDELIM 1
+
+/* Define to 1 if you have the `getdtablesize' function. */
+#define HAVE_GETDTABLESIZE 1
+
+/* Define to 1 if you have the `getexecname' function. */
+/* #undef HAVE_GETEXECNAME */
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#define HAVE_GETOPT_LONG_ONLY 1
+
+/* Define to 1 if the system has the 'getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getprogname' function. */
+#define HAVE_GETPROGNAME 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+/* #undef HAVE_GETTEXT */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define if you have the iconv() function and it works. */
+#define HAVE_ICONV 1
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#define HAVE_ICONV_H 1
+
+/* Define to 1 if the compiler supports one of the keywords 'inline',
+   '__inline__', '__inline' and effectively inlines functions marked as such.
+   */
+#define HAVE_INLINE 1
+
+/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
+#define HAVE_INTMAX_T 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
+   declares uintmax_t. */
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+
+/* Define to 1 if you have the `isascii' function. */
+#define HAVE_ISASCII 1
+
+/* Define if the isnan(double) function is available in libc. */
+#define HAVE_ISNAND_IN_LIBC 1
+
+/* Define if the isnan(float) function is available in libc. */
+/* #undef HAVE_ISNANF_IN_LIBC */
+
+/* Define if the isnan(long double) function is available in libc. */
+#define HAVE_ISNANL_IN_LIBC 1
+
+/* Define to 1 if you have the `iswblank' function. */
+#define HAVE_ISWBLANK 1
+
+/* Define to 1 if you have the `iswcntrl' function. */
+#define HAVE_ISWCNTRL 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#define HAVE_LANGINFO_CODESET 1
+
+/* Define if the ldexpl() function is available. */
+#define HAVE_LDEXPL 1
+
+/* Define if the ldexpl function is available in libc. */
+#define HAVE_LDEXPL_IN_LIBC 1
+
+/* Define if the ldexp function is available in libc. */
+#define HAVE_LDEXP_IN_LIBC 1
+
+/* Define if you have the libtextstyle library. */
+/* #undef HAVE_LIBTEXTSTYLE */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `link' function. */
+#define HAVE_LINK 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if the system has the type 'long long int'. */
+#define HAVE_LONG_LONG_INT 1
+
+/* Define to 1 if you have the `lstat' function. */
+#define HAVE_LSTAT 1
+
+/* Define to 1 if you have the <mach-o/dyld.h> header file. */
+/* #undef HAVE_MACH_O_DYLD_H */
+
+/* Define if malloc, realloc, and calloc set errno on allocation failure. */
+#define HAVE_MALLOC_POSIX 1
+
+/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including
+   config.h and <sys/mman.h>. */
+#define HAVE_MAP_ANONYMOUS 1
+
+/* Define to 1 if you have the <math.h> header file. */
+#define HAVE_MATH_H 1
+
+/* Define to 1 if you have the `mbrtowc' function. */
+#define HAVE_MBRTOWC 1
+
+/* Define to 1 if you have the `mbsinit' function. */
+#define HAVE_MBSINIT 1
+
+/* Define to 1 if <wchar.h> declares mbstate_t. */
+#define HAVE_MBSTATE_T 1
+
+/* Define to 1 if you have the `mempcpy' function. */
+/* #undef HAVE_MEMPCPY */
+
+/* Define to 1 if you have the `memrchr' function. */
+/* #undef HAVE_MEMRCHR */
+
+/* Define to 1 if you have the `microuptime' function. */
+/* #undef HAVE_MICROUPTIME */
+
+/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+   when it succeeds. */
+#define HAVE_MINIMALLY_WORKING_GETCWD 1
+
+/* Define to 1 if you have the <minix/config.h> header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define to 1 if <limits.h> defines the MIN and MAX macros. */
+/* #undef HAVE_MINMAX_IN_LIMITS_H */
+
+/* Define to 1 if <sys/param.h> defines the MIN and MAX macros. */
+#define HAVE_MINMAX_IN_SYS_PARAM_H 1
+
+/* Define to 1 if you have the `mprotect' function. */
+#define HAVE_MPROTECT 1
+
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+   concept. */
+/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */
+
+/* Define to 1 if you have the `nanouptime' function. */
+/* #undef HAVE_NANOUPTIME */
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#define HAVE_NL_LANGINFO 1
+
+/* Define to 1 if the system has obstacks that work with any size object. */
+/* #undef HAVE_OBSTACK */
+
+/* Define to 1 if you have the `obstack_printf' function. */
+/* #undef HAVE_OBSTACK_PRINTF */
+
+/* Define to 1 if you have the `openat' function. */
+#define HAVE_OPENAT 1
+
+/* Define to 1 if you have the `opendir' function. */
+/* #undef HAVE_OPENDIR */
+
+/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't,
+   setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+/* #undef HAVE_PARTLY_WORKING_GETCWD */
+
+/* Define to 1 if you have the <paths.h> header file. */
+#define HAVE_PATHS_H 1
+
+/* Define to 1 if you have the `pipe' function. */
+#define HAVE_PIPE 1
+
+/* Define to 1 if you have the `pipe2' function. */
+/* #undef HAVE_PIPE2 */
+
+/* Define to 1 if you have the `posix_spawn' function. */
+#define HAVE_POSIX_SPAWN 1
+
+/* Define to 1 if the system has the type `posix_spawnattr_t'. */
+#define HAVE_POSIX_SPAWNATTR_T 1
+
+/* Define to 1 if you have the `posix_spawn_file_actions_addchdir' function.
+   */
+/* #undef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR */
+
+/* Define to 1 if you have the `posix_spawn_file_actions_addchdir_np'
+   function. */
+#define HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP 1
+
+/* Define to 1 if the system has the type `posix_spawn_file_actions_t'. */
+#define HAVE_POSIX_SPAWN_FILE_ACTIONS_T 1
+
+/* Define if you have the <pthread.h> header and the POSIX threads API. */
+#define HAVE_PTHREAD_API 1
+
+/* Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE. */
+#define HAVE_PTHREAD_MUTEX_RECURSIVE 1
+
+/* Define if the POSIX multithreading library has read/write locks. */
+#define HAVE_PTHREAD_RWLOCK 1
+
+/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a
+   reader. */
+#define HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER 1
+
+/* Define to 1 if you have the `raise' function. */
+#define HAVE_RAISE 1
+
+/* Define to 1 if you have the `rawmemchr' function. */
+/* #undef HAVE_RAWMEMCHR */
+
+/* Define to 1 if you have the `readdir' function. */
+/* #undef HAVE_READDIR */
+
+/* Define if you have the readline library. */
+#define HAVE_READLINE 1
+
+/* Define to 1 if you have the <readline/history.h> header file. */
+#define HAVE_READLINE_HISTORY_H 1
+
+/* Define to 1 if you have the <readline/readline.h> header file. */
+#define HAVE_READLINE_READLINE_H 1
+
+/* Define to 1 if you have the `readlink' function. */
+#define HAVE_READLINK 1
+
+/* Define to 1 if you have the `readlinkat' function. */
+#define HAVE_READLINKAT 1
+
+/* Define to 1 if you have the `reallocarray' function. */
+/* #undef HAVE_REALLOCARRAY */
+
+/* Define to 1 if you have the `realpath' function. */
+#define HAVE_REALPATH 1
+
+/* Define to 1 if you have the `rewinddir' function. */
+/* #undef HAVE_REWINDDIR */
+
+/* Define to 1 if 'long double' and 'double' have the same representation. */
+#define HAVE_SAME_LONG_DOUBLE_AS_DOUBLE 1
+
+/* Define to 1 if you have the <sched.h> header file. */
+#define HAVE_SCHED_H 1
+
+/* Define to 1 if you have the `sched_setparam' function. */
+/* #undef HAVE_SCHED_SETPARAM */
+
+/* Define to 1 if you have the `sched_setscheduler' function. */
+/* #undef HAVE_SCHED_SETSCHEDULER */
+
+/* Define to 1 if you have the <sdkddkver.h> header file. */
+/* #undef HAVE_SDKDDKVER_H */
+
+/* Define to 1 if you have the <search.h> header file. */
+#define HAVE_SEARCH_H 1
+
+/* Define to 1 if you have the `setdtablesize' function. */
+/* #undef HAVE_SETDTABLESIZE */
+
+/* Define to 1 if you have the `setegid' function. */
+#define HAVE_SETEGID 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `seteuid' function. */
+#define HAVE_SETEUID 1
+
+/* Define to 1 if you have the `setlocale' function. */
+#define HAVE_SETLOCALE 1
+
+/* Define to 1 if you have the `sigaction' function. */
+#define HAVE_SIGACTION 1
+
+/* Define to 1 if you have the `sigaltstack' function. */
+#define HAVE_SIGALTSTACK 1
+
+/* Define to 1 if the system has the type `siginfo_t'. */
+/* #undef HAVE_SIGINFO_T */
+
+/* Define to 1 if you have the `siginterrupt' function. */
+#define HAVE_SIGINTERRUPT 1
+
+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_SIG_ATOMIC_T */
+
+/* Define to 1 if 'wchar_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WCHAR_T */
+
+/* Define to 1 if 'wint_t' is a signed integer type. */
+/* #undef HAVE_SIGNED_WINT_T */
+
+/* Define to 1 if the system has the type `sigset_t'. */
+#define HAVE_SIGSET_T 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if you have the `snprintf' function. */
+#define HAVE_SNPRINTF 1
+
+/* Define if the return value of the snprintf function is the number of of
+   bytes (excluding the terminating NUL) that would have been produced if the
+   buffer had been large enough. */
+#define HAVE_SNPRINTF_RETVAL_C99 1
+
+/* Define if the string produced by the snprintf function is always NUL
+   terminated. */
+#define HAVE_SNPRINTF_TRUNCATION_C99 1
+
+/* Define to 1 if you have the <spawn.h> header file. */
+#define HAVE_SPAWN_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
+   uintmax_t. */
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+/* #undef HAVE_STDIO_EXT_H */
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
+#define HAVE_STPCPY 1
+
+/* Define if you have the stpncpy() function and it works. */
+#define HAVE_STPNCPY 1
+
+/* Define to 1 if you have the `strchrnul' function. */
+#define HAVE_STRCHRNUL 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
+#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1
+
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */
+
+/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */
+
+/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC */
+
+/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */
+
+/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
+
+/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */
+
+/* Define to 1 if the system has the type `struct tms'. */
+#define HAVE_STRUCT_TMS 1
+
+/* Define to 1 if you have the `strverscmp' function. */
+/* #undef HAVE_STRVERSCMP */
+
+/* Define to 1 if you have the `symlink' function. */
+#define HAVE_SYMLINK 1
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+/* #undef HAVE_SYS_BITYPES_H */
+
+/* Define to 1 if you have the <sys/cdefs.h> header file. */
+#define HAVE_SYS_CDEFS_H 1
+
+/* Define to 1 if you have the <sys/inttypes.h> header file. */
+/* #undef HAVE_SYS_INTTYPES_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/single_threaded.h> header file. */
+/* #undef HAVE_SYS_SINGLE_THREADED_H */
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/times.h> header file. */
+#define HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#define HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `tcdrain' function. */
+#define HAVE_TCDRAIN 1
+
+/* Define to 1 if you have the <termios.h> header file. */
+#define HAVE_TERMIOS_H 1
+
+/* Define to 1 if you have the `thrd_create' function. */
+/* #undef HAVE_THRD_CREATE */
+
+/* Define to 1 if you have the <threads.h> header file. */
+/* #undef HAVE_THREADS_H */
+
+/* Define to 1 if you have the `towlower' function. */
+#define HAVE_TOWLOWER 1
+
+/* Define to 1 if you have the `tsearch' function. */
+#define HAVE_TSEARCH 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the `unsetenv' function. */
+#define HAVE_UNSETENV 1
+
+/* Define to 1 if the system has the type 'unsigned long long int'. */
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+
+/* Define if you have a global __progname variable */
+#define HAVE_VAR___PROGNAME 1
+
+/* Define to 1 if you have the `vasnprintf' function. */
+/* #undef HAVE_VASNPRINTF */
+
+/* Define to 1 if you have the `vasprintf' function. */
+#define HAVE_VASPRINTF 1
+
+/* Define to 1 if you have the `vfork' function. */
+#define HAVE_VFORK 1
+
+/* Define to 1 or 0, depending whether the compiler supports simple visibility
+   declarations. */
+/* #undef HAVE_VISIBILITY */
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#define HAVE_VSNPRINTF 1
+
+/* Define to 1 if you have the `waitid' function. */
+#define HAVE_WAITID 1
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#define HAVE_WCHAR_H 1
+
+/* Define if you have the 'wchar_t' type. */
+#define HAVE_WCHAR_T 1
+
+/* Define to 1 if you have the `wcrtomb' function. */
+#define HAVE_WCRTOMB 1
+
+/* Define to 1 if you have the `wcslen' function. */
+#define HAVE_WCSLEN 1
+
+/* Define to 1 if you have the `wcsnlen' function. */
+#define HAVE_WCSNLEN 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#define HAVE_WCTYPE_H 1
+
+/* Define to 1 if you have the `wcwidth' function. */
+#define HAVE_WCWIDTH 1
+
+/* Define to 1 if the compiler and linker support weak declarations of
+   symbols. */
+/* #undef HAVE_WEAK_SYMBOLS */
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define if you have the 'wint_t' type. */
+#define HAVE_WINT_T 1
+
+/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+   7.1. */
+/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */
+
+/* Define to 1 if O_NOATIME works. */
+#define HAVE_WORKING_O_NOATIME 1
+
+/* Define to 1 if O_NOFOLLOW works. */
+#define HAVE_WORKING_O_NOFOLLOW 1
+
+/* Define to 1 if you have the <xlocale.h> header file. */
+#define HAVE_XLOCALE_H 1
+
+/* Define to 1 if the system has the type `_Bool'. */
+#define HAVE__BOOL 1
+
+/* Define to 1 if you have the `_NSGetExecutablePath' function. */
+/* #undef HAVE__NSGETEXECUTABLEPATH */
+
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+/* #undef HAVE__SET_INVALID_PARAMETER_HANDLER */
+
+/* Define to 1 if the compiler supports __builtin_expect,
+   and to 2 if <builtins.h> does.  */
+#define HAVE___BUILTIN_EXPECT 1
+#ifndef HAVE___BUILTIN_EXPECT
+# define __builtin_expect(e, c) (e)
+#elif HAVE___BUILTIN_EXPECT == 2
+# include <builtins.h>
+#endif
+
+
+/* Define to 1 if you have the `__fseterr' function. */
+/* #undef HAVE___FSETERR */
+
+/* Define to 1 if the compiler supports the keyword '__inline'. */
+#define HAVE___INLINE 1
+
+/* Define to 1 if you have the `__xpg_strerror_r' function. */
+/* #undef HAVE___XPG_STRERROR_R */
+
+/* Define as const if the declaration of iconv() needs const. */
+#define ICONV_CONST
+
+/* Define to a symbolic name denoting the flavor of iconv_open()
+   implementation. */
+/* #undef ICONV_FLAVOR */
+
+/* Define to the value of ${prefix}, as a string. */
+#define INSTALLPREFIX "/usr/local"
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+   'long double'. */
+/* #undef LDBL_EXPBIT0_BIT */
+
+/* Define as the word index where to find the exponent of 'long double'. */
+/* #undef LDBL_EXPBIT0_WORD */
+
+/* Define as the bit index in the word where to find the sign of 'long
+   double'. */
+/* #undef LDBL_SIGNBIT_BIT */
+
+/* Define as the word index where to find the sign of 'long double'. */
+/* #undef LDBL_SIGNBIT_WORD */
+
+/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
+   slash. */
+/* #undef LSTAT_FOLLOWS_SLASHED_SYMLINK */
+
+/* Define to the GNU M4 executable name. */
+#define M4 "/usr/bin/m4"
+
+/* Define to "-g" if GNU M4 supports -g, otherwise to "". */
+#define M4_GNU_OPTION ""
+
+/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
+#define MALLOC_0_IS_NONNULL 1
+
+/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
+/* #undef MAP_ANONYMOUS */
+
+/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
+   */
+/* #undef MBRTOWC_EMPTY_INPUT_BUG */
+
+/* Define if the mbrtowc function may signal encoding errors in the C locale.
+   */
+/* #undef MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ */
+
+/* Define if the mbrtowc function has the NULL pwc argument bug. */
+/* #undef MBRTOWC_NULL_ARG1_BUG */
+
+/* Define if the mbrtowc function has the NULL string argument bug. */
+/* #undef MBRTOWC_NULL_ARG2_BUG */
+
+/* Define if the mbrtowc function does not return 0 for a NUL character. */
+/* #undef MBRTOWC_NUL_RETVAL_BUG */
+
+/* Define if the mbrtowc function returns a wrong return value. */
+/* #undef MBRTOWC_RETVAL_BUG */
+
+/* Define if the mbrtowc function stores a wide character when reporting
+   incomplete input. */
+/* #undef MBRTOWC_STORES_INCOMPLETE_BUG */
+
+/* Use GNU style printf and scanf.  */
+#ifndef __USE_MINGW_ANSI_STDIO
+# define __USE_MINGW_ANSI_STDIO 1
+#endif
+
+
+/* Define to 1 on musl libc. */
+/* #undef MUSL_LIBC */
+
+/* Define to 1 if assertions should be disabled. */
+/* #undef NDEBUG */
+
+/* Define if the vasnprintf implementation needs special code for the 'a' and
+   'A' directives. */
+#define NEED_PRINTF_DIRECTIVE_A 1
+
+/* Define if the vasnprintf implementation needs special code for the 'F'
+   directive. */
+/* #undef NEED_PRINTF_DIRECTIVE_F */
+
+/* Define if the vasnprintf implementation needs special code for the 'ls'
+   directive. */
+/* #undef NEED_PRINTF_DIRECTIVE_LS */
+
+/* Define if the vasnprintf implementation needs special code for 'double'
+   arguments. */
+#define NEED_PRINTF_DOUBLE 1
+
+/* Define if the vasnprintf implementation needs special code for surviving
+   out-of-memory conditions. */
+#define NEED_PRINTF_ENOMEM 1
+
+/* Define if the vasnprintf implementation needs special code for the ' flag.
+   */
+/* #undef NEED_PRINTF_FLAG_GROUPING */
+
+/* Define if the vasnprintf implementation needs special code for the '-'
+   flag. */
+/* #undef NEED_PRINTF_FLAG_LEFTADJUST */
+
+/* Define if the vasnprintf implementation needs special code for the 0 flag.
+   */
+/* #undef NEED_PRINTF_FLAG_ZERO */
+
+/* Define if the vasnprintf implementation needs special code for infinite
+   'double' arguments. */
+/* #undef NEED_PRINTF_INFINITE_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for infinite
+   'long double' arguments. */
+/* #undef NEED_PRINTF_INFINITE_LONG_DOUBLE */
+
+/* Define if the vasnprintf implementation needs special code for 'long
+   double' arguments. */
+#define NEED_PRINTF_LONG_DOUBLE 1
+
+/* Define if the vasnprintf implementation needs special code for supporting
+   large precisions without arbitrary bounds. */
+/* #undef NEED_PRINTF_UNBOUNDED_PRECISION */
+
+/* Define to 1 if open() fails to recognize a trailing slash. */
+#define OPEN_TRAILING_SLASH_BUG 1
+
+/* Name of package */
+#define PACKAGE "bison"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "bug-bison@gnu.org"
+
+/* The copyright year for this package */
+#define PACKAGE_COPYRIGHT_YEAR 2021
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "GNU Bison"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "GNU Bison 3.8.2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "bison"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://www.gnu.org/software/bison/"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "3.8.2"
+
+/* Define to the type that is the result of default argument promotions of
+   type mode_t. */
+#define PROMOTED_MODE_T int
+
+/* Define if the pthread_in_use() detection is hard. */
+/* #undef PTHREAD_IN_USE_DETECTION_HARD */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'ptrdiff_t'. */
+/* #undef PTRDIFF_T_SUFFIX */
+
+/* Define to 1 if readlink fails to recognize a trailing slash. */
+#define READLINK_TRAILING_SLASH_BUG 1
+
+/* Define to 1 if readlink sets errno instead of truncating a too-long link.
+   */
+/* #undef READLINK_TRUNCATE_BUG */
+
+/* Define if rename does not work when the destination file exists, as on
+   Cygwin 1.5 or Windows. */
+/* #undef RENAME_DEST_EXISTS_BUG */
+
+/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
+   Cygwin 1.5. */
+/* #undef RENAME_HARD_LINK_BUG */
+
+/* Define if rename does not correctly handle slashes on the destination
+   argument, such as on Solaris 11 or NetBSD 1.6. */
+#define RENAME_TRAILING_SLASH_DEST_BUG 1
+
+/* Define if rename does not correctly handle slashes on the source argument,
+   such as on Solaris 9 or cygwin 1.5. */
+#define RENAME_TRAILING_SLASH_SOURCE_BUG 1
+
+/* Define to 1 if gnulib's dirfd() replacement is used. */
+/* #undef REPLACE_DIRFD */
+
+/* Define to 1 if gnulib's fchdir() replacement is used. */
+/* #undef REPLACE_FCHDIR */
+
+/* Define if fprintf is overridden by a POSIX compliant gnulib implementation.
+   */
+#define REPLACE_FPRINTF_POSIX 1
+
+/* Define to 1 if stat needs help when passed a file name with a trailing
+   slash */
+#define REPLACE_FUNC_STAT_FILE 1
+
+/* Define to 1 if open() should work around the inability to open a directory.
+   */
+/* #undef REPLACE_OPEN_DIRECTORY */
+
+/* Define if gnulib uses its own posix_spawn and posix_spawnp functions. */
+#define REPLACE_POSIX_SPAWN 1
+
+/* Define if printf is overridden by a POSIX compliant gnulib implementation.
+   */
+#define REPLACE_PRINTF_POSIX 1
+
+/* Define to 1 if strerror(0) does not return a message implying success. */
+#define REPLACE_STRERROR_0 1
+
+/* Define if vasnprintf exists but is overridden by gnulib. */
+/* #undef REPLACE_VASNPRINTF */
+
+/* Define if vfprintf is overridden by a POSIX compliant gnulib
+   implementation. */
+#define REPLACE_VFPRINTF_POSIX 1
+
+/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */
+#define SETLOCALE_NULL_ALL_MTSAFE 0
+
+/* Define to 1 if setlocale (category, NULL) is multithread-safe. */
+#define SETLOCALE_NULL_ONE_MTSAFE 1
+
+/* File name of the Bourne shell.  */
+#if (defined _WIN32 && !defined __CYGWIN__) || defined __CYGWIN__ || defined __ANDROID__
+/* Omit the directory part because
+   - For native Windows programs in a Cygwin environment, the Cygwin mounts
+     are not visible.
+   - For 32-bit Cygwin programs in a 64-bit Cygwin environment, the Cygwin
+     mounts are not visible.
+   - On Android, /bin/sh does not exist. It's /system/bin/sh instead.  */
+# define BOURNE_SHELL "sh"
+#else
+# define BOURNE_SHELL "/bin/sh"
+#endif
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'sig_atomic_t'. */
+/* #undef SIG_ATOMIC_T_SUFFIX */
+
+/* Define as the maximum value of type 'size_t', if the system doesn't define
+   it. */
+#ifndef SIZE_MAX
+/* # undef SIZE_MAX */
+#endif
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'size_t'. */
+/* #undef SIZE_T_SUFFIX */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at runtime.
+	STACK_DIRECTION > 0 => grows toward higher addresses
+	STACK_DIRECTION < 0 => grows toward lower addresses
+	STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* #undef STAT_MACROS_BROKEN */
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if strerror_r returns char *. */
+/* #undef STRERROR_R_CHAR_P */
+
+/* Define to 1 if the type of the st_atim member of a struct stat is struct
+   timespec. */
+/* #undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC */
+
+/* Define to 1 if unlink() on a parent directory may succeed */
+/* #undef UNLINK_PARENT_BUG */
+
+/* Define to the prefix of C symbols at the assembler and linker level, either
+   an underscore or empty. */
+#define USER_LABEL_PREFIX _
+
+/* Define if the combination of the ISO C and POSIX multithreading APIs can be
+   used. */
+/* #undef USE_ISOC_AND_POSIX_THREADS */
+
+/* Define if the ISO C multithreading library can be used. */
+/* #undef USE_ISOC_THREADS */
+
+/* Define if the POSIX multithreading library can be used. */
+#define USE_POSIX_THREADS 1
+
+/* Define if references to the POSIX multithreading library are satisfied by
+   libc. */
+/* #undef USE_POSIX_THREADS_FROM_LIBC */
+
+/* Define if references to the POSIX multithreading library should be made
+   weak. */
+/* #undef USE_POSIX_THREADS_WEAK */
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on macOS.  */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+   with -lxnet on HP-UX 11.11.  */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# define _HPUX_ALT_XOPEN_SOCKET_API 1
+#endif
+/* Identify the host operating system as Minix.
+   This macro does not affect the system headers' behavior.
+   A future release of Autoconf may stop defining this macro.  */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+   Enable NetBSD compatibility extensions on Minix.  */
+#ifndef _NETBSD_SOURCE
+# define _NETBSD_SOURCE 1
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+   Oddly enough, this does nothing on OpenBSD.  */
+#ifndef _OPENBSD_SOURCE
+# define _OPENBSD_SOURCE 1
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
+#ifndef __STDC_WANT_LIB_EXT2__
+# define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions.  Define to 500 only if necessary
+   to make mbstate_t available.  */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+
+/* An alias of GNULIB_STDIO_SINGLE_THREAD. */
+#define USE_UNLOCKED_IO GNULIB_STDIO_SINGLE_THREAD
+
+/* Define if the native Windows multithreading API can be used. */
+/* #undef USE_WINDOWS_THREADS */
+
+/* Version number of package */
+#define VERSION "3.8.2"
+
+/* Define to 1 if unsetenv returns void instead of int. */
+/* #undef VOID_UNSETENV */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wchar_t'. */
+/* #undef WCHAR_T_SUFFIX */
+
+/* Define if sys/ptem.h is required for struct winsize. */
+/* #undef WINSIZE_IN_PTEM */
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+   'wint_t'. */
+/* #undef WINT_T_SUFFIX */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 to internationalize bison runtime messages. */
+/* #undef YYENABLE_NLS */
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+   `char[]'. */
+#define YYTEXT_POINTER 1
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* True if the compiler says it groks GNU C version MAJOR.MINOR.  */
+#if defined __GNUC__ && defined __GNUC_MINOR__
+# define _GL_GNUC_PREREQ(major, minor) \
+    ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__))
+#else
+# define _GL_GNUC_PREREQ(major, minor) 0
+#endif
+
+
+/* Define to enable the declarations of ISO C 11 types and functions. */
+/* #undef _ISOC11_SOURCE */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 on Solaris. */
+/* #undef _LCONV_C99 */
+
+/* The _Noreturn keyword of C11.  */
+#ifndef _Noreturn
+# if (defined __cplusplus \
+      && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \
+          || (defined _MSC_VER && 1900 <= _MSC_VER)) \
+      && 0)
+    /* [[noreturn]] is not practically usable, because with it the syntax
+         extern _Noreturn void func (...);
+       would not be valid; such a declaration would only be valid with 'extern'
+       and '_Noreturn' swapped, or without the 'extern' keyword.  However, some
+       AIX system header files and several gnulib header files use precisely
+       this syntax with 'extern'.  */
+#  define _Noreturn [[noreturn]]
+# elif ((!defined __cplusplus || defined __clang__) \
+        && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \
+            || (!defined __STRICT_ANSI__ \
+                && (_GL_GNUC_PREREQ (4, 7) \
+                    || (defined __apple_build_version__ \
+                        ? 6000000 <= __apple_build_version__ \
+                        : 3 < __clang_major__ + (5 <= __clang_minor__))))))
+   /* _Noreturn works as-is.  */
+# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C
+#  define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0)
+#  define _Noreturn __declspec (noreturn)
+# else
+#  define _Noreturn
+# endif
+#endif
+
+
+/* Number of bits in a timestamp, on hosts where this is settable. */
+/* #undef _TIME_BITS */
+
+/* For standard stat data types on VMS. */
+#define _USE_STD_STAT 1
+
+/* Define to rpl_ if the getopt replacement functions and variables should be
+   used. */
+#define __GETOPT_PREFIX rpl_
+
+/* For 64-bit time_t on 32-bit mingw. */
+/* #undef __MINGW_USE_VC2005_COMPAT */
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_CONSTANT_MACROS */
+
+/* Define to 1 if the system <stdint.h> predates C++11. */
+/* #undef __STDC_LIMIT_MACROS */
+
+/* The _GL_ASYNC_SAFE marker should be attached to functions that are
+   signal handlers (for signals other than SIGABRT, SIGPIPE) or can be
+   invoked from such signal handlers.  Such functions have some restrictions:
+     * All functions that it calls should be marked _GL_ASYNC_SAFE as well,
+       or should be listed as async-signal-safe in POSIX
+       <https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04>
+       section 2.4.3.  Note that malloc(), sprintf(), and fwrite(), in
+       particular, are NOT async-signal-safe.
+     * All memory locations (variables and struct fields) that these functions
+       access must be marked 'volatile'.  This holds for both read and write
+       accesses.  Otherwise the compiler might optimize away stores to and
+       reads from such locations that occur in the program, depending on its
+       data flow analysis.  For example, when the program contains a loop
+       that is intended to inspect a variable set from within a signal handler
+           while (!signal_occurred)
+             ;
+       the compiler is allowed to transform this into an endless loop if the
+       variable 'signal_occurred' is not declared 'volatile'.
+   Additionally, recall that:
+     * A signal handler should not modify errno (except if it is a handler
+       for a fatal signal and ends by raising the same signal again, thus
+       provoking the termination of the process).  If it invokes a function
+       that may clobber errno, it needs to save and restore the value of
+       errno.  */
+#define _GL_ASYNC_SAFE
+
+
+/* Attributes.  */
+#if (defined __has_attribute \
+     && (!defined __clang_minor__ \
+         || 3 < __clang_major__ + (5 <= __clang_minor__)))
+# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
+#else
+# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
+# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
+# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95)
+# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1)
+# define _GL_ATTR_diagnose_if 0
+# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3)
+# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1)
+# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0)
+# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6)
+# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0)
+# ifdef _ICC
+#  define _GL_ATTR_may_alias 0
+# else
+#  define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3)
+# endif
+# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1)
+# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3)
+# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0)
+# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
+# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
+# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
+# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
+# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
+# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
+#endif
+
+#ifdef __has_c_attribute
+# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__)
+#else
+# define _GL_HAS_C_ATTRIBUTE(attr) 0
+#endif
+
+
+/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function
+   is the size of the returned memory block.
+   _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
+   by the Nth argument of the function is the size of the returned memory block.
+ */
+/* Applies to: function, pointer to function, function types.  */
+#if _GL_HAS_ATTRIBUTE (alloc_size)
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+#else
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+#endif
+
+/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
+   function and report an error if it cannot do so.  */
+/* Applies to: function.  */
+#if _GL_HAS_ATTRIBUTE (always_inline)
+# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
+#else
+# define _GL_ATTRIBUTE_ALWAYS_INLINE
+#endif
+
+/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
+    in stack traces when debugging.  The compiler should omit the function from
+    stack traces.  */
+/* Applies to: function.  */
+#if _GL_HAS_ATTRIBUTE (artificial)
+# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
+#else
+# define _GL_ATTRIBUTE_ARTIFICIAL
+#endif
+
+/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed.  */
+/* Applies to: functions.  */
+/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at
+   <https://lists.gnu.org/r/emacs-devel/2019-04/msg01152.html>.
+   Also, Oracle Studio 12.6 requires 'cold' not '__cold__'.  */
+#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__
+# ifndef __SUNPRO_C
+#  define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__))
+# else
+#  define _GL_ATTRIBUTE_COLD __attribute__ ((cold))
+# endif
+#else
+# define _GL_ATTRIBUTE_COLD
+#endif
+
+/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
+   calls to the function with the same arguments.
+   This attribute is safe for a function that neither depends on nor affects
+   observable state, and always returns exactly once - e.g., does not loop
+   forever, and does not call longjmp.
+   (This attribute is stricter than _GL_ATTRIBUTE_PURE.)  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (const)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST
+#endif
+
+/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
+   that can be freed by passing them as the Ith argument to the
+   function F.
+   _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
+   can be freed via 'free'; it can be used only after declaring 'free'.  */
+/* Applies to: functions.  Cannot be used on inline functions.  */
+#if _GL_GNUC_PREREQ (11, 0)
+# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
+#else
+# define _GL_ATTRIBUTE_DEALLOC(f, i)
+#endif
+#define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
+
+/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated.
+   The compiler may warn if the entity is used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: namespace, class, template specialization.  */
+#if _GL_HAS_C_ATTRIBUTE (deprecated)
+# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]]
+#elif _GL_HAS_ATTRIBUTE (deprecated)
+# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+#else
+# define _GL_ATTRIBUTE_DEPRECATED
+#endif
+
+/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and
+   the function call is not optimized away.
+   _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and
+   the function call is not optimized away.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (error)
+# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg)))
+# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg)))
+#elif _GL_HAS_ATTRIBUTE (diagnose_if)
+# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error")))
+# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning")))
+#else
+# define _GL_ATTRIBUTE_ERROR(msg)
+# define _GL_ATTRIBUTE_WARNING(msg)
+#endif
+
+/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain
+   visible to debuggers etc., even with '-fwhole-program'.  */
+/* Applies to: functions, variables.  */
+#if _GL_HAS_ATTRIBUTE (externally_visible)
+# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible))
+#else
+# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE
+#endif
+
+/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if
+   the control flow falls through to the immediately following 'case' or
+   'default' label.  The compiler should not warn in this case.  */
+/* Applies to: Empty statement (;), inside a 'switch' statement.  */
+/* Always expands to something.  */
+#if _GL_HAS_C_ATTRIBUTE (fallthrough)
+# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]]
+#elif _GL_HAS_ATTRIBUTE (fallthrough)
+# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__))
+#else
+# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0)
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK))
+   declares that the STRING-INDEXth function argument is a format string of
+   style ARCHETYPE, which is one of:
+     printf, gnu_printf
+     scanf, gnu_scanf,
+     strftime, gnu_strftime,
+     strfmon,
+   or the same thing prefixed and suffixed with '__'.
+   If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK
+   are suitable for the format string.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (format)
+# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec)
+#endif
+
+/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other
+   compilation unit, it executes code from that unit only by return or by
+   exception handling.  This declaration lets the compiler optimize that unit
+   more aggressively.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (leaf)
+# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__))
+#else
+# define _GL_ATTRIBUTE_LEAF
+#endif
+
+/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
+   allocated memory.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (malloc)
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+#else
+# define _GL_ATTRIBUTE_MALLOC
+#endif
+
+/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the
+   same storage as pointers to other types.  Thus this declaration disables
+   strict aliasing optimization.  */
+/* Applies to: types.  */
+/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK.  */
+#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C
+# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__))
+#else
+# define _GL_ATTRIBUTE_MAY_ALIAS
+#endif
+
+/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
+   the entity is not used.  The compiler should not warn if the entity is not
+   used.  */
+/* Applies to:
+     - function, variable,
+     - struct, union, struct/union member,
+     - enumeration, enumeration item,
+     - typedef,
+   in C++ also: class.  */
+/* In C++ and C2x, this is spelled [[__maybe_unused__]].
+   GCC's syntax is __attribute__ ((__unused__)).
+   clang supports both syntaxes.  */
+#if _GL_HAS_C_ATTRIBUTE (maybe_unused)
+# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
+#else
+# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED
+#endif
+/* Alternative spelling of this macro, for convenience.  */
+#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED
+/* Earlier spellings of this macro.  */
+#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED
+
+/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not
+   discard the return value.  The compiler may warn if the caller does not use
+   the return value, unless the caller uses something like ignore_value.  */
+/* Applies to: function, enumeration, class.  */
+#if _GL_HAS_C_ATTRIBUTE (nodiscard)
+# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
+#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
+# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
+#else
+# define _GL_ATTRIBUTE_NODISCARD
+#endif
+
+/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the
+   function.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (noinline)
+# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__))
+#else
+# define _GL_ATTRIBUTE_NOINLINE
+#endif
+
+/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,...
+   must not be NULL.
+   _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be
+   null.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (nonnull)
+# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args))
+#else
+# define _GL_ATTRIBUTE_NONNULL(args)
+#endif
+
+/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is
+   not meant to be NUL-terminated.  */
+/* Applies to: struct/union members and variables that are arrays of element
+   type '[[un]signed] char'.  */
+#if _GL_HAS_ATTRIBUTE (nonstring)
+# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__))
+#else
+# define _GL_ATTRIBUTE_NONSTRING
+#endif
+
+/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead.  */
+
+/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions.
+ */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus
+# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__))
+#else
+# define _GL_ATTRIBUTE_NOTHROW
+#endif
+
+/* _GL_ATTRIBUTE_PACKED declares:
+   For struct members: The member has the smallest possible alignment.
+   For struct, union, class: All members have the smallest possible alignment,
+   minimizing the memory required.  */
+/* Applies to: struct members, struct, union,
+   in C++ also: class.  */
+#if _GL_HAS_ATTRIBUTE (packed)
+# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
+#else
+# define _GL_ATTRIBUTE_PACKED
+#endif
+
+/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
+   calls to the function with the same arguments if observable state is not
+   changed between calls.
+   This attribute is safe for a function that does not affect
+   observable state, and always returns exactly once.
+   (This attribute is looser than _GL_ATTRIBUTE_CONST.)  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (pure)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE
+#endif
+
+/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is
+   a non-NULL pointer.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (returns_nonnull)
+# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
+#else
+# define _GL_ATTRIBUTE_RETURNS_NONNULL
+#endif
+
+/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a
+   trailing NULL argument.
+   _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99).
+   _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL.  */
+/* Applies to: functions.  */
+#if _GL_HAS_ATTRIBUTE (sentinel)
+# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos))
+#else
+# define _GL_ATTRIBUTE_SENTINEL(pos)
+#endif
+
+/* A helper macro.  Don't use it directly.  */
+#if _GL_HAS_ATTRIBUTE (unused)
+# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+#else
+# define _GL_ATTRIBUTE_UNUSED
+#endif
+
+
+/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the
+   immediately preceding label is not used.  The compiler should not warn
+   if the label is not used.  */
+/* Applies to: label (both in C and C++).  */
+/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;'
+   syntax.  But clang does.  */
+#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__
+# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
+
+/* Define as 'access' if you don't have the eaccess() function. */
+#define eaccess access
+
+/* Please see the Gnulib manual for how to use these macros.
+
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>.
+
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Oracle Developer Studio 12.6
+   (Sun C 5.15 SunOS_sparc 2017/05/30).
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions (ISO C 99 section 6.7.4.(3).
+   This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <https://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.
+
+   GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+   inline semantics, unless -fgnu89-inline is used.  It defines a macro
+   __GNUC_STDC_INLINE__ to indicate this situation or a macro
+   __GNUC_GNU_INLINE__ to indicate the opposite situation.
+   GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+   semantics but warns, unless -fgnu89-inline is used:
+     warning: C99 inline functions are not supported; using GNU89
+     warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+   It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+ */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
+#if ((__GNUC__ \
+      ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !defined __PGI \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# define _GL_INLINE inline
+# define _GL_EXTERN_INLINE extern inline
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
+   /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
+#  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
+# else
+#  define _GL_INLINE extern inline
+# endif
+# define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
+#else
+# define _GL_INLINE _GL_UNUSED static
+# define _GL_EXTERN_INLINE _GL_UNUSED static
+#endif
+
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+   suppress bogus "no previous prototype for 'FOO'"
+   and "no previous declaration for 'FOO'" diagnostics,
+   when FOO is an inline function in the header; see
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
+# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
+#  define _GL_INLINE_HEADER_CONST_PRAGMA
+# else
+#  define _GL_INLINE_HEADER_CONST_PRAGMA \
+     _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"")
+# endif
+# define _GL_INLINE_HEADER_BEGIN \
+    _Pragma ("GCC diagnostic push") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \
+    _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \
+    _GL_INLINE_HEADER_CONST_PRAGMA
+# define _GL_INLINE_HEADER_END \
+    _Pragma ("GCC diagnostic pop")
+#else
+# define _GL_INLINE_HEADER_BEGIN
+# define _GL_INLINE_HEADER_END
+#endif
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to long or long long if <stdint.h> and <inttypes.h> don't define. */
+/* #undef intmax_t */
+
+/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+   __APPLE__ && __MACH__ test for Mac OS X.
+   __APPLE_CC__ tests for the Apple compiler and its version.
+   __STDC_VERSION__ tests for the C99 mode.  */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif
+
+/* Define to a type if <wchar.h> does not define. */
+/* #undef mbstate_t */
+
+/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where
+   n1 and n2 are expressions without side effects, that evaluate to real
+   numbers (excluding NaN).
+   It returns
+     1  if n1 > n2
+     0  if n1 == n2
+     -1 if n1 < n2
+   The naïve code   (n1 > n2 ? 1 : n1 < n2 ? -1 : 0)  produces a conditional
+   jump with nearly all GCC versions up to GCC 10.
+   This variant     (n1 < n2 ? -1 : n1 > n2)  produces a conditional with many
+   GCC versions up to GCC 9.
+   The better code  (n1 > n2) - (n1 < n2)  from Hacker's Delight § 2-9
+   avoids conditional jumps in all GCC versions >= 3.4.  */
+#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2)))
+
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef mode_t */
+
+/* Define to the type of st_nlink in struct stat, or a supertype. */
+/* #undef nlink_t */
+
+/* Define as a signed integer type capable of holding a process identifier. */
+/* #undef pid_t */
+
+/* Define as the type of the result of subtracting two pointers, if the system
+   doesn't define it. */
+/* #undef ptrdiff_t */
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+   nothing if this is not supported.  Do not define if restrict is
+   supported only directly.  */
+#define restrict __restrict__
+/* Work around a bug in older versions of Sun C++, which did not
+   #define __restrict__ or support _Restrict or __restrict__
+   even though the corresponding Sun C compiler ended up with
+   "#define restrict _Restrict" or "#define restrict __restrict__"
+   in the previous line.  This workaround can be removed once
+   we assume Oracle Developer Studio 12.5 (2016) or later.  */
+#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define as an integer type suitable for memory locations that can be
+   accessed atomically even in the presence of asynchronous signals. */
+/* #undef sig_atomic_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define as a signed type of the same size as size_t. */
+/* #undef ssize_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
+
+  /* This definition is a duplicate of the one in unitypes.h.
+     It is here so that we can cope with an older version of unitypes.h
+     that does not contain this definition and that is pre-installed among
+     the public header files.  */
+  # if defined __restrict \
+       || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
+       || __clang_major__ >= 3
+  #  define _UC_RESTRICT __restrict
+  # elif 199901L <= __STDC_VERSION__ || defined restrict
+  #  define _UC_RESTRICT restrict
+  # else
+  #  define _UC_RESTRICT
+  # endif
diff --git a/modules/bison/3.8.2/overlay/src/bazel_runfiles.cc b/modules/bison/3.8.2/overlay/src/bazel_runfiles.cc
new file mode 100644
index 0000000..b8469ec
--- /dev/null
+++ b/modules/bison/3.8.2/overlay/src/bazel_runfiles.cc
@@ -0,0 +1,75 @@
+#include "rules_cc/cc/runfiles/runfiles.h"
+
+#include <cstring>
+#include <string>
+
+using rules_cc::cc::runfiles::Runfiles;
+
+struct BazelRunfiles {
+	std::unique_ptr<Runfiles> ptr;
+};
+
+extern "C" {
+
+static struct BazelRunfiles *bazel_runfiles = NULL;
+
+void bazel_runfiles_init(const char *argv0_cstr) {
+	if (bazel_runfiles != nullptr) {
+		return;
+	}
+
+	Runfiles *runfiles;
+	std::string argv0(argv0_cstr);
+	std::string source_repository(BAZEL_CURRENT_REPOSITORY);
+	std::string error;
+	runfiles = Runfiles::Create(argv0, source_repository, &error);
+	if (runfiles == nullptr) {
+		return;
+	}
+
+	bazel_runfiles = new BazelRunfiles;
+	bazel_runfiles->ptr.reset(runfiles);
+}
+
+char *bazel_runfiles_bison_pkgdatadir() {
+	if (bazel_runfiles == nullptr) {
+		return nullptr;
+	}
+
+	std::string path = std::string(
+		BAZEL_CURRENT_REPOSITORY "/data/m4sugar/m4sugar.m4"
+	);
+	std::string result = bazel_runfiles->ptr->Rlocation(path);
+	if (result.empty()) {
+		return nullptr;
+	}
+
+	char *datadir = strdup(result.c_str());
+	/* "data/m4sugar/m4sugar.m4" => "data" */
+	datadir[result.size() - 19] = '\x00';
+	return datadir;
+}
+
+char *bazel_runfiles_m4() {
+	if (bazel_runfiles == nullptr) {
+		return nullptr;
+	}
+	const char *runfiles_m4_cstr = getenv("BISON_BAZEL_RUNFILES_M4");
+	if (runfiles_m4_cstr == nullptr) {
+		return nullptr;
+	}
+	std::string runfiles_m4(runfiles_m4_cstr);
+	std::string path;
+	if (runfiles_m4.find("../") == 0) {
+		path = runfiles_m4.substr(3);
+	} else {
+		path = std::string(BAZEL_CURRENT_REPOSITORY) + "/" + runfiles_m4;
+	}
+	std::string result = bazel_runfiles->ptr->Rlocation(path);
+	if (result.empty()) {
+		return nullptr;
+	}
+	return strdup(result.c_str());
+}
+
+}
diff --git a/modules/bison/3.8.2/patches/bison_runfiles.patch b/modules/bison/3.8.2/patches/bison_runfiles.patch
new file mode 100644
index 0000000..a860889
--- /dev/null
+++ b/modules/bison/3.8.2/patches/bison_runfiles.patch
@@ -0,0 +1,45 @@
+diff --git a/src/files.c b/src/files.c
+index 0ef6e9c..a78d4f5 100644
+--- a/src/files.c
++++ b/src/files.c
+@@ -552,6 +552,12 @@ pkgdatadir (void)
+     return relocate_buffer;
+   else
+     {
++      char *bazel_runfiles_bison_pkgdatadir();
++      static char *bazel_pkgdatadir_p = NULL;
++      if (bazel_pkgdatadir_p == NULL) {
++        bazel_pkgdatadir_p = bazel_runfiles_bison_pkgdatadir();
++      }
++      if (bazel_pkgdatadir_p != NULL) { return bazel_pkgdatadir_p; }
+       char const *cp = getenv ("BISON_PKGDATADIR");
+       return cp ? cp : relocate2 (PKGDATADIR, &relocate_buffer);
+     }
+@@ -560,7 +566,13 @@ pkgdatadir (void)
+ char const *
+ m4path (void)
+ {
+-  char const *m4 = getenv ("M4");
++  char *bazel_runfiles_m4();
++  static char *bazel_m4_p = NULL;
++  if (bazel_m4_p == NULL) {
++    bazel_m4_p = bazel_runfiles_m4();
++  }
++
++  char const *m4 = bazel_m4_p? bazel_m4_p : (m4 = getenv ("M4")) ? m4 : M4;
+   if (m4)
+     return m4;
+ 
+diff --git a/src/main.c b/src/main.c
+index 1185bf2..c0ae4a6 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -63,6 +63,8 @@
+ int
+ main (int argc, char *argv[])
+ {
++  void bazel_runfiles_init(const char *argv0);
++  bazel_runfiles_init(argv[0]);
+   {
+     char *cp = getenv ("BISON_PROGRAM_NAME");
+     if (cp)
diff --git a/modules/bison/3.8.2/presubmit.yml b/modules/bison/3.8.2/presubmit.yml
new file mode 100644
index 0000000..7b3bc9d
--- /dev/null
+++ b/modules/bison/3.8.2/presubmit.yml
@@ -0,0 +1,15 @@
+matrix:
+  platform:
+    - debian10
+    - macos_arm64
+    - rockylinux8
+    - ubuntu2004
+    - ubuntu2004_arm64
+  bazel: ["7.x", "8.x"]
+tasks:
+  verify_targets:
+    name: "Run test module"
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_targets:
+    - "@bison//..."
diff --git a/modules/bison/3.8.2/source.json b/modules/bison/3.8.2/source.json
new file mode 100644
index 0000000..4427980
--- /dev/null
+++ b/modules/bison/3.8.2/source.json
@@ -0,0 +1,19 @@
+{
+    "url": "https://mirrors.kernel.org/gnu/bison/bison-3.8.2.tar.xz",
+    "integrity": "sha256-m7oCFMz38QecXVkhAEUie89hlRmEDr+oDNOEnP9aW/I=",
+    "strip_prefix": "bison-3.8.2",
+    "overlay": {
+        "BUILD.bazel": "sha256-qZqTwtgWzEQFndWDyKmG4w6ovHTrq2l6R5/uROugXR8=",
+        "MODULE.bazel": "sha256-FF4Nk+KLXyAzhrZzrWl3mNwotr+Iq5OgVQfEdET2wNM=",
+        "bison_utils.bzl": "sha256-7/jEFnvfJ4NhxG4yxR1p93+13m0oZ8OsiHCCjiFelUI=",
+        "config_linux.bzl": "sha256-BoGZIQ3kF1RqY/U3m8uLWBbgxUukDbZl/4nrcDxG4+s=",
+        "config_linux.h": "sha256-uEbY2q3aCeTy7KqGPKNLj8ABLoMxBhoKzcsSnEegHCM=",
+        "config_macos.bzl": "sha256-WwKIIdkmTCDamN+b9gurinXnuoTZVI+Dy+k4aalL0/A=",
+        "config_macos.h": "sha256-j9Ee1KB1qs+/zAiz2rHHh+HbRCYJBOrtzQFJMeGDJVE=",
+        "src/bazel_runfiles.cc": "sha256-o9CfqzA/wMokkZFTDDU9ZWDeV0XybwRv3huEW408Hjk="
+    },
+    "patch_strip": 1,
+    "patches": {
+        "bison_runfiles.patch": "sha256-3rP891KElfcHLA8zd/xDCY9G4F8DTyu7ZFsEfb3DzKg="
+    }
+}
diff --git a/modules/bison/README.md b/modules/bison/README.md
new file mode 100644
index 0000000..5e62bee
--- /dev/null
+++ b/modules/bison/README.md
@@ -0,0 +1,12 @@
+# Bison
+
+## Generating config files
+
+To generate `config_*` overlay files, use the following instructions:
+
+1. Configure and build Bison on the target system (e.g. linux/macos/etc).
+2. Run the `generate_bison_config_bzl.py` script.
+
+If the Bison build was successful and all the requested arguments were passed to
+`generate_bison_config_bzl.py`, there should be new `config_*.bzl` and `config_*.h`
+files in the provided version.
diff --git a/modules/bison/generate_bison_config_bzl.py b/modules/bison/generate_bison_config_bzl.py
new file mode 100644
index 0000000..fb86530
--- /dev/null
+++ b/modules/bison/generate_bison_config_bzl.py
@@ -0,0 +1,1362 @@
+"""A script for collecting and generating files for bison BUILD files."""
+
+import argparse
+import shutil
+import os
+import re
+import platform
+import json
+from pathlib import Path
+
+TEMPLATE_KEYS = [
+    "APPLE_UNIVERSAL_BUILD",
+    "ASM_SYMBOL_PREFIX",
+    "BITSIZEOF_PTRDIFF_T",
+    "BITSIZEOF_SIG_ATOMIC_T",
+    "BITSIZEOF_SIZE_T",
+    "BITSIZEOF_WCHAR_T",
+    "BITSIZEOF_WINT_T",
+    "EMULTIHOP_HIDDEN",
+    "EMULTIHOP_VALUE",
+    "ENOLINK_HIDDEN",
+    "ENOLINK_VALUE",
+    "EOVERFLOW_HIDDEN",
+    "EOVERFLOW_VALUE",
+    "GNULIBHEADERS_OVERRIDE_WINT_T",
+    "GNULIB_ACCESS",
+    "GNULIB_ACOSF",
+    "GNULIB_ACOSL",
+    "GNULIB_ALIGNED_ALLOC",
+    "GNULIB_ALPHASORT",
+    "GNULIB_ASINF",
+    "GNULIB_ASINL",
+    "GNULIB_ATAN2F",
+    "GNULIB_ATANF",
+    "GNULIB_ATANL",
+    "GNULIB_ATOLL",
+    "GNULIB_BTOWC",
+    "GNULIB_CALLOC_POSIX",
+    "GNULIB_CANONICALIZE_FILE_NAME",
+    "GNULIB_CBRT",
+    "GNULIB_CBRTF",
+    "GNULIB_CBRTL",
+    "GNULIB_CEIL",
+    "GNULIB_CEILF",
+    "GNULIB_CEILL",
+    "GNULIB_CHDIR",
+    "GNULIB_CHOWN",
+    "GNULIB_CLOSE",
+    "GNULIB_CLOSEDIR",
+    "GNULIB_COPYSIGN",
+    "GNULIB_COPYSIGNF",
+    "GNULIB_COPYSIGNL",
+    "GNULIB_COPY_FILE_RANGE",
+    "GNULIB_COSF",
+    "GNULIB_COSHF",
+    "GNULIB_COSL",
+    "GNULIB_CREAT",
+    "GNULIB_CTIME",
+    "GNULIB_DIRFD",
+    "GNULIB_DPRINTF",
+    "GNULIB_DUP2",
+    "GNULIB_DUP3",
+    "GNULIB_DUP",
+    "GNULIB_DUPLOCALE",
+    "GNULIB_ENVIRON",
+    "GNULIB_EUIDACCESS",
+    "GNULIB_EXECL",
+    "GNULIB_EXECLE",
+    "GNULIB_EXECLP",
+    "GNULIB_EXECV",
+    "GNULIB_EXECVE",
+    "GNULIB_EXECVP",
+    "GNULIB_EXECVPE",
+    "GNULIB_EXP2",
+    "GNULIB_EXP2F",
+    "GNULIB_EXP2L",
+    "GNULIB_EXPF",
+    "GNULIB_EXPL",
+    "GNULIB_EXPLICIT_BZERO",
+    "GNULIB_EXPM1",
+    "GNULIB_EXPM1F",
+    "GNULIB_EXPM1L",
+    "GNULIB_FABSF",
+    "GNULIB_FABSL",
+    "GNULIB_FACCESSAT",
+    "GNULIB_FCHDIR",
+    "GNULIB_FCHMODAT",
+    "GNULIB_FCHOWNAT",
+    "GNULIB_FCLOSE",
+    "GNULIB_FCNTL",
+    "GNULIB_FDATASYNC",
+    "GNULIB_FDOPEN",
+    "GNULIB_FDOPENDIR",
+    "GNULIB_FFLUSH",
+    "GNULIB_FFS",
+    "GNULIB_FFSL",
+    "GNULIB_FFSLL",
+    "GNULIB_FGETC",
+    "GNULIB_FGETS",
+    "GNULIB_FLOOR",
+    "GNULIB_FLOORF",
+    "GNULIB_FLOORL",
+    "GNULIB_FMA",
+    "GNULIB_FMAF",
+    "GNULIB_FMAL",
+    "GNULIB_FMOD",
+    "GNULIB_FMODF",
+    "GNULIB_FMODL",
+    "GNULIB_FOPEN",
+    "GNULIB_FPRINTF",
+    "GNULIB_FPRINTF_POSIX",
+    "GNULIB_FPURGE",
+    "GNULIB_FPUTC",
+    "GNULIB_FPUTS",
+    "GNULIB_FREAD",
+    "GNULIB_FREELOCALE",
+    "GNULIB_FREE_POSIX",
+    "GNULIB_FREOPEN",
+    "GNULIB_FREXP",
+    "GNULIB_FREXPF",
+    "GNULIB_FREXPL",
+    "GNULIB_FSCANF",
+    "GNULIB_FSEEK",
+    "GNULIB_FSEEKO",
+    "GNULIB_FSTAT",
+    "GNULIB_FSTATAT",
+    "GNULIB_FSYNC",
+    "GNULIB_FTELL",
+    "GNULIB_FTELLO",
+    "GNULIB_FTRUNCATE",
+    "GNULIB_FUTIMENS",
+    "GNULIB_FWRITE",
+    "GNULIB_GETC",
+    "GNULIB_GETCHAR",
+    "GNULIB_GETCWD",
+    "GNULIB_GETDELIM",
+    "GNULIB_GETDOMAINNAME",
+    "GNULIB_GETDTABLESIZE",
+    "GNULIB_GETENTROPY",
+    "GNULIB_GETGROUPS",
+    "GNULIB_GETHOSTNAME",
+    "GNULIB_GETLINE",
+    "GNULIB_GETLOADAVG",
+    "GNULIB_GETLOGIN",
+    "GNULIB_GETLOGIN_R",
+    "GNULIB_GETOPT_POSIX",
+    "GNULIB_GETPAGESIZE",
+    "GNULIB_GETPASS",
+    "GNULIB_GETRUSAGE",
+    "GNULIB_GETSUBOPT",
+    "GNULIB_GETTIMEOFDAY",
+    "GNULIB_GETUMASK",
+    "GNULIB_GETUSERSHELL",
+    "GNULIB_GRANTPT",
+    "GNULIB_GROUP_MEMBER",
+    "GNULIB_HYPOT",
+    "GNULIB_HYPOTF",
+    "GNULIB_HYPOTL",
+    "GNULIB_ICONV",
+    "GNULIB_ILOGB",
+    "GNULIB_ILOGBF",
+    "GNULIB_ILOGBL",
+    "GNULIB_IMAXABS",
+    "GNULIB_IMAXDIV",
+    "GNULIB_IOCTL",
+    "GNULIB_ISATTY",
+    "GNULIB_ISFINITE",
+    "GNULIB_ISINF",
+    "GNULIB_ISNAN",
+    "GNULIB_ISNAND",
+    "GNULIB_ISNANF",
+    "GNULIB_ISNANL",
+    "GNULIB_ISWBLANK",
+    "GNULIB_ISWCTYPE",
+    "GNULIB_ISWDIGIT",
+    "GNULIB_ISWXDIGIT",
+    "GNULIB_LCHMOD",
+    "GNULIB_LCHOWN",
+    "GNULIB_LDEXPF",
+    "GNULIB_LDEXPL",
+    "GNULIB_LINK",
+    "GNULIB_LINKAT",
+    "GNULIB_LOCALECONV",
+    "GNULIB_LOCALENAME",
+    "GNULIB_LOCALTIME",
+    "GNULIB_LOG10",
+    "GNULIB_LOG10F",
+    "GNULIB_LOG10L",
+    "GNULIB_LOG1P",
+    "GNULIB_LOG1PF",
+    "GNULIB_LOG1PL",
+    "GNULIB_LOG2",
+    "GNULIB_LOG2F",
+    "GNULIB_LOG2L",
+    "GNULIB_LOG",
+    "GNULIB_LOGB",
+    "GNULIB_LOGBF",
+    "GNULIB_LOGBL",
+    "GNULIB_LOGF",
+    "GNULIB_LOGL",
+    "GNULIB_LSEEK",
+    "GNULIB_LSTAT",
+    "GNULIB_MALLOC_POSIX",
+    "GNULIB_MBRLEN",
+    "GNULIB_MBRTOWC",
+    "GNULIB_MBSCASECMP",
+    "GNULIB_MBSCASESTR",
+    "GNULIB_MBSCHR",
+    "GNULIB_MBSCSPN",
+    "GNULIB_MBSINIT",
+    "GNULIB_MBSLEN",
+    "GNULIB_MBSNCASECMP",
+    "GNULIB_MBSNLEN",
+    "GNULIB_MBSNRTOWCS",
+    "GNULIB_MBSPBRK",
+    "GNULIB_MBSPCASECMP",
+    "GNULIB_MBSRCHR",
+    "GNULIB_MBSRTOWCS",
+    "GNULIB_MBSSEP",
+    "GNULIB_MBSSPN",
+    "GNULIB_MBSSTR",
+    "GNULIB_MBSTOK_R",
+    "GNULIB_MBTOWC",
+    "GNULIB_MDA_ACCESS",
+    "GNULIB_MDA_CHDIR",
+    "GNULIB_MDA_CHMOD",
+    "GNULIB_MDA_CLOSE",
+    "GNULIB_MDA_CREAT",
+    "GNULIB_MDA_DUP2",
+    "GNULIB_MDA_DUP",
+    "GNULIB_MDA_ECVT",
+    "GNULIB_MDA_EXECL",
+    "GNULIB_MDA_EXECLE",
+    "GNULIB_MDA_EXECLP",
+    "GNULIB_MDA_EXECV",
+    "GNULIB_MDA_EXECVE",
+    "GNULIB_MDA_EXECVP",
+    "GNULIB_MDA_EXECVPE",
+    "GNULIB_MDA_FCLOSEALL",
+    "GNULIB_MDA_FCVT",
+    "GNULIB_MDA_FDOPEN",
+    "GNULIB_MDA_FILENO",
+    "GNULIB_MDA_GCVT",
+    "GNULIB_MDA_GETCWD",
+    "GNULIB_MDA_GETPID",
+    "GNULIB_MDA_GETW",
+    "GNULIB_MDA_ISATTY",
+    "GNULIB_MDA_J0",
+    "GNULIB_MDA_J1",
+    "GNULIB_MDA_JN",
+    "GNULIB_MDA_LSEEK",
+    "GNULIB_MDA_MEMCCPY",
+    "GNULIB_MDA_MKDIR",
+    "GNULIB_MDA_MKTEMP",
+    "GNULIB_MDA_OPEN",
+    "GNULIB_MDA_PUTENV",
+    "GNULIB_MDA_PUTW",
+    "GNULIB_MDA_READ",
+    "GNULIB_MDA_RMDIR",
+    "GNULIB_MDA_STRDUP",
+    "GNULIB_MDA_SWAB",
+    "GNULIB_MDA_TEMPNAM",
+    "GNULIB_MDA_TZSET",
+    "GNULIB_MDA_UMASK",
+    "GNULIB_MDA_UNLINK",
+    "GNULIB_MDA_WCSDUP",
+    "GNULIB_MDA_WRITE",
+    "GNULIB_MDA_Y0",
+    "GNULIB_MDA_Y1",
+    "GNULIB_MDA_YN",
+    "GNULIB_MEMCHR",
+    "GNULIB_MEMMEM",
+    "GNULIB_MEMPCPY",
+    "GNULIB_MEMRCHR",
+    "GNULIB_MKDIR",
+    "GNULIB_MKDIRAT",
+    "GNULIB_MKDTEMP",
+    "GNULIB_MKFIFO",
+    "GNULIB_MKFIFOAT",
+    "GNULIB_MKNOD",
+    "GNULIB_MKNODAT",
+    "GNULIB_MKOSTEMP",
+    "GNULIB_MKOSTEMPS",
+    "GNULIB_MKSTEMP",
+    "GNULIB_MKSTEMPS",
+    "GNULIB_MKTIME",
+    "GNULIB_MODF",
+    "GNULIB_MODFF",
+    "GNULIB_MODFL",
+    "GNULIB_NANOSLEEP",
+    "GNULIB_NEWLOCALE",
+    "GNULIB_NONBLOCKING",
+    "GNULIB_OBSTACK_PRINTF",
+    "GNULIB_OBSTACK_PRINTF_POSIX",
+    "GNULIB_OPEN",
+    "GNULIB_OPENAT",
+    "GNULIB_OPENDIR",
+    "GNULIB_OVERRIDES_STRUCT_STAT",
+    "GNULIB_PCLOSE",
+    "GNULIB_PERROR",
+    "GNULIB_PIPE2",
+    "GNULIB_PIPE",
+    "GNULIB_POPEN",
+    "GNULIB_POSIX_MEMALIGN",
+    "GNULIB_POSIX_OPENPT",
+    "GNULIB_POSIX_SPAWN",
+    "GNULIB_POSIX_SPAWNATTR_DESTROY",
+    "GNULIB_POSIX_SPAWNATTR_GETFLAGS",
+    "GNULIB_POSIX_SPAWNATTR_GETPGROUP",
+    "GNULIB_POSIX_SPAWNATTR_GETSCHEDPARAM",
+    "GNULIB_POSIX_SPAWNATTR_GETSCHEDPOLICY",
+    "GNULIB_POSIX_SPAWNATTR_GETSIGDEFAULT",
+    "GNULIB_POSIX_SPAWNATTR_GETSIGMASK",
+    "GNULIB_POSIX_SPAWNATTR_INIT",
+    "GNULIB_POSIX_SPAWNATTR_SETFLAGS",
+    "GNULIB_POSIX_SPAWNATTR_SETPGROUP",
+    "GNULIB_POSIX_SPAWNATTR_SETSCHEDPARAM",
+    "GNULIB_POSIX_SPAWNATTR_SETSCHEDPOLICY",
+    "GNULIB_POSIX_SPAWNATTR_SETSIGDEFAULT",
+    "GNULIB_POSIX_SPAWNATTR_SETSIGMASK",
+    "GNULIB_POSIX_SPAWNP",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_DESTROY",
+    "GNULIB_POSIX_SPAWN_FILE_ACTIONS_INIT",
+    "GNULIB_POWF",
+    "GNULIB_PREAD",
+    "GNULIB_PRINTF",
+    "GNULIB_PRINTF_POSIX",
+    "GNULIB_PTHREAD_SIGMASK",
+    "GNULIB_PTSNAME",
+    "GNULIB_PTSNAME_R",
+    "GNULIB_PUTC",
+    "GNULIB_PUTCHAR",
+    "GNULIB_PUTENV",
+    "GNULIB_PUTS",
+    "GNULIB_PWRITE",
+    "GNULIB_QSORT_R",
+    "GNULIB_RAISE",
+    "GNULIB_RANDOM",
+    "GNULIB_RANDOM_R",
+    "GNULIB_RAWMEMCHR",
+    "GNULIB_READ",
+    "GNULIB_READDIR",
+    "GNULIB_READLINK",
+    "GNULIB_READLINKAT",
+    "GNULIB_REALLOCARRAY",
+    "GNULIB_REALLOC_POSIX",
+    "GNULIB_REALPATH",
+    "GNULIB_REMAINDER",
+    "GNULIB_REMAINDERF",
+    "GNULIB_REMAINDERL",
+    "GNULIB_REMOVE",
+    "GNULIB_RENAME",
+    "GNULIB_RENAMEAT",
+    "GNULIB_REWINDDIR",
+    "GNULIB_RINT",
+    "GNULIB_RINTF",
+    "GNULIB_RINTL",
+    "GNULIB_RMDIR",
+    "GNULIB_ROUND",
+    "GNULIB_ROUNDF",
+    "GNULIB_ROUNDL",
+    "GNULIB_RPMATCH",
+    "GNULIB_SCANDIR",
+    "GNULIB_SCANF",
+    "GNULIB_SCHED_YIELD",
+    "GNULIB_SECURE_GETENV",
+    "GNULIB_SETENV",
+    "GNULIB_SETHOSTNAME",
+    "GNULIB_SETLOCALE",
+    "GNULIB_SETLOCALE_NULL",
+    "GNULIB_SIGABBREV_NP",
+    "GNULIB_SIGACTION",
+    "GNULIB_SIGDESCR_NP",
+    "GNULIB_SIGNAL_H_SIGPIPE",
+    "GNULIB_SIGNBIT",
+    "GNULIB_SIGPROCMASK",
+    "GNULIB_SINF",
+    "GNULIB_SINHF",
+    "GNULIB_SINL",
+    "GNULIB_SLEEP",
+    "GNULIB_SNPRINTF",
+    "GNULIB_SPRINTF_POSIX",
+    "GNULIB_SQRTF",
+    "GNULIB_SQRTL",
+    "GNULIB_STAT",
+    "GNULIB_STDIO_H_NONBLOCKING",
+    "GNULIB_STDIO_H_SIGPIPE",
+    "GNULIB_STPCPY",
+    "GNULIB_STPNCPY",
+    "GNULIB_STRCASESTR",
+    "GNULIB_STRCHRNUL",
+    "GNULIB_STRDUP",
+    "GNULIB_STRERROR",
+    "GNULIB_STRERRORNAME_NP",
+    "GNULIB_STRERROR_R",
+    "GNULIB_STRFTIME",
+    "GNULIB_STRNCAT",
+    "GNULIB_STRNDUP",
+    "GNULIB_STRNLEN",
+    "GNULIB_STRPBRK",
+    "GNULIB_STRPTIME",
+    "GNULIB_STRSEP",
+    "GNULIB_STRSIGNAL",
+    "GNULIB_STRSTR",
+    "GNULIB_STRTOD",
+    "GNULIB_STRTOIMAX",
+    "GNULIB_STRTOK_R",
+    "GNULIB_STRTOL",
+    "GNULIB_STRTOLD",
+    "GNULIB_STRTOLL",
+    "GNULIB_STRTOUL",
+    "GNULIB_STRTOULL",
+    "GNULIB_STRTOUMAX",
+    "GNULIB_STRVERSCMP",
+    "GNULIB_SYMLINK",
+    "GNULIB_SYMLINKAT",
+    "GNULIB_SYSTEM_POSIX",
+    "GNULIB_TANF",
+    "GNULIB_TANHF",
+    "GNULIB_TANL",
+    "GNULIB_TCGETSID",
+    "GNULIB_TIMEGM",
+    "GNULIB_TIMES",
+    "GNULIB_TIMESPEC_GET",
+    "GNULIB_TIME_R",
+    "GNULIB_TIME_RZ",
+    "GNULIB_TMPFILE",
+    "GNULIB_TOWCTRANS",
+    "GNULIB_TRUNC",
+    "GNULIB_TRUNCATE",
+    "GNULIB_TRUNCF",
+    "GNULIB_TRUNCL",
+    "GNULIB_TTYNAME_R",
+    "GNULIB_TZSET",
+    "GNULIB_UNISTD_H_GETOPT",
+    "GNULIB_UNLINK",
+    "GNULIB_UNLINKAT",
+    "GNULIB_UNLOCKPT",
+    "GNULIB_UNSETENV",
+    "GNULIB_USLEEP",
+    "GNULIB_UTIMENSAT",
+    "GNULIB_VASPRINTF",
+    "GNULIB_VDPRINTF",
+    "GNULIB_VFPRINTF",
+    "GNULIB_VFPRINTF_POSIX",
+    "GNULIB_VFSCANF",
+    "GNULIB_VPRINTF",
+    "GNULIB_VPRINTF_POSIX",
+    "GNULIB_VSCANF",
+    "GNULIB_VSNPRINTF",
+    "GNULIB_VSPRINTF_POSIX",
+    "GNULIB_WAITPID",
+    "GNULIB_WCPCPY",
+    "GNULIB_WCPNCPY",
+    "GNULIB_WCRTOMB",
+    "GNULIB_WCSCASECMP",
+    "GNULIB_WCSCAT",
+    "GNULIB_WCSCHR",
+    "GNULIB_WCSCMP",
+    "GNULIB_WCSCOLL",
+    "GNULIB_WCSCPY",
+    "GNULIB_WCSCSPN",
+    "GNULIB_WCSDUP",
+    "GNULIB_WCSFTIME",
+    "GNULIB_WCSLEN",
+    "GNULIB_WCSNCASECMP",
+    "GNULIB_WCSNCAT",
+    "GNULIB_WCSNCMP",
+    "GNULIB_WCSNCPY",
+    "GNULIB_WCSNLEN",
+    "GNULIB_WCSNRTOMBS",
+    "GNULIB_WCSPBRK",
+    "GNULIB_WCSRCHR",
+    "GNULIB_WCSRTOMBS",
+    "GNULIB_WCSSPN",
+    "GNULIB_WCSSTR",
+    "GNULIB_WCSTOK",
+    "GNULIB_WCSWIDTH",
+    "GNULIB_WCSXFRM",
+    "GNULIB_WCTOB",
+    "GNULIB_WCTOMB",
+    "GNULIB_WCTRANS",
+    "GNULIB_WCTYPE",
+    "GNULIB_WCWIDTH",
+    "GNULIB_WMEMCHR",
+    "GNULIB_WMEMCMP",
+    "GNULIB_WMEMCPY",
+    "GNULIB_WMEMMOVE",
+    "GNULIB_WMEMPCPY",
+    "GNULIB_WMEMSET",
+    "GNULIB_WRITE",
+    "GNULIB__EXIT",
+    "GUARD_PREFIX",
+    "HAVE_ACOSF",
+    "HAVE_ACOSL",
+    "HAVE_ALIGNED_ALLOC",
+    "HAVE_ALLOCA_H",
+    "HAVE_ALPHASORT",
+    "HAVE_ASINF",
+    "HAVE_ASINL",
+    "HAVE_ATAN2F",
+    "HAVE_ATANF",
+    "HAVE_ATANL",
+    "HAVE_ATOLL",
+    "HAVE_BTOWC",
+    "HAVE_C99_STDINT_H",
+    "HAVE_CANONICALIZE_FILE_NAME",
+    "HAVE_CBRT",
+    "HAVE_CHOWN",
+    "HAVE_CLOSEDIR",
+    "HAVE_COPYSIGN",
+    "HAVE_COPYSIGNL",
+    "HAVE_COPY_FILE_RANGE",
+    "HAVE_COSF",
+    "HAVE_COSHF",
+    "HAVE_COSL",
+    "HAVE_CRTDEFS_H",
+    "HAVE_DECL_ACOSL",
+    "HAVE_DECL_ASINL",
+    "HAVE_DECL_ATANL",
+    "HAVE_DECL_CBRTF",
+    "HAVE_DECL_CBRTL",
+    "HAVE_DECL_CEILF",
+    "HAVE_DECL_CEILL",
+    "HAVE_DECL_COPYSIGNF",
+    "HAVE_DECL_COSL",
+    "HAVE_DECL_DIRFD",
+    "HAVE_DECL_ECVT",
+    "HAVE_DECL_ENVIRON",
+    "HAVE_DECL_EXECVPE",
+    "HAVE_DECL_EXP2",
+    "HAVE_DECL_EXP2F",
+    "HAVE_DECL_EXP2L",
+    "HAVE_DECL_EXPL",
+    "HAVE_DECL_EXPM1L",
+    "HAVE_DECL_FCHDIR",
+    "HAVE_DECL_FCLOSEALL",
+    "HAVE_DECL_FCVT",
+    "HAVE_DECL_FDATASYNC",
+    "HAVE_DECL_FDOPENDIR",
+    "HAVE_DECL_FLOORF",
+    "HAVE_DECL_FLOORL",
+    "HAVE_DECL_FPURGE",
+    "HAVE_DECL_FREXPL",
+    "HAVE_DECL_FSEEKO",
+    "HAVE_DECL_FTELLO",
+    "HAVE_DECL_GCVT",
+    "HAVE_DECL_GETDELIM",
+    "HAVE_DECL_GETDOMAINNAME",
+    "HAVE_DECL_GETLINE",
+    "HAVE_DECL_GETLOADAVG",
+    "HAVE_DECL_GETLOGIN",
+    "HAVE_DECL_GETLOGIN_R",
+    "HAVE_DECL_GETPAGESIZE",
+    "HAVE_DECL_GETUSERSHELL",
+    "HAVE_DECL_IMAXABS",
+    "HAVE_DECL_IMAXDIV",
+    "HAVE_DECL_INITSTATE",
+    "HAVE_DECL_LDEXPL",
+    "HAVE_DECL_LOCALTIME_R",
+    "HAVE_DECL_LOG10L",
+    "HAVE_DECL_LOG2",
+    "HAVE_DECL_LOG2F",
+    "HAVE_DECL_LOG2L",
+    "HAVE_DECL_LOGB",
+    "HAVE_DECL_LOGL",
+    "HAVE_DECL_MEMMEM",
+    "HAVE_DECL_MEMRCHR",
+    "HAVE_DECL_OBSTACK_PRINTF",
+    "HAVE_DECL_REMAINDER",
+    "HAVE_DECL_REMAINDERL",
+    "HAVE_DECL_RINTF",
+    "HAVE_DECL_ROUND",
+    "HAVE_DECL_ROUNDF",
+    "HAVE_DECL_ROUNDL",
+    "HAVE_DECL_SETENV",
+    "HAVE_DECL_SETHOSTNAME",
+    "HAVE_DECL_SETSTATE",
+    "HAVE_DECL_SINL",
+    "HAVE_DECL_SNPRINTF",
+    "HAVE_DECL_SQRTL",
+    "HAVE_DECL_STRDUP",
+    "HAVE_DECL_STRERROR_R",
+    "HAVE_DECL_STRNCASECMP",
+    "HAVE_DECL_STRNDUP",
+    "HAVE_DECL_STRNLEN",
+    "HAVE_DECL_STRSIGNAL",
+    "HAVE_DECL_STRTOIMAX",
+    "HAVE_DECL_STRTOK_R",
+    "HAVE_DECL_STRTOUMAX",
+    "HAVE_DECL_TANL",
+    "HAVE_DECL_TCGETSID",
+    "HAVE_DECL_TRUNC",
+    "HAVE_DECL_TRUNCATE",
+    "HAVE_DECL_TRUNCF",
+    "HAVE_DECL_TRUNCL",
+    "HAVE_DECL_TTYNAME_R",
+    "HAVE_DECL_UNSETENV",
+    "HAVE_DECL_VSNPRINTF",
+    "HAVE_DECL_WCSDUP",
+    "HAVE_DECL_WCTOB",
+    "HAVE_DECL_WCWIDTH",
+    "HAVE_DIRENT_H",
+    "HAVE_DPRINTF",
+    "HAVE_DUP3",
+    "HAVE_DUPLOCALE",
+    "HAVE_EUIDACCESS",
+    "HAVE_EXECVPE",
+    "HAVE_EXPF",
+    "HAVE_EXPL",
+    "HAVE_EXPLICIT_BZERO",
+    "HAVE_EXPM1",
+    "HAVE_EXPM1F",
+    "HAVE_FABSF",
+    "HAVE_FABSL",
+    "HAVE_FACCESSAT",
+    "HAVE_FCHDIR",
+    "HAVE_FCHMODAT",
+    "HAVE_FCHOWNAT",
+    "HAVE_FCNTL",
+    "HAVE_FDATASYNC",
+    "HAVE_FDOPENDIR",
+    "HAVE_FEATURES_H",
+    "HAVE_FFS",
+    "HAVE_FFSL",
+    "HAVE_FFSLL",
+    "HAVE_FMA",
+    "HAVE_FMAF",
+    "HAVE_FMAL",
+    "HAVE_FMODF",
+    "HAVE_FMODL",
+    "HAVE_FREELOCALE",
+    "HAVE_FREXPF",
+    "HAVE_FSTATAT",
+    "HAVE_FSYNC",
+    "HAVE_FTRUNCATE",
+    "HAVE_FUTIMENS",
+    "HAVE_GETDTABLESIZE",
+    "HAVE_GETENTROPY",
+    "HAVE_GETGROUPS",
+    "HAVE_GETHOSTNAME",
+    "HAVE_GETOPT_H",
+    "HAVE_GETPAGESIZE",
+    "HAVE_GETPASS",
+    "HAVE_GETRUSAGE",
+    "HAVE_GETSUBOPT",
+    "HAVE_GETTIMEOFDAY",
+    "HAVE_GETUMASK",
+    "HAVE_GRANTPT",
+    "HAVE_GROUP_MEMBER",
+    "HAVE_HYPOTF",
+    "HAVE_HYPOTL",
+    "HAVE_ILOGB",
+    "HAVE_ILOGBF",
+    "HAVE_ILOGBL",
+    "HAVE_IMAXDIV_T",
+    "HAVE_INITSTATE",
+    "HAVE_INTTYPES_H",
+    "HAVE_ISNAND",
+    "HAVE_ISNANF",
+    "HAVE_ISNANL",
+    "HAVE_ISWBLANK",
+    "HAVE_ISWCNTRL",
+    "HAVE_LCHMOD",
+    "HAVE_LCHOWN",
+    "HAVE_LDEXPF",
+    "HAVE_LINK",
+    "HAVE_LINKAT",
+    "HAVE_LOG10F",
+    "HAVE_LOG10L",
+    "HAVE_LOG1P",
+    "HAVE_LOG1PF",
+    "HAVE_LOG1PL",
+    "HAVE_LOGBF",
+    "HAVE_LOGBL",
+    "HAVE_LOGF",
+    "HAVE_LOGL",
+    "HAVE_LSTAT",
+    "HAVE_MAX_ALIGN_T",
+    "HAVE_MBRLEN",
+    "HAVE_MBRTOWC",
+    "HAVE_MBSINIT",
+    "HAVE_MBSLEN",
+    "HAVE_MBSNRTOWCS",
+    "HAVE_MBSRTOWCS",
+    "HAVE_MBTOWC",
+    "HAVE_MEMPCPY",
+    "HAVE_MKDIRAT",
+    "HAVE_MKDTEMP",
+    "HAVE_MKFIFO",
+    "HAVE_MKFIFOAT",
+    "HAVE_MKNOD",
+    "HAVE_MKNODAT",
+    "HAVE_MKOSTEMP",
+    "HAVE_MKOSTEMPS",
+    "HAVE_MKSTEMP",
+    "HAVE_MKSTEMPS",
+    "HAVE_MODFF",
+    "HAVE_MODFL",
+    "HAVE_NANOSLEEP",
+    "HAVE_NEWLOCALE",
+    "HAVE_OPENAT",
+    "HAVE_OPENDIR",
+    "HAVE_OS_H",
+    "HAVE_PCLOSE",
+    "HAVE_PIPE2",
+    "HAVE_PIPE",
+    "HAVE_POPEN",
+    "HAVE_POSIX_MEMALIGN",
+    "HAVE_POSIX_OPENPT",
+    "HAVE_POSIX_SIGNALBLOCKING",
+    "HAVE_POSIX_SPAWN",
+    "HAVE_POSIX_SPAWNATTR_T",
+    "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR",
+    "HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR",
+    "HAVE_POSIX_SPAWN_FILE_ACTIONS_T",
+    "HAVE_POWF",
+    "HAVE_PREAD",
+    "HAVE_PTHREAD_SIGMASK",
+    "HAVE_PTSNAME",
+    "HAVE_PTSNAME_R",
+    "HAVE_PWRITE",
+    "HAVE_QSORT_R",
+    "HAVE_RAISE",
+    "HAVE_RANDOM",
+    "HAVE_RANDOM_H",
+    "HAVE_RANDOM_R",
+    "HAVE_RAWMEMCHR",
+    "HAVE_READDIR",
+    "HAVE_READLINK",
+    "HAVE_READLINKAT",
+    "HAVE_REALLOCARRAY",
+    "HAVE_REALPATH",
+    "HAVE_REMAINDER",
+    "HAVE_REMAINDERF",
+    "HAVE_RENAMEAT",
+    "HAVE_REWINDDIR",
+    "HAVE_RINT",
+    "HAVE_RINTL",
+    "HAVE_RPMATCH",
+    "HAVE_SCANDIR",
+    "HAVE_SCHED_H",
+    "HAVE_SCHED_YIELD",
+    "HAVE_SECURE_GETENV",
+    "HAVE_SETHOSTNAME",
+    "HAVE_SETSTATE",
+    "HAVE_SIGABBREV_NP",
+    "HAVE_SIGACTION",
+    "HAVE_SIGDESCR_NP",
+    "HAVE_SIGHANDLER_T",
+    "HAVE_SIGINFO_T",
+    "HAVE_SIGNED_SIG_ATOMIC_T",
+    "HAVE_SIGNED_WCHAR_T",
+    "HAVE_SIGNED_WINT_T",
+    "HAVE_SIGSET_T",
+    "HAVE_SINF",
+    "HAVE_SINHF",
+    "HAVE_SINL",
+    "HAVE_SLEEP",
+    "HAVE_SPAWN_H",
+    "HAVE_SQRTF",
+    "HAVE_SQRTL",
+    "HAVE_STDINT_H",
+    "HAVE_STPCPY",
+    "HAVE_STPNCPY",
+    "HAVE_STRCASECMP",
+    "HAVE_STRCASESTR",
+    "HAVE_STRCHRNUL",
+    "HAVE_STRERRORNAME_NP",
+    "HAVE_STRINGS_H",
+    "HAVE_STRPBRK",
+    "HAVE_STRPTIME",
+    "HAVE_STRSEP",
+    "HAVE_STRTOD",
+    "HAVE_STRTOL",
+    "HAVE_STRTOLD",
+    "HAVE_STRTOLL",
+    "HAVE_STRTOUL",
+    "HAVE_STRTOULL",
+    "HAVE_STRUCT_RANDOM_DATA",
+    "HAVE_STRUCT_SCHED_PARAM",
+    "HAVE_STRUCT_SIGACTION_SA_SIGACTION",
+    "HAVE_STRUCT_TIMEVAL",
+    "HAVE_STRUCT_TMS",
+    "HAVE_STRVERSCMP",
+    "HAVE_SYMLINK",
+    "HAVE_SYMLINKAT",
+    "HAVE_SYS_BITYPES_H",
+    "HAVE_SYS_CDEFS_H",
+    "HAVE_SYS_INTTYPES_H",
+    "HAVE_SYS_IOCTL_H",
+    "HAVE_SYS_LOADAVG_H",
+    "HAVE_SYS_PARAM_H",
+    "HAVE_SYS_RESOURCE_H",
+    "HAVE_SYS_TIMES_H",
+    "HAVE_SYS_TIME_H",
+    "HAVE_SYS_TYPES_H",
+    "HAVE_TANF",
+    "HAVE_TANHF",
+    "HAVE_TANL",
+    "HAVE_TERMIOS_H",
+    "HAVE_TIMEGM",
+    "HAVE_TIMES",
+    "HAVE_TIMESPEC_GET",
+    "HAVE_TIMEZONE_T",
+    "HAVE_TYPE_VOLATILE_SIG_ATOMIC_T",
+    "HAVE_UNISTD_H",
+    "HAVE_UNLINKAT",
+    "HAVE_UNLOCKPT",
+    "HAVE_USLEEP",
+    "HAVE_UTIMENSAT",
+    "HAVE_VASPRINTF",
+    "HAVE_VDPRINTF",
+    "HAVE_WCHAR_H",
+    "HAVE_WCHAR_T",
+    "HAVE_WCPCPY",
+    "HAVE_WCPNCPY",
+    "HAVE_WCRTOMB",
+    "HAVE_WCSCASECMP",
+    "HAVE_WCSCAT",
+    "HAVE_WCSCHR",
+    "HAVE_WCSCMP",
+    "HAVE_WCSCOLL",
+    "HAVE_WCSCPY",
+    "HAVE_WCSCSPN",
+    "HAVE_WCSDUP",
+    "HAVE_WCSFTIME",
+    "HAVE_WCSLEN",
+    "HAVE_WCSNCASECMP",
+    "HAVE_WCSNCAT",
+    "HAVE_WCSNCMP",
+    "HAVE_WCSNCPY",
+    "HAVE_WCSNLEN",
+    "HAVE_WCSNRTOMBS",
+    "HAVE_WCSPBRK",
+    "HAVE_WCSRCHR",
+    "HAVE_WCSRTOMBS",
+    "HAVE_WCSSPN",
+    "HAVE_WCSSTR",
+    "HAVE_WCSTOK",
+    "HAVE_WCSWIDTH",
+    "HAVE_WCSXFRM",
+    "HAVE_WCTRANS_T",
+    "HAVE_WCTYPE_H",
+    "HAVE_WCTYPE_T",
+    "HAVE_WINSOCK2_H",
+    "HAVE_WINT_T",
+    "HAVE_WMEMCHR",
+    "HAVE_WMEMCMP",
+    "HAVE_WMEMCPY",
+    "HAVE_WMEMMOVE",
+    "HAVE_WMEMPCPY",
+    "HAVE_WMEMSET",
+    "HAVE_XLOCALE_H",
+    "HAVE__BOOL",
+    "HAVE__EXIT",
+    "ICONV_CONST",
+    "INCLUDE_NEXT",
+    "INCLUDE_NEXT_AS_FIRST_DIRECTIVE",
+    "INT32_MAX_LT_INTMAX_MAX",
+    "INT64_MAX_EQ_LONG_MAX",
+    "LOCALENAME_ENHANCE_LOCALE_FUNCS",
+    "NEXT_AS_FIRST_DIRECTIVE_MATH_H",
+    "NEXT_DIRENT_H",
+    "NEXT_ERRNO_H",
+    "NEXT_FCNTL_H",
+    "NEXT_FLOAT_H",
+    "NEXT_GETOPT_H",
+    "NEXT_ICONV_H",
+    "NEXT_INTTYPES_H",
+    "NEXT_LIMITS_H",
+    "NEXT_LOCALE_H",
+    "NEXT_SCHED_H",
+    "NEXT_SIGNAL_H",
+    "NEXT_SPAWN_H",
+    "NEXT_STDDEF_H",
+    "NEXT_STDINT_H",
+    "NEXT_STDIO_H",
+    "NEXT_STDLIB_H",
+    "NEXT_STRINGS_H",
+    "NEXT_STRING_H",
+    "NEXT_SYS_IOCTL_H",
+    "NEXT_SYS_RESOURCE_H",
+    "NEXT_SYS_STAT_H",
+    "NEXT_SYS_TIMES_H",
+    "NEXT_SYS_TIME_H",
+    "NEXT_SYS_TYPES_H",
+    "NEXT_SYS_WAIT_H",
+    "NEXT_TERMIOS_H",
+    "NEXT_TIME_H",
+    "NEXT_UNISTD_H",
+    "NEXT_WCHAR_H",
+    "NEXT_WCTYPE_H",
+    "PRAGMA_COLUMNS",
+    "PRAGMA_SYSTEM_HEADER",
+    "PRIPTR_PREFIX",
+    "PTHREAD_H_DEFINES_STRUCT_TIMESPEC",
+    "PTRDIFF_T_SUFFIX",
+    "REPLACE_ACCESS",
+    "REPLACE_ACOSF",
+    "REPLACE_ALIGNED_ALLOC",
+    "REPLACE_ASINF",
+    "REPLACE_ATAN2F",
+    "REPLACE_ATANF",
+    "REPLACE_BTOWC",
+    "REPLACE_CALLOC",
+    "REPLACE_CANONICALIZE_FILE_NAME",
+    "REPLACE_CBRTF",
+    "REPLACE_CBRTL",
+    "REPLACE_CEIL",
+    "REPLACE_CEILF",
+    "REPLACE_CEILL",
+    "REPLACE_CHOWN",
+    "REPLACE_CLOSE",
+    "REPLACE_CLOSEDIR",
+    "REPLACE_COSF",
+    "REPLACE_COSHF",
+    "REPLACE_CREAT",
+    "REPLACE_CTIME",
+    "REPLACE_DIRFD",
+    "REPLACE_DPRINTF",
+    "REPLACE_DUP2",
+    "REPLACE_DUP",
+    "REPLACE_DUPLOCALE",
+    "REPLACE_EXECL",
+    "REPLACE_EXECLE",
+    "REPLACE_EXECLP",
+    "REPLACE_EXECV",
+    "REPLACE_EXECVE",
+    "REPLACE_EXECVP",
+    "REPLACE_EXECVPE",
+    "REPLACE_EXP2",
+    "REPLACE_EXP2L",
+    "REPLACE_EXPF",
+    "REPLACE_EXPL",
+    "REPLACE_EXPM1",
+    "REPLACE_EXPM1F",
+    "REPLACE_EXPM1L",
+    "REPLACE_FABSL",
+    "REPLACE_FACCESSAT",
+    "REPLACE_FCHMODAT",
+    "REPLACE_FCHOWNAT",
+    "REPLACE_FCLOSE",
+    "REPLACE_FCNTL",
+    "REPLACE_FDOPEN",
+    "REPLACE_FDOPENDIR",
+    "REPLACE_FFLUSH",
+    "REPLACE_FFSLL",
+    "REPLACE_FLOOR",
+    "REPLACE_FLOORF",
+    "REPLACE_FLOORL",
+    "REPLACE_FMA",
+    "REPLACE_FMAF",
+    "REPLACE_FMAL",
+    "REPLACE_FMOD",
+    "REPLACE_FMODF",
+    "REPLACE_FMODL",
+    "REPLACE_FOPEN",
+    "REPLACE_FPRINTF",
+    "REPLACE_FPURGE",
+    "REPLACE_FREE",
+    "REPLACE_FREELOCALE",
+    "REPLACE_FREOPEN",
+    "REPLACE_FREXP",
+    "REPLACE_FREXPF",
+    "REPLACE_FREXPL",
+    "REPLACE_FSEEK",
+    "REPLACE_FSEEKO",
+    "REPLACE_FSTAT",
+    "REPLACE_FSTATAT",
+    "REPLACE_FTELL",
+    "REPLACE_FTELLO",
+    "REPLACE_FTRUNCATE",
+    "REPLACE_FUTIMENS",
+    "REPLACE_GETCWD",
+    "REPLACE_GETDELIM",
+    "REPLACE_GETDOMAINNAME",
+    "REPLACE_GETDTABLESIZE",
+    "REPLACE_GETGROUPS",
+    "REPLACE_GETLINE",
+    "REPLACE_GETLOGIN_R",
+    "REPLACE_GETPAGESIZE",
+    "REPLACE_GETPASS",
+    "REPLACE_GETTIMEOFDAY",
+    "REPLACE_GMTIME",
+    "REPLACE_HUGE_VAL",
+    "REPLACE_HYPOT",
+    "REPLACE_HYPOTF",
+    "REPLACE_HYPOTL",
+    "REPLACE_ICONV",
+    "REPLACE_ICONV_OPEN",
+    "REPLACE_ICONV_UTF",
+    "REPLACE_ILOGB",
+    "REPLACE_ILOGBF",
+    "REPLACE_ILOGBL",
+    "REPLACE_INITSTATE",
+    "REPLACE_IOCTL",
+    "REPLACE_ISATTY",
+    "REPLACE_ISFINITE",
+    "REPLACE_ISINF",
+    "REPLACE_ISNAN",
+    "REPLACE_ISWBLANK",
+    "REPLACE_ISWCNTRL",
+    "REPLACE_ISWDIGIT",
+    "REPLACE_ISWXDIGIT",
+    "REPLACE_ITOLD",
+    "REPLACE_LCHOWN",
+    "REPLACE_LDEXPL",
+    "REPLACE_LINK",
+    "REPLACE_LINKAT",
+    "REPLACE_LOCALECONV",
+    "REPLACE_LOCALTIME",
+    "REPLACE_LOCALTIME_R",
+    "REPLACE_LOG10",
+    "REPLACE_LOG10F",
+    "REPLACE_LOG10L",
+    "REPLACE_LOG1P",
+    "REPLACE_LOG1PF",
+    "REPLACE_LOG1PL",
+    "REPLACE_LOG2",
+    "REPLACE_LOG2F",
+    "REPLACE_LOG2L",
+    "REPLACE_LOG",
+    "REPLACE_LOGB",
+    "REPLACE_LOGBF",
+    "REPLACE_LOGBL",
+    "REPLACE_LOGF",
+    "REPLACE_LOGL",
+    "REPLACE_LSEEK",
+    "REPLACE_LSTAT",
+    "REPLACE_MALLOC",
+    "REPLACE_MBRLEN",
+    "REPLACE_MBRTOWC",
+    "REPLACE_MBSINIT",
+    "REPLACE_MBSNRTOWCS",
+    "REPLACE_MBSRTOWCS",
+    "REPLACE_MBSTATE_T",
+    "REPLACE_MBTOWC",
+    "REPLACE_MEMCHR",
+    "REPLACE_MEMMEM",
+    "REPLACE_MKDIR",
+    "REPLACE_MKFIFO",
+    "REPLACE_MKFIFOAT",
+    "REPLACE_MKNOD",
+    "REPLACE_MKNODAT",
+    "REPLACE_MKSTEMP",
+    "REPLACE_MKTIME",
+    "REPLACE_MODF",
+    "REPLACE_MODFF",
+    "REPLACE_MODFL",
+    "REPLACE_NAN",
+    "REPLACE_NANOSLEEP",
+    "REPLACE_NEWLOCALE",
+    "REPLACE_NULL",
+    "REPLACE_OBSTACK_PRINTF",
+    "REPLACE_OPEN",
+    "REPLACE_OPENAT",
+    "REPLACE_OPENDIR",
+    "REPLACE_PERROR",
+    "REPLACE_POPEN",
+    "REPLACE_POSIX_MEMALIGN",
+    "REPLACE_POSIX_SPAWN",
+    "REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR",
+    "REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE",
+    "REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2",
+    "REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR",
+    "REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN",
+    "REPLACE_PREAD",
+    "REPLACE_PRINTF",
+    "REPLACE_PTHREAD_SIGMASK",
+    "REPLACE_PTSNAME",
+    "REPLACE_PTSNAME_R",
+    "REPLACE_PUTENV",
+    "REPLACE_PWRITE",
+    "REPLACE_QSORT_R",
+    "REPLACE_RAISE",
+    "REPLACE_RANDOM",
+    "REPLACE_RANDOM_R",
+    "REPLACE_READ",
+    "REPLACE_READLINK",
+    "REPLACE_READLINKAT",
+    "REPLACE_REALLOC",
+    "REPLACE_REALLOCARRAY",
+    "REPLACE_REALPATH",
+    "REPLACE_REMAINDER",
+    "REPLACE_REMAINDERF",
+    "REPLACE_REMAINDERL",
+    "REPLACE_REMOVE",
+    "REPLACE_RENAME",
+    "REPLACE_RENAMEAT",
+    "REPLACE_RINTL",
+    "REPLACE_RMDIR",
+    "REPLACE_ROUND",
+    "REPLACE_ROUNDF",
+    "REPLACE_ROUNDL",
+    "REPLACE_SCHED_YIELD",
+    "REPLACE_SETENV",
+    "REPLACE_SETLOCALE",
+    "REPLACE_SETSTATE",
+    "REPLACE_SIGNBIT",
+    "REPLACE_SIGNBIT_USING_BUILTINS",
+    "REPLACE_SINF",
+    "REPLACE_SINHF",
+    "REPLACE_SLEEP",
+    "REPLACE_SNPRINTF",
+    "REPLACE_SPRINTF",
+    "REPLACE_SQRTF",
+    "REPLACE_SQRTL",
+    "REPLACE_STAT",
+    "REPLACE_STDIO_READ_FUNCS",
+    "REPLACE_STDIO_WRITE_FUNCS",
+    "REPLACE_STPNCPY",
+    "REPLACE_STRCASESTR",
+    "REPLACE_STRCHRNUL",
+    "REPLACE_STRDUP",
+    "REPLACE_STRERROR",
+    "REPLACE_STRERRORNAME_NP",
+    "REPLACE_STRERROR_R",
+    "REPLACE_STRFTIME",
+    "REPLACE_STRNCAT",
+    "REPLACE_STRNDUP",
+    "REPLACE_STRNLEN",
+    "REPLACE_STRSIGNAL",
+    "REPLACE_STRSTR",
+    "REPLACE_STRTOD",
+    "REPLACE_STRTOIMAX",
+    "REPLACE_STRTOK_R",
+    "REPLACE_STRTOL",
+    "REPLACE_STRTOLD",
+    "REPLACE_STRTOLL",
+    "REPLACE_STRTOUL",
+    "REPLACE_STRTOULL",
+    "REPLACE_STRTOUMAX",
+    "REPLACE_STRUCT_LCONV",
+    "REPLACE_STRUCT_TIMEVAL",
+    "REPLACE_SYMLINK",
+    "REPLACE_SYMLINKAT",
+    "REPLACE_TANF",
+    "REPLACE_TANHF",
+    "REPLACE_TIMEGM",
+    "REPLACE_TMPFILE",
+    "REPLACE_TOWLOWER",
+    "REPLACE_TRUNC",
+    "REPLACE_TRUNCATE",
+    "REPLACE_TRUNCF",
+    "REPLACE_TRUNCL",
+    "REPLACE_TTYNAME_R",
+    "REPLACE_TZSET",
+    "REPLACE_UNLINK",
+    "REPLACE_UNLINKAT",
+    "REPLACE_UNSETENV",
+    "REPLACE_USLEEP",
+    "REPLACE_UTIMENSAT",
+    "REPLACE_VASPRINTF",
+    "REPLACE_VDPRINTF",
+    "REPLACE_VFPRINTF",
+    "REPLACE_VPRINTF",
+    "REPLACE_VSNPRINTF",
+    "REPLACE_VSPRINTF",
+    "REPLACE_WCRTOMB",
+    "REPLACE_WCSFTIME",
+    "REPLACE_WCSNRTOMBS",
+    "REPLACE_WCSRTOMBS",
+    "REPLACE_WCSTOK",
+    "REPLACE_WCSWIDTH",
+    "REPLACE_WCTOB",
+    "REPLACE_WCTOMB",
+    "REPLACE_WCWIDTH",
+    "REPLACE_WRITE",
+    "SIG_ATOMIC_T_SUFFIX",
+    "SIZE_T_SUFFIX",
+    "SYS_IOCTL_H_HAVE_WINSOCK2_H",
+    "SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS",
+    "SYS_TIME_H_DEFINES_STRUCT_TIMESPEC",
+    "TIME_H_DEFINES_STRUCT_TIMESPEC",
+    "TIME_H_DEFINES_TIME_UTC",
+    "UINT32_MAX_LT_UINTMAX_MAX",
+    "UINT64_MAX_EQ_ULONG_MAX",
+    "UNDEFINE_STRTOK_R",
+    "UNISTD_H_DEFINES_STRUCT_TIMESPEC",
+    "UNISTD_H_HAVE_SYS_RANDOM_H",
+    "UNISTD_H_HAVE_WINSOCK2_H",
+    "UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS",
+    "WCHAR_T_SUFFIX",
+    "WINDOWS_64_BIT_OFF_T",
+    "WINDOWS_64_BIT_ST_SIZE",
+    "WINDOWS_STAT_INODES",
+    "WINDOWS_STAT_TIMESPEC",
+    "WINT_T_SUFFIX",
+]
+
+FILE_REPLACEMENT_KEYS = [
+    "definition of _GL_ARG_NONNULL",
+    "definition of _GL_WARN_ON_USE",
+    "definition of _GL_WARN_ON_USE",
+    "definition of _Noreturn",
+    "definitions of _GL_FUNCDECL_RPL",
+]
+
+DIRECT_REPLACEMENT_KEYS = [
+    "__always_inline",
+    "__glibc_likely",
+    "__glibc_unlikely",
+]
+
+DELETE_KEYS = [
+    "libc_hidden_proto",
+]
+
+_BZL_TEMPLATE = """\
+\"\"\"Configuration values\"\"\"
+
+AUTOMAKE_VARIABLES = {}
+
+DIRECT_VARIABLES = {}
+
+INLINE_VARIABLES = {}
+
+DELETE_VARIABLES = {}
+"""
+
+
+def parse_args() -> argparse.Namespace:
+    """Parse command line arguments."""
+    parser = argparse.ArgumentParser()
+
+    parser.add_argument(
+        "version",
+        type=str,
+        help="The version of bison to process.",
+    )
+
+    parser.add_argument(
+        "checkout",
+        type=Path,
+        help="The location of a fully built bison checkout",
+    )
+
+    default_platform = "linux"
+    if platform.system() == "Darwin":
+        default_platform = "macos"
+    elif platform.system() == "Windows":
+        default_platform = "windows"
+
+    parser.add_argument(
+        "--platform",
+        type=str,
+        default=default_platform,
+        choices=[
+            "macos",
+            "linux",
+            "windows",
+        ],
+        help="The platform to process.",
+    )
+
+    return parser.parse_args()
+
+
+def get_module_bison_path(version: str) -> Path:
+    """Locate the bison module path."""
+    if "BUILD_WORKSPACE_DIRECTORY" in os.environ:
+        return Path(os.environ["BUILD_WORKSPACE_DIRECTORY"]) / f"modules/bison/{version}"
+
+    return Path(__file__).parent / version
+
+
+def collect_template_values(
+    makefile: Path,
+) -> tuple[dict[str, str], dict[str, str], dict[str, str], list[str]]:
+    """Collect template values from the Makefile generated in the Bison checkout."""
+    content = makefile.read_text(encoding="utf-8")
+
+    sed_mappings = {}
+    # Look for sed commands like: -e 's/@''GNULIB_FMODF''@/$(GL_GNULIB_FMODF)/g'
+    sed_pattern = re.compile(r"-e\s+'s/@''([A-Z_][\w\d_]*)''@/0?\$\(([\w\d_]+)\)/g'")
+    for key, value in sed_pattern.findall(content):
+        sed_mappings[key] = value
+
+    defines = {}
+    # Look for Makefile defines like: `FOO = 1`
+    defines_pattern = re.compile(r"^([\w_-]+) = (.*)$", re.MULTILINE)
+    for key, value in defines_pattern.findall(content):
+        defines[key] = value
+
+    automake_templates = {}
+    for key in sorted(TEMPLATE_KEYS):
+        real_key = sed_mappings.get(key, key)
+        sed_key = f"@''{key}''@"
+        automake_templates[sed_key] = defines.get(real_key, "")
+        # This variable is weirdly prefixed with `0` so that should be
+        # retained.
+        if real_key == "GL_GNULIB_UNISTD_H_GETOPT":
+            automake_templates[sed_key] = f"0{automake_templates[sed_key]}"
+
+    direct_templates = {}
+    direct_pattern = re.compile(r"-e\s+'s\|([\w_]+)\|([\w\s]+)\|g'", re.MULTILINE)
+    for key, value in direct_pattern.findall(content):
+        if key not in DIRECT_REPLACEMENT_KEYS:
+            continue
+        direct_templates[key] = value
+
+    inlines = {}
+    # Look for sed commands like:
+    inline_pattern = re.compile(r"^\s+-e\s+'\/([\w\s_]+)\/r \$\(([\w_]+)\)'", re.MULTILINE)
+    for key, value in inline_pattern.findall(content):
+        inlines[key] = defines[value].replace("$(top_srcdir)/", "")
+
+    inline_templates = {}
+    for key in sorted(FILE_REPLACEMENT_KEYS):
+        inline_templates[key] = inlines[key]
+
+    delete_keys = []
+    delete_pattern = re.compile(r"-e '/([\w_]+)/d'", re.MULTILINE)
+    for key in delete_pattern.findall(content):
+        if key not in sorted(DELETE_KEYS):
+            continue
+        delete_keys.append(key)
+
+    return automake_templates, direct_templates, inline_templates, delete_keys
+
+
+def main() -> None:
+    """The main entrypoint."""
+    args = parse_args()
+
+    module_path = get_module_bison_path(args.version)
+
+    checkout = Path(args.checkout)
+    assert checkout.exists(), "Checkout directory doesn't exist."
+
+    makefile = checkout / "Makefile"
+    assert makefile.exists(), "Makefile didn't exist in checkout, was it configured?"
+
+    config_src = checkout / "lib/config.h"
+    assert config_src.exists(), "config.h didn't exist in checkout, was it compiled?"
+
+    automake_vars, direct_vars, inline_vars, delete_keys = collect_template_values(makefile)
+
+    config_bzl = module_path / f"overlay/config_{args.platform}.bzl"
+    config_bzl.parent.mkdir(exist_ok=True, parents=True)
+    config_bzl.write_text(
+        _BZL_TEMPLATE.format(
+            json.dumps(automake_vars, indent=4).replace("\n}", ",\n}"),
+            json.dumps(direct_vars, indent=4).replace("\n}", ",\n}"),
+            json.dumps(inline_vars, indent=4).replace("\n}", ",\n}"),
+            json.dumps(delete_keys, indent=4).replace("\n]", ",\n]"),
+        )
+        + "\n"
+    )
+    config_h = module_path / f"overlay/config_{args.platform}.h"
+    config_h.parent.mkdir(exist_ok=True, parents=True)
+    shutil.copy2(config_src, config_h)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/modules/bison/metadata.json b/modules/bison/metadata.json
new file mode 100644
index 0000000..9c820b0
--- /dev/null
+++ b/modules/bison/metadata.json
@@ -0,0 +1,19 @@
+{
+    "homepage": "https://www.gnu.org/software/bison/",
+    "maintainers": [
+        {
+            "email": "26427366+UebelAndre@users.noreply.github.com",
+            "github": "UebelAndre",
+            "github_user_id": 26427366,
+            "name": "UebelAndre"
+        }
+    ],
+    "repository": [
+        "https://ftp.gnu.org/gnu/bison/",
+        "https://mirrors.kernel.org/gnu/bison/"
+    ],
+    "versions": [
+        "3.8.2"
+    ],
+    "yanked_versions": {}
+}
diff --git a/modules/flex/2.6.4/MODULE.bazel b/modules/flex/2.6.4/MODULE.bazel
new file mode 100644
index 0000000..90e9220
--- /dev/null
+++ b/modules/flex/2.6.4/MODULE.bazel
@@ -0,0 +1,12 @@
+"""https://github.com/westes/flex"""
+
+module(
+    name = "flex",
+    version = "2.6.4",
+    bazel_compatibility = [">=7.2.1"],
+)
+
+bazel_dep(name = "bazel_skylib", version = "1.8.2")
+bazel_dep(name = "platforms", version = "1.0.0")
+bazel_dep(name = "rules_cc", version = "0.2.4")
+bazel_dep(name = "rules_m4", version = "0.3")
diff --git a/modules/flex/2.6.4/overlay/BUILD.bazel b/modules/flex/2.6.4/overlay/BUILD.bazel
new file mode 100644
index 0000000..a8cc4e1
--- /dev/null
+++ b/modules/flex/2.6.4/overlay/BUILD.bazel
@@ -0,0 +1,108 @@
+load("@rules_cc//cc:cc_library.bzl", "cc_library")
+load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
+
+filegroup(
+    name = "flex_lexer_h",
+    srcs = ["src/FlexLexer.h"],
+    visibility = ["//:__subpackages__"],
+)
+
+COMMON_COPTS = [
+    "-w",
+]
+
+COMMON_DEFINES = [
+    "HAVE_ASSERT_H=1",
+    "HAVE_LIMITS_H=1",
+    "HAVE_NETINET_IN_H=1",
+    "HAVE_REGEX_H=1",
+    "HAVE_SYS_STAT_H=1",
+    "HAVE_SYS_WAIT_H=1",
+    "HAVE_UNISTD_H=1",
+    "STDC_HEADERS=1",
+    "VERSION=\\\"2.6.4\\\"",
+    "M4=\\\"/bin/false\\\"",
+] + select({
+    "@platforms//os:macos": [
+        "HAVE_ALLOCA=1",
+        "HAVE_ALLOCA_H=1",
+        "HAVE_CFLOCALECOPYCURRENT=1",
+        "HAVE_CFPREFERENCESCOPYAPPVALUE=1",
+        "HAVE_DLFCN_H=1",
+        "HAVE_DUP2=1",
+        "HAVE_FORK=1",
+        "HAVE_ICONV=1",
+        "HAVE_INTTYPES_H=1",
+        "HAVE_LIBM=1",
+        "HAVE_LOCALE_H=1",
+        "HAVE_MALLOC=1",
+        "HAVE_MEMORY_H=1",
+        "HAVE_MEMSET=1",
+        "HAVE_POW=1",
+        "HAVE_PTHREAD_H=1",
+        "HAVE_REALLOC=1",
+        "HAVE_REGCOMP=1",
+        "HAVE_SETLOCALE=1",
+        "HAVE_STDBOOL_H=1",
+        "HAVE_STDINT_H=1",
+        "HAVE_STDLIB_H=1",
+        "HAVE_STRCASECMP=1",
+        "HAVE_STRCHR=1",
+        "HAVE_STRDUP=1",
+        "HAVE_STRINGS_H=1",
+        "HAVE_STRING_H=1",
+        "HAVE_STRTOL=1",
+        "HAVE_SYS_TYPES_H=1",
+        "HAVE_VFORK=1",
+        "HAVE_WORKING_FORK=1",
+        "HAVE_WORKING_VFORK=1",
+        "HAVE__BOOL=1",
+        "YYTEXT_POINTER=1",
+    ],
+    "//conditions:default": [
+    ],
+})
+
+FLEX_SRCS = glob(
+    include = [
+        "src/*.c",
+        "src/*.h",
+    ],
+    exclude = [
+        "src/main.c",
+        "src/lib*.c",
+    ],
+)
+
+cc_library(
+    name = "flex_lib",
+    srcs = FLEX_SRCS,
+    copts = COMMON_COPTS,
+    defines = COMMON_DEFINES,
+    features = ["no_copts_tokenization"],
+)
+
+filegroup(
+    name = "flex_runfiles",
+    srcs = [
+        "@rules_m4//m4:current_m4_toolchain",
+    ],
+)
+
+cc_binary(
+    name = "flex",
+    srcs = ["src/main.c"],
+    copts = COMMON_COPTS,
+    data = [":flex_runfiles"],
+    features = ["-default_link_libs"],
+    linkopts = [],
+    visibility = ["//visibility:public"],
+    deps = [":flex_lib"],
+)
+
+cc_library(
+    name = "flex_lexer_hdrs",
+    hdrs = ["src/FlexLexer.h"],
+    includes = ["src"],
+    visibility = ["//visibility:public"],
+)
diff --git a/modules/flex/2.6.4/overlay/MODULE.bazel b/modules/flex/2.6.4/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/flex/2.6.4/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/flex/2.6.4/patches/hardcode_int_max_log10.patch b/modules/flex/2.6.4/patches/hardcode_int_max_log10.patch
new file mode 100644
index 0000000..3858c1b
--- /dev/null
+++ b/modules/flex/2.6.4/patches/hardcode_int_max_log10.patch
@@ -0,0 +1,26 @@
+diff --git a/src/buf.c b/src/buf.c
+index 185083c..7fb57bc 100644
+--- a/src/buf.c
++++ b/src/buf.c
+@@ -100,7 +100,7 @@ struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno)
+ 
+     tsz = strlen("#line \"\"\n")                +   /* constant parts */
+                2 * strlen (filename)            +   /* filename with possibly all backslashes escaped */
+-               (size_t) (1 + ceil (log10 (abs (lineno)))) +   /* line number */
++               40 +   /* line number */
+                1;                                   /* NUL */
+     t = malloc(tsz);
+     if (!t)
+diff --git a/src/main.c b/src/main.c
+index e5eac44..1c39478 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -468,7 +468,7 @@ void check_options (void)
+              char *str, *fmt = "#define %s %d\n";
+              size_t strsz;
+ 
+-             strsz = strlen(fmt) + strlen(scname[i]) + (size_t)(1 + ceil (log10(i))) + 2;
++             strsz = strlen(fmt) + strlen(scname[i]) + 40 + 2;
+              str = malloc(strsz);
+              if (!str)
+                flexfatal(_("allocation of macro definition failed"));
diff --git a/modules/flex/2.6.4/presubmit.yml b/modules/flex/2.6.4/presubmit.yml
new file mode 100644
index 0000000..09b3951
--- /dev/null
+++ b/modules/flex/2.6.4/presubmit.yml
@@ -0,0 +1,15 @@
+matrix:
+  platform:
+    - debian10
+    - macos_arm64
+    - rockylinux8
+    - ubuntu2004
+    - ubuntu2004_arm64
+  bazel: ["7.x", "8.x"]
+tasks:
+  verify_targets:
+    name: "Run test module"
+    platform: ${{ platform }}
+    bazel: ${{ bazel }}
+    build_targets:
+    - "@flex//..."
diff --git a/modules/flex/2.6.4/source.json b/modules/flex/2.6.4/source.json
new file mode 100644
index 0000000..50cad32
--- /dev/null
+++ b/modules/flex/2.6.4/source.json
@@ -0,0 +1,13 @@
+{
+    "url": "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz",
+    "integrity": "sha256-6HquAyvwfCb4WsDtMlCZjDdiHZX4vXSLMfFbM8Re6ZU=",
+    "strip_prefix": "flex-2.6.4",
+    "patch_strip": 1,
+    "patches": {
+        "hardcode_int_max_log10.patch": "sha256-98tFxCG8MxDFfdRZ8hZWMKmQcP2hahM/EwJ3YGUTxdg="
+    },
+    "overlay": {
+        "BUILD.bazel": "sha256-XzjjIUqwLFbYAqlZD1QtjjIsPVul1j4M7BMyt5+D6rY=",
+        "MODULE.bazel": "sha256-g0AaoFo0nmoEdKMQUMZ9im56S3AN8CuyZ8zHzMYQxOQ="
+    }
+}
diff --git a/modules/flex/metadata.json b/modules/flex/metadata.json
new file mode 100644
index 0000000..fd5061b
--- /dev/null
+++ b/modules/flex/metadata.json
@@ -0,0 +1,18 @@
+{
+    "homepage": "https://github.com/westes/flex",
+    "maintainers": [
+        {
+            "email": "26427366+UebelAndre@users.noreply.github.com",
+            "github": "UebelAndre",
+            "github_user_id": 26427366,
+            "name": "UebelAndre"
+        }
+    ],
+    "repository": [
+        "github:westes/flex"
+    ],
+    "versions": [
+        "2.6.4"
+    ],
+    "yanked_versions": {}
+}
