nsd-4.12.0/ 0000755 0001750 0001750 00000000000 15002373060 011772 5 ustar mozzie mozzie nsd-4.12.0/configparser.c 0000644 0001750 0001750 00000402543 15002373060 014630 0 ustar mozzie mozzie /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison implementation for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* C LALR(1) parser skeleton written by Richard Stallman, by
simplifying the original so-called "semantic" parser. */
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
especially those whose name start with YY_ or yy_. They are
private implementation details that can be changed or removed. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */
#define YYBISON 30802
/* Bison version string. */
#define YYBISON_VERSION "3.8.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pure parsers. */
#define YYPURE 0
/* Push parsers. */
#define YYPUSH 0
/* Pull parsers. */
#define YYPULL 1
/* Substitute the variable and function names. */
#define yyparse c_parse
#define yylex c_lex
#define yyerror c_error
#define yydebug c_debug
#define yynerrs c_nerrs
#define yylval c_lval
#define yychar c_char
/* First part of user prologue. */
#line 10 "configparser.y"
#include "config.h"
#include
#include
#include
#include
#include "options.h"
#include "util.h"
#include "dname.h"
#include "tsig.h"
#include "rrl.h"
int yylex(void);
#ifdef __cplusplus
extern "C"
#endif
/* these need to be global, otherwise they cannot be used inside yacc */
extern config_parser_state_type *cfg_parser;
static void append_acl(struct acl_options **list, struct acl_options *acl);
static void add_to_last_acl(struct acl_options **list, char *ac);
static int parse_boolean(const char *str, int *bln);
static int parse_catalog_role(const char *str, int *role);
static int parse_expire_expr(const char *str, long long *num, uint8_t *expr);
static int parse_number(const char *str, long long *num);
static int parse_range(const char *str, long long *low, long long *high);
struct component {
struct component *next;
char *str;
};
#line 116 "configparser.c"
# ifndef YY_CAST
# ifdef __cplusplus
# define YY_CAST(Type, Val) static_cast (Val)
# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val)
# else
# define YY_CAST(Type, Val) ((Type) (Val))
# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
# endif
# endif
# ifndef YY_NULLPTR
# if defined __cplusplus
# if 201103L <= __cplusplus
# define YY_NULLPTR nullptr
# else
# define YY_NULLPTR 0
# endif
# else
# define YY_NULLPTR ((void*)0)
# endif
# endif
#include "configparser.h"
/* Symbol kind. */
enum yysymbol_kind_t
{
YYSYMBOL_YYEMPTY = -2,
YYSYMBOL_YYEOF = 0, /* "end of file" */
YYSYMBOL_YYerror = 1, /* error */
YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
YYSYMBOL_STRING = 3, /* STRING */
YYSYMBOL_VAR_SERVER = 4, /* VAR_SERVER */
YYSYMBOL_VAR_SERVER_COUNT = 5, /* VAR_SERVER_COUNT */
YYSYMBOL_VAR_IP_ADDRESS = 6, /* VAR_IP_ADDRESS */
YYSYMBOL_VAR_IP_TRANSPARENT = 7, /* VAR_IP_TRANSPARENT */
YYSYMBOL_VAR_IP_FREEBIND = 8, /* VAR_IP_FREEBIND */
YYSYMBOL_VAR_REUSEPORT = 9, /* VAR_REUSEPORT */
YYSYMBOL_VAR_SEND_BUFFER_SIZE = 10, /* VAR_SEND_BUFFER_SIZE */
YYSYMBOL_VAR_RECEIVE_BUFFER_SIZE = 11, /* VAR_RECEIVE_BUFFER_SIZE */
YYSYMBOL_VAR_DEBUG_MODE = 12, /* VAR_DEBUG_MODE */
YYSYMBOL_VAR_IP4_ONLY = 13, /* VAR_IP4_ONLY */
YYSYMBOL_VAR_IP6_ONLY = 14, /* VAR_IP6_ONLY */
YYSYMBOL_VAR_DO_IP4 = 15, /* VAR_DO_IP4 */
YYSYMBOL_VAR_DO_IP6 = 16, /* VAR_DO_IP6 */
YYSYMBOL_VAR_PORT = 17, /* VAR_PORT */
YYSYMBOL_VAR_USE_SYSTEMD = 18, /* VAR_USE_SYSTEMD */
YYSYMBOL_VAR_VERBOSITY = 19, /* VAR_VERBOSITY */
YYSYMBOL_VAR_USERNAME = 20, /* VAR_USERNAME */
YYSYMBOL_VAR_CHROOT = 21, /* VAR_CHROOT */
YYSYMBOL_VAR_ZONESDIR = 22, /* VAR_ZONESDIR */
YYSYMBOL_VAR_ZONELISTFILE = 23, /* VAR_ZONELISTFILE */
YYSYMBOL_VAR_DATABASE = 24, /* VAR_DATABASE */
YYSYMBOL_VAR_LOGFILE = 25, /* VAR_LOGFILE */
YYSYMBOL_VAR_LOG_ONLY_SYSLOG = 26, /* VAR_LOG_ONLY_SYSLOG */
YYSYMBOL_VAR_PIDFILE = 27, /* VAR_PIDFILE */
YYSYMBOL_VAR_DIFFFILE = 28, /* VAR_DIFFFILE */
YYSYMBOL_VAR_XFRDFILE = 29, /* VAR_XFRDFILE */
YYSYMBOL_VAR_XFRDIR = 30, /* VAR_XFRDIR */
YYSYMBOL_VAR_HIDE_VERSION = 31, /* VAR_HIDE_VERSION */
YYSYMBOL_VAR_HIDE_IDENTITY = 32, /* VAR_HIDE_IDENTITY */
YYSYMBOL_VAR_VERSION = 33, /* VAR_VERSION */
YYSYMBOL_VAR_IDENTITY = 34, /* VAR_IDENTITY */
YYSYMBOL_VAR_NSID = 35, /* VAR_NSID */
YYSYMBOL_VAR_TCP_COUNT = 36, /* VAR_TCP_COUNT */
YYSYMBOL_VAR_TCP_REJECT_OVERFLOW = 37, /* VAR_TCP_REJECT_OVERFLOW */
YYSYMBOL_VAR_TCP_QUERY_COUNT = 38, /* VAR_TCP_QUERY_COUNT */
YYSYMBOL_VAR_TCP_TIMEOUT = 39, /* VAR_TCP_TIMEOUT */
YYSYMBOL_VAR_TCP_MSS = 40, /* VAR_TCP_MSS */
YYSYMBOL_VAR_OUTGOING_TCP_MSS = 41, /* VAR_OUTGOING_TCP_MSS */
YYSYMBOL_VAR_IPV4_EDNS_SIZE = 42, /* VAR_IPV4_EDNS_SIZE */
YYSYMBOL_VAR_IPV6_EDNS_SIZE = 43, /* VAR_IPV6_EDNS_SIZE */
YYSYMBOL_VAR_STATISTICS = 44, /* VAR_STATISTICS */
YYSYMBOL_VAR_XFRD_RELOAD_TIMEOUT = 45, /* VAR_XFRD_RELOAD_TIMEOUT */
YYSYMBOL_VAR_LOG_TIME_ASCII = 46, /* VAR_LOG_TIME_ASCII */
YYSYMBOL_VAR_LOG_TIME_ISO = 47, /* VAR_LOG_TIME_ISO */
YYSYMBOL_VAR_ROUND_ROBIN = 48, /* VAR_ROUND_ROBIN */
YYSYMBOL_VAR_MINIMAL_RESPONSES = 49, /* VAR_MINIMAL_RESPONSES */
YYSYMBOL_VAR_CONFINE_TO_ZONE = 50, /* VAR_CONFINE_TO_ZONE */
YYSYMBOL_VAR_REFUSE_ANY = 51, /* VAR_REFUSE_ANY */
YYSYMBOL_VAR_RELOAD_CONFIG = 52, /* VAR_RELOAD_CONFIG */
YYSYMBOL_VAR_ZONEFILES_CHECK = 53, /* VAR_ZONEFILES_CHECK */
YYSYMBOL_VAR_ZONEFILES_WRITE = 54, /* VAR_ZONEFILES_WRITE */
YYSYMBOL_VAR_RRL_SIZE = 55, /* VAR_RRL_SIZE */
YYSYMBOL_VAR_RRL_RATELIMIT = 56, /* VAR_RRL_RATELIMIT */
YYSYMBOL_VAR_RRL_SLIP = 57, /* VAR_RRL_SLIP */
YYSYMBOL_VAR_RRL_IPV4_PREFIX_LENGTH = 58, /* VAR_RRL_IPV4_PREFIX_LENGTH */
YYSYMBOL_VAR_RRL_IPV6_PREFIX_LENGTH = 59, /* VAR_RRL_IPV6_PREFIX_LENGTH */
YYSYMBOL_VAR_RRL_WHITELIST_RATELIMIT = 60, /* VAR_RRL_WHITELIST_RATELIMIT */
YYSYMBOL_VAR_TLS_SERVICE_KEY = 61, /* VAR_TLS_SERVICE_KEY */
YYSYMBOL_VAR_TLS_SERVICE_PEM = 62, /* VAR_TLS_SERVICE_PEM */
YYSYMBOL_VAR_TLS_SERVICE_OCSP = 63, /* VAR_TLS_SERVICE_OCSP */
YYSYMBOL_VAR_TLS_PORT = 64, /* VAR_TLS_PORT */
YYSYMBOL_VAR_TLS_AUTH_PORT = 65, /* VAR_TLS_AUTH_PORT */
YYSYMBOL_VAR_TLS_AUTH_XFR_ONLY = 66, /* VAR_TLS_AUTH_XFR_ONLY */
YYSYMBOL_VAR_TLS_CERT_BUNDLE = 67, /* VAR_TLS_CERT_BUNDLE */
YYSYMBOL_VAR_PROXY_PROTOCOL_PORT = 68, /* VAR_PROXY_PROTOCOL_PORT */
YYSYMBOL_VAR_CPU_AFFINITY = 69, /* VAR_CPU_AFFINITY */
YYSYMBOL_VAR_XFRD_CPU_AFFINITY = 70, /* VAR_XFRD_CPU_AFFINITY */
YYSYMBOL_VAR_SERVER_CPU_AFFINITY = 71, /* VAR_SERVER_CPU_AFFINITY */
YYSYMBOL_VAR_DROP_UPDATES = 72, /* VAR_DROP_UPDATES */
YYSYMBOL_VAR_XFRD_TCP_MAX = 73, /* VAR_XFRD_TCP_MAX */
YYSYMBOL_VAR_XFRD_TCP_PIPELINE = 74, /* VAR_XFRD_TCP_PIPELINE */
YYSYMBOL_VAR_METRICS_ENABLE = 75, /* VAR_METRICS_ENABLE */
YYSYMBOL_VAR_METRICS_INTERFACE = 76, /* VAR_METRICS_INTERFACE */
YYSYMBOL_VAR_METRICS_PORT = 77, /* VAR_METRICS_PORT */
YYSYMBOL_VAR_METRICS_PATH = 78, /* VAR_METRICS_PATH */
YYSYMBOL_VAR_DNSTAP = 79, /* VAR_DNSTAP */
YYSYMBOL_VAR_DNSTAP_ENABLE = 80, /* VAR_DNSTAP_ENABLE */
YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 81, /* VAR_DNSTAP_SOCKET_PATH */
YYSYMBOL_VAR_DNSTAP_IP = 82, /* VAR_DNSTAP_IP */
YYSYMBOL_VAR_DNSTAP_TLS = 83, /* VAR_DNSTAP_TLS */
YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 84, /* VAR_DNSTAP_TLS_SERVER_NAME */
YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 85, /* VAR_DNSTAP_TLS_CERT_BUNDLE */
YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 86, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */
YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 87, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */
YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 88, /* VAR_DNSTAP_SEND_IDENTITY */
YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 89, /* VAR_DNSTAP_SEND_VERSION */
YYSYMBOL_VAR_DNSTAP_IDENTITY = 90, /* VAR_DNSTAP_IDENTITY */
YYSYMBOL_VAR_DNSTAP_VERSION = 91, /* VAR_DNSTAP_VERSION */
YYSYMBOL_VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES = 92, /* VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES */
YYSYMBOL_VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES = 93, /* VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES */
YYSYMBOL_VAR_REMOTE_CONTROL = 94, /* VAR_REMOTE_CONTROL */
YYSYMBOL_VAR_CONTROL_ENABLE = 95, /* VAR_CONTROL_ENABLE */
YYSYMBOL_VAR_CONTROL_INTERFACE = 96, /* VAR_CONTROL_INTERFACE */
YYSYMBOL_VAR_CONTROL_PORT = 97, /* VAR_CONTROL_PORT */
YYSYMBOL_VAR_SERVER_KEY_FILE = 98, /* VAR_SERVER_KEY_FILE */
YYSYMBOL_VAR_SERVER_CERT_FILE = 99, /* VAR_SERVER_CERT_FILE */
YYSYMBOL_VAR_CONTROL_KEY_FILE = 100, /* VAR_CONTROL_KEY_FILE */
YYSYMBOL_VAR_CONTROL_CERT_FILE = 101, /* VAR_CONTROL_CERT_FILE */
YYSYMBOL_VAR_KEY = 102, /* VAR_KEY */
YYSYMBOL_VAR_ALGORITHM = 103, /* VAR_ALGORITHM */
YYSYMBOL_VAR_SECRET = 104, /* VAR_SECRET */
YYSYMBOL_VAR_TLS_AUTH = 105, /* VAR_TLS_AUTH */
YYSYMBOL_VAR_TLS_AUTH_DOMAIN_NAME = 106, /* VAR_TLS_AUTH_DOMAIN_NAME */
YYSYMBOL_VAR_TLS_AUTH_CLIENT_CERT = 107, /* VAR_TLS_AUTH_CLIENT_CERT */
YYSYMBOL_VAR_TLS_AUTH_CLIENT_KEY = 108, /* VAR_TLS_AUTH_CLIENT_KEY */
YYSYMBOL_VAR_TLS_AUTH_CLIENT_KEY_PW = 109, /* VAR_TLS_AUTH_CLIENT_KEY_PW */
YYSYMBOL_VAR_PATTERN = 110, /* VAR_PATTERN */
YYSYMBOL_VAR_NAME = 111, /* VAR_NAME */
YYSYMBOL_VAR_ZONEFILE = 112, /* VAR_ZONEFILE */
YYSYMBOL_VAR_NOTIFY = 113, /* VAR_NOTIFY */
YYSYMBOL_VAR_PROVIDE_XFR = 114, /* VAR_PROVIDE_XFR */
YYSYMBOL_VAR_ALLOW_QUERY = 115, /* VAR_ALLOW_QUERY */
YYSYMBOL_VAR_AXFR = 116, /* VAR_AXFR */
YYSYMBOL_VAR_UDP = 117, /* VAR_UDP */
YYSYMBOL_VAR_NOTIFY_RETRY = 118, /* VAR_NOTIFY_RETRY */
YYSYMBOL_VAR_ALLOW_NOTIFY = 119, /* VAR_ALLOW_NOTIFY */
YYSYMBOL_VAR_REQUEST_XFR = 120, /* VAR_REQUEST_XFR */
YYSYMBOL_VAR_ALLOW_AXFR_FALLBACK = 121, /* VAR_ALLOW_AXFR_FALLBACK */
YYSYMBOL_VAR_OUTGOING_INTERFACE = 122, /* VAR_OUTGOING_INTERFACE */
YYSYMBOL_VAR_ANSWER_COOKIE = 123, /* VAR_ANSWER_COOKIE */
YYSYMBOL_VAR_COOKIE_SECRET = 124, /* VAR_COOKIE_SECRET */
YYSYMBOL_VAR_COOKIE_SECRET_FILE = 125, /* VAR_COOKIE_SECRET_FILE */
YYSYMBOL_VAR_COOKIE_STAGING_SECRET = 126, /* VAR_COOKIE_STAGING_SECRET */
YYSYMBOL_VAR_MAX_REFRESH_TIME = 127, /* VAR_MAX_REFRESH_TIME */
YYSYMBOL_VAR_MIN_REFRESH_TIME = 128, /* VAR_MIN_REFRESH_TIME */
YYSYMBOL_VAR_MAX_RETRY_TIME = 129, /* VAR_MAX_RETRY_TIME */
YYSYMBOL_VAR_MIN_RETRY_TIME = 130, /* VAR_MIN_RETRY_TIME */
YYSYMBOL_VAR_MIN_EXPIRE_TIME = 131, /* VAR_MIN_EXPIRE_TIME */
YYSYMBOL_VAR_MULTI_PRIMARY_CHECK = 132, /* VAR_MULTI_PRIMARY_CHECK */
YYSYMBOL_VAR_SIZE_LIMIT_XFR = 133, /* VAR_SIZE_LIMIT_XFR */
YYSYMBOL_VAR_ZONESTATS = 134, /* VAR_ZONESTATS */
YYSYMBOL_VAR_INCLUDE_PATTERN = 135, /* VAR_INCLUDE_PATTERN */
YYSYMBOL_VAR_STORE_IXFR = 136, /* VAR_STORE_IXFR */
YYSYMBOL_VAR_IXFR_SIZE = 137, /* VAR_IXFR_SIZE */
YYSYMBOL_VAR_IXFR_NUMBER = 138, /* VAR_IXFR_NUMBER */
YYSYMBOL_VAR_CREATE_IXFR = 139, /* VAR_CREATE_IXFR */
YYSYMBOL_VAR_CATALOG = 140, /* VAR_CATALOG */
YYSYMBOL_VAR_CATALOG_MEMBER_PATTERN = 141, /* VAR_CATALOG_MEMBER_PATTERN */
YYSYMBOL_VAR_CATALOG_PRODUCER_ZONE = 142, /* VAR_CATALOG_PRODUCER_ZONE */
YYSYMBOL_VAR_ZONE = 143, /* VAR_ZONE */
YYSYMBOL_VAR_RRL_WHITELIST = 144, /* VAR_RRL_WHITELIST */
YYSYMBOL_VAR_SERVERS = 145, /* VAR_SERVERS */
YYSYMBOL_VAR_BINDTODEVICE = 146, /* VAR_BINDTODEVICE */
YYSYMBOL_VAR_SETFIB = 147, /* VAR_SETFIB */
YYSYMBOL_VAR_VERIFY = 148, /* VAR_VERIFY */
YYSYMBOL_VAR_ENABLE = 149, /* VAR_ENABLE */
YYSYMBOL_VAR_VERIFY_ZONE = 150, /* VAR_VERIFY_ZONE */
YYSYMBOL_VAR_VERIFY_ZONES = 151, /* VAR_VERIFY_ZONES */
YYSYMBOL_VAR_VERIFIER = 152, /* VAR_VERIFIER */
YYSYMBOL_VAR_VERIFIER_COUNT = 153, /* VAR_VERIFIER_COUNT */
YYSYMBOL_VAR_VERIFIER_FEED_ZONE = 154, /* VAR_VERIFIER_FEED_ZONE */
YYSYMBOL_VAR_VERIFIER_TIMEOUT = 155, /* VAR_VERIFIER_TIMEOUT */
YYSYMBOL_YYACCEPT = 156, /* $accept */
YYSYMBOL_blocks = 157, /* blocks */
YYSYMBOL_block = 158, /* block */
YYSYMBOL_server = 159, /* server */
YYSYMBOL_server_block = 160, /* server_block */
YYSYMBOL_server_option = 161, /* server_option */
YYSYMBOL_162_1 = 162, /* $@1 */
YYSYMBOL_socket_options = 163, /* socket_options */
YYSYMBOL_socket_option = 164, /* socket_option */
YYSYMBOL_cpus = 165, /* cpus */
YYSYMBOL_service_cpu_affinity = 166, /* service_cpu_affinity */
YYSYMBOL_dnstap = 167, /* dnstap */
YYSYMBOL_dnstap_block = 168, /* dnstap_block */
YYSYMBOL_dnstap_option = 169, /* dnstap_option */
YYSYMBOL_remote_control = 170, /* remote_control */
YYSYMBOL_remote_control_block = 171, /* remote_control_block */
YYSYMBOL_remote_control_option = 172, /* remote_control_option */
YYSYMBOL_tls_auth = 173, /* tls_auth */
YYSYMBOL_174_2 = 174, /* $@2 */
YYSYMBOL_tls_auth_block = 175, /* tls_auth_block */
YYSYMBOL_tls_auth_option = 176, /* tls_auth_option */
YYSYMBOL_key = 177, /* key */
YYSYMBOL_178_3 = 178, /* $@3 */
YYSYMBOL_key_block = 179, /* key_block */
YYSYMBOL_key_option = 180, /* key_option */
YYSYMBOL_zone = 181, /* zone */
YYSYMBOL_182_4 = 182, /* $@4 */
YYSYMBOL_zone_block = 183, /* zone_block */
YYSYMBOL_zone_option = 184, /* zone_option */
YYSYMBOL_pattern = 185, /* pattern */
YYSYMBOL_186_5 = 186, /* $@5 */
YYSYMBOL_pattern_block = 187, /* pattern_block */
YYSYMBOL_pattern_option = 188, /* pattern_option */
YYSYMBOL_pattern_or_zone_option = 189, /* pattern_or_zone_option */
YYSYMBOL_190_6 = 190, /* $@6 */
YYSYMBOL_191_7 = 191, /* $@7 */
YYSYMBOL_192_8 = 192, /* $@8 */
YYSYMBOL_verify = 193, /* verify */
YYSYMBOL_verify_block = 194, /* verify_block */
YYSYMBOL_verify_option = 195, /* verify_option */
YYSYMBOL_command = 196, /* command */
YYSYMBOL_arguments = 197, /* arguments */
YYSYMBOL_ip_address = 198, /* ip_address */
YYSYMBOL_number = 199, /* number */
YYSYMBOL_boolean = 200, /* boolean */
YYSYMBOL_request_xfr_tlsauth_option = 201, /* request_xfr_tlsauth_option */
YYSYMBOL_provide_xfr_tlsauth_option = 202, /* provide_xfr_tlsauth_option */
YYSYMBOL_catalog_role = 203 /* catalog_role */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
#ifdef short
# undef short
#endif
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
and (if available) are included
so that the code can choose integer types of a good width. */
#ifndef __PTRDIFF_MAX__
# include /* INFRINGES ON USER NAME SPACE */
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
# include /* INFRINGES ON USER NAME SPACE */
# define YY_STDINT_H
# endif
#endif
/* Narrow types that promote to a signed type and that can represent a
signed or unsigned integer of at least N bits. In tables they can
save space and decrease cache pressure. Promoting to a signed type
helps avoid bugs in integer arithmetic. */
#ifdef __INT_LEAST8_MAX__
typedef __INT_LEAST8_TYPE__ yytype_int8;
#elif defined YY_STDINT_H
typedef int_least8_t yytype_int8;
#else
typedef signed char yytype_int8;
#endif
#ifdef __INT_LEAST16_MAX__
typedef __INT_LEAST16_TYPE__ yytype_int16;
#elif defined YY_STDINT_H
typedef int_least16_t yytype_int16;
#else
typedef short yytype_int16;
#endif
/* Work around bug in HP-UX 11.23, which defines these macros
incorrectly for preprocessor constants. This workaround can likely
be removed in 2023, as HPE has promised support for HP-UX 11.23
(aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
. */
#ifdef __hpux
# undef UINT_LEAST8_MAX
# undef UINT_LEAST16_MAX
# define UINT_LEAST8_MAX 255
# define UINT_LEAST16_MAX 65535
#endif
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
&& UINT_LEAST8_MAX <= INT_MAX)
typedef uint_least8_t yytype_uint8;
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
typedef unsigned char yytype_uint8;
#else
typedef short yytype_uint8;
#endif
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
&& UINT_LEAST16_MAX <= INT_MAX)
typedef uint_least16_t yytype_uint16;
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
typedef unsigned short yytype_uint16;
#else
typedef int yytype_uint16;
#endif
#ifndef YYPTRDIFF_T
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
# define YYPTRDIFF_T __PTRDIFF_TYPE__
# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
# elif defined PTRDIFF_MAX
# ifndef ptrdiff_t
# include /* INFRINGES ON USER NAME SPACE */
# endif
# define YYPTRDIFF_T ptrdiff_t
# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
# else
# define YYPTRDIFF_T long
# define YYPTRDIFF_MAXIMUM LONG_MAX
# endif
#endif
#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
# include /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
# define YYSIZE_T unsigned
# endif
#endif
#define YYSIZE_MAXIMUM \
YY_CAST (YYPTRDIFF_T, \
(YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
? YYPTRDIFF_MAXIMUM \
: YY_CAST (YYSIZE_T, -1)))
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
/* Stored state numbers (used for stacks). */
typedef yytype_int16 yy_state_t;
/* State numbers in computations. */
typedef int yy_state_fast_t;
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include /* INFRINGES ON USER NAME SPACE */
# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
# endif
# endif
# ifndef YY_
# define YY_(Msgid) Msgid
# endif
#endif
#ifndef YY_ATTRIBUTE_PURE
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
# else
# define YY_ATTRIBUTE_PURE
# endif
#endif
#ifndef YY_ATTRIBUTE_UNUSED
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
# else
# define YY_ATTRIBUTE_UNUSED
# endif
#endif
/* Suppress unused-variable warnings by "using" E. */
#if ! defined lint || defined __GNUC__
# define YY_USE(E) ((void) (E))
#else
# define YY_USE(E) /* empty */
#endif
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
# else
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
# define YY_IGNORE_USELESS_CAST_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
# define YY_IGNORE_USELESS_CAST_END \
_Pragma ("GCC diagnostic pop")
#endif
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
# define YY_IGNORE_USELESS_CAST_BEGIN
# define YY_IGNORE_USELESS_CAST_END
#endif
#define YY_ASSERT(E) ((void) (0 && (E)))
#if !defined yyoverflow
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# elif defined __BUILTIN_VA_ARG_INCR
# include /* INFRINGES ON USER NAME SPACE */
# elif defined _AIX
# define YYSTACK_ALLOC __alloca
# elif defined _MSC_VER
# include /* INFRINGES ON USER NAME SPACE */
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
# include /* INFRINGES ON USER NAME SPACE */
/* Use EXIT_SUCCESS as a witness for stdlib.h. */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's 'empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
to allow for a few compiler-allocated temporary stack slots. */
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
# endif
# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include /* INFRINGES ON USER NAME SPACE */
# ifndef EXIT_SUCCESS
# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# endif
#endif /* !defined yyoverflow */
#if (! defined yyoverflow \
&& (! defined __cplusplus \
|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
yy_state_t yyss_alloc;
YYSTYPE yyvs_alloc;
};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
do \
{ \
YYPTRDIFF_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / YYSIZEOF (*yyptr); \
} \
while (0)
#endif
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from SRC to DST. The source and destination do
not overlap. */
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(Dst, Src, Count) \
__builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
# else
# define YYCOPY(Dst, Src, Count) \
do \
{ \
YYPTRDIFF_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)
# endif
# endif
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 515
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 156
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 48
/* YYNRULES -- Number of rules. */
#define YYNRULES 213
/* YYNSTATES -- Number of states. */
#define YYNSTATES 372
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 410
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
as returned by yylex, with out-of-bounds checking. */
#define YYTRANSLATE(YYX) \
(0 <= (YYX) && (YYX) <= YYMAXUTOK \
? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
: YYSYMBOL_YYUNDEF)
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
as returned by yylex. */
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
155
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
0, 242, 242, 244, 247, 248, 249, 250, 251, 252,
253, 254, 257, 260, 260, 264, 263, 280, 288, 290,
292, 294, 296, 298, 300, 302, 304, 306, 308, 310,
312, 314, 316, 318, 320, 350, 352, 354, 362, 364,
366, 368, 370, 372, 374, 376, 378, 385, 387, 389,
391, 393, 395, 397, 399, 401, 403, 405, 407, 417,
423, 429, 439, 449, 455, 457, 459, 461, 466, 471,
476, 481, 483, 485, 487, 489, 491, 498, 505, 513,
515, 523, 525, 536, 547, 559, 561, 563, 567, 595,
601, 613, 623, 631, 632, 635, 662, 664, 669, 670,
704, 706, 717, 720, 720, 723, 725, 727, 729, 731,
733, 735, 737, 739, 741, 743, 745, 747, 749, 754,
757, 757, 760, 762, 772, 780, 782, 784, 786, 792,
791, 813, 813, 816, 827, 831, 835, 839, 847, 846,
871, 871, 874, 886, 894, 913, 912, 937, 937, 940,
953, 957, 956, 973, 973, 976, 983, 986, 992, 994,
996, 1004, 1006, 1009, 1008, 1022, 1021, 1033, 1043, 1048,
1058, 1057, 1064, 1069, 1074, 1079, 1084, 1089, 1094, 1099,
1104, 1116, 1121, 1126, 1131, 1136, 1138, 1140, 1142, 1144,
1151, 1155, 1171, 1174, 1174, 1177, 1179, 1189, 1196, 1198,
1200, 1202, 1204, 1208, 1228, 1229, 1247, 1257, 1266, 1274,
1275, 1279, 1280, 1285
};
#endif
/** Accessing symbol of state STATE. */
#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
#if YYDEBUG || 0
/* The user-facing name of the symbol whose (internal) number is
YYSYMBOL. No bounds checking. */
static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"\"end of file\"", "error", "\"invalid token\"", "STRING", "VAR_SERVER",
"VAR_SERVER_COUNT", "VAR_IP_ADDRESS", "VAR_IP_TRANSPARENT",
"VAR_IP_FREEBIND", "VAR_REUSEPORT", "VAR_SEND_BUFFER_SIZE",
"VAR_RECEIVE_BUFFER_SIZE", "VAR_DEBUG_MODE", "VAR_IP4_ONLY",
"VAR_IP6_ONLY", "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PORT",
"VAR_USE_SYSTEMD", "VAR_VERBOSITY", "VAR_USERNAME", "VAR_CHROOT",
"VAR_ZONESDIR", "VAR_ZONELISTFILE", "VAR_DATABASE", "VAR_LOGFILE",
"VAR_LOG_ONLY_SYSLOG", "VAR_PIDFILE", "VAR_DIFFFILE", "VAR_XFRDFILE",
"VAR_XFRDIR", "VAR_HIDE_VERSION", "VAR_HIDE_IDENTITY", "VAR_VERSION",
"VAR_IDENTITY", "VAR_NSID", "VAR_TCP_COUNT", "VAR_TCP_REJECT_OVERFLOW",
"VAR_TCP_QUERY_COUNT", "VAR_TCP_TIMEOUT", "VAR_TCP_MSS",
"VAR_OUTGOING_TCP_MSS", "VAR_IPV4_EDNS_SIZE", "VAR_IPV6_EDNS_SIZE",
"VAR_STATISTICS", "VAR_XFRD_RELOAD_TIMEOUT", "VAR_LOG_TIME_ASCII",
"VAR_LOG_TIME_ISO", "VAR_ROUND_ROBIN", "VAR_MINIMAL_RESPONSES",
"VAR_CONFINE_TO_ZONE", "VAR_REFUSE_ANY", "VAR_RELOAD_CONFIG",
"VAR_ZONEFILES_CHECK", "VAR_ZONEFILES_WRITE", "VAR_RRL_SIZE",
"VAR_RRL_RATELIMIT", "VAR_RRL_SLIP", "VAR_RRL_IPV4_PREFIX_LENGTH",
"VAR_RRL_IPV6_PREFIX_LENGTH", "VAR_RRL_WHITELIST_RATELIMIT",
"VAR_TLS_SERVICE_KEY", "VAR_TLS_SERVICE_PEM", "VAR_TLS_SERVICE_OCSP",
"VAR_TLS_PORT", "VAR_TLS_AUTH_PORT", "VAR_TLS_AUTH_XFR_ONLY",
"VAR_TLS_CERT_BUNDLE", "VAR_PROXY_PROTOCOL_PORT", "VAR_CPU_AFFINITY",
"VAR_XFRD_CPU_AFFINITY", "VAR_SERVER_CPU_AFFINITY", "VAR_DROP_UPDATES",
"VAR_XFRD_TCP_MAX", "VAR_XFRD_TCP_PIPELINE", "VAR_METRICS_ENABLE",
"VAR_METRICS_INTERFACE", "VAR_METRICS_PORT", "VAR_METRICS_PATH",
"VAR_DNSTAP", "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH",
"VAR_DNSTAP_IP", "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME",
"VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE",
"VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY",
"VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
"VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES",
"VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES", "VAR_REMOTE_CONTROL",
"VAR_CONTROL_ENABLE", "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT",
"VAR_SERVER_KEY_FILE", "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE",
"VAR_CONTROL_CERT_FILE", "VAR_KEY", "VAR_ALGORITHM", "VAR_SECRET",
"VAR_TLS_AUTH", "VAR_TLS_AUTH_DOMAIN_NAME", "VAR_TLS_AUTH_CLIENT_CERT",
"VAR_TLS_AUTH_CLIENT_KEY", "VAR_TLS_AUTH_CLIENT_KEY_PW", "VAR_PATTERN",
"VAR_NAME", "VAR_ZONEFILE", "VAR_NOTIFY", "VAR_PROVIDE_XFR",
"VAR_ALLOW_QUERY", "VAR_AXFR", "VAR_UDP", "VAR_NOTIFY_RETRY",
"VAR_ALLOW_NOTIFY", "VAR_REQUEST_XFR", "VAR_ALLOW_AXFR_FALLBACK",
"VAR_OUTGOING_INTERFACE", "VAR_ANSWER_COOKIE", "VAR_COOKIE_SECRET",
"VAR_COOKIE_SECRET_FILE", "VAR_COOKIE_STAGING_SECRET",
"VAR_MAX_REFRESH_TIME", "VAR_MIN_REFRESH_TIME", "VAR_MAX_RETRY_TIME",
"VAR_MIN_RETRY_TIME", "VAR_MIN_EXPIRE_TIME", "VAR_MULTI_PRIMARY_CHECK",
"VAR_SIZE_LIMIT_XFR", "VAR_ZONESTATS", "VAR_INCLUDE_PATTERN",
"VAR_STORE_IXFR", "VAR_IXFR_SIZE", "VAR_IXFR_NUMBER", "VAR_CREATE_IXFR",
"VAR_CATALOG", "VAR_CATALOG_MEMBER_PATTERN", "VAR_CATALOG_PRODUCER_ZONE",
"VAR_ZONE", "VAR_RRL_WHITELIST", "VAR_SERVERS", "VAR_BINDTODEVICE",
"VAR_SETFIB", "VAR_VERIFY", "VAR_ENABLE", "VAR_VERIFY_ZONE",
"VAR_VERIFY_ZONES", "VAR_VERIFIER", "VAR_VERIFIER_COUNT",
"VAR_VERIFIER_FEED_ZONE", "VAR_VERIFIER_TIMEOUT", "$accept", "blocks",
"block", "server", "server_block", "server_option", "$@1",
"socket_options", "socket_option", "cpus", "service_cpu_affinity",
"dnstap", "dnstap_block", "dnstap_option", "remote_control",
"remote_control_block", "remote_control_option", "tls_auth", "$@2",
"tls_auth_block", "tls_auth_option", "key", "$@3", "key_block",
"key_option", "zone", "$@4", "zone_block", "zone_option", "pattern",
"$@5", "pattern_block", "pattern_option", "pattern_or_zone_option",
"$@6", "$@7", "$@8", "verify", "verify_block", "verify_option",
"command", "arguments", "ip_address", "number", "boolean",
"request_xfr_tlsauth_option", "provide_xfr_tlsauth_option",
"catalog_role", YY_NULLPTR
};
static const char *
yysymbol_name (yysymbol_kind_t yysymbol)
{
return yytname[yysymbol];
}
#endif
#define YYPACT_NINF (-184)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
#define YYTABLE_NINF (-1)
#define yytable_value_is_error(Yyn) \
0
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
static const yytype_int16 yypact[] =
{
-184, 32, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
389, 246, -46, -184, -184, -184, -184, -4, 0, 6,
8, 8, 8, 0, 0, 8, 8, 8, 8, 8,
0, 8, 0, 11, 13, 14, 18, 19, 22, 8,
23, 25, 27, 28, 8, 8, 43, 44, 53, 0,
8, 0, 0, 0, 0, 0, 0, 0, 0, 8,
8, 8, 8, 8, 8, 8, 8, 0, 0, 0,
0, 0, 0, 0, 54, 56, 57, 0, 0, 8,
58, 0, -184, -184, -184, 8, 0, 0, 8, 6,
0, 59, 8, 60, 62, 63, -184, 0, 8, 65,
69, 8, 71, 72, 76, 78, 8, 8, 79, 80,
8, 8, -184, 8, 6, 0, 81, 84, 85, 88,
-184, -84, 46, 70, 143, 6, 0, 8, 8, 90,
0, 8, 0, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, 91, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, 93, 102, 105, -184, 106,
109, 117, 118, 119, -184, 122, 127, 128, 132, 135,
0, 136, 12, 8, 137, 0, 0, 0, 0, 138,
8, 0, 141, 153, 8, 0, 0, 8, 155, 156,
157, 159, 8, 90, 8, 0, -184, -184, 160, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, 161, 162, 163, -184, 164, 165, 166, 167,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, 168, -112, -184, -184, -184,
-184, -184, 170, 171, -184, 174, 8, 0, -184, 176,
183, -184, -184, -184, -184, -184, -184, -184, -184, -184,
183, -184
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
Performed when YYTABLE does not specify something else to do. Zero
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
2, 0, 1, 14, 104, 121, 138, 129, 151, 145,
194, 3, 4, 5, 6, 8, 7, 10, 9, 11,
12, 102, 119, 141, 132, 154, 148, 192, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 98, 100, 101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 13, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 103, 0, 0, 0, 0, 0, 0, 0,
120, 139, 130, 152, 146, 0, 0, 0, 0, 0,
0, 0, 0, 193, 207, 17, 206, 15, 208, 18,
19, 47, 20, 21, 22, 27, 28, 29, 30, 46,
23, 57, 50, 49, 51, 52, 31, 35, 36, 45,
53, 54, 55, 24, 25, 33, 32, 34, 37, 38,
39, 40, 41, 42, 43, 44, 48, 56, 67, 68,
69, 70, 71, 72, 64, 65, 66, 58, 59, 60,
61, 62, 63, 73, 75, 74, 76, 77, 78, 79,
80, 87, 26, 85, 86, 89, 90, 91, 92, 81,
82, 84, 83, 88, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 122, 123,
124, 125, 126, 127, 128, 0, 0, 0, 140, 0,
0, 0, 0, 0, 131, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 153, 156, 0, 147,
150, 196, 197, 195, 198, 204, 199, 200, 202, 201,
93, 99, 143, 144, 142, 134, 135, 136, 137, 133,
155, 158, 0, 0, 0, 175, 0, 0, 0, 0,
174, 173, 176, 177, 178, 179, 180, 161, 160, 159,
162, 181, 182, 183, 184, 213, 189, 190, 191, 157,
185, 186, 187, 188, 149, 203, 16, 169, 170, 172,
168, 163, 0, 0, 205, 0, 0, 0, 94, 211,
209, 165, 167, 95, 96, 97, 212, 171, 210, 164,
209, 166
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -184, -184, -184, -184, -184, -184, -184,
-184, -184, -184, -61, -184, -184, -184, -184, -184, -184,
-137, -184, -87, 36, -31, -183, -184, -184
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
0, 1, 11, 12, 20, 106, 300, 346, 358, 211,
107, 13, 21, 122, 14, 22, 130, 15, 24, 132,
254, 16, 23, 131, 248, 17, 26, 134, 289, 18,
25, 133, 286, 287, 360, 370, 359, 19, 27, 143,
296, 345, 147, 145, 149, 369, 367, 336
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule whose
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
150, 151, 135, 144, 154, 155, 156, 157, 158, 146,
160, 148, 216, 136, 162, 317, 163, 164, 168, 245,
246, 165, 166, 173, 174, 167, 169, 247, 170, 179,
171, 172, 2, 355, 356, 357, 3, 239, 188, 189,
190, 191, 192, 193, 194, 195, 175, 176, 291, 123,
124, 125, 126, 127, 128, 129, 177, 203, 208, 204,
205, 209, 218, 220, 212, 221, 222, 215, 225, 152,
153, 219, 226, 290, 228, 229, 159, 224, 161, 230,
227, 231, 234, 235, 241, 232, 233, 242, 243, 236,
237, 244, 238, 295, 301, 178, 302, 180, 181, 182,
183, 184, 185, 186, 187, 303, 293, 294, 304, 305,
298, 4, 306, 196, 197, 198, 199, 200, 201, 202,
307, 308, 309, 206, 207, 310, 5, 210, 318, 319,
311, 312, 213, 214, 6, 313, 217, 7, 314, 316,
321, 326, 8, 223, 329, 137, 341, 138, 139, 140,
141, 142, 249, 250, 251, 252, 330, 253, 335, 337,
338, 240, 339, 344, 347, 348, 349, 350, 351, 352,
353, 354, 292, 361, 362, 9, 297, 363, 299, 366,
10, 255, 256, 257, 258, 259, 368, 371, 260, 261,
262, 263, 264, 0, 0, 0, 0, 265, 266, 267,
268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
278, 279, 280, 0, 281, 0, 0, 0, 0, 0,
282, 0, 283, 0, 284, 285, 0, 0, 0, 0,
0, 0, 320, 0, 0, 0, 0, 0, 0, 327,
0, 0, 0, 331, 0, 0, 334, 0, 0, 0,
0, 340, 0, 342, 288, 256, 257, 258, 259, 0,
0, 260, 261, 262, 263, 264, 0, 0, 0, 0,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 0, 281, 0, 0,
0, 0, 0, 282, 0, 283, 315, 284, 285, 0,
0, 322, 323, 324, 325, 0, 0, 328, 0, 0,
0, 332, 333, 0, 0, 0, 0, 0, 0, 0,
0, 343, 0, 0, 0, 364, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 365, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97, 98, 99, 100, 101, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 102, 103, 104, 105
};
static const yytype_int16 yycheck[] =
{
31, 32, 6, 3, 35, 36, 37, 38, 39, 3,
41, 3, 99, 17, 3, 3, 3, 3, 49, 103,
104, 3, 3, 54, 55, 3, 3, 111, 3, 60,
3, 3, 0, 145, 146, 147, 4, 124, 69, 70,
71, 72, 73, 74, 75, 76, 3, 3, 135, 95,
96, 97, 98, 99, 100, 101, 3, 3, 89, 3,
3, 3, 3, 3, 95, 3, 3, 98, 3, 33,
34, 102, 3, 134, 3, 3, 40, 108, 42, 3,
111, 3, 3, 3, 3, 116, 117, 3, 3, 120,
121, 3, 123, 3, 3, 59, 3, 61, 62, 63,
64, 65, 66, 67, 68, 3, 137, 138, 3, 3,
141, 79, 3, 77, 78, 79, 80, 81, 82, 83,
3, 3, 3, 87, 88, 3, 94, 91, 116, 117,
3, 3, 96, 97, 102, 3, 100, 105, 3, 3,
3, 3, 110, 107, 3, 149, 283, 151, 152, 153,
154, 155, 106, 107, 108, 109, 3, 111, 3, 3,
3, 125, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 136, 3, 3, 143, 140, 3, 142, 3,
148, 111, 112, 113, 114, 115, 3, 370, 118, 119,
120, 121, 122, -1, -1, -1, -1, 127, 128, 129,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
140, 141, 142, -1, 144, -1, -1, -1, -1, -1,
150, -1, 152, -1, 154, 155, -1, -1, -1, -1,
-1, -1, 263, -1, -1, -1, -1, -1, -1, 270,
-1, -1, -1, 274, -1, -1, 277, -1, -1, -1,
-1, 282, -1, 284, 111, 112, 113, 114, 115, -1,
-1, 118, 119, 120, 121, 122, -1, -1, -1, -1,
127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, 141, 142, -1, 144, -1, -1,
-1, -1, -1, 150, -1, 152, 260, 154, 155, -1,
-1, 265, 266, 267, 268, -1, -1, 271, -1, -1,
-1, 275, 276, -1, -1, -1, -1, -1, -1, -1,
-1, 285, -1, -1, -1, 356, 80, 81, 82, 83,
84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 357, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 75, 76, 77, 78, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 123, 124, 125, 126
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 157, 0, 4, 79, 94, 102, 105, 110, 143,
148, 158, 159, 167, 170, 173, 177, 181, 185, 193,
160, 168, 171, 178, 174, 186, 182, 194, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 123, 124, 125, 126, 161, 166, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 169, 95, 96, 97, 98, 99, 100, 101,
172, 179, 175, 187, 183, 6, 17, 149, 151, 152,
153, 154, 155, 195, 3, 199, 3, 198, 3, 200,
200, 200, 199, 199, 200, 200, 200, 200, 200, 199,
200, 199, 3, 3, 3, 3, 3, 3, 200, 3,
3, 3, 3, 200, 200, 3, 3, 3, 199, 200,
199, 199, 199, 199, 199, 199, 199, 199, 200, 200,
200, 200, 200, 200, 200, 200, 199, 199, 199, 199,
199, 199, 199, 3, 3, 3, 199, 199, 200, 3,
199, 165, 200, 199, 199, 200, 198, 199, 3, 200,
3, 3, 3, 199, 200, 3, 3, 200, 3, 3,
3, 3, 200, 200, 3, 3, 200, 200, 200, 198,
199, 3, 3, 3, 3, 103, 104, 111, 180, 106,
107, 108, 109, 111, 176, 111, 112, 113, 114, 115,
118, 119, 120, 121, 122, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 144, 150, 152, 154, 155, 188, 189, 111, 184,
189, 198, 199, 200, 200, 3, 196, 199, 200, 199,
162, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 199, 3, 3, 116, 117,
200, 3, 199, 199, 199, 199, 3, 200, 199, 3,
3, 200, 199, 199, 200, 3, 203, 3, 3, 3,
200, 196, 200, 199, 3, 197, 163, 3, 3, 3,
3, 3, 3, 3, 3, 145, 146, 147, 164, 192,
190, 3, 3, 3, 200, 199, 3, 202, 3, 201,
191, 201
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_uint8 yyr1[] =
{
0, 156, 157, 157, 158, 158, 158, 158, 158, 158,
158, 158, 159, 160, 160, 162, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
161, 161, 161, 163, 163, 164, 164, 164, 165, 165,
166, 166, 167, 168, 168, 169, 169, 169, 169, 169,
169, 169, 169, 169, 169, 169, 169, 169, 169, 170,
171, 171, 172, 172, 172, 172, 172, 172, 172, 174,
173, 175, 175, 176, 176, 176, 176, 176, 178, 177,
179, 179, 180, 180, 180, 182, 181, 183, 183, 184,
184, 186, 185, 187, 187, 188, 188, 189, 189, 189,
189, 189, 189, 190, 189, 191, 189, 189, 189, 189,
192, 189, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 193, 194, 194, 195, 195, 195, 195, 195,
195, 195, 195, 196, 197, 197, 198, 199, 200, 201,
201, 202, 202, 203
};
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 0, 0, 4, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 0, 2, 2, 2, 2, 0, 2,
1, 1, 2, 2, 0, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 0, 2, 2, 2, 2, 2, 2, 2, 0,
3, 2, 0, 2, 2, 2, 2, 2, 0, 3,
2, 0, 2, 2, 2, 0, 3, 2, 0, 2,
1, 0, 3, 2, 0, 2, 1, 2, 2, 2,
2, 2, 2, 0, 5, 0, 6, 4, 3, 3,
0, 5, 3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 2, 2, 2, 2, 2,
2, 2, 2, 2, 0, 2, 1, 1, 1, 0,
1, 0, 1, 1
};
enum { YYENOMEM = -2 };
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
/* Backward compatibility with an undocumented macro.
Use YYerror or YYUNDEF. */
#define YYERRCODE YYUNDEF
/* Enable debugging if requested. */
#if YYDEBUG
# ifndef YYFPRINTF
# include /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Kind, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
/*-----------------------------------.
| Print this symbol's value on YYO. |
`-----------------------------------*/
static void
yy_symbol_value_print (FILE *yyo,
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
FILE *yyoutput = yyo;
YY_USE (yyoutput);
if (!yyvaluep)
return;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
/*---------------------------.
| Print this symbol on YYO. |
`---------------------------*/
static void
yy_symbol_print (FILE *yyo,
yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
{
YYFPRINTF (yyo, "%s %s (",
yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
yy_symbol_value_print (yyo, yykind, yyvaluep);
YYFPRINTF (yyo, ")");
}
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
static void
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
{
YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
YYFPRINTF (stderr, "\n");
}
# define YY_STACK_PRINT(Bottom, Top) \
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (0)
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
static void
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
int yyrule)
{
int yylno = yyrline[yyrule];
int yynrhs = yyr2[yyrule];
int yyi;
YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
yyrule - 1, yylno);
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{
YYFPRINTF (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr,
YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
&yyvsp[(yyi + 1) - (yynrhs)]);
YYFPRINTF (stderr, "\n");
}
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyssp, yyvsp, Rule); \
} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args) ((void) 0)
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
static void
yydestruct (const char *yymsg,
yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{
YY_USE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
}
/* Lookahead token kind. */
int yychar;
/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
/*----------.
| yyparse. |
`----------*/
int
yyparse (void)
{
yy_state_fast_t yystate = 0;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus = 0;
/* Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* Their size. */
YYPTRDIFF_T yystacksize = YYINITDEPTH;
/* The state stack: array, bottom, top. */
yy_state_t yyssa[YYINITDEPTH];
yy_state_t *yyss = yyssa;
yy_state_t *yyssp = yyss;
/* The semantic value stack: array, bottom, top. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvsp = yyvs;
int yyn;
/* The return value of yyparse. */
int yyresult;
/* Lookahead symbol kind. */
yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;
YYDPRINTF ((stderr, "Starting parse\n"));
yychar = YYEMPTY; /* Cause a token to be read. */
goto yysetstate;
/*------------------------------------------------------------.
| yynewstate -- push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
/*--------------------------------------------------------------------.
| yysetstate -- set current state (the top of the stack) to yystate. |
`--------------------------------------------------------------------*/
yysetstate:
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
YY_IGNORE_USELESS_CAST_BEGIN
*yyssp = YY_CAST (yy_state_t, yystate);
YY_IGNORE_USELESS_CAST_END
YY_STACK_PRINT (yyss, yyssp);
if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
YYNOMEM;
#else
{
/* Get the current used size of the three stacks, in elements. */
YYPTRDIFF_T yysize = yyssp - yyss + 1;
# if defined yyoverflow
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
yy_state_t *yyss1 = yyss;
YYSTYPE *yyvs1 = yyvs;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * YYSIZEOF (*yyssp),
&yyvs1, yysize * YYSIZEOF (*yyvsp),
&yystacksize);
yyss = yyss1;
yyvs = yyvs1;
}
# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
YYNOMEM;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
yy_state_t *yyss1 = yyss;
union yyalloc *yyptr =
YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
YY_IGNORE_USELESS_CAST_BEGIN
YYDPRINTF ((stderr, "Stack size increased to %ld\n",
YY_CAST (long, yystacksize)));
YY_IGNORE_USELESS_CAST_END
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. Read a
lookahead token if we need one and don't already have one. */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token\n"));
yychar = yylex ();
}
if (yychar <= YYEOF)
{
yychar = YYEOF;
yytoken = YYSYMBOL_YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else if (yychar == YYerror)
{
/* The scanner already issued an error message, process directly
to error recovery. But do not keep the error token as
lookahead, it is too special and may lead us to an endless
loop in error recovery. */
yychar = YYUNDEF;
yytoken = YYSYMBOL_YYerror;
goto yyerrlab1;
}
else
{
yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yytable_value_is_error (yyn))
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
/* Shift the lookahead token. */
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
yystate = yyn;
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Discard the shifted token. */
yychar = YYEMPTY;
goto yynewstate;
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
goto yyreduce;
/*-----------------------------.
| yyreduce -- do a reduction. |
`-----------------------------*/
yyreduce:
/* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
'$$ = $1'.
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen];
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 15: /* $@1: %empty */
#line 264 "configparser.y"
{
struct ip_address_option *ip = cfg_parser->opt->ip_addresses;
if(ip == NULL) {
cfg_parser->opt->ip_addresses = (yyvsp[0].ip);
} else {
while(ip->next) { ip = ip->next; }
ip->next = (yyvsp[0].ip);
}
cfg_parser->ip = (yyvsp[0].ip);
}
#line 1662 "configparser.c"
break;
case 16: /* server_option: VAR_IP_ADDRESS ip_address $@1 socket_options */
#line 277 "configparser.y"
{
cfg_parser->ip = NULL;
}
#line 1670 "configparser.c"
break;
case 17: /* server_option: VAR_SERVER_COUNT number */
#line 281 "configparser.y"
{
if ((yyvsp[0].llng) > 0) {
cfg_parser->opt->server_count = (int)(yyvsp[0].llng);
} else {
yyerror("expected a number greater than zero");
}
}
#line 1682 "configparser.c"
break;
case 18: /* server_option: VAR_IP_TRANSPARENT boolean */
#line 289 "configparser.y"
{ cfg_parser->opt->ip_transparent = (yyvsp[0].bln); }
#line 1688 "configparser.c"
break;
case 19: /* server_option: VAR_IP_FREEBIND boolean */
#line 291 "configparser.y"
{ cfg_parser->opt->ip_freebind = (yyvsp[0].bln); }
#line 1694 "configparser.c"
break;
case 20: /* server_option: VAR_SEND_BUFFER_SIZE number */
#line 293 "configparser.y"
{ cfg_parser->opt->send_buffer_size = (int)(yyvsp[0].llng); }
#line 1700 "configparser.c"
break;
case 21: /* server_option: VAR_RECEIVE_BUFFER_SIZE number */
#line 295 "configparser.y"
{ cfg_parser->opt->receive_buffer_size = (int)(yyvsp[0].llng); }
#line 1706 "configparser.c"
break;
case 22: /* server_option: VAR_DEBUG_MODE boolean */
#line 297 "configparser.y"
{ cfg_parser->opt->debug_mode = (yyvsp[0].bln); }
#line 1712 "configparser.c"
break;
case 23: /* server_option: VAR_USE_SYSTEMD boolean */
#line 299 "configparser.y"
{ /* ignored, obsolete */ }
#line 1718 "configparser.c"
break;
case 24: /* server_option: VAR_HIDE_VERSION boolean */
#line 301 "configparser.y"
{ cfg_parser->opt->hide_version = (yyvsp[0].bln); }
#line 1724 "configparser.c"
break;
case 25: /* server_option: VAR_HIDE_IDENTITY boolean */
#line 303 "configparser.y"
{ cfg_parser->opt->hide_identity = (yyvsp[0].bln); }
#line 1730 "configparser.c"
break;
case 26: /* server_option: VAR_DROP_UPDATES boolean */
#line 305 "configparser.y"
{ cfg_parser->opt->drop_updates = (yyvsp[0].bln); }
#line 1736 "configparser.c"
break;
case 27: /* server_option: VAR_IP4_ONLY boolean */
#line 307 "configparser.y"
{ if((yyvsp[0].bln)) { cfg_parser->opt->do_ip4 = 1; cfg_parser->opt->do_ip6 = 0; } }
#line 1742 "configparser.c"
break;
case 28: /* server_option: VAR_IP6_ONLY boolean */
#line 309 "configparser.y"
{ if((yyvsp[0].bln)) { cfg_parser->opt->do_ip4 = 0; cfg_parser->opt->do_ip6 = 1; } }
#line 1748 "configparser.c"
break;
case 29: /* server_option: VAR_DO_IP4 boolean */
#line 311 "configparser.y"
{ cfg_parser->opt->do_ip4 = (yyvsp[0].bln); }
#line 1754 "configparser.c"
break;
case 30: /* server_option: VAR_DO_IP6 boolean */
#line 313 "configparser.y"
{ cfg_parser->opt->do_ip6 = (yyvsp[0].bln); }
#line 1760 "configparser.c"
break;
case 31: /* server_option: VAR_DATABASE STRING */
#line 315 "configparser.y"
{ /* ignored, obsolete */ }
#line 1766 "configparser.c"
break;
case 32: /* server_option: VAR_IDENTITY STRING */
#line 317 "configparser.y"
{ cfg_parser->opt->identity = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1772 "configparser.c"
break;
case 33: /* server_option: VAR_VERSION STRING */
#line 319 "configparser.y"
{ cfg_parser->opt->version = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1778 "configparser.c"
break;
case 34: /* server_option: VAR_NSID STRING */
#line 321 "configparser.y"
{
unsigned char* nsid = 0;
size_t nsid_len = strlen((yyvsp[0].str));
if (strncasecmp((yyvsp[0].str), "ascii_", 6) == 0) {
nsid_len -= 6; /* discard "ascii_" */
if(nsid_len < 65535) {
cfg_parser->opt->nsid = region_alloc(cfg_parser->opt->region, nsid_len*2+1);
hex_ntop((uint8_t*)(yyvsp[0].str)+6, nsid_len, (char*)cfg_parser->opt->nsid, nsid_len*2+1);
} else {
yyerror("NSID too long");
}
} else if (nsid_len % 2 != 0) {
yyerror("the NSID must be a hex string of an even length.");
} else {
nsid_len = nsid_len / 2;
if(nsid_len < 65535) {
nsid = xalloc(nsid_len);
if (hex_pton((yyvsp[0].str), nsid, nsid_len) == -1) {
yyerror("hex string cannot be parsed in NSID.");
} else {
cfg_parser->opt->nsid = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
free(nsid);
} else {
yyerror("NSID too long");
}
}
}
#line 1812 "configparser.c"
break;
case 35: /* server_option: VAR_LOGFILE STRING */
#line 351 "configparser.y"
{ cfg_parser->opt->logfile = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1818 "configparser.c"
break;
case 36: /* server_option: VAR_LOG_ONLY_SYSLOG boolean */
#line 353 "configparser.y"
{ cfg_parser->opt->log_only_syslog = (yyvsp[0].bln); }
#line 1824 "configparser.c"
break;
case 37: /* server_option: VAR_TCP_COUNT number */
#line 355 "configparser.y"
{
if ((yyvsp[0].llng) > 0) {
cfg_parser->opt->tcp_count = (int)(yyvsp[0].llng);
} else {
yyerror("expected a number greater than zero");
}
}
#line 1836 "configparser.c"
break;
case 38: /* server_option: VAR_TCP_REJECT_OVERFLOW boolean */
#line 363 "configparser.y"
{ cfg_parser->opt->tcp_reject_overflow = (yyvsp[0].bln); }
#line 1842 "configparser.c"
break;
case 39: /* server_option: VAR_TCP_QUERY_COUNT number */
#line 365 "configparser.y"
{ cfg_parser->opt->tcp_query_count = (int)(yyvsp[0].llng); }
#line 1848 "configparser.c"
break;
case 40: /* server_option: VAR_TCP_TIMEOUT number */
#line 367 "configparser.y"
{ cfg_parser->opt->tcp_timeout = (int)(yyvsp[0].llng); }
#line 1854 "configparser.c"
break;
case 41: /* server_option: VAR_TCP_MSS number */
#line 369 "configparser.y"
{ cfg_parser->opt->tcp_mss = (int)(yyvsp[0].llng); }
#line 1860 "configparser.c"
break;
case 42: /* server_option: VAR_OUTGOING_TCP_MSS number */
#line 371 "configparser.y"
{ cfg_parser->opt->outgoing_tcp_mss = (int)(yyvsp[0].llng); }
#line 1866 "configparser.c"
break;
case 43: /* server_option: VAR_IPV4_EDNS_SIZE number */
#line 373 "configparser.y"
{ cfg_parser->opt->ipv4_edns_size = (size_t)(yyvsp[0].llng); }
#line 1872 "configparser.c"
break;
case 44: /* server_option: VAR_IPV6_EDNS_SIZE number */
#line 375 "configparser.y"
{ cfg_parser->opt->ipv6_edns_size = (size_t)(yyvsp[0].llng); }
#line 1878 "configparser.c"
break;
case 45: /* server_option: VAR_PIDFILE STRING */
#line 377 "configparser.y"
{ cfg_parser->opt->pidfile = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1884 "configparser.c"
break;
case 46: /* server_option: VAR_PORT number */
#line 379 "configparser.y"
{
/* port number, stored as a string */
char buf[16];
(void)snprintf(buf, sizeof(buf), "%lld", (yyvsp[0].llng));
cfg_parser->opt->port = region_strdup(cfg_parser->opt->region, buf);
}
#line 1895 "configparser.c"
break;
case 47: /* server_option: VAR_REUSEPORT boolean */
#line 386 "configparser.y"
{ cfg_parser->opt->reuseport = (yyvsp[0].bln); }
#line 1901 "configparser.c"
break;
case 48: /* server_option: VAR_STATISTICS number */
#line 388 "configparser.y"
{ cfg_parser->opt->statistics = (int)(yyvsp[0].llng); }
#line 1907 "configparser.c"
break;
case 49: /* server_option: VAR_CHROOT STRING */
#line 390 "configparser.y"
{ cfg_parser->opt->chroot = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1913 "configparser.c"
break;
case 50: /* server_option: VAR_USERNAME STRING */
#line 392 "configparser.y"
{ cfg_parser->opt->username = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1919 "configparser.c"
break;
case 51: /* server_option: VAR_ZONESDIR STRING */
#line 394 "configparser.y"
{ cfg_parser->opt->zonesdir = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1925 "configparser.c"
break;
case 52: /* server_option: VAR_ZONELISTFILE STRING */
#line 396 "configparser.y"
{ cfg_parser->opt->zonelistfile = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1931 "configparser.c"
break;
case 53: /* server_option: VAR_DIFFFILE STRING */
#line 398 "configparser.y"
{ /* ignored, obsolete */ }
#line 1937 "configparser.c"
break;
case 54: /* server_option: VAR_XFRDFILE STRING */
#line 400 "configparser.y"
{ cfg_parser->opt->xfrdfile = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1943 "configparser.c"
break;
case 55: /* server_option: VAR_XFRDIR STRING */
#line 402 "configparser.y"
{ cfg_parser->opt->xfrdir = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 1949 "configparser.c"
break;
case 56: /* server_option: VAR_XFRD_RELOAD_TIMEOUT number */
#line 404 "configparser.y"
{ cfg_parser->opt->xfrd_reload_timeout = (int)(yyvsp[0].llng); }
#line 1955 "configparser.c"
break;
case 57: /* server_option: VAR_VERBOSITY number */
#line 406 "configparser.y"
{ cfg_parser->opt->verbosity = (int)(yyvsp[0].llng); }
#line 1961 "configparser.c"
break;
case 58: /* server_option: VAR_RRL_SIZE number */
#line 408 "configparser.y"
{
#ifdef RATELIMIT
if ((yyvsp[0].llng) > 0) {
cfg_parser->opt->rrl_size = (size_t)(yyvsp[0].llng);
} else {
yyerror("expected a number greater than zero");
}
#endif
}
#line 1975 "configparser.c"
break;
case 59: /* server_option: VAR_RRL_RATELIMIT number */
#line 418 "configparser.y"
{
#ifdef RATELIMIT
cfg_parser->opt->rrl_ratelimit = (size_t)(yyvsp[0].llng);
#endif
}
#line 1985 "configparser.c"
break;
case 60: /* server_option: VAR_RRL_SLIP number */
#line 424 "configparser.y"
{
#ifdef RATELIMIT
cfg_parser->opt->rrl_slip = (size_t)(yyvsp[0].llng);
#endif
}
#line 1995 "configparser.c"
break;
case 61: /* server_option: VAR_RRL_IPV4_PREFIX_LENGTH number */
#line 430 "configparser.y"
{
#ifdef RATELIMIT
if ((yyvsp[0].llng) > 32) {
yyerror("invalid IPv4 prefix length");
} else {
cfg_parser->opt->rrl_ipv4_prefix_length = (size_t)(yyvsp[0].llng);
}
#endif
}
#line 2009 "configparser.c"
break;
case 62: /* server_option: VAR_RRL_IPV6_PREFIX_LENGTH number */
#line 440 "configparser.y"
{
#ifdef RATELIMIT
if ((yyvsp[0].llng) > 64) {
yyerror("invalid IPv6 prefix length");
} else {
cfg_parser->opt->rrl_ipv6_prefix_length = (size_t)(yyvsp[0].llng);
}
#endif
}
#line 2023 "configparser.c"
break;
case 63: /* server_option: VAR_RRL_WHITELIST_RATELIMIT number */
#line 450 "configparser.y"
{
#ifdef RATELIMIT
cfg_parser->opt->rrl_whitelist_ratelimit = (size_t)(yyvsp[0].llng);
#endif
}
#line 2033 "configparser.c"
break;
case 64: /* server_option: VAR_RELOAD_CONFIG boolean */
#line 456 "configparser.y"
{ cfg_parser->opt->reload_config = (yyvsp[0].bln); }
#line 2039 "configparser.c"
break;
case 65: /* server_option: VAR_ZONEFILES_CHECK boolean */
#line 458 "configparser.y"
{ cfg_parser->opt->zonefiles_check = (yyvsp[0].bln); }
#line 2045 "configparser.c"
break;
case 66: /* server_option: VAR_ZONEFILES_WRITE number */
#line 460 "configparser.y"
{ cfg_parser->opt->zonefiles_write = (int)(yyvsp[0].llng); }
#line 2051 "configparser.c"
break;
case 67: /* server_option: VAR_LOG_TIME_ASCII boolean */
#line 462 "configparser.y"
{
cfg_parser->opt->log_time_ascii = (yyvsp[0].bln);
log_time_asc = cfg_parser->opt->log_time_ascii;
}
#line 2060 "configparser.c"
break;
case 68: /* server_option: VAR_LOG_TIME_ISO boolean */
#line 467 "configparser.y"
{
cfg_parser->opt->log_time_iso = (yyvsp[0].bln);
log_time_iso = cfg_parser->opt->log_time_iso;
}
#line 2069 "configparser.c"
break;
case 69: /* server_option: VAR_ROUND_ROBIN boolean */
#line 472 "configparser.y"
{
cfg_parser->opt->round_robin = (yyvsp[0].bln);
round_robin = cfg_parser->opt->round_robin;
}
#line 2078 "configparser.c"
break;
case 70: /* server_option: VAR_MINIMAL_RESPONSES boolean */
#line 477 "configparser.y"
{
cfg_parser->opt->minimal_responses = (yyvsp[0].bln);
minimal_responses = cfg_parser->opt->minimal_responses;
}
#line 2087 "configparser.c"
break;
case 71: /* server_option: VAR_CONFINE_TO_ZONE boolean */
#line 482 "configparser.y"
{ cfg_parser->opt->confine_to_zone = (yyvsp[0].bln); }
#line 2093 "configparser.c"
break;
case 72: /* server_option: VAR_REFUSE_ANY boolean */
#line 484 "configparser.y"
{ cfg_parser->opt->refuse_any = (yyvsp[0].bln); }
#line 2099 "configparser.c"
break;
case 73: /* server_option: VAR_TLS_SERVICE_KEY STRING */
#line 486 "configparser.y"
{ cfg_parser->opt->tls_service_key = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2105 "configparser.c"
break;
case 74: /* server_option: VAR_TLS_SERVICE_OCSP STRING */
#line 488 "configparser.y"
{ cfg_parser->opt->tls_service_ocsp = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2111 "configparser.c"
break;
case 75: /* server_option: VAR_TLS_SERVICE_PEM STRING */
#line 490 "configparser.y"
{ cfg_parser->opt->tls_service_pem = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2117 "configparser.c"
break;
case 76: /* server_option: VAR_TLS_PORT number */
#line 492 "configparser.y"
{
/* port number, stored as string */
char buf[16];
(void)snprintf(buf, sizeof(buf), "%lld", (yyvsp[0].llng));
cfg_parser->opt->tls_port = region_strdup(cfg_parser->opt->region, buf);
}
#line 2128 "configparser.c"
break;
case 77: /* server_option: VAR_TLS_AUTH_PORT number */
#line 499 "configparser.y"
{
/* port number, stored as string */
char buf[16];
(void)snprintf(buf, sizeof(buf), "%lld", (yyvsp[0].llng));
cfg_parser->opt->tls_auth_port = region_strdup(cfg_parser->opt->region, buf);
}
#line 2139 "configparser.c"
break;
case 78: /* server_option: VAR_TLS_AUTH_XFR_ONLY boolean */
#line 506 "configparser.y"
{
if (!cfg_parser->opt->tls_auth_port) {
yyerror("tls-auth-xfr-only set without or before tls-auth-port");
YYABORT;
}
cfg_parser->opt->tls_auth_xfr_only = (yyvsp[0].bln);
}
#line 2151 "configparser.c"
break;
case 79: /* server_option: VAR_TLS_CERT_BUNDLE STRING */
#line 514 "configparser.y"
{ cfg_parser->opt->tls_cert_bundle = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2157 "configparser.c"
break;
case 80: /* server_option: VAR_PROXY_PROTOCOL_PORT number */
#line 516 "configparser.y"
{
struct proxy_protocol_port_list* elem = region_alloc_zero(
cfg_parser->opt->region, sizeof(*elem));
elem->port = (yyvsp[0].llng);
elem->next = cfg_parser->opt->proxy_protocol_port;
cfg_parser->opt->proxy_protocol_port = elem;
}
#line 2169 "configparser.c"
break;
case 81: /* server_option: VAR_ANSWER_COOKIE boolean */
#line 524 "configparser.y"
{ cfg_parser->opt->answer_cookie = (yyvsp[0].bln); }
#line 2175 "configparser.c"
break;
case 82: /* server_option: VAR_COOKIE_SECRET STRING */
#line 526 "configparser.y"
{
uint8_t secret[32];
ssize_t len = hex_pton((yyvsp[0].str), secret, NSD_COOKIE_SECRET_SIZE);
if(len != NSD_COOKIE_SECRET_SIZE) {
yyerror("expected a 128 bit hex string");
} else {
cfg_parser->opt->cookie_secret = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
}
#line 2190 "configparser.c"
break;
case 83: /* server_option: VAR_COOKIE_STAGING_SECRET STRING */
#line 537 "configparser.y"
{
uint8_t secret[32];
ssize_t len = hex_pton((yyvsp[0].str), secret, NSD_COOKIE_SECRET_SIZE);
if(len != NSD_COOKIE_SECRET_SIZE) {
yyerror("expected a 128 bit hex string");
} else {
cfg_parser->opt->cookie_staging_secret = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
}
#line 2205 "configparser.c"
break;
case 84: /* server_option: VAR_COOKIE_SECRET_FILE STRING */
#line 548 "configparser.y"
{
/* Empty filename means explicitly disabled cookies from file, internally
* represented as NULL.
* Note that after parsing, if no value was configured, then
* cookie_secret_file_is_default is still 1, then the default cookie
* secret file value will be assigned to cookie_secret_file.
*/
if(*(yyvsp[0].str)) cfg_parser->opt->cookie_secret_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
cfg_parser->opt->cookie_secret_file_is_default = 0;
}
#line 2220 "configparser.c"
break;
case 85: /* server_option: VAR_XFRD_TCP_MAX number */
#line 560 "configparser.y"
{ cfg_parser->opt->xfrd_tcp_max = (int)(yyvsp[0].llng); }
#line 2226 "configparser.c"
break;
case 86: /* server_option: VAR_XFRD_TCP_PIPELINE number */
#line 562 "configparser.y"
{ cfg_parser->opt->xfrd_tcp_pipeline = (int)(yyvsp[0].llng); }
#line 2232 "configparser.c"
break;
case 87: /* server_option: VAR_CPU_AFFINITY cpus */
#line 564 "configparser.y"
{
cfg_parser->opt->cpu_affinity = (yyvsp[0].cpu);
}
#line 2240 "configparser.c"
break;
case 88: /* server_option: service_cpu_affinity number */
#line 568 "configparser.y"
{
if((yyvsp[0].llng) < 0) {
yyerror("expected a non-negative number");
YYABORT;
} else {
struct cpu_map_option *opt, *tail;
opt = cfg_parser->opt->service_cpu_affinity;
while(opt && opt->service != (yyvsp[-1].llng)) { opt = opt->next; }
if(opt) {
opt->cpu = (yyvsp[0].llng);
} else {
opt = region_alloc_zero(cfg_parser->opt->region, sizeof(*opt));
opt->service = (int)(yyvsp[-1].llng);
opt->cpu = (int)(yyvsp[0].llng);
tail = cfg_parser->opt->service_cpu_affinity;
if(tail) {
while(tail->next) { tail = tail->next; }
tail->next = opt;
} else {
cfg_parser->opt->service_cpu_affinity = opt;
}
}
}
}
#line 2272 "configparser.c"
break;
case 89: /* server_option: VAR_METRICS_ENABLE boolean */
#line 596 "configparser.y"
{
#ifdef USE_METRICS
cfg_parser->opt->metrics_enable = (yyvsp[0].bln);
#endif /* USE_METRICS */
}
#line 2282 "configparser.c"
break;
case 90: /* server_option: VAR_METRICS_INTERFACE ip_address */
#line 602 "configparser.y"
{
#ifdef USE_METRICS
struct ip_address_option *ip = cfg_parser->opt->metrics_interface;
if(ip == NULL) {
cfg_parser->opt->metrics_interface = (yyvsp[0].ip);
} else {
while(ip->next != NULL) { ip = ip->next; }
ip->next = (yyvsp[0].ip);
}
#endif /* USE_METRICS */
}
#line 2298 "configparser.c"
break;
case 91: /* server_option: VAR_METRICS_PORT number */
#line 614 "configparser.y"
{
#ifdef USE_METRICS
if((yyvsp[0].llng) == 0) {
yyerror("metrics port number expected");
} else {
cfg_parser->opt->metrics_port = (int)(yyvsp[0].llng);
}
#endif /* USE_METRICS */
}
#line 2312 "configparser.c"
break;
case 92: /* server_option: VAR_METRICS_PATH STRING */
#line 624 "configparser.y"
{
#ifdef USE_METRICS
cfg_parser->opt->metrics_path = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
#endif /* USE_METRICS */
}
#line 2322 "configparser.c"
break;
case 95: /* socket_option: VAR_SERVERS STRING */
#line 636 "configparser.y"
{
char *tok, *ptr, *str;
struct range_option *servers = NULL;
long long first, last;
/* user may specify "0 1", "0" "1", 0 1 or a combination thereof */
for(str = (yyvsp[0].str); (tok = strtok_r(str, " \t", &ptr)); str = NULL) {
struct range_option *opt =
region_alloc(cfg_parser->opt->region, sizeof(*opt));
first = last = 0;
if(!parse_range(tok, &first, &last)) {
yyerror("invalid server range '%s'", tok);
YYABORT;
}
assert(first >= 0);
assert(last >= 0);
opt->next = NULL;
opt->first = (int)first;
opt->last = (int)last;
if(servers) {
servers = servers->next = opt;
} else {
servers = cfg_parser->ip->servers = opt;
}
}
}
#line 2353 "configparser.c"
break;
case 96: /* socket_option: VAR_BINDTODEVICE boolean */
#line 663 "configparser.y"
{ cfg_parser->ip->dev = (yyvsp[0].bln); }
#line 2359 "configparser.c"
break;
case 97: /* socket_option: VAR_SETFIB number */
#line 665 "configparser.y"
{ cfg_parser->ip->fib = (yyvsp[0].llng); }
#line 2365 "configparser.c"
break;
case 98: /* cpus: %empty */
#line 669 "configparser.y"
{ (yyval.cpu) = NULL; }
#line 2371 "configparser.c"
break;
case 99: /* cpus: cpus STRING */
#line 671 "configparser.y"
{
char *tok, *ptr, *str;
struct cpu_option *tail;
long long cpu;
str = (yyvsp[0].str);
(yyval.cpu) = tail = (yyvsp[-1].cpu);
if(tail) {
while(tail->next) { tail = tail->next; }
}
/* Users may specify "0 1", "0" "1", 0 1 or a combination thereof. */
for(str = (yyvsp[0].str); (tok = strtok_r(str, " \t", &ptr)); str = NULL) {
struct cpu_option *opt =
region_alloc_zero(cfg_parser->opt->region, sizeof(*opt));
cpu = 0;
if(!parse_number(tok, &cpu) || cpu < 0) {
yyerror("expected a positive number");
YYABORT;
}
assert(cpu >=0);
opt->cpu = (int)cpu;
if(tail) {
tail->next = opt;
tail = opt;
} else {
(yyval.cpu) = tail = opt;
}
}
}
#line 2406 "configparser.c"
break;
case 100: /* service_cpu_affinity: VAR_XFRD_CPU_AFFINITY */
#line 705 "configparser.y"
{ (yyval.llng) = -1; }
#line 2412 "configparser.c"
break;
case 101: /* service_cpu_affinity: VAR_SERVER_CPU_AFFINITY */
#line 707 "configparser.y"
{
if((yyvsp[0].llng) <= 0) {
yyerror("invalid server identifier");
YYABORT;
}
(yyval.llng) = (yyvsp[0].llng);
}
#line 2424 "configparser.c"
break;
case 105: /* dnstap_option: VAR_DNSTAP_ENABLE boolean */
#line 724 "configparser.y"
{ cfg_parser->opt->dnstap_enable = (yyvsp[0].bln); }
#line 2430 "configparser.c"
break;
case 106: /* dnstap_option: VAR_DNSTAP_SOCKET_PATH STRING */
#line 726 "configparser.y"
{ cfg_parser->opt->dnstap_socket_path = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2436 "configparser.c"
break;
case 107: /* dnstap_option: VAR_DNSTAP_IP STRING */
#line 728 "configparser.y"
{ cfg_parser->opt->dnstap_ip = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2442 "configparser.c"
break;
case 108: /* dnstap_option: VAR_DNSTAP_TLS boolean */
#line 730 "configparser.y"
{ cfg_parser->opt->dnstap_tls = (yyvsp[0].bln); }
#line 2448 "configparser.c"
break;
case 109: /* dnstap_option: VAR_DNSTAP_TLS_SERVER_NAME STRING */
#line 732 "configparser.y"
{ cfg_parser->opt->dnstap_tls_server_name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2454 "configparser.c"
break;
case 110: /* dnstap_option: VAR_DNSTAP_TLS_CERT_BUNDLE STRING */
#line 734 "configparser.y"
{ cfg_parser->opt->dnstap_tls_cert_bundle = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2460 "configparser.c"
break;
case 111: /* dnstap_option: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING */
#line 736 "configparser.y"
{ cfg_parser->opt->dnstap_tls_client_key_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2466 "configparser.c"
break;
case 112: /* dnstap_option: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING */
#line 738 "configparser.y"
{ cfg_parser->opt->dnstap_tls_client_cert_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2472 "configparser.c"
break;
case 113: /* dnstap_option: VAR_DNSTAP_SEND_IDENTITY boolean */
#line 740 "configparser.y"
{ cfg_parser->opt->dnstap_send_identity = (yyvsp[0].bln); }
#line 2478 "configparser.c"
break;
case 114: /* dnstap_option: VAR_DNSTAP_SEND_VERSION boolean */
#line 742 "configparser.y"
{ cfg_parser->opt->dnstap_send_version = (yyvsp[0].bln); }
#line 2484 "configparser.c"
break;
case 115: /* dnstap_option: VAR_DNSTAP_IDENTITY STRING */
#line 744 "configparser.y"
{ cfg_parser->opt->dnstap_identity = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2490 "configparser.c"
break;
case 116: /* dnstap_option: VAR_DNSTAP_VERSION STRING */
#line 746 "configparser.y"
{ cfg_parser->opt->dnstap_version = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2496 "configparser.c"
break;
case 117: /* dnstap_option: VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES boolean */
#line 748 "configparser.y"
{ cfg_parser->opt->dnstap_log_auth_query_messages = (yyvsp[0].bln); }
#line 2502 "configparser.c"
break;
case 118: /* dnstap_option: VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES boolean */
#line 750 "configparser.y"
{ cfg_parser->opt->dnstap_log_auth_response_messages = (yyvsp[0].bln); }
#line 2508 "configparser.c"
break;
case 122: /* remote_control_option: VAR_CONTROL_ENABLE boolean */
#line 761 "configparser.y"
{ cfg_parser->opt->control_enable = (yyvsp[0].bln); }
#line 2514 "configparser.c"
break;
case 123: /* remote_control_option: VAR_CONTROL_INTERFACE ip_address */
#line 763 "configparser.y"
{
struct ip_address_option *ip = cfg_parser->opt->control_interface;
if(ip == NULL) {
cfg_parser->opt->control_interface = (yyvsp[0].ip);
} else {
while(ip->next != NULL) { ip = ip->next; }
ip->next = (yyvsp[0].ip);
}
}
#line 2528 "configparser.c"
break;
case 124: /* remote_control_option: VAR_CONTROL_PORT number */
#line 773 "configparser.y"
{
if((yyvsp[0].llng) == 0) {
yyerror("control port number expected");
} else {
cfg_parser->opt->control_port = (int)(yyvsp[0].llng);
}
}
#line 2540 "configparser.c"
break;
case 125: /* remote_control_option: VAR_SERVER_KEY_FILE STRING */
#line 781 "configparser.y"
{ cfg_parser->opt->server_key_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2546 "configparser.c"
break;
case 126: /* remote_control_option: VAR_SERVER_CERT_FILE STRING */
#line 783 "configparser.y"
{ cfg_parser->opt->server_cert_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2552 "configparser.c"
break;
case 127: /* remote_control_option: VAR_CONTROL_KEY_FILE STRING */
#line 785 "configparser.y"
{ cfg_parser->opt->control_key_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2558 "configparser.c"
break;
case 128: /* remote_control_option: VAR_CONTROL_CERT_FILE STRING */
#line 787 "configparser.y"
{ cfg_parser->opt->control_cert_file = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2564 "configparser.c"
break;
case 129: /* $@2: %empty */
#line 792 "configparser.y"
{
tls_auth_options_type *tls_auth = tls_auth_options_create(cfg_parser->opt->region);
assert(cfg_parser->tls_auth == NULL);
cfg_parser->tls_auth = tls_auth;
}
#line 2574 "configparser.c"
break;
case 130: /* tls_auth: VAR_TLS_AUTH $@2 tls_auth_block */
#line 798 "configparser.y"
{
struct tls_auth_options *tls_auth = cfg_parser->tls_auth;
if(tls_auth->name == NULL) {
yyerror("tls-auth has no name");
} else if(tls_auth->auth_domain_name == NULL) {
yyerror("tls-auth %s has no auth-domain-name", tls_auth->name);
} else if(tls_auth_options_find(cfg_parser->opt, tls_auth->name)) {
yyerror("duplicate tls-auth %s", tls_auth->name);
} else {
tls_auth_options_insert(cfg_parser->opt, tls_auth);
cfg_parser->tls_auth = NULL;
}
}
#line 2592 "configparser.c"
break;
case 133: /* tls_auth_option: VAR_NAME STRING */
#line 817 "configparser.y"
{
dname_type *dname;
dname = (dname_type *)dname_parse(cfg_parser->opt->region, (yyvsp[0].str));
cfg_parser->tls_auth->name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
if(dname == NULL) {
yyerror("bad tls-auth name %s", (yyvsp[0].str));
} else {
region_recycle(cfg_parser->opt->region, dname, dname_total_size(dname));
}
}
#line 2607 "configparser.c"
break;
case 134: /* tls_auth_option: VAR_TLS_AUTH_DOMAIN_NAME STRING */
#line 828 "configparser.y"
{
cfg_parser->tls_auth->auth_domain_name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 2615 "configparser.c"
break;
case 135: /* tls_auth_option: VAR_TLS_AUTH_CLIENT_CERT STRING */
#line 832 "configparser.y"
{
cfg_parser->tls_auth->client_cert = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 2623 "configparser.c"
break;
case 136: /* tls_auth_option: VAR_TLS_AUTH_CLIENT_KEY STRING */
#line 836 "configparser.y"
{
cfg_parser->tls_auth->client_key = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 2631 "configparser.c"
break;
case 137: /* tls_auth_option: VAR_TLS_AUTH_CLIENT_KEY_PW STRING */
#line 840 "configparser.y"
{
cfg_parser->tls_auth->client_key_pw = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 2639 "configparser.c"
break;
case 138: /* $@3: %empty */
#line 847 "configparser.y"
{
key_options_type *key = key_options_create(cfg_parser->opt->region);
key->algorithm = region_strdup(cfg_parser->opt->region, "sha256");
assert(cfg_parser->key == NULL);
cfg_parser->key = key;
}
#line 2650 "configparser.c"
break;
case 139: /* key: VAR_KEY $@3 key_block */
#line 854 "configparser.y"
{
struct key_options *key = cfg_parser->key;
if(key->name == NULL) {
yyerror("tsig key has no name");
} else if(key->algorithm == NULL) {
yyerror("tsig key %s has no algorithm", key->name);
} else if(key->secret == NULL) {
yyerror("tsig key %s has no secret blob", key->name);
} else if(key_options_find(cfg_parser->opt, key->name)) {
yyerror("duplicate tsig key %s", key->name);
} else {
key_options_insert(cfg_parser->opt, key);
cfg_parser->key = NULL;
}
}
#line 2670 "configparser.c"
break;
case 142: /* key_option: VAR_NAME STRING */
#line 875 "configparser.y"
{
dname_type *dname;
dname = (dname_type *)dname_parse(cfg_parser->opt->region, (yyvsp[0].str));
cfg_parser->key->name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
if(dname == NULL) {
yyerror("bad tsig key name %s", (yyvsp[0].str));
} else {
region_recycle(cfg_parser->opt->region, dname, dname_total_size(dname));
}
}
#line 2686 "configparser.c"
break;
case 143: /* key_option: VAR_ALGORITHM STRING */
#line 887 "configparser.y"
{
if(tsig_get_algorithm_by_name((yyvsp[0].str)) == NULL) {
yyerror("bad tsig key algorithm %s", (yyvsp[0].str));
} else {
cfg_parser->key->algorithm = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
}
#line 2698 "configparser.c"
break;
case 144: /* key_option: VAR_SECRET STRING */
#line 895 "configparser.y"
{
uint8_t data[16384];
int size;
cfg_parser->key->secret = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
size = b64_pton((yyvsp[0].str), data, sizeof(data));
if(size == -1) {
yyerror("cannot base64 decode tsig secret %s",
cfg_parser->key->name?
cfg_parser->key->name:"");
} else if(size != 0) {
memset(data, 0xdd, size); /* wipe secret */
}
}
#line 2717 "configparser.c"
break;
case 145: /* $@4: %empty */
#line 913 "configparser.y"
{
assert(cfg_parser->pattern == NULL);
assert(cfg_parser->zone == NULL);
cfg_parser->zone = zone_options_create(cfg_parser->opt->region);
cfg_parser->zone->part_of_config = 1;
cfg_parser->zone->pattern = cfg_parser->pattern =
pattern_options_create(cfg_parser->opt->region);
cfg_parser->zone->pattern->implicit = 1;
}
#line 2731 "configparser.c"
break;
case 146: /* zone: VAR_ZONE $@4 zone_block */
#line 923 "configparser.y"
{
assert(cfg_parser->zone != NULL);
if(cfg_parser->zone->name == NULL) {
yyerror("zone has no name");
} else if(!nsd_options_insert_zone(cfg_parser->opt, cfg_parser->zone)) {
yyerror("duplicate zone %s", cfg_parser->zone->name);
} else if(!nsd_options_insert_pattern(cfg_parser->opt, cfg_parser->zone->pattern)) {
yyerror("duplicate pattern %s", cfg_parser->zone->pattern->pname);
}
cfg_parser->pattern = NULL;
cfg_parser->zone = NULL;
}
#line 2748 "configparser.c"
break;
case 149: /* zone_option: VAR_NAME STRING */
#line 941 "configparser.y"
{
const char *marker = PATTERN_IMPLICIT_MARKER;
char *pname = region_alloc(cfg_parser->opt->region, strlen((yyvsp[0].str)) + strlen(marker) + 1);
memmove(pname, marker, strlen(marker));
memmove(pname + strlen(marker), (yyvsp[0].str), strlen((yyvsp[0].str)) + 1);
cfg_parser->zone->pattern->pname = pname;
cfg_parser->zone->name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
if(pattern_options_find(cfg_parser->opt, pname)) {
yyerror("zone %s cannot be created because implicit pattern %s "
"already exists", (yyvsp[0].str), pname);
}
}
#line 2765 "configparser.c"
break;
case 151: /* $@5: %empty */
#line 957 "configparser.y"
{
assert(cfg_parser->pattern == NULL);
cfg_parser->pattern = pattern_options_create(cfg_parser->opt->region);
}
#line 2774 "configparser.c"
break;
case 152: /* pattern: VAR_PATTERN $@5 pattern_block */
#line 962 "configparser.y"
{
pattern_options_type *pattern = cfg_parser->pattern;
if(pattern->pname == NULL) {
yyerror("pattern has no name");
} else if(!nsd_options_insert_pattern(cfg_parser->opt, pattern)) {
yyerror("duplicate pattern %s", pattern->pname);
}
cfg_parser->pattern = NULL;
}
#line 2788 "configparser.c"
break;
case 155: /* pattern_option: VAR_NAME STRING */
#line 977 "configparser.y"
{
if(strchr((yyvsp[0].str), ' ')) {
yyerror("space is not allowed in pattern name: '%s'", (yyvsp[0].str));
}
cfg_parser->pattern->pname = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 2799 "configparser.c"
break;
case 157: /* pattern_or_zone_option: VAR_RRL_WHITELIST STRING */
#line 987 "configparser.y"
{
#ifdef RATELIMIT
cfg_parser->pattern->rrl_whitelist |= rrlstr2type((yyvsp[0].str));
#endif
}
#line 2809 "configparser.c"
break;
case 158: /* pattern_or_zone_option: VAR_ZONEFILE STRING */
#line 993 "configparser.y"
{ cfg_parser->pattern->zonefile = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2815 "configparser.c"
break;
case 159: /* pattern_or_zone_option: VAR_ZONESTATS STRING */
#line 995 "configparser.y"
{ cfg_parser->pattern->zonestats = region_strdup(cfg_parser->opt->region, (yyvsp[0].str)); }
#line 2821 "configparser.c"
break;
case 160: /* pattern_or_zone_option: VAR_SIZE_LIMIT_XFR number */
#line 997 "configparser.y"
{
if((yyvsp[0].llng) > 0) {
cfg_parser->pattern->size_limit_xfr = (int)(yyvsp[0].llng);
} else {
yyerror("expected a number greater than zero");
}
}
#line 2833 "configparser.c"
break;
case 161: /* pattern_or_zone_option: VAR_MULTI_PRIMARY_CHECK boolean */
#line 1005 "configparser.y"
{ cfg_parser->pattern->multi_primary_check = (int)(yyvsp[0].bln); }
#line 2839 "configparser.c"
break;
case 162: /* pattern_or_zone_option: VAR_INCLUDE_PATTERN STRING */
#line 1007 "configparser.y"
{ config_apply_pattern(cfg_parser->pattern, (yyvsp[0].str)); }
#line 2845 "configparser.c"
break;
case 163: /* $@6: %empty */
#line 1009 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
if(cfg_parser->pattern->catalog_role == CATALOG_ROLE_PRODUCER)
yyerror("catalog producer zones cannot be secondary zones");
if(acl->blocked)
yyerror("blocked address used for request-xfr");
if(acl->rangetype != acl_range_single)
yyerror("address range used for request-xfr");
append_acl(&cfg_parser->pattern->request_xfr, acl);
}
#line 2860 "configparser.c"
break;
case 164: /* pattern_or_zone_option: VAR_REQUEST_XFR STRING STRING $@6 request_xfr_tlsauth_option */
#line 1020 "configparser.y"
{ }
#line 2866 "configparser.c"
break;
case 165: /* $@7: %empty */
#line 1022 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
acl->use_axfr_only = 1;
if(acl->blocked)
yyerror("blocked address used for request-xfr");
if(acl->rangetype != acl_range_single)
yyerror("address range used for request-xfr");
append_acl(&cfg_parser->pattern->request_xfr, acl);
}
#line 2880 "configparser.c"
break;
case 166: /* pattern_or_zone_option: VAR_REQUEST_XFR VAR_AXFR STRING STRING $@7 request_xfr_tlsauth_option */
#line 1032 "configparser.y"
{ }
#line 2886 "configparser.c"
break;
case 167: /* pattern_or_zone_option: VAR_REQUEST_XFR VAR_UDP STRING STRING */
#line 1034 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
acl->allow_udp = 1;
if(acl->blocked)
yyerror("blocked address used for request-xfr");
if(acl->rangetype != acl_range_single)
yyerror("address range used for request-xfr");
append_acl(&cfg_parser->pattern->request_xfr, acl);
}
#line 2900 "configparser.c"
break;
case 168: /* pattern_or_zone_option: VAR_ALLOW_NOTIFY STRING STRING */
#line 1044 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
append_acl(&cfg_parser->pattern->allow_notify, acl);
}
#line 2909 "configparser.c"
break;
case 169: /* pattern_or_zone_option: VAR_NOTIFY STRING STRING */
#line 1049 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
if(acl->blocked)
yyerror("blocked address used for notify");
if(acl->rangetype != acl_range_single)
yyerror("address range used for notify");
append_acl(&cfg_parser->pattern->notify, acl);
}
#line 2922 "configparser.c"
break;
case 170: /* $@8: %empty */
#line 1058 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
append_acl(&cfg_parser->pattern->provide_xfr, acl);
}
#line 2931 "configparser.c"
break;
case 171: /* pattern_or_zone_option: VAR_PROVIDE_XFR STRING STRING $@8 provide_xfr_tlsauth_option */
#line 1063 "configparser.y"
{ }
#line 2937 "configparser.c"
break;
case 172: /* pattern_or_zone_option: VAR_ALLOW_QUERY STRING STRING */
#line 1065 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[-1].str), (yyvsp[0].str));
append_acl(&cfg_parser->pattern->allow_query, acl);
}
#line 2946 "configparser.c"
break;
case 173: /* pattern_or_zone_option: VAR_OUTGOING_INTERFACE STRING */
#line 1070 "configparser.y"
{
acl_options_type *acl = parse_acl_info(cfg_parser->opt->region, (yyvsp[0].str), "NOKEY");
append_acl(&cfg_parser->pattern->outgoing_interface, acl);
}
#line 2955 "configparser.c"
break;
case 174: /* pattern_or_zone_option: VAR_ALLOW_AXFR_FALLBACK boolean */
#line 1075 "configparser.y"
{
cfg_parser->pattern->allow_axfr_fallback = (yyvsp[0].bln);
cfg_parser->pattern->allow_axfr_fallback_is_default = 0;
}
#line 2964 "configparser.c"
break;
case 175: /* pattern_or_zone_option: VAR_NOTIFY_RETRY number */
#line 1080 "configparser.y"
{
cfg_parser->pattern->notify_retry = (yyvsp[0].llng);
cfg_parser->pattern->notify_retry_is_default = 0;
}
#line 2973 "configparser.c"
break;
case 176: /* pattern_or_zone_option: VAR_MAX_REFRESH_TIME number */
#line 1085 "configparser.y"
{
cfg_parser->pattern->max_refresh_time = (yyvsp[0].llng);
cfg_parser->pattern->max_refresh_time_is_default = 0;
}
#line 2982 "configparser.c"
break;
case 177: /* pattern_or_zone_option: VAR_MIN_REFRESH_TIME number */
#line 1090 "configparser.y"
{
cfg_parser->pattern->min_refresh_time = (yyvsp[0].llng);
cfg_parser->pattern->min_refresh_time_is_default = 0;
}
#line 2991 "configparser.c"
break;
case 178: /* pattern_or_zone_option: VAR_MAX_RETRY_TIME number */
#line 1095 "configparser.y"
{
cfg_parser->pattern->max_retry_time = (yyvsp[0].llng);
cfg_parser->pattern->max_retry_time_is_default = 0;
}
#line 3000 "configparser.c"
break;
case 179: /* pattern_or_zone_option: VAR_MIN_RETRY_TIME number */
#line 1100 "configparser.y"
{
cfg_parser->pattern->min_retry_time = (yyvsp[0].llng);
cfg_parser->pattern->min_retry_time_is_default = 0;
}
#line 3009 "configparser.c"
break;
case 180: /* pattern_or_zone_option: VAR_MIN_EXPIRE_TIME STRING */
#line 1105 "configparser.y"
{
long long num;
uint8_t expr;
if (!parse_expire_expr((yyvsp[0].str), &num, &expr)) {
yyerror("expected an expire time in seconds or \"refresh+retry+1\"");
YYABORT; /* trigger a parser error */
}
cfg_parser->pattern->min_expire_time = num;
cfg_parser->pattern->min_expire_time_expr = expr;
}
#line 3025 "configparser.c"
break;
case 181: /* pattern_or_zone_option: VAR_STORE_IXFR boolean */
#line 1117 "configparser.y"
{
cfg_parser->pattern->store_ixfr = (yyvsp[0].bln);
cfg_parser->pattern->store_ixfr_is_default = 0;
}
#line 3034 "configparser.c"
break;
case 182: /* pattern_or_zone_option: VAR_IXFR_SIZE number */
#line 1122 "configparser.y"
{
cfg_parser->pattern->ixfr_size = (yyvsp[0].llng);
cfg_parser->pattern->ixfr_size_is_default = 0;
}
#line 3043 "configparser.c"
break;
case 183: /* pattern_or_zone_option: VAR_IXFR_NUMBER number */
#line 1127 "configparser.y"
{
cfg_parser->pattern->ixfr_number = (yyvsp[0].llng);
cfg_parser->pattern->ixfr_number_is_default = 0;
}
#line 3052 "configparser.c"
break;
case 184: /* pattern_or_zone_option: VAR_CREATE_IXFR boolean */
#line 1132 "configparser.y"
{
cfg_parser->pattern->create_ixfr = (yyvsp[0].bln);
cfg_parser->pattern->create_ixfr_is_default = 0;
}
#line 3061 "configparser.c"
break;
case 185: /* pattern_or_zone_option: VAR_VERIFY_ZONE boolean */
#line 1137 "configparser.y"
{ cfg_parser->pattern->verify_zone = (yyvsp[0].bln); }
#line 3067 "configparser.c"
break;
case 186: /* pattern_or_zone_option: VAR_VERIFIER command */
#line 1139 "configparser.y"
{ cfg_parser->pattern->verifier = (yyvsp[0].strv); }
#line 3073 "configparser.c"
break;
case 187: /* pattern_or_zone_option: VAR_VERIFIER_FEED_ZONE boolean */
#line 1141 "configparser.y"
{ cfg_parser->pattern->verifier_feed_zone = (yyvsp[0].bln); }
#line 3079 "configparser.c"
break;
case 188: /* pattern_or_zone_option: VAR_VERIFIER_TIMEOUT number */
#line 1143 "configparser.y"
{ cfg_parser->pattern->verifier_timeout = (yyvsp[0].llng); }
#line 3085 "configparser.c"
break;
case 189: /* pattern_or_zone_option: VAR_CATALOG catalog_role */
#line 1145 "configparser.y"
{
if((yyvsp[0].role) == CATALOG_ROLE_PRODUCER && cfg_parser->pattern->request_xfr)
yyerror("catalog producer zones cannot be secondary zones");
cfg_parser->pattern->catalog_role = (yyvsp[0].role);
cfg_parser->pattern->catalog_role_is_default = 0;
}
#line 3096 "configparser.c"
break;
case 190: /* pattern_or_zone_option: VAR_CATALOG_MEMBER_PATTERN STRING */
#line 1152 "configparser.y"
{
cfg_parser->pattern->catalog_member_pattern = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
#line 3104 "configparser.c"
break;
case 191: /* pattern_or_zone_option: VAR_CATALOG_PRODUCER_ZONE STRING */
#line 1156 "configparser.y"
{
dname_type *dname;
if(cfg_parser->zone) {
yyerror("catalog-producer-zone option is for patterns only and cannot "
"be used in a zone clause");
} else if(!(dname = (dname_type *)dname_parse(cfg_parser->opt->region, (yyvsp[0].str)))) {
yyerror("bad catalog producer name %s", (yyvsp[0].str));
} else {
region_recycle(cfg_parser->opt->region, dname, dname_total_size(dname));
cfg_parser->pattern->catalog_producer_zone = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
}
}
#line 3122 "configparser.c"
break;
case 195: /* verify_option: VAR_ENABLE boolean */
#line 1178 "configparser.y"
{ cfg_parser->opt->verify_enable = (yyvsp[0].bln); }
#line 3128 "configparser.c"
break;
case 196: /* verify_option: VAR_IP_ADDRESS ip_address */
#line 1180 "configparser.y"
{
struct ip_address_option *ip = cfg_parser->opt->verify_ip_addresses;
if(!ip) {
cfg_parser->opt->verify_ip_addresses = (yyvsp[0].ip);
} else {
while(ip->next) { ip = ip->next; }
ip->next = (yyvsp[0].ip);
}
}
#line 3142 "configparser.c"
break;
case 197: /* verify_option: VAR_PORT number */
#line 1190 "configparser.y"
{
/* port number, stored as a string */
char buf[16];
(void)snprintf(buf, sizeof(buf), "%lld", (yyvsp[0].llng));
cfg_parser->opt->verify_port = region_strdup(cfg_parser->opt->region, buf);
}
#line 3153 "configparser.c"
break;
case 198: /* verify_option: VAR_VERIFY_ZONES boolean */
#line 1197 "configparser.y"
{ cfg_parser->opt->verify_zones = (yyvsp[0].bln); }
#line 3159 "configparser.c"
break;
case 199: /* verify_option: VAR_VERIFIER command */
#line 1199 "configparser.y"
{ cfg_parser->opt->verifier = (yyvsp[0].strv); }
#line 3165 "configparser.c"
break;
case 200: /* verify_option: VAR_VERIFIER_COUNT number */
#line 1201 "configparser.y"
{ cfg_parser->opt->verifier_count = (int)(yyvsp[0].llng); }
#line 3171 "configparser.c"
break;
case 201: /* verify_option: VAR_VERIFIER_TIMEOUT number */
#line 1203 "configparser.y"
{ cfg_parser->opt->verifier_timeout = (int)(yyvsp[0].llng); }
#line 3177 "configparser.c"
break;
case 202: /* verify_option: VAR_VERIFIER_FEED_ZONE boolean */
#line 1205 "configparser.y"
{ cfg_parser->opt->verifier_feed_zone = (yyvsp[0].bln); }
#line 3183 "configparser.c"
break;
case 203: /* command: STRING arguments */
#line 1209 "configparser.y"
{
char **argv;
size_t argc = 1;
for(struct component *i = (yyvsp[0].comp); i; i = i->next) {
argc++;
}
argv = region_alloc_zero(
cfg_parser->opt->region, (argc + 1) * sizeof(char *));
argc = 0;
argv[argc++] = (yyvsp[-1].str);
for(struct component *j, *i = (yyvsp[0].comp); i; i = j) {
j = i->next;
argv[argc++] = i->str;
region_recycle(cfg_parser->opt->region, i, sizeof(*i));
}
(yyval.strv) = argv;
}
#line 3205 "configparser.c"
break;
case 204: /* arguments: %empty */
#line 1228 "configparser.y"
{ (yyval.comp) = NULL; }
#line 3211 "configparser.c"
break;
case 205: /* arguments: arguments STRING */
#line 1230 "configparser.y"
{
struct component *comp = region_alloc_zero(
cfg_parser->opt->region, sizeof(*comp));
comp->str = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
if((yyvsp[-1].comp)) {
struct component *tail = (yyvsp[-1].comp);
while(tail->next) {
tail = tail->next;
}
tail->next = comp;
(yyval.comp) = (yyvsp[-1].comp);
} else {
(yyval.comp) = comp;
}
}
#line 3231 "configparser.c"
break;
case 206: /* ip_address: STRING */
#line 1248 "configparser.y"
{
struct ip_address_option *ip = region_alloc_zero(
cfg_parser->opt->region, sizeof(*ip));
ip->address = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
ip->fib = -1;
(yyval.ip) = ip;
}
#line 3243 "configparser.c"
break;
case 207: /* number: STRING */
#line 1258 "configparser.y"
{
if(!parse_number((yyvsp[0].str), &(yyval.llng))) {
yyerror("expected a number");
YYABORT; /* trigger a parser error */
}
}
#line 3254 "configparser.c"
break;
case 208: /* boolean: STRING */
#line 1267 "configparser.y"
{
if(!parse_boolean((yyvsp[0].str), &(yyval.bln))) {
yyerror("expected yes or no");
YYABORT; /* trigger a parser error */
}
}
#line 3265 "configparser.c"
break;
case 210: /* request_xfr_tlsauth_option: STRING */
#line 1276 "configparser.y"
{ char *tls_auth_name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
add_to_last_acl(&cfg_parser->pattern->request_xfr, tls_auth_name);}
#line 3272 "configparser.c"
break;
case 212: /* provide_xfr_tlsauth_option: STRING */
#line 1281 "configparser.y"
{ char *tls_auth_name = region_strdup(cfg_parser->opt->region, (yyvsp[0].str));
add_to_last_acl(&cfg_parser->pattern->provide_xfr, tls_auth_name);}
#line 3279 "configparser.c"
break;
case 213: /* catalog_role: STRING */
#line 1286 "configparser.y"
{
if(!parse_catalog_role((yyvsp[0].str), &(yyval.role))) {
yyerror("expected consumer or producer");
YYABORT; /* trigger a parser error */
}
}
#line 3290 "configparser.c"
break;
#line 3294 "configparser.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
that yytoken be updated with the new translation. We take the
approach of translating immediately before every use of yytoken.
One alternative is translating here after every semantic action,
but that translation would be missed if the semantic action invokes
YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
incorrect destructor might then be invoked immediately. In the
case of YYERROR or YYBACKUP, subsequent parser actions might lead
to an incorrect destructor call or verbose syntax error message
before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
YYPOPSTACK (yylen);
yylen = 0;
*++yyvsp = yyval;
/* Now 'shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
number reduced by. */
{
const int yylhs = yyr1[yyn] - YYNTOKENS;
const int yyi = yypgoto[yylhs] + *yyssp;
yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
? yytable[yyi]
: yydefgoto[yylhs]);
}
goto yynewstate;
/*--------------------------------------.
| yyerrlab -- here on detecting error. |
`--------------------------------------*/
yyerrlab:
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
++yynerrs;
yyerror (YY_("syntax error"));
}
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
if (yychar <= YYEOF)
{
/* Return failure if at end of input. */
if (yychar == YYEOF)
YYABORT;
}
else
{
yydestruct ("Error: discarding",
yytoken, &yylval);
yychar = YYEMPTY;
}
}
/* Else will try to reuse lookahead token after shifting the error
token. */
goto yyerrlab1;
/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR. |
`---------------------------------------------------*/
yyerrorlab:
/* Pacify compilers when the user code never invokes YYERROR and the
label yyerrorlab therefore never appears in user code. */
if (0)
YYERROR;
++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
YYPOPSTACK (yylen);
yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp;
goto yyerrlab1;
/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR. |
`-------------------------------------------------------------*/
yyerrlab1:
yyerrstatus = 3; /* Each real token shifted decrements this. */
/* Pop stack until we find a state that shifts the error token. */
for (;;)
{
yyn = yypact[yystate];
if (!yypact_value_is_default (yyn))
{
yyn += YYSYMBOL_YYerror;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
{
yyn = yytable[yyn];
if (0 < yyn)
break;
}
}
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
YY_ACCESSING_SYMBOL (yystate), yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
*++yyvsp = yylval;
YY_IGNORE_MAYBE_UNINITIALIZED_END
/* Shift the error token. */
YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here. |
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
goto yyreturnlab;
/*-----------------------------------.
| yyabortlab -- YYABORT comes here. |
`-----------------------------------*/
yyabortlab:
yyresult = 1;
goto yyreturnlab;
/*-----------------------------------------------------------.
| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
`-----------------------------------------------------------*/
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
goto yyreturnlab;
/*----------------------------------------------------------.
| yyreturnlab -- parsing is finished, clean up and return. |
`----------------------------------------------------------*/
yyreturnlab:
if (yychar != YYEMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
user semantic actions for why this is necessary. */
yytoken = YYTRANSLATE (yychar);
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
}
/* Do not reclaim the symbols of the rule whose action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
return yyresult;
}
#line 1293 "configparser.y"
static void
append_acl(struct acl_options **list, struct acl_options *acl)
{
assert(list != NULL);
if(*list == NULL) {
*list = acl;
} else {
struct acl_options *tail = *list;
while(tail->next != NULL)
tail = tail->next;
tail->next = acl;
}
}
static void
add_to_last_acl(struct acl_options **list, char *tls_auth_name)
{
struct acl_options *tail = *list;
assert(list != NULL);
assert(*list != NULL);
while(tail->next != NULL)
tail = tail->next;
tail->tls_auth_name = tls_auth_name;
}
static int
parse_boolean(const char *str, int *bln)
{
if(strcmp(str, "yes") == 0) {
*bln = 1;
} else if(strcmp(str, "no") == 0) {
*bln = 0;
} else {
return 0;
}
return 1;
}
static int
parse_expire_expr(const char *str, long long *num, uint8_t *expr)
{
if(parse_number(str, num)) {
*expr = EXPIRE_TIME_HAS_VALUE;
return 1;
}
if(strcmp(str, REFRESHPLUSRETRYPLUS1_STR) == 0) {
*num = 0;
*expr = REFRESHPLUSRETRYPLUS1;
return 1;
}
return 0;
}
static int
parse_number(const char *str, long long *num)
{
/* ensure string consists entirely of digits */
size_t pos = 0;
while(str[pos] >= '0' && str[pos] <= '9') {
pos++;
}
if(pos != 0 && str[pos] == '\0') {
*num = strtoll(str, NULL, 10);
return 1;
}
return 0;
}
static int
parse_range(const char *str, long long *low, long long *high)
{
const char *ptr = str;
long long num[2];
/* require range to begin with a number */
if(*ptr < '0' || *ptr > '9') {
return 0;
}
num[0] = strtoll(ptr, (char **)&ptr, 10);
/* require number to be followed by nothing at all or a dash */
if(*ptr == '\0') {
*low = num[0];
*high = num[0];
return 1;
} else if(*ptr != '-') {
return 0;
}
++ptr;
/* require dash to be followed by a number */
if(*ptr < '0' || *ptr > '9') {
return 0;
}
num[1] = strtoll(ptr, (char **)&ptr, 10);
/* require number to be followed by nothing at all */
if(*ptr == '\0') {
if(num[0] < num[1]) {
*low = num[0];
*high = num[1];
} else {
*low = num[1];
*high = num[0];
}
return 1;
}
return 0;
}
static int
parse_catalog_role(const char *str, int *role)
{
if(strcasecmp(str, "consumer") == 0) {
*role = CATALOG_ROLE_CONSUMER;
} else if(strcmp(str, "producer") == 0) {
*role = CATALOG_ROLE_PRODUCER;
} else {
return 0;
}
return 1;
}
nsd-4.12.0/configparser.h 0000644 0001750 0001750 00000040412 15002373060 014626 0 ustar mozzie mozzie /* A Bison parser, made by GNU Bison 3.8.2. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
especially those whose name start with YY_ or yy_. They are
private implementation details that can be changed or removed. */
#ifndef YY_C_CONFIGPARSER_H_INCLUDED
# define YY_C_CONFIGPARSER_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int c_debug;
#endif
/* Token kinds. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype
{
YYEMPTY = -2,
YYEOF = 0, /* "end of file" */
YYerror = 256, /* error */
YYUNDEF = 257, /* "invalid token" */
STRING = 258, /* STRING */
VAR_SERVER = 259, /* VAR_SERVER */
VAR_SERVER_COUNT = 260, /* VAR_SERVER_COUNT */
VAR_IP_ADDRESS = 261, /* VAR_IP_ADDRESS */
VAR_IP_TRANSPARENT = 262, /* VAR_IP_TRANSPARENT */
VAR_IP_FREEBIND = 263, /* VAR_IP_FREEBIND */
VAR_REUSEPORT = 264, /* VAR_REUSEPORT */
VAR_SEND_BUFFER_SIZE = 265, /* VAR_SEND_BUFFER_SIZE */
VAR_RECEIVE_BUFFER_SIZE = 266, /* VAR_RECEIVE_BUFFER_SIZE */
VAR_DEBUG_MODE = 267, /* VAR_DEBUG_MODE */
VAR_IP4_ONLY = 268, /* VAR_IP4_ONLY */
VAR_IP6_ONLY = 269, /* VAR_IP6_ONLY */
VAR_DO_IP4 = 270, /* VAR_DO_IP4 */
VAR_DO_IP6 = 271, /* VAR_DO_IP6 */
VAR_PORT = 272, /* VAR_PORT */
VAR_USE_SYSTEMD = 273, /* VAR_USE_SYSTEMD */
VAR_VERBOSITY = 274, /* VAR_VERBOSITY */
VAR_USERNAME = 275, /* VAR_USERNAME */
VAR_CHROOT = 276, /* VAR_CHROOT */
VAR_ZONESDIR = 277, /* VAR_ZONESDIR */
VAR_ZONELISTFILE = 278, /* VAR_ZONELISTFILE */
VAR_DATABASE = 279, /* VAR_DATABASE */
VAR_LOGFILE = 280, /* VAR_LOGFILE */
VAR_LOG_ONLY_SYSLOG = 281, /* VAR_LOG_ONLY_SYSLOG */
VAR_PIDFILE = 282, /* VAR_PIDFILE */
VAR_DIFFFILE = 283, /* VAR_DIFFFILE */
VAR_XFRDFILE = 284, /* VAR_XFRDFILE */
VAR_XFRDIR = 285, /* VAR_XFRDIR */
VAR_HIDE_VERSION = 286, /* VAR_HIDE_VERSION */
VAR_HIDE_IDENTITY = 287, /* VAR_HIDE_IDENTITY */
VAR_VERSION = 288, /* VAR_VERSION */
VAR_IDENTITY = 289, /* VAR_IDENTITY */
VAR_NSID = 290, /* VAR_NSID */
VAR_TCP_COUNT = 291, /* VAR_TCP_COUNT */
VAR_TCP_REJECT_OVERFLOW = 292, /* VAR_TCP_REJECT_OVERFLOW */
VAR_TCP_QUERY_COUNT = 293, /* VAR_TCP_QUERY_COUNT */
VAR_TCP_TIMEOUT = 294, /* VAR_TCP_TIMEOUT */
VAR_TCP_MSS = 295, /* VAR_TCP_MSS */
VAR_OUTGOING_TCP_MSS = 296, /* VAR_OUTGOING_TCP_MSS */
VAR_IPV4_EDNS_SIZE = 297, /* VAR_IPV4_EDNS_SIZE */
VAR_IPV6_EDNS_SIZE = 298, /* VAR_IPV6_EDNS_SIZE */
VAR_STATISTICS = 299, /* VAR_STATISTICS */
VAR_XFRD_RELOAD_TIMEOUT = 300, /* VAR_XFRD_RELOAD_TIMEOUT */
VAR_LOG_TIME_ASCII = 301, /* VAR_LOG_TIME_ASCII */
VAR_LOG_TIME_ISO = 302, /* VAR_LOG_TIME_ISO */
VAR_ROUND_ROBIN = 303, /* VAR_ROUND_ROBIN */
VAR_MINIMAL_RESPONSES = 304, /* VAR_MINIMAL_RESPONSES */
VAR_CONFINE_TO_ZONE = 305, /* VAR_CONFINE_TO_ZONE */
VAR_REFUSE_ANY = 306, /* VAR_REFUSE_ANY */
VAR_RELOAD_CONFIG = 307, /* VAR_RELOAD_CONFIG */
VAR_ZONEFILES_CHECK = 308, /* VAR_ZONEFILES_CHECK */
VAR_ZONEFILES_WRITE = 309, /* VAR_ZONEFILES_WRITE */
VAR_RRL_SIZE = 310, /* VAR_RRL_SIZE */
VAR_RRL_RATELIMIT = 311, /* VAR_RRL_RATELIMIT */
VAR_RRL_SLIP = 312, /* VAR_RRL_SLIP */
VAR_RRL_IPV4_PREFIX_LENGTH = 313, /* VAR_RRL_IPV4_PREFIX_LENGTH */
VAR_RRL_IPV6_PREFIX_LENGTH = 314, /* VAR_RRL_IPV6_PREFIX_LENGTH */
VAR_RRL_WHITELIST_RATELIMIT = 315, /* VAR_RRL_WHITELIST_RATELIMIT */
VAR_TLS_SERVICE_KEY = 316, /* VAR_TLS_SERVICE_KEY */
VAR_TLS_SERVICE_PEM = 317, /* VAR_TLS_SERVICE_PEM */
VAR_TLS_SERVICE_OCSP = 318, /* VAR_TLS_SERVICE_OCSP */
VAR_TLS_PORT = 319, /* VAR_TLS_PORT */
VAR_TLS_AUTH_PORT = 320, /* VAR_TLS_AUTH_PORT */
VAR_TLS_AUTH_XFR_ONLY = 321, /* VAR_TLS_AUTH_XFR_ONLY */
VAR_TLS_CERT_BUNDLE = 322, /* VAR_TLS_CERT_BUNDLE */
VAR_PROXY_PROTOCOL_PORT = 323, /* VAR_PROXY_PROTOCOL_PORT */
VAR_CPU_AFFINITY = 324, /* VAR_CPU_AFFINITY */
VAR_XFRD_CPU_AFFINITY = 325, /* VAR_XFRD_CPU_AFFINITY */
VAR_SERVER_CPU_AFFINITY = 326, /* VAR_SERVER_CPU_AFFINITY */
VAR_DROP_UPDATES = 327, /* VAR_DROP_UPDATES */
VAR_XFRD_TCP_MAX = 328, /* VAR_XFRD_TCP_MAX */
VAR_XFRD_TCP_PIPELINE = 329, /* VAR_XFRD_TCP_PIPELINE */
VAR_METRICS_ENABLE = 330, /* VAR_METRICS_ENABLE */
VAR_METRICS_INTERFACE = 331, /* VAR_METRICS_INTERFACE */
VAR_METRICS_PORT = 332, /* VAR_METRICS_PORT */
VAR_METRICS_PATH = 333, /* VAR_METRICS_PATH */
VAR_DNSTAP = 334, /* VAR_DNSTAP */
VAR_DNSTAP_ENABLE = 335, /* VAR_DNSTAP_ENABLE */
VAR_DNSTAP_SOCKET_PATH = 336, /* VAR_DNSTAP_SOCKET_PATH */
VAR_DNSTAP_IP = 337, /* VAR_DNSTAP_IP */
VAR_DNSTAP_TLS = 338, /* VAR_DNSTAP_TLS */
VAR_DNSTAP_TLS_SERVER_NAME = 339, /* VAR_DNSTAP_TLS_SERVER_NAME */
VAR_DNSTAP_TLS_CERT_BUNDLE = 340, /* VAR_DNSTAP_TLS_CERT_BUNDLE */
VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 341, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */
VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 342, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */
VAR_DNSTAP_SEND_IDENTITY = 343, /* VAR_DNSTAP_SEND_IDENTITY */
VAR_DNSTAP_SEND_VERSION = 344, /* VAR_DNSTAP_SEND_VERSION */
VAR_DNSTAP_IDENTITY = 345, /* VAR_DNSTAP_IDENTITY */
VAR_DNSTAP_VERSION = 346, /* VAR_DNSTAP_VERSION */
VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES = 347, /* VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES */
VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES = 348, /* VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES */
VAR_REMOTE_CONTROL = 349, /* VAR_REMOTE_CONTROL */
VAR_CONTROL_ENABLE = 350, /* VAR_CONTROL_ENABLE */
VAR_CONTROL_INTERFACE = 351, /* VAR_CONTROL_INTERFACE */
VAR_CONTROL_PORT = 352, /* VAR_CONTROL_PORT */
VAR_SERVER_KEY_FILE = 353, /* VAR_SERVER_KEY_FILE */
VAR_SERVER_CERT_FILE = 354, /* VAR_SERVER_CERT_FILE */
VAR_CONTROL_KEY_FILE = 355, /* VAR_CONTROL_KEY_FILE */
VAR_CONTROL_CERT_FILE = 356, /* VAR_CONTROL_CERT_FILE */
VAR_KEY = 357, /* VAR_KEY */
VAR_ALGORITHM = 358, /* VAR_ALGORITHM */
VAR_SECRET = 359, /* VAR_SECRET */
VAR_TLS_AUTH = 360, /* VAR_TLS_AUTH */
VAR_TLS_AUTH_DOMAIN_NAME = 361, /* VAR_TLS_AUTH_DOMAIN_NAME */
VAR_TLS_AUTH_CLIENT_CERT = 362, /* VAR_TLS_AUTH_CLIENT_CERT */
VAR_TLS_AUTH_CLIENT_KEY = 363, /* VAR_TLS_AUTH_CLIENT_KEY */
VAR_TLS_AUTH_CLIENT_KEY_PW = 364, /* VAR_TLS_AUTH_CLIENT_KEY_PW */
VAR_PATTERN = 365, /* VAR_PATTERN */
VAR_NAME = 366, /* VAR_NAME */
VAR_ZONEFILE = 367, /* VAR_ZONEFILE */
VAR_NOTIFY = 368, /* VAR_NOTIFY */
VAR_PROVIDE_XFR = 369, /* VAR_PROVIDE_XFR */
VAR_ALLOW_QUERY = 370, /* VAR_ALLOW_QUERY */
VAR_AXFR = 371, /* VAR_AXFR */
VAR_UDP = 372, /* VAR_UDP */
VAR_NOTIFY_RETRY = 373, /* VAR_NOTIFY_RETRY */
VAR_ALLOW_NOTIFY = 374, /* VAR_ALLOW_NOTIFY */
VAR_REQUEST_XFR = 375, /* VAR_REQUEST_XFR */
VAR_ALLOW_AXFR_FALLBACK = 376, /* VAR_ALLOW_AXFR_FALLBACK */
VAR_OUTGOING_INTERFACE = 377, /* VAR_OUTGOING_INTERFACE */
VAR_ANSWER_COOKIE = 378, /* VAR_ANSWER_COOKIE */
VAR_COOKIE_SECRET = 379, /* VAR_COOKIE_SECRET */
VAR_COOKIE_SECRET_FILE = 380, /* VAR_COOKIE_SECRET_FILE */
VAR_COOKIE_STAGING_SECRET = 381, /* VAR_COOKIE_STAGING_SECRET */
VAR_MAX_REFRESH_TIME = 382, /* VAR_MAX_REFRESH_TIME */
VAR_MIN_REFRESH_TIME = 383, /* VAR_MIN_REFRESH_TIME */
VAR_MAX_RETRY_TIME = 384, /* VAR_MAX_RETRY_TIME */
VAR_MIN_RETRY_TIME = 385, /* VAR_MIN_RETRY_TIME */
VAR_MIN_EXPIRE_TIME = 386, /* VAR_MIN_EXPIRE_TIME */
VAR_MULTI_PRIMARY_CHECK = 387, /* VAR_MULTI_PRIMARY_CHECK */
VAR_SIZE_LIMIT_XFR = 388, /* VAR_SIZE_LIMIT_XFR */
VAR_ZONESTATS = 389, /* VAR_ZONESTATS */
VAR_INCLUDE_PATTERN = 390, /* VAR_INCLUDE_PATTERN */
VAR_STORE_IXFR = 391, /* VAR_STORE_IXFR */
VAR_IXFR_SIZE = 392, /* VAR_IXFR_SIZE */
VAR_IXFR_NUMBER = 393, /* VAR_IXFR_NUMBER */
VAR_CREATE_IXFR = 394, /* VAR_CREATE_IXFR */
VAR_CATALOG = 395, /* VAR_CATALOG */
VAR_CATALOG_MEMBER_PATTERN = 396, /* VAR_CATALOG_MEMBER_PATTERN */
VAR_CATALOG_PRODUCER_ZONE = 397, /* VAR_CATALOG_PRODUCER_ZONE */
VAR_ZONE = 398, /* VAR_ZONE */
VAR_RRL_WHITELIST = 399, /* VAR_RRL_WHITELIST */
VAR_SERVERS = 400, /* VAR_SERVERS */
VAR_BINDTODEVICE = 401, /* VAR_BINDTODEVICE */
VAR_SETFIB = 402, /* VAR_SETFIB */
VAR_VERIFY = 403, /* VAR_VERIFY */
VAR_ENABLE = 404, /* VAR_ENABLE */
VAR_VERIFY_ZONE = 405, /* VAR_VERIFY_ZONE */
VAR_VERIFY_ZONES = 406, /* VAR_VERIFY_ZONES */
VAR_VERIFIER = 407, /* VAR_VERIFIER */
VAR_VERIFIER_COUNT = 408, /* VAR_VERIFIER_COUNT */
VAR_VERIFIER_FEED_ZONE = 409, /* VAR_VERIFIER_FEED_ZONE */
VAR_VERIFIER_TIMEOUT = 410 /* VAR_VERIFIER_TIMEOUT */
};
typedef enum yytokentype yytoken_kind_t;
#endif
/* Token kinds. */
#define YYEMPTY -2
#define YYEOF 0
#define YYerror 256
#define YYUNDEF 257
#define STRING 258
#define VAR_SERVER 259
#define VAR_SERVER_COUNT 260
#define VAR_IP_ADDRESS 261
#define VAR_IP_TRANSPARENT 262
#define VAR_IP_FREEBIND 263
#define VAR_REUSEPORT 264
#define VAR_SEND_BUFFER_SIZE 265
#define VAR_RECEIVE_BUFFER_SIZE 266
#define VAR_DEBUG_MODE 267
#define VAR_IP4_ONLY 268
#define VAR_IP6_ONLY 269
#define VAR_DO_IP4 270
#define VAR_DO_IP6 271
#define VAR_PORT 272
#define VAR_USE_SYSTEMD 273
#define VAR_VERBOSITY 274
#define VAR_USERNAME 275
#define VAR_CHROOT 276
#define VAR_ZONESDIR 277
#define VAR_ZONELISTFILE 278
#define VAR_DATABASE 279
#define VAR_LOGFILE 280
#define VAR_LOG_ONLY_SYSLOG 281
#define VAR_PIDFILE 282
#define VAR_DIFFFILE 283
#define VAR_XFRDFILE 284
#define VAR_XFRDIR 285
#define VAR_HIDE_VERSION 286
#define VAR_HIDE_IDENTITY 287
#define VAR_VERSION 288
#define VAR_IDENTITY 289
#define VAR_NSID 290
#define VAR_TCP_COUNT 291
#define VAR_TCP_REJECT_OVERFLOW 292
#define VAR_TCP_QUERY_COUNT 293
#define VAR_TCP_TIMEOUT 294
#define VAR_TCP_MSS 295
#define VAR_OUTGOING_TCP_MSS 296
#define VAR_IPV4_EDNS_SIZE 297
#define VAR_IPV6_EDNS_SIZE 298
#define VAR_STATISTICS 299
#define VAR_XFRD_RELOAD_TIMEOUT 300
#define VAR_LOG_TIME_ASCII 301
#define VAR_LOG_TIME_ISO 302
#define VAR_ROUND_ROBIN 303
#define VAR_MINIMAL_RESPONSES 304
#define VAR_CONFINE_TO_ZONE 305
#define VAR_REFUSE_ANY 306
#define VAR_RELOAD_CONFIG 307
#define VAR_ZONEFILES_CHECK 308
#define VAR_ZONEFILES_WRITE 309
#define VAR_RRL_SIZE 310
#define VAR_RRL_RATELIMIT 311
#define VAR_RRL_SLIP 312
#define VAR_RRL_IPV4_PREFIX_LENGTH 313
#define VAR_RRL_IPV6_PREFIX_LENGTH 314
#define VAR_RRL_WHITELIST_RATELIMIT 315
#define VAR_TLS_SERVICE_KEY 316
#define VAR_TLS_SERVICE_PEM 317
#define VAR_TLS_SERVICE_OCSP 318
#define VAR_TLS_PORT 319
#define VAR_TLS_AUTH_PORT 320
#define VAR_TLS_AUTH_XFR_ONLY 321
#define VAR_TLS_CERT_BUNDLE 322
#define VAR_PROXY_PROTOCOL_PORT 323
#define VAR_CPU_AFFINITY 324
#define VAR_XFRD_CPU_AFFINITY 325
#define VAR_SERVER_CPU_AFFINITY 326
#define VAR_DROP_UPDATES 327
#define VAR_XFRD_TCP_MAX 328
#define VAR_XFRD_TCP_PIPELINE 329
#define VAR_METRICS_ENABLE 330
#define VAR_METRICS_INTERFACE 331
#define VAR_METRICS_PORT 332
#define VAR_METRICS_PATH 333
#define VAR_DNSTAP 334
#define VAR_DNSTAP_ENABLE 335
#define VAR_DNSTAP_SOCKET_PATH 336
#define VAR_DNSTAP_IP 337
#define VAR_DNSTAP_TLS 338
#define VAR_DNSTAP_TLS_SERVER_NAME 339
#define VAR_DNSTAP_TLS_CERT_BUNDLE 340
#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 341
#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 342
#define VAR_DNSTAP_SEND_IDENTITY 343
#define VAR_DNSTAP_SEND_VERSION 344
#define VAR_DNSTAP_IDENTITY 345
#define VAR_DNSTAP_VERSION 346
#define VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES 347
#define VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES 348
#define VAR_REMOTE_CONTROL 349
#define VAR_CONTROL_ENABLE 350
#define VAR_CONTROL_INTERFACE 351
#define VAR_CONTROL_PORT 352
#define VAR_SERVER_KEY_FILE 353
#define VAR_SERVER_CERT_FILE 354
#define VAR_CONTROL_KEY_FILE 355
#define VAR_CONTROL_CERT_FILE 356
#define VAR_KEY 357
#define VAR_ALGORITHM 358
#define VAR_SECRET 359
#define VAR_TLS_AUTH 360
#define VAR_TLS_AUTH_DOMAIN_NAME 361
#define VAR_TLS_AUTH_CLIENT_CERT 362
#define VAR_TLS_AUTH_CLIENT_KEY 363
#define VAR_TLS_AUTH_CLIENT_KEY_PW 364
#define VAR_PATTERN 365
#define VAR_NAME 366
#define VAR_ZONEFILE 367
#define VAR_NOTIFY 368
#define VAR_PROVIDE_XFR 369
#define VAR_ALLOW_QUERY 370
#define VAR_AXFR 371
#define VAR_UDP 372
#define VAR_NOTIFY_RETRY 373
#define VAR_ALLOW_NOTIFY 374
#define VAR_REQUEST_XFR 375
#define VAR_ALLOW_AXFR_FALLBACK 376
#define VAR_OUTGOING_INTERFACE 377
#define VAR_ANSWER_COOKIE 378
#define VAR_COOKIE_SECRET 379
#define VAR_COOKIE_SECRET_FILE 380
#define VAR_COOKIE_STAGING_SECRET 381
#define VAR_MAX_REFRESH_TIME 382
#define VAR_MIN_REFRESH_TIME 383
#define VAR_MAX_RETRY_TIME 384
#define VAR_MIN_RETRY_TIME 385
#define VAR_MIN_EXPIRE_TIME 386
#define VAR_MULTI_PRIMARY_CHECK 387
#define VAR_SIZE_LIMIT_XFR 388
#define VAR_ZONESTATS 389
#define VAR_INCLUDE_PATTERN 390
#define VAR_STORE_IXFR 391
#define VAR_IXFR_SIZE 392
#define VAR_IXFR_NUMBER 393
#define VAR_CREATE_IXFR 394
#define VAR_CATALOG 395
#define VAR_CATALOG_MEMBER_PATTERN 396
#define VAR_CATALOG_PRODUCER_ZONE 397
#define VAR_ZONE 398
#define VAR_RRL_WHITELIST 399
#define VAR_SERVERS 400
#define VAR_BINDTODEVICE 401
#define VAR_SETFIB 402
#define VAR_VERIFY 403
#define VAR_ENABLE 404
#define VAR_VERIFY_ZONE 405
#define VAR_VERIFY_ZONES 406
#define VAR_VERIFIER 407
#define VAR_VERIFIER_COUNT 408
#define VAR_VERIFIER_FEED_ZONE 409
#define VAR_VERIFIER_TIMEOUT 410
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
#line 48 "configparser.y"
char *str;
long long llng;
int bln;
struct ip_address_option *ip;
struct range_option *range;
struct cpu_option *cpu;
char **strv;
struct component *comp;
int role;
#line 389 "configparser.h"
};
typedef union YYSTYPE YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
#endif
extern YYSTYPE c_lval;
int c_parse (void);
#endif /* !YY_C_CONFIGPARSER_H_INCLUDED */
nsd-4.12.0/configlexer.c 0000644 0001750 0001750 00000467551 15002373060 014465 0 ustar mozzie mozzie #include "config.h"
#line 2 ""
#define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
#define yy_create_buffer c__create_buffer
#define yy_delete_buffer c__delete_buffer
#define yy_scan_buffer c__scan_buffer
#define yy_scan_string c__scan_string
#define yy_scan_bytes c__scan_bytes
#define yy_init_buffer c__init_buffer
#define yy_flush_buffer c__flush_buffer
#define yy_load_buffer_state c__load_buffer_state
#define yy_switch_to_buffer c__switch_to_buffer
#define yypush_buffer_state c_push_buffer_state
#define yypop_buffer_state c_pop_buffer_state
#define yyensure_buffer_stack c_ensure_buffer_stack
#define yy_flex_debug c__flex_debug
#define yyin c_in
#define yyleng c_leng
#define yylex c_lex
#define yylineno c_lineno
#define yyout c_out
#define yyrestart c_restart
#define yytext c_text
#define yywrap c_wrap
#define yyalloc c_alloc
#define yyrealloc c_realloc
#define yyfree c_free
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 6
#define YY_FLEX_SUBMINOR_VERSION 4
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
#ifdef yy_create_buffer
#define c__create_buffer_ALREADY_DEFINED
#else
#define yy_create_buffer c__create_buffer
#endif
#ifdef yy_delete_buffer
#define c__delete_buffer_ALREADY_DEFINED
#else
#define yy_delete_buffer c__delete_buffer
#endif
#ifdef yy_scan_buffer
#define c__scan_buffer_ALREADY_DEFINED
#else
#define yy_scan_buffer c__scan_buffer
#endif
#ifdef yy_scan_string
#define c__scan_string_ALREADY_DEFINED
#else
#define yy_scan_string c__scan_string
#endif
#ifdef yy_scan_bytes
#define c__scan_bytes_ALREADY_DEFINED
#else
#define yy_scan_bytes c__scan_bytes
#endif
#ifdef yy_init_buffer
#define c__init_buffer_ALREADY_DEFINED
#else
#define yy_init_buffer c__init_buffer
#endif
#ifdef yy_flush_buffer
#define c__flush_buffer_ALREADY_DEFINED
#else
#define yy_flush_buffer c__flush_buffer
#endif
#ifdef yy_load_buffer_state
#define c__load_buffer_state_ALREADY_DEFINED
#else
#define yy_load_buffer_state c__load_buffer_state
#endif
#ifdef yy_switch_to_buffer
#define c__switch_to_buffer_ALREADY_DEFINED
#else
#define yy_switch_to_buffer c__switch_to_buffer
#endif
#ifdef yypush_buffer_state
#define c_push_buffer_state_ALREADY_DEFINED
#else
#define yypush_buffer_state c_push_buffer_state
#endif
#ifdef yypop_buffer_state
#define c_pop_buffer_state_ALREADY_DEFINED
#else
#define yypop_buffer_state c_pop_buffer_state
#endif
#ifdef yyensure_buffer_stack
#define c_ensure_buffer_stack_ALREADY_DEFINED
#else
#define yyensure_buffer_stack c_ensure_buffer_stack
#endif
#ifdef yylex
#define c_lex_ALREADY_DEFINED
#else
#define yylex c_lex
#endif
#ifdef yyrestart
#define c_restart_ALREADY_DEFINED
#else
#define yyrestart c_restart
#endif
#ifdef yylex_init
#define c_lex_init_ALREADY_DEFINED
#else
#define yylex_init c_lex_init
#endif
#ifdef yylex_init_extra
#define c_lex_init_extra_ALREADY_DEFINED
#else
#define yylex_init_extra c_lex_init_extra
#endif
#ifdef yylex_destroy
#define c_lex_destroy_ALREADY_DEFINED
#else
#define yylex_destroy c_lex_destroy
#endif
#ifdef yyget_debug
#define c_get_debug_ALREADY_DEFINED
#else
#define yyget_debug c_get_debug
#endif
#ifdef yyset_debug
#define c_set_debug_ALREADY_DEFINED
#else
#define yyset_debug c_set_debug
#endif
#ifdef yyget_extra
#define c_get_extra_ALREADY_DEFINED
#else
#define yyget_extra c_get_extra
#endif
#ifdef yyset_extra
#define c_set_extra_ALREADY_DEFINED
#else
#define yyset_extra c_set_extra
#endif
#ifdef yyget_in
#define c_get_in_ALREADY_DEFINED
#else
#define yyget_in c_get_in
#endif
#ifdef yyset_in
#define c_set_in_ALREADY_DEFINED
#else
#define yyset_in c_set_in
#endif
#ifdef yyget_out
#define c_get_out_ALREADY_DEFINED
#else
#define yyget_out c_get_out
#endif
#ifdef yyset_out
#define c_set_out_ALREADY_DEFINED
#else
#define yyset_out c_set_out
#endif
#ifdef yyget_leng
#define c_get_leng_ALREADY_DEFINED
#else
#define yyget_leng c_get_leng
#endif
#ifdef yyget_text
#define c_get_text_ALREADY_DEFINED
#else
#define yyget_text c_get_text
#endif
#ifdef yyget_lineno
#define c_get_lineno_ALREADY_DEFINED
#else
#define yyget_lineno c_get_lineno
#endif
#ifdef yyset_lineno
#define c_set_lineno_ALREADY_DEFINED
#else
#define yyset_lineno c_set_lineno
#endif
#ifdef yywrap
#define c_wrap_ALREADY_DEFINED
#else
#define yywrap c_wrap
#endif
#ifdef yyalloc
#define c_alloc_ALREADY_DEFINED
#else
#define yyalloc c_alloc
#endif
#ifdef yyrealloc
#define c_realloc_ALREADY_DEFINED
#else
#define yyrealloc c_realloc
#endif
#ifdef yyfree
#define c_free_ALREADY_DEFINED
#else
#define yyfree c_free
#endif
#ifdef yytext
#define c_text_ALREADY_DEFINED
#else
#define yytext c_text
#endif
#ifdef yyleng
#define c_leng_ALREADY_DEFINED
#else
#define yyleng c_leng
#endif
#ifdef yyin
#define c_in_ALREADY_DEFINED
#else
#define yyin c_in
#endif
#ifdef yyout
#define c_out_ALREADY_DEFINED
#else
#define yyout c_out
#endif
#ifdef yy_flex_debug
#define c__flex_debug_ALREADY_DEFINED
#else
#define yy_flex_debug c__flex_debug
#endif
#ifdef yylineno
#define c_lineno_ALREADY_DEFINED
#else
#define yylineno c_lineno
#endif
/* First, we deal with platform-specific or compiler-specific issues. */
/* begin standard C headers. */
#include
#include
#include
#include
/* end standard C headers. */
/* flex integer type definitions */
#ifndef FLEXINT_H
#define FLEXINT_H
/* C99 systems have . Non-C99 systems may or may not. */
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif
#include
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
/* Limits of integral types. */
#ifndef INT8_MIN
#define INT8_MIN (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN (-32767-1)
#endif
#ifndef INT32_MIN
#define INT32_MIN (-2147483647-1)
#endif
#ifndef INT8_MAX
#define INT8_MAX (127)
#endif
#ifndef INT16_MAX
#define INT16_MAX (32767)
#endif
#ifndef INT32_MAX
#define INT32_MAX (2147483647)
#endif
#ifndef UINT8_MAX
#define UINT8_MAX (255U)
#endif
#ifndef UINT16_MAX
#define UINT16_MAX (65535U)
#endif
#ifndef UINT32_MAX
#define UINT32_MAX (4294967295U)
#endif
#ifndef SIZE_MAX
#define SIZE_MAX (~(size_t)0)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
/* begin standard C++ headers. */
/* TODO: this is always defined, so inline it */
#define yyconst const
#if defined(__GNUC__) && __GNUC__ >= 3
#define yynoreturn __attribute__((__noreturn__))
#else
#define yynoreturn
#endif
/* Returned upon end-of-file. */
#define YY_NULL 0
/* Promotes a possibly negative, possibly signed char to an
* integer in range [0..255] for use as an array index.
*/
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
/* Enter a start condition. This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
*/
#define BEGIN (yy_start) = 1 + 2 *
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state. The YYSTATE alias is for lex
* compatibility.
*/
#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin )
#define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k.
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
* Ditto for the __ia64__ case accordingly.
*/
#define YY_BUF_SIZE 32768
#else
#define YY_BUF_SIZE 16384
#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
*/
#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
extern int yyleng;
extern FILE *yyin, *yyout;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
#define YY_LESS_LINENO(n)
#define YY_LINENO_REWIND_TO(ptr)
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
int yyless_macro_arg = (n); \
YY_LESS_LINENO(yyless_macro_arg);\
*yy_cp = (yy_hold_char); \
YY_RESTORE_YY_MORE_OFFSET \
(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
while ( 0 )
#define unput(c) yyunput( c, (yytext_ptr) )
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
{
FILE *yy_input_file;
char *yy_ch_buf; /* input buffer */
char *yy_buf_pos; /* current position in input buffer */
/* Size of input buffer in bytes, not including room for EOB
* characters.
*/
int yy_buf_size;
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
* delete it.
*/
int yy_is_our_buffer;
/* Whether this is an "interactive" input source; if so, and
* if we're using stdio for input, then we want to use getc()
* instead of fread(), to make sure we stop fetching input after
* each newline.
*/
int yy_is_interactive;
/* Whether we're considered to be at the beginning of a line.
* If so, '^' rules will be active on the next match, otherwise
* not.
*/
int yy_at_bol;
int yy_bs_lineno; /**< The line count. */
int yy_bs_column; /**< The column count. */
/* Whether to try to fill the input buffer when we reach the
* end of it.
*/
int yy_fill_buffer;
int yy_buffer_status;
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
* then we mark the buffer as YY_EOF_PENDING, to indicate that we
* shouldn't try reading from the input source any more. We might
* still have a bunch of tokens to match, though, because of
* possible backing-up.
*
* When we actually see the EOF, we change the status to "new"
* (via yyrestart()), so that the user can continue scanning by
* just pointing yyin at a new input file.
*/
#define YY_BUFFER_EOF_PENDING 2
};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state".
*
* Returns the top of the stack, or NULL.
*/
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
? (yy_buffer_stack)[(yy_buffer_stack_top)] \
: NULL)
/* Same as previous macro, but useful when we know that the buffer stack is not
* NULL or when we need an lvalue. For internal use only.
*/
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into yy_ch_buf */
int yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = NULL;
static int yy_init = 0; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin. A bit of a hack ...
*/
static int yy_did_buffer_switch_on_eof;
void yyrestart ( FILE *input_file );
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
void yy_delete_buffer ( YY_BUFFER_STATE b );
void yy_flush_buffer ( YY_BUFFER_STATE b );
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
void yypop_buffer_state ( void );
static void yyensure_buffer_stack ( void );
static void yy_load_buffer_state ( void );
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
void *yyalloc ( yy_size_t );
void *yyrealloc ( void *, yy_size_t );
void yyfree ( void * );
#define yy_new_buffer yy_create_buffer
#define yy_set_interactive(is_interactive) \
{ \
if ( ! YY_CURRENT_BUFFER ){ \
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer( yyin, YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
#define yy_set_bol(at_bol) \
{ \
if ( ! YY_CURRENT_BUFFER ){\
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
yy_create_buffer( yyin, YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
/* Begin user sect3 */
typedef flex_uint8_t YY_CHAR;
FILE *yyin = NULL, *yyout = NULL;
typedef int yy_state_type;
extern int yylineno;
int yylineno = 1;
extern char *yytext;
#ifdef yytext_ptr
#undef yytext_ptr
#endif
#define yytext_ptr yytext
static yy_state_type yy_get_previous_state ( void );
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
static int yy_get_next_buffer ( void );
static void yynoreturn yy_fatal_error ( const char* msg );
/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext.
*/
#define YY_DO_BEFORE_ACTION \
(yytext_ptr) = yy_bp; \
(yytext_ptr) -= (yy_more_len); \
yyleng = (int) (yy_cp - (yytext_ptr)); \
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 171
#define YY_END_OF_BUFFER 172
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
{
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static const flex_int16_t yy_accept[1509] =
{ 0,
1, 1, 159, 159, 163, 163, 167, 167, 172, 170,
1, 151, 158, 2, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 171, 159, 160, 171, 161, 171,
166, 163, 164, 165, 171, 167, 168, 169, 171, 170,
0, 1, 2, 2, 2, 2, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 159, 0, 166, 0,
163, 167, 0, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 83, 170, 170, 170, 170, 170, 170,
170, 170, 82, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 65, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 4, 170, 23, 170, 170, 170, 36,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 48, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 39, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 94, 18, 19, 170, 141, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 54, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 67, 170, 170, 3, 170, 154, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 140, 170, 170, 170,
170, 170, 45, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 148, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 162, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
24, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 68, 35, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 152, 154, 0, 170, 170, 170, 170,
31, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 22, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 20, 170, 43, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 21, 170, 170,
170, 170, 170, 16, 17, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 84, 86, 170, 170,
170, 170, 170, 170, 170, 152, 0, 170, 170, 170,
170, 170, 170, 170, 170, 60, 170, 129, 170, 170,
40, 170, 170, 144, 170, 170, 170, 170, 44, 49,
170, 170, 41, 170, 66, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 97, 170,
170, 170, 170, 170, 170, 170, 170, 170, 6, 170,
170, 170, 170, 170, 170, 121, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 37, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 27, 170, 170, 170, 170,
170, 170, 170, 170, 47, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 50, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 63, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 11, 170, 170,
170, 170, 170, 170, 98, 170, 170, 170, 170, 170,
5, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 114, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 38, 120, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 57, 170, 170, 170, 170,
170, 62, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 123, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 8, 170, 170, 170, 122,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 56, 170,
170, 170, 170, 53, 111, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 30, 170, 170,
170, 170, 12, 170, 170, 170, 142, 170, 170, 170,
170, 170, 170, 170, 170, 170, 51, 170, 170, 153,
170, 170, 170, 170, 170, 170, 170, 170, 73, 170,
170, 155, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 15, 170, 13, 170, 170, 170, 170, 170,
170, 110, 170, 170, 170, 170, 81, 80, 170, 170,
170, 170, 170, 170, 55, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 26, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 143, 170, 170, 138, 170, 170, 170, 42,
170, 134, 170, 153, 0, 170, 170, 64, 170, 170,
170, 170, 170, 170, 135, 170, 95, 170, 170, 170,
170, 170, 170, 170, 170, 170, 14, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 91, 170, 170,
170, 85, 170, 90, 170, 170, 170, 170, 170, 170,
170, 130, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 71, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 106, 170, 7, 33, 34, 170,
109, 170, 117, 78, 170, 170, 170, 118, 170, 170,
170, 170, 170, 170, 170, 70, 170, 170, 170, 170,
170, 170, 170, 52, 170, 170, 170, 170, 170, 170,
170, 145, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 113, 170, 170, 170, 170, 170, 105,
170, 170, 170, 170, 170, 170, 170, 69, 25, 170,
170, 119, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 74, 29, 170, 170,
132, 126, 170, 128, 170, 170, 170, 170, 170, 92,
93, 170, 61, 170, 170, 170, 170, 76, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 115, 170,
116, 170, 170, 170, 170, 32, 170, 170, 170, 170,
170, 9, 170, 75, 170, 170, 127, 170, 147, 170,
170, 170, 170, 170, 170, 77, 72, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 79, 112, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 131,
170, 156, 170, 139, 170, 170, 170, 136, 170, 170,
170, 170, 170, 96, 170, 170, 170, 170, 124, 170,
58, 170, 170, 170, 170, 170, 170, 170, 146, 170,
59, 170, 170, 170, 170, 170, 170, 104, 170, 170,
170, 170, 125, 133, 10, 170, 170, 170, 170, 28,
46, 170, 170, 170, 170, 170, 103, 170, 170, 170,
170, 170, 170, 170, 170, 170, 150, 137, 170, 170,
170, 170, 170, 170, 170, 170, 170, 157, 149, 170,
170, 100, 170, 170, 99, 87, 88, 170, 170, 170,
170, 170, 89, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 101, 170, 170, 102, 170, 170,
170, 170, 107, 170, 170, 170, 108, 0
} ;
static const YY_CHAR yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 5, 6, 1, 1, 1, 1, 1,
1, 1, 1, 1, 7, 1, 1, 8, 9, 9,
9, 10, 9, 11, 9, 9, 9, 12, 1, 1,
13, 1, 1, 1, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1, 40, 1, 1, 1, 1, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1
} ;
static const YY_CHAR yy_meta[67] =
{ 0,
1, 2, 3, 4, 4, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1
} ;
static const flex_int16_t yy_base[1521] =
{ 0,
0, 0, 64, 67, 71, 75, 78, 81, 4188, 4107,
85, 4267, 4267, 88, 72, 73, 123, 168, 62, 74,
102, 80, 77, 127, 166, 113, 188, 187, 216, 208,
133, 90, 143, 115, 155, 4106, 4267, 4267, 4267, 96,
4104, 4141, 4267, 4267, 199, 4068, 4267, 4267, 180, 4065,
248, 132, 0, 253, 0, 0, 219, 222, 160, 195,
237, 207, 232, 246, 242, 239, 262, 245, 259, 264,
252, 87, 266, 273, 272, 280, 293, 308, 284, 289,
288, 294, 299, 310, 315, 312, 309, 322, 323, 328,
334, 326, 332, 373, 339, 350, 377, 346, 381, 389,
365, 398, 383, 375, 401, 412, 4063, 207, 4048, 438,
4059, 3980, 226, 416, 418, 411, 427, 422, 432, 441,
429, 443, 445, 439, 340, 446, 454, 458, 470, 437,
471, 467, 484, 482, 474, 477, 485, 499, 374, 497,
498, 475, 157, 524, 514, 504, 527, 508, 518, 520,
533, 531, 532, 534, 542, 544, 543, 551, 558, 559,
555, 561, 563, 587, 565, 590, 569, 578, 592, 582,
588, 593, 604, 3969, 614, 621, 608, 611, 607, 599,
631, 619, 3964, 617, 615, 638, 633, 642, 643, 646,
644, 648, 654, 659, 670, 678, 669, 683, 672, 693,
671, 673, 674, 686, 689, 696, 700, 709, 695, 708,
710, 3956, 711, 716, 712, 719, 727, 720, 735, 305,
723, 741, 734, 743, 754, 765, 757, 742, 764, 755,
776, 758, 775, 781, 779, 800, 784, 771, 790, 788,
785, 805, 794, 848, 828, 806, 816, 822, 836, 826,
873, 871, 845, 793, 858, 880, 872, 874, 885, 888,
899, 903, 892, 853, 915, 895, 846, 912, 909, 930,
910, 924, 932, 934, 940, 947, 942, 928, 937, 935,
936, 961, 967, 964, 965, 973, 963, 980, 981, 962,
990, 996, 993, 3948, 976, 3872, 989, 1000, 992, 3863,
1010, 1002, 999, 1025, 1011, 1027, 1016, 1017, 1040, 1020,
1038, 1037, 1042, 1031, 1053, 1043, 1054, 1059, 1060, 1074,
1057, 1066, 1068, 1070, 1081, 1073, 1086, 1077, 1098, 1080,
1095, 1101, 1102, 1099, 1128, 1106, 1116, 3821, 1126, 1130,
1132, 1117, 1155, 1151, 1150, 1163, 1153, 1141, 1157, 1144,
1158, 1180, 1175, 1192, 1174, 1176, 1179, 1201, 1199, 1205,
1194, 1206, 1184, 1204, 1197, 1207, 1213, 1211, 1218, 1208,
1215, 1231, 1221, 1226, 1234, 1237, 1235, 1238, 1254, 1257,
1241, 1253, 1265, 1264, 1281, 1273, 1252, 1261, 1278, 1284,
1279, 1296, 1305, 1313, 1315, 1298, 1299, 1302, 1308, 1307,
1310, 1322, 1324, 1316, 1317, 1354, 1319, 1341, 1332, 1347,
1334, 1343, 1359, 1357, 1353, 1349, 1360, 1370, 1372, 1376,
1358, 1383, 1396, 1408, 1397, 1393, 1399, 1403, 1400, 1414,
1413, 1402, 1407, 1417, 1424, 1422, 1427, 1426, 1434, 1443,
1445, 1461, 3814, 1454, 1345, 1381, 1439, 1453, 1459, 1466,
1448, 1473, 1501, 3753, 3711, 3703, 1472, 3700, 1477, 1469,
1490, 1503, 1464, 1502, 1509, 1489, 1497, 1500, 1504, 1505,
1499, 1517, 1526, 1536, 1555, 1538, 1539, 1561, 1549, 1542,
1544, 1565, 1563, 1554, 1559, 3668, 1566, 1568, 1575, 1567,
1578, 1581, 1579, 1594, 1595, 1585, 1583, 1588, 1616, 1604,
1606, 1602, 1599, 3664, 1614, 1652, 3663, 1617, 3660, 1624,
1625, 1608, 1613, 1640, 1635, 1651, 1660, 1649, 1646, 1648,
1647, 1650, 1667, 1661, 1671, 1659, 3656, 1692, 1679, 1690,
1687, 1696, 3654, 1699, 1691, 1695, 1705, 1694, 1709, 1717,
1719, 1718, 1734, 1721, 1740, 3648, 1736, 1742, 1730, 1781,
1767, 1744, 1749, 1755, 1762, 1776, 1764, 1791, 1783, 1801,
1800, 1799, 1808, 1774, 1802, 1803, 1822, 3609, 1815, 1813,
1814, 1828, 1846, 1847, 1833, 1834, 1835, 1849, 1857, 1862,
3602, 1858, 1841, 1878, 1851, 1865, 1850, 1864, 1876, 1877,
1893, 1873, 3593, 3543, 1884, 1891, 1897, 1874, 1892, 1901,
1903, 1909, 1910, 1923, 1937, 1920, 1924, 1939, 1935, 1936,
1976, 1950, 1948, 3537, 3490, 1957, 1949, 1954, 1962, 1959,
3398, 1963, 1975, 1972, 1997, 1966, 1984, 1985, 1993, 2001,
1982, 2014, 1989, 3301, 2003, 1995, 2023, 2002, 2019, 2020,
2024, 2008, 2033, 2018, 2030, 2022, 2028, 2035, 2047, 2037,
2034, 2041, 2048, 2057, 2053, 2062, 2063, 2082, 2066, 2075,
2090, 2079, 2086, 3299, 2089, 3297, 2095, 2093, 2083, 2100,
2097, 2109, 2110, 2108, 2113, 2121, 2119, 3253, 2130, 2143,
2125, 2118, 2146, 3218, 3216, 2103, 2149, 2145, 2152, 2135,
2160, 2148, 2155, 2151, 2166, 2182, 2158, 2172, 2190, 2181,
2175, 2176, 2178, 2192, 2194, 2184, 2193, 2205, 2209, 2215,
2220, 2207, 2224, 2219, 2221, 2231, 3178, 3173, 2232, 2238,
2242, 2279, 2234, 2257, 2241, 3167, 2291, 2261, 2267, 2269,
2264, 2291, 2270, 2268, 2276, 3165, 2296, 3158, 2299, 2288,
3127, 2305, 2304, 3117, 2295, 2311, 2319, 2317, 3108, 3102,
2327, 2326, 3068, 2341, 3062, 2347, 2336, 2318, 2337, 2338,
2346, 2345, 2340, 2339, 2362, 2356, 2353, 2376, 2361, 2365,
2360, 2366, 2387, 2375, 2373, 2397, 2399, 2392, 3061, 2403,
2405, 2396, 2416, 2393, 2408, 2418, 2410, 2411, 2908, 2417,
2437, 2424, 2428, 2429, 2432, 2904, 2435, 2430, 2434, 2438,
2443, 2465, 2451, 2452, 2464, 2473, 2475, 2461, 2467, 2479,
2488, 2477, 2487, 2493, 2485, 2490, 2491, 2508, 2513, 2506,
2507, 2902, 2515, 2509, 2520, 2518, 2512, 2523, 2528, 2537,
2535, 2543, 2565, 2552, 2561, 2853, 2560, 2567, 2546, 2554,
2568, 2551, 2570, 2573, 2822, 2571, 2578, 2576, 2584, 2600,
2587, 2581, 2598, 2612, 2605, 2818, 2613, 2595, 2622, 2614,
2630, 2621, 2627, 2624, 2631, 2636, 2797, 2611, 2639, 2641,
2640, 2642, 2651, 2655, 2656, 2648, 2662, 2768, 2664, 2654,
2679, 2683, 2685, 2692, 2762, 2687, 2675, 2677, 2691, 2688,
2719, 2686, 2704, 2707, 2717, 2700, 2701, 2722, 2714, 2736,
2724, 2735, 2734, 2732, 2728, 2730, 2751, 2745, 2742, 2747,
2752, 2746, 2756, 2764, 2769, 2779, 2778, 2715, 2777, 2772,
2788, 2789, 2795, 2796, 2785, 2783, 2799, 2787, 2824, 2805,
2813, 2806, 2666, 2661, 2816, 2821, 2835, 2820, 2823, 2828,
2826, 2840, 2833, 2832, 2843, 2867, 2855, 2850, 2847, 2857,
2864, 2858, 2870, 2877, 2880, 2657, 2882, 2879, 2889, 2885,
2874, 2604, 2869, 2896, 2914, 2898, 2897, 2912, 2922, 2906,
2913, 2929, 2553, 2925, 2923, 2934, 2938, 2916, 2939, 2941,
2943, 2935, 2942, 2949, 2959, 2540, 2961, 2953, 2957, 2516,
2965, 2963, 2982, 2969, 2980, 2985, 2987, 2996, 2999, 2991,
2981, 2990, 2998, 3017, 2994, 3016, 3024, 3028, 2458, 3018,
3026, 3027, 3020, 2402, 2372, 3030, 3032, 3021, 3022, 3045,
3043, 3044, 3040, 3057, 3046, 3053, 3054, 2284, 3055, 3084,
3079, 3081, 2272, 3071, 3082, 3089, 2228, 3088, 3090, 3080,
3091, 3109, 3115, 3095, 3106, 3113, 2227, 3129, 3131, 2222,
3112, 3134, 3135, 3124, 3139, 3141, 3142, 3140, 2211, 3156,
3136, 2188, 3154, 3151, 3157, 3170, 3155, 3185, 3162, 3179,
3168, 3176, 2139, 3192, 2137, 3175, 3189, 3191, 3194, 3195,
3202, 2074, 3205, 3203, 3219, 3221, 2068, 2021, 3212, 3222,
3223, 3220, 3230, 3246, 2006, 3226, 3229, 3247, 3245, 3265,
3250, 3257, 3258, 3269, 3271, 3270, 3274, 3272, 1992, 3264,
3260, 3268, 3283, 3284, 3285, 3292, 3302, 3310, 3309, 3296,
3323, 3303, 1934, 3306, 3312, 1925, 3326, 3319, 3305, 1918,
3330, 1917, 3331, 1914, 3370, 3341, 3346, 1845, 3349, 3347,
3361, 3362, 3343, 3358, 1831, 3372, 1830, 3350, 3359, 3374,
3366, 3371, 3376, 3390, 3370, 3373, 1769, 3391, 3381, 3408,
3410, 3397, 3411, 3399, 3414, 3416, 3419, 3422, 3415, 3417,
3402, 3425, 3431, 3424, 3426, 3442, 3446, 1754, 3451, 3432,
3438, 1752, 3448, 1738, 3437, 3461, 3458, 3469, 3472, 3457,
3464, 1732, 3454, 3471, 3475, 3460, 3492, 3481, 3484, 3465,
3498, 3499, 3506, 3503, 3511, 3518, 3517, 3508, 3513, 3519,
3509, 1728, 3525, 3545, 3544, 3535, 3530, 3529, 3546, 3540,
3562, 3567, 3551, 3561, 1722, 3569, 1712, 1693, 1683, 3570,
1682, 3571, 1678, 1644, 3572, 3580, 3577, 1633, 3578, 3579,
3587, 3573, 3589, 3596, 3594, 1631, 3591, 3597, 3614, 3620,
3611, 3621, 3628, 1615, 3629, 3624, 3607, 3632, 3633, 3627,
3634, 1589, 3622, 3638, 3642, 3640, 3636, 3667, 3669, 3670,
3674, 3675, 3680, 1474, 3673, 3677, 3681, 3672, 3683, 1452,
3695, 3659, 3705, 3696, 3690, 3698, 3702, 1387, 1290, 3694,
3719, 1286, 3727, 3709, 3730, 3726, 3732, 3738, 3729, 3725,
3736, 3737, 3746, 3743, 3741, 3768, 1186, 1123, 3757, 3747,
1097, 1083, 3779, 1082, 3767, 3780, 3758, 3771, 3777, 1047,
1026, 3784, 1013, 3770, 3762, 3792, 3793, 907, 3795, 3798,
3791, 3797, 3794, 3808, 3818, 3810, 3811, 3822, 875, 3833,
867, 3834, 3825, 3837, 3838, 864, 3824, 3820, 3839, 3849,
3850, 833, 3845, 821, 3841, 3835, 812, 3852, 811, 3875,
3864, 3876, 3867, 3860, 3873, 807, 801, 3890, 3874, 3891,
3879, 3877, 3881, 3894, 3899, 3917, 3900, 769, 761, 3910,
3905, 3911, 3909, 3925, 3919, 3921, 3922, 3936, 3927, 682,
3912, 681, 3931, 635, 3932, 3937, 3939, 601, 3960, 3949,
3952, 3946, 3975, 526, 3966, 3976, 3977, 3983, 517, 3986,
516, 3987, 3989, 3992, 3993, 3996, 3995, 3990, 515, 3991,
512, 3994, 4001, 4004, 4009, 4010, 4002, 507, 4018, 4017,
4013, 4028, 506, 472, 425, 4023, 4026, 4036, 4029, 410,
371, 4033, 4059, 4060, 4070, 4052, 356, 4062, 4051, 4075,
4072, 4074, 4076, 4079, 4073, 4081, 354, 351, 4078, 4093,
4086, 4089, 4090, 4108, 4111, 4115, 4099, 342, 337, 4116,
4117, 336, 4118, 4120, 306, 301, 283, 4126, 4109, 4133,
4123, 4125, 282, 4135, 4144, 4146, 4136, 4139, 4156, 4160,
4170, 4167, 4153, 4171, 248, 4173, 4163, 235, 4176, 4185,
4177, 4184, 196, 4188, 4183, 4180, 151, 4267, 4242, 4246,
4250, 186, 4254, 4258, 139, 4260, 4262, 109, 102, 87
} ;
static const flex_int16_t yy_def[1521] =
{ 0,
1508, 1, 1509, 1509, 1510, 1510, 1511, 1511, 1508, 1512,
1508, 1508, 1508, 1513, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1514, 1508, 1508, 1508, 1514,
1515, 1508, 1508, 1508, 1515, 1516, 1508, 1508, 1516, 1512,
1512, 1508, 1517, 1513, 1517, 1513, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1514, 1514, 1515, 1515,
1508, 1516, 1516, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1518, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1519, 1518, 1518, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1519, 1519, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1520,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1520, 1520, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
1512, 1512, 1512, 1512, 1512, 1512, 1512, 0, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508
} ;
static const flex_int16_t yy_nxt[4334] =
{ 0,
10, 11, 12, 12, 13, 14, 10, 10, 10, 10,
10, 10, 10, 15, 16, 17, 18, 19, 10, 10,
20, 21, 10, 22, 23, 24, 25, 26, 27, 10,
28, 29, 30, 31, 32, 10, 33, 10, 34, 35,
15, 16, 17, 18, 19, 10, 10, 20, 21, 10,
22, 23, 24, 25, 26, 27, 10, 28, 29, 30,
31, 32, 10, 33, 10, 34, 37, 38, 39, 37,
38, 39, 42, 43, 43, 44, 42, 43, 43, 44,
47, 47, 48, 47, 47, 48, 52, 1134, 74, 55,
53, 55, 55, 131, 61, 75, 57, 80, 58, 107,
107, 51, 726, 40, 81, 59, 40, 104, 60, 615,
45, 51, 51, 51, 45, 74, 51, 49, 76, 51,
49, 61, 75, 57, 80, 58, 51, 56, 77, 51,
78, 81, 59, 52, 104, 60, 62, 53, 79, 109,
82, 51, 106, 63, 83, 76, 89, 64, 84, 102,
65, 66, 51, 67, 51, 77, 50, 78, 50, 50,
85, 105, 51, 62, 103, 79, 51, 82, 212, 106,
63, 83, 51, 89, 64, 84, 102, 65, 66, 86,
67, 68, 51, 112, 112, 69, 50, 85, 105, 70,
51, 103, 117, 87, 71, 72, 51, 88, 73, 51,
109, 90, 109, 109, 94, 51, 86, 51, 68, 91,
107, 107, 69, 118, 95, 92, 70, 96, 93, 117,
87, 71, 72, 100, 88, 73, 51, 51, 90, 112,
112, 94, 101, 97, 51, 51, 91, 98, 114, 120,
118, 95, 92, 115, 96, 93, 51, 51, 99, 50,
100, 50, 50, 116, 55, 51, 55, 55, 51, 101,
97, 51, 121, 119, 98, 114, 120, 122, 123, 124,
115, 51, 125, 128, 51, 99, 51, 127, 51, 126,
116, 51, 129, 130, 51, 51, 133, 51, 134, 121,
119, 51, 56, 132, 122, 123, 124, 135, 51, 125,
128, 51, 142, 51, 127, 51, 126, 144, 136, 129,
130, 51, 51, 133, 138, 134, 294, 139, 140, 51,
132, 51, 51, 51, 135, 137, 143, 51, 51, 142,
145, 146, 51, 51, 144, 136, 147, 149, 51, 148,
51, 150, 141, 151, 51, 51, 191, 51, 51, 51,
154, 51, 137, 143, 51, 152, 155, 145, 146, 156,
153, 51, 51, 147, 149, 51, 148, 51, 150, 141,
151, 51, 163, 51, 164, 51, 51, 154, 51, 51,
207, 51, 152, 155, 169, 51, 156, 153, 157, 51,
51, 158, 165, 51, 170, 51, 173, 159, 160, 163,
175, 164, 161, 166, 51, 176, 162, 167, 171, 168,
51, 169, 51, 51, 51, 157, 51, 172, 158, 165,
51, 170, 51, 173, 159, 160, 174, 175, 51, 161,
166, 177, 176, 162, 167, 171, 168, 51, 178, 109,
51, 109, 109, 179, 172, 180, 181, 182, 184, 51,
51, 51, 183, 174, 185, 51, 186, 51, 177, 192,
187, 51, 190, 188, 51, 178, 51, 193, 51, 196,
179, 51, 180, 181, 182, 184, 51, 189, 51, 183,
51, 185, 51, 186, 51, 51, 192, 187, 195, 190,
188, 194, 197, 51, 193, 198, 196, 51, 199, 200,
201, 202, 203, 208, 189, 211, 51, 209, 210, 51,
51, 51, 204, 51, 51, 195, 51, 205, 194, 197,
215, 51, 198, 51, 51, 199, 200, 201, 202, 203,
213, 206, 211, 217, 216, 220, 51, 51, 51, 204,
219, 221, 214, 51, 205, 51, 51, 51, 218, 222,
223, 51, 225, 51, 51, 51, 51, 51, 206, 51,
229, 216, 220, 51, 224, 51, 51, 219, 221, 214,
51, 51, 51, 51, 226, 218, 222, 223, 227, 225,
228, 51, 51, 51, 230, 231, 232, 229, 233, 235,
51, 224, 234, 236, 51, 237, 240, 51, 51, 244,
51, 226, 51, 239, 51, 227, 238, 228, 51, 241,
245, 230, 231, 232, 242, 233, 235, 51, 243, 234,
246, 51, 237, 240, 251, 256, 51, 51, 252, 51,
239, 51, 51, 238, 254, 248, 241, 253, 51, 258,
51, 242, 249, 51, 247, 243, 51, 51, 255, 257,
51, 251, 250, 51, 51, 252, 51, 264, 51, 260,
51, 254, 248, 261, 253, 259, 258, 263, 266, 249,
51, 247, 51, 262, 51, 255, 257, 51, 267, 250,
265, 51, 51, 51, 264, 51, 260, 51, 268, 271,
261, 269, 259, 51, 263, 266, 272, 270, 51, 273,
262, 282, 277, 274, 276, 267, 275, 265, 51, 51,
51, 51, 51, 51, 283, 268, 284, 51, 269, 278,
51, 51, 51, 272, 270, 51, 279, 280, 51, 277,
274, 276, 51, 275, 51, 51, 281, 287, 285, 51,
289, 295, 288, 286, 290, 292, 278, 51, 51, 51,
51, 51, 296, 279, 280, 51, 293, 291, 51, 51,
298, 297, 51, 281, 287, 285, 51, 289, 295, 288,
286, 290, 292, 51, 51, 299, 300, 315, 301, 302,
51, 51, 51, 293, 291, 303, 304, 298, 297, 305,
306, 318, 307, 51, 51, 309, 51, 51, 308, 343,
51, 314, 299, 51, 51, 301, 302, 316, 51, 317,
51, 320, 303, 304, 51, 51, 305, 306, 51, 307,
51, 310, 309, 51, 51, 308, 319, 51, 314, 51,
311, 312, 51, 51, 316, 313, 317, 330, 320, 51,
51, 326, 331, 327, 51, 51, 51, 334, 310, 332,
51, 51, 356, 319, 333, 51, 328, 311, 312, 329,
51, 51, 313, 321, 330, 51, 342, 51, 326, 331,
327, 353, 51, 322, 334, 51, 332, 323, 324, 335,
325, 333, 338, 328, 51, 51, 329, 51, 344, 339,
321, 336, 51, 342, 337, 340, 345, 51, 353, 346,
322, 347, 341, 51, 323, 324, 51, 325, 355, 352,
51, 51, 51, 51, 51, 344, 339, 348, 336, 51,
349, 337, 340, 345, 51, 350, 346, 51, 347, 341,
351, 51, 354, 357, 51, 355, 352, 358, 51, 359,
360, 362, 51, 361, 348, 369, 51, 349, 51, 51,
370, 51, 350, 363, 51, 365, 366, 351, 368, 354,
357, 371, 372, 51, 358, 367, 364, 51, 362, 51,
361, 51, 369, 51, 51, 51, 51, 370, 373, 51,
363, 51, 365, 366, 374, 368, 51, 379, 371, 372,
375, 377, 367, 364, 378, 376, 381, 380, 382, 385,
51, 51, 51, 51, 51, 373, 51, 383, 391, 384,
387, 374, 51, 386, 379, 51, 389, 375, 377, 51,
51, 378, 376, 381, 380, 382, 390, 394, 51, 51,
388, 51, 51, 392, 383, 51, 384, 387, 51, 51,
386, 51, 393, 389, 395, 397, 398, 396, 399, 51,
51, 400, 51, 390, 394, 51, 51, 388, 401, 51,
392, 402, 403, 404, 51, 51, 51, 405, 407, 393,
51, 395, 397, 406, 396, 399, 51, 51, 400, 51,
410, 51, 51, 408, 411, 401, 51, 414, 402, 403,
404, 409, 51, 51, 405, 407, 51, 412, 51, 51,
406, 413, 415, 417, 418, 51, 416, 51, 421, 51,
408, 411, 51, 51, 414, 419, 51, 420, 409, 51,
51, 51, 51, 423, 412, 51, 425, 429, 413, 415,
417, 418, 422, 416, 51, 421, 51, 51, 51, 424,
51, 51, 419, 426, 420, 51, 430, 431, 433, 435,
423, 432, 443, 425, 429, 51, 51, 439, 427, 422,
428, 445, 51, 444, 434, 51, 424, 51, 436, 51,
426, 51, 442, 430, 431, 433, 435, 440, 432, 441,
51, 437, 446, 51, 438, 427, 447, 428, 445, 51,
51, 434, 51, 448, 51, 436, 51, 51, 449, 442,
459, 451, 51, 452, 440, 450, 441, 453, 437, 446,
455, 438, 454, 51, 51, 51, 456, 458, 51, 51,
448, 460, 457, 51, 462, 51, 463, 459, 451, 461,
452, 51, 450, 51, 466, 465, 51, 469, 51, 467,
51, 464, 470, 51, 51, 51, 51, 51, 460, 457,
51, 462, 51, 463, 51, 468, 461, 51, 472, 473,
51, 466, 465, 474, 469, 51, 467, 471, 464, 470,
51, 475, 478, 51, 51, 476, 51, 51, 487, 485,
51, 479, 468, 480, 486, 472, 473, 488, 482, 477,
474, 51, 51, 51, 471, 489, 51, 481, 475, 478,
51, 490, 476, 51, 51, 487, 483, 491, 479, 484,
480, 493, 51, 492, 488, 482, 477, 51, 51, 494,
51, 495, 489, 51, 481, 51, 497, 504, 490, 51,
496, 509, 498, 483, 491, 51, 484, 51, 51, 500,
492, 51, 499, 502, 51, 503, 51, 51, 501, 51,
505, 549, 51, 497, 51, 51, 51, 496, 51, 498,
506, 51, 510, 51, 511, 507, 500, 513, 512, 499,
502, 51, 503, 51, 514, 501, 515, 505, 517, 516,
51, 518, 51, 523, 51, 508, 51, 550, 51, 510,
519, 511, 51, 51, 513, 512, 51, 51, 51, 51,
520, 514, 521, 515, 524, 517, 516, 522, 518, 51,
523, 51, 508, 525, 526, 51, 530, 519, 531, 527,
51, 529, 51, 528, 532, 533, 51, 520, 536, 521,
537, 524, 51, 535, 522, 51, 51, 534, 51, 51,
525, 51, 51, 530, 538, 531, 51, 51, 529, 542,
528, 532, 51, 51, 540, 536, 51, 537, 539, 541,
535, 51, 544, 51, 534, 51, 51, 545, 543, 547,
551, 538, 546, 51, 552, 555, 542, 548, 51, 569,
553, 540, 51, 554, 51, 539, 541, 51, 563, 544,
556, 51, 51, 51, 564, 543, 547, 551, 51, 565,
51, 552, 555, 51, 548, 51, 569, 553, 51, 567,
554, 51, 51, 51, 568, 563, 51, 556, 557, 570,
572, 564, 558, 571, 577, 559, 565, 566, 51, 51,
575, 576, 560, 561, 573, 562, 51, 574, 51, 51,
51, 51, 51, 51, 51, 557, 570, 572, 51, 558,
571, 577, 559, 580, 566, 578, 51, 575, 576, 560,
561, 573, 562, 579, 574, 51, 581, 584, 582, 583,
585, 588, 586, 595, 587, 51, 589, 51, 51, 593,
580, 51, 578, 51, 590, 592, 594, 597, 51, 591,
579, 601, 598, 51, 51, 582, 583, 585, 51, 586,
51, 587, 51, 589, 51, 51, 51, 51, 596, 599,
600, 590, 592, 602, 51, 603, 591, 51, 51, 598,
51, 606, 51, 607, 51, 604, 605, 51, 51, 614,
608, 609, 610, 51, 51, 596, 599, 600, 51, 620,
602, 51, 603, 51, 619, 51, 618, 51, 606, 617,
607, 621, 51, 51, 51, 51, 51, 608, 609, 610,
611, 611, 611, 51, 51, 622, 620, 612, 623, 625,
51, 619, 51, 618, 51, 613, 617, 624, 626, 51,
627, 628, 629, 51, 630, 51, 51, 51, 51, 51,
51, 51, 622, 631, 612, 623, 625, 633, 51, 51,
51, 632, 613, 634, 624, 626, 51, 627, 628, 629,
51, 630, 635, 638, 636, 637, 639, 51, 51, 643,
631, 51, 51, 640, 633, 641, 51, 644, 632, 51,
51, 51, 51, 51, 51, 51, 646, 642, 51, 635,
638, 636, 637, 639, 51, 647, 643, 648, 51, 645,
640, 51, 641, 652, 644, 649, 51, 51, 51, 653,
51, 51, 654, 646, 642, 650, 664, 51, 651, 51,
662, 51, 647, 51, 648, 51, 645, 51, 665, 51,
652, 51, 649, 51, 660, 663, 653, 666, 51, 654,
667, 51, 650, 51, 51, 651, 655, 662, 656, 661,
676, 51, 657, 51, 658, 665, 51, 668, 51, 659,
670, 660, 663, 51, 678, 51, 674, 667, 671, 669,
51, 675, 51, 655, 673, 656, 661, 676, 672, 657,
51, 658, 680, 677, 668, 682, 659, 670, 51, 51,
51, 51, 51, 674, 681, 671, 669, 51, 675, 688,
679, 673, 51, 51, 51, 672, 683, 684, 685, 680,
677, 51, 682, 690, 686, 687, 689, 51, 691, 51,
51, 681, 51, 51, 51, 692, 688, 679, 693, 704,
51, 697, 698, 683, 51, 51, 51, 699, 51, 51,
51, 686, 687, 689, 700, 694, 51, 51, 702, 695,
708, 51, 692, 51, 51, 693, 696, 701, 697, 698,
703, 707, 51, 51, 699, 51, 51, 51, 706, 709,
705, 700, 694, 51, 713, 702, 695, 708, 710, 714,
51, 51, 51, 696, 701, 717, 51, 703, 707, 711,
51, 712, 51, 715, 716, 706, 709, 705, 51, 51,
718, 713, 719, 1135, 720, 710, 51, 51, 615, 51,
615, 615, 51, 51, 51, 725, 711, 723, 712, 729,
728, 716, 737, 51, 51, 51, 51, 724, 51, 719,
730, 720, 721, 722, 722, 722, 722, 51, 51, 51,
733, 731, 725, 51, 723, 738, 729, 728, 51, 734,
732, 51, 51, 735, 724, 51, 739, 730, 736, 746,
740, 51, 741, 749, 51, 51, 745, 733, 731, 742,
743, 51, 747, 51, 51, 744, 734, 732, 51, 748,
750, 51, 51, 739, 51, 753, 51, 740, 752, 754,
51, 51, 51, 745, 755, 51, 742, 51, 756, 747,
751, 757, 758, 51, 762, 759, 760, 51, 51, 51,
51, 51, 51, 51, 763, 752, 754, 51, 761, 51,
767, 764, 51, 51, 51, 756, 51, 751, 757, 758,
51, 762, 759, 760, 766, 765, 51, 51, 768, 769,
772, 763, 51, 771, 779, 761, 51, 767, 764, 770,
774, 51, 51, 773, 775, 51, 776, 51, 777, 793,
778, 766, 765, 51, 51, 768, 769, 772, 51, 780,
771, 51, 51, 781, 782, 51, 770, 774, 51, 51,
773, 775, 51, 776, 51, 777, 51, 778, 784, 51,
787, 783, 51, 788, 791, 785, 780, 51, 51, 51,
781, 782, 51, 786, 789, 794, 790, 51, 51, 792,
51, 801, 795, 796, 51, 784, 797, 787, 783, 51,
788, 791, 785, 798, 51, 806, 51, 802, 51, 800,
786, 799, 51, 790, 51, 51, 792, 51, 51, 795,
51, 51, 803, 797, 51, 804, 808, 51, 809, 51,
798, 811, 806, 807, 802, 51, 800, 810, 799, 805,
812, 51, 815, 813, 51, 51, 816, 51, 822, 803,
51, 51, 804, 51, 814, 809, 817, 51, 811, 51,
807, 51, 51, 51, 810, 819, 805, 812, 821, 815,
813, 820, 818, 816, 51, 823, 51, 824, 51, 825,
51, 814, 826, 817, 51, 828, 827, 829, 51, 51,
51, 1135, 819, 51, 830, 821, 51, 51, 820, 818,
51, 51, 823, 51, 824, 836, 825, 51, 832, 826,
51, 51, 828, 827, 829, 721, 722, 722, 722, 722,
831, 830, 726, 833, 726, 726, 51, 837, 834, 835,
51, 839, 838, 51, 840, 832, 51, 51, 51, 51,
842, 51, 841, 844, 843, 51, 845, 831, 51, 846,
833, 849, 847, 51, 850, 834, 835, 51, 839, 838,
51, 840, 851, 854, 51, 51, 848, 842, 51, 841,
844, 843, 852, 51, 51, 853, 846, 855, 849, 847,
51, 850, 856, 857, 858, 859, 51, 51, 51, 851,
860, 862, 868, 848, 861, 51, 51, 864, 866, 852,
863, 865, 853, 867, 855, 51, 51, 51, 51, 51,
51, 858, 859, 869, 51, 51, 51, 860, 862, 870,
873, 861, 51, 871, 864, 51, 874, 863, 865, 51,
51, 51, 872, 877, 51, 51, 875, 876, 878, 881,
869, 51, 51, 879, 51, 51, 870, 873, 880, 883,
871, 882, 884, 874, 886, 887, 51, 885, 891, 872,
877, 51, 51, 875, 876, 51, 51, 889, 51, 888,
879, 51, 51, 890, 51, 880, 883, 51, 882, 51,
51, 886, 887, 892, 893, 51, 51, 51, 900, 894,
895, 898, 896, 51, 889, 899, 888, 51, 51, 51,
890, 51, 897, 51, 51, 901, 51, 51, 902, 906,
892, 893, 51, 903, 904, 900, 894, 895, 898, 896,
51, 51, 899, 908, 905, 907, 910, 51, 909, 897,
51, 911, 901, 51, 51, 902, 51, 912, 914, 917,
903, 904, 51, 913, 51, 915, 51, 916, 51, 918,
908, 905, 907, 910, 51, 909, 51, 51, 911, 51,
51, 919, 51, 926, 912, 914, 917, 921, 920, 923,
913, 922, 915, 925, 916, 51, 51, 51, 51, 931,
924, 51, 51, 927, 51, 51, 928, 51, 919, 51,
926, 930, 51, 933, 921, 920, 923, 51, 922, 929,
925, 932, 934, 936, 51, 935, 51, 924, 937, 51,
927, 938, 51, 928, 940, 51, 939, 941, 930, 942,
51, 51, 51, 51, 949, 944, 929, 945, 943, 51,
51, 946, 935, 948, 51, 937, 51, 51, 938, 51,
51, 940, 51, 939, 941, 51, 942, 51, 947, 950,
51, 949, 944, 51, 945, 943, 51, 951, 946, 953,
948, 954, 955, 956, 51, 957, 958, 51, 959, 51,
961, 960, 962, 51, 51, 947, 950, 952, 968, 964,
51, 51, 51, 51, 951, 966, 953, 967, 954, 955,
51, 51, 957, 51, 963, 959, 51, 961, 960, 51,
51, 965, 970, 973, 952, 51, 964, 971, 51, 51,
51, 51, 966, 969, 967, 972, 975, 51, 974, 977,
51, 963, 976, 51, 51, 51, 51, 986, 965, 970,
51, 51, 978, 51, 971, 51, 982, 979, 981, 983,
969, 990, 972, 975, 51, 974, 51, 984, 51, 976,
985, 987, 51, 980, 51, 51, 51, 51, 988, 978,
51, 51, 991, 982, 979, 981, 983, 992, 989, 51,
51, 993, 994, 51, 984, 995, 51, 985, 987, 996,
980, 997, 998, 51, 51, 988, 51, 1001, 51, 991,
999, 51, 1000, 51, 992, 989, 1002, 51, 993, 51,
1003, 51, 995, 51, 51, 51, 996, 1004, 997, 998,
1009, 51, 1005, 1006, 51, 51, 51, 999, 1007, 1000,
51, 51, 1008, 1002, 1010, 51, 1011, 1003, 1012, 1014,
1015, 51, 1013, 51, 1004, 1020, 1018, 51, 51, 1005,
1006, 51, 1016, 1017, 1019, 1007, 51, 51, 51, 1008,
1021, 1010, 51, 1011, 51, 1012, 51, 51, 51, 1013,
1022, 1024, 1032, 1018, 51, 51, 51, 1023, 51, 1016,
1017, 1019, 1025, 1026, 51, 51, 1028, 1021, 1027, 1035,
1029, 1033, 51, 1030, 1031, 51, 1040, 51, 1024, 51,
51, 51, 51, 51, 1023, 51, 1034, 51, 1036, 1025,
1026, 51, 51, 1039, 51, 1027, 1035, 1029, 1037, 51,
1030, 1031, 51, 1041, 1043, 1042, 51, 1045, 1044, 51,
1046, 1047, 51, 1034, 51, 1036, 51, 51, 1038, 1048,
1039, 1050, 1051, 51, 1053, 1049, 51, 1052, 51, 51,
1041, 1043, 1042, 51, 1045, 1044, 51, 1046, 51, 51,
1055, 51, 1056, 1054, 51, 1038, 1048, 1057, 51, 1051,
1058, 1053, 1049, 1059, 1052, 51, 51, 51, 1060, 1061,
1062, 51, 1063, 51, 1064, 51, 1073, 51, 1068, 1056,
1054, 51, 51, 51, 1057, 51, 1069, 1058, 1071, 1066,
1075, 51, 51, 1070, 51, 1060, 1061, 1065, 51, 1063,
1072, 1064, 1067, 51, 51, 1068, 1076, 51, 51, 1074,
51, 51, 51, 1069, 1081, 1071, 1066, 1077, 51, 1080,
1070, 1078, 51, 1082, 1065, 1079, 51, 1072, 51, 1067,
51, 1083, 51, 1076, 51, 1084, 1074, 1087, 51, 1085,
1088, 1081, 1089, 1090, 1077, 1091, 1080, 1086, 1078, 51,
51, 51, 1079, 1093, 51, 1092, 51, 1095, 1083, 51,
51, 1094, 1084, 51, 1097, 51, 1085, 51, 51, 1089,
1090, 1096, 1091, 1099, 1086, 1098, 1100, 1101, 1102, 1107,
1103, 1109, 1092, 1104, 1105, 51, 51, 51, 1094, 51,
51, 51, 1108, 51, 1111, 51, 51, 51, 1096, 51,
1099, 51, 1098, 1100, 1101, 1102, 1106, 1103, 1110, 51,
1104, 1105, 51, 51, 51, 51, 1112, 1114, 1113, 1108,
1115, 1111, 51, 51, 51, 1116, 51, 1120, 1121, 1123,
51, 51, 1126, 1106, 1117, 1110, 1122, 51, 1118, 1119,
51, 1124, 1125, 1112, 1114, 1113, 1129, 1130, 51, 51,
51, 51, 1116, 51, 1120, 1121, 1127, 51, 51, 51,
51, 1117, 1128, 1122, 51, 1118, 1119, 1131, 1124, 1125,
1132, 51, 1136, 1129, 1133, 51, 1138, 51, 51, 1137,
1139, 51, 51, 1127, 51, 1146, 51, 1140, 1141, 1128,
1142, 1143, 1144, 51, 1131, 1147, 51, 1145, 51, 1136,
51, 1133, 1151, 51, 51, 51, 1137, 1139, 51, 51,
51, 51, 1146, 1148, 1140, 1141, 1150, 1142, 1143, 1149,
51, 1152, 1153, 51, 51, 51, 51, 51, 1155, 1151,
1154, 51, 1156, 1157, 51, 1158, 727, 51, 1160, 51,
1148, 1161, 51, 1150, 51, 51, 1149, 51, 51, 1153,
1165, 1159, 1162, 1163, 51, 1155, 1164, 1154, 51, 1156,
51, 51, 1158, 51, 51, 1160, 1166, 1168, 1161, 1167,
1170, 51, 51, 1169, 51, 1172, 1171, 1165, 1159, 1162,
1163, 51, 1173, 1164, 1175, 51, 1174, 51, 51, 51,
51, 51, 51, 1166, 1168, 51, 1167, 1170, 51, 51,
1169, 1176, 1172, 1171, 1179, 1177, 1178, 1183, 1180, 1181,
1182, 1175, 1184, 1174, 51, 51, 51, 1186, 1188, 51,
1189, 1185, 51, 1187, 1190, 1192, 51, 51, 1176, 51,
1191, 1179, 1177, 51, 51, 1180, 1181, 51, 51, 51,
51, 51, 1193, 51, 1186, 1188, 1194, 1189, 1185, 1195,
1187, 1190, 51, 51, 51, 1196, 1197, 1191, 1198, 1199,
1200, 51, 1201, 1202, 1204, 51, 51, 1205, 51, 1193,
51, 51, 51, 1194, 51, 51, 1195, 1208, 51, 51,
1203, 51, 1196, 1197, 1206, 1198, 1207, 1200, 51, 1201,
1202, 1204, 51, 1209, 1205, 51, 1210, 1214, 1211, 51,
51, 1134, 1212, 1134, 1134, 1213, 1215, 1203, 1216, 1218,
51, 1206, 51, 1207, 1225, 51, 51, 1217, 51, 51,
1209, 1219, 1227, 1210, 1214, 1211, 1220, 51, 51, 1221,
51, 51, 1213, 1215, 1224, 51, 1218, 1223, 1222, 51,
51, 51, 51, 51, 1217, 51, 1230, 1226, 1219, 1228,
51, 1229, 1231, 1220, 1232, 1233, 1221, 1234, 1238, 51,
51, 1224, 1235, 1239, 1223, 1222, 51, 51, 51, 1236,
1237, 51, 1242, 1230, 1226, 1240, 1241, 51, 1244, 51,
51, 1232, 1245, 51, 51, 51, 51, 1243, 51, 1235,
1239, 51, 1246, 51, 51, 51, 1236, 1237, 1247, 1242,
51, 51, 1240, 1241, 1248, 1250, 51, 51, 1249, 1251,
1257, 51, 1252, 1254, 1243, 51, 1253, 51, 1258, 1255,
51, 1260, 1262, 51, 1256, 1247, 51, 51, 1264, 51,
51, 1248, 1250, 51, 51, 1249, 1251, 1257, 51, 1252,
51, 51, 1259, 1253, 51, 1258, 1255, 1261, 1260, 1265,
51, 1256, 1263, 51, 1266, 1264, 1268, 1267, 1269, 616,
1274, 51, 1270, 1275, 1271, 1281, 1272, 51, 51, 1259,
1276, 1280, 51, 1273, 1261, 51, 1265, 51, 51, 1263,
51, 1266, 51, 1268, 1267, 1269, 51, 51, 51, 1270,
1275, 1271, 1277, 1272, 51, 1278, 1279, 1276, 51, 51,
1273, 1283, 1282, 1285, 51, 1284, 727, 1286, 1287, 51,
1288, 1289, 51, 51, 51, 51, 1297, 1291, 1290, 1277,
51, 1292, 1278, 1279, 1293, 1294, 1295, 1301, 1283, 1282,
51, 51, 1284, 1302, 1286, 1287, 51, 1296, 51, 51,
51, 51, 51, 1297, 1291, 1290, 51, 51, 51, 51,
1298, 1293, 1294, 1295, 1299, 1300, 51, 1303, 51, 1305,
51, 1310, 51, 51, 1296, 51, 51, 1304, 1306, 1307,
1308, 51, 1309, 1311, 1312, 1314, 51, 1298, 51, 1315,
51, 1299, 1300, 51, 1303, 1313, 1305, 1318, 1310, 51,
51, 51, 1319, 51, 1304, 1306, 51, 51, 51, 1309,
1316, 51, 51, 51, 1317, 51, 1315, 51, 1320, 51,
1321, 51, 1313, 1322, 1318, 1323, 1325, 51, 1324, 1319,
1326, 1333, 1328, 51, 1327, 51, 1329, 1316, 51, 616,
1330, 1317, 51, 51, 1336, 1339, 51, 51, 51, 51,
1322, 51, 51, 51, 51, 1324, 51, 1326, 1333, 51,
51, 1327, 51, 1329, 1331, 1332, 1334, 1330, 1335, 51,
1337, 1336, 1338, 51, 51, 51, 1340, 51, 1341, 51,
1342, 51, 51, 1344, 51, 1343, 1348, 1345, 51, 1346,
51, 1331, 1332, 1334, 1352, 1335, 1347, 1337, 51, 1338,
1349, 1350, 1353, 1340, 51, 51, 51, 1342, 51, 51,
1344, 51, 1343, 1348, 1345, 51, 51, 51, 1351, 1354,
51, 1355, 51, 1347, 1356, 51, 51, 1349, 1350, 1353,
1357, 1359, 51, 1358, 1362, 1360, 51, 51, 1361, 1363,
1365, 51, 1364, 1366, 1367, 1351, 51, 51, 1355, 51,
51, 1356, 1368, 1369, 1371, 1372, 51, 1376, 51, 51,
1358, 1362, 1360, 51, 1370, 1361, 1363, 1365, 1377, 1364,
51, 51, 51, 51, 51, 1373, 51, 51, 1374, 1368,
1369, 1371, 1372, 1375, 1378, 1379, 1390, 51, 1380, 51,
51, 1370, 1381, 51, 1383, 1382, 1385, 51, 1384, 51,
51, 51, 1373, 51, 51, 1374, 1386, 1387, 1389, 1391,
1375, 1388, 51, 51, 51, 1380, 51, 51, 51, 1381,
51, 1383, 1382, 1385, 51, 1384, 1392, 1394, 51, 51,
1395, 51, 1396, 1386, 1387, 1389, 1391, 1393, 1388, 51,
1397, 1398, 51, 51, 1399, 1404, 51, 1403, 1400, 1402,
1401, 51, 51, 51, 51, 51, 51, 1395, 51, 1396,
51, 1409, 1411, 1419, 1393, 1405, 1408, 1397, 1410, 51,
51, 1399, 1406, 51, 1403, 1400, 1402, 1401, 51, 51,
1407, 1412, 1413, 1421, 51, 1414, 1416, 1415, 51, 51,
51, 51, 1405, 1408, 1422, 1410, 51, 1417, 51, 1406,
51, 51, 1418, 1420, 51, 1423, 51, 1407, 1412, 1413,
51, 51, 1414, 1416, 1415, 51, 51, 1424, 51, 1425,
1426, 1422, 1429, 1427, 1417, 51, 1428, 51, 51, 1418,
1420, 51, 1423, 1430, 1431, 51, 1432, 1433, 1434, 51,
1435, 1440, 1441, 51, 1424, 51, 1425, 1426, 51, 1429,
1427, 1436, 1437, 1447, 51, 51, 51, 1438, 1443, 113,
1430, 1431, 51, 1432, 1442, 51, 51, 1439, 51, 51,
51, 51, 51, 51, 51, 51, 1444, 1446, 1436, 1437,
51, 51, 1448, 51, 1438, 1443, 1445, 1449, 51, 51,
1450, 1442, 51, 1451, 1439, 1452, 51, 51, 1453, 1456,
111, 1454, 51, 1444, 1446, 51, 1455, 51, 51, 1448,
1457, 1458, 51, 1445, 1449, 51, 1459, 1450, 1460, 1461,
1451, 1463, 1452, 1462, 1468, 1453, 1456, 110, 1454, 1464,
51, 51, 1469, 1455, 1465, 1473, 1466, 1472, 51, 51,
1467, 51, 108, 1470, 51, 1460, 1461, 113, 1474, 51,
1462, 51, 51, 51, 51, 51, 1464, 51, 51, 1475,
51, 1465, 1476, 1466, 1471, 51, 1477, 1467, 51, 51,
1470, 1478, 51, 1479, 1480, 1474, 1481, 1483, 51, 1485,
1484, 1482, 111, 110, 1486, 108, 51, 51, 51, 1487,
51, 1471, 1492, 1491, 51, 51, 51, 51, 1478, 51,
1479, 1480, 51, 1481, 51, 51, 1488, 1484, 1482, 1489,
1490, 1486, 51, 1493, 51, 51, 1487, 1494, 51, 1492,
1491, 1495, 1498, 51, 1497, 51, 1496, 1508, 1503, 1508,
1499, 1507, 51, 1488, 1500, 51, 1489, 1490, 1502, 51,
1493, 1508, 51, 1504, 1494, 1505, 51, 1501, 1508, 51,
51, 1497, 51, 1496, 1506, 51, 51, 1499, 1508, 51,
1508, 1500, 51, 51, 51, 1502, 1508, 51, 1508, 1508,
1504, 1508, 1505, 1508, 1501, 1508, 1508, 1508, 1508, 1508,
1508, 1506, 36, 36, 36, 36, 41, 41, 41, 41,
46, 46, 46, 46, 54, 54, 1508, 54, 107, 107,
112, 112, 55, 55, 1508, 55, 9, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508
} ;
static const flex_int16_t yy_chk[4334] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 3, 3, 3, 4,
4, 4, 5, 5, 5, 5, 6, 6, 6, 6,
7, 7, 7, 8, 8, 8, 11, 1520, 19, 14,
11, 14, 14, 72, 16, 20, 15, 22, 15, 40,
40, 19, 1519, 3, 23, 15, 4, 32, 15, 1518,
5, 15, 16, 20, 6, 19, 23, 7, 21, 22,
8, 16, 20, 15, 22, 15, 72, 14, 21, 32,
21, 23, 15, 52, 32, 15, 17, 52, 21, 1515,
24, 21, 34, 17, 24, 21, 26, 17, 24, 31,
17, 17, 26, 17, 34, 21, 35, 21, 35, 35,
24, 33, 17, 17, 31, 21, 24, 24, 143, 34,
17, 24, 31, 26, 17, 24, 31, 17, 17, 25,
17, 18, 33, 49, 49, 18, 1512, 24, 33, 18,
1507, 31, 59, 25, 18, 18, 143, 25, 18, 59,
45, 27, 45, 45, 28, 25, 25, 18, 18, 27,
108, 108, 18, 60, 28, 27, 18, 28, 27, 59,
25, 18, 18, 30, 25, 18, 28, 27, 27, 113,
113, 28, 30, 29, 60, 1503, 27, 29, 57, 62,
60, 28, 27, 57, 28, 27, 62, 30, 29, 51,
30, 51, 51, 58, 54, 29, 54, 54, 57, 30,
29, 58, 63, 61, 29, 57, 62, 64, 65, 65,
57, 63, 66, 69, 1498, 29, 61, 68, 66, 67,
58, 65, 70, 71, 68, 64, 74, 1495, 75, 63,
61, 71, 54, 73, 64, 65, 65, 76, 69, 66,
69, 67, 79, 70, 68, 73, 67, 81, 77, 70,
71, 75, 74, 74, 78, 75, 220, 78, 78, 76,
73, 1483, 1477, 79, 76, 77, 80, 81, 80, 79,
82, 83, 77, 82, 81, 77, 84, 86, 83, 85,
1476, 87, 78, 88, 220, 1475, 125, 78, 87, 84,
91, 86, 77, 80, 85, 89, 92, 82, 83, 93,
90, 88, 89, 84, 86, 92, 85, 90, 87, 78,
88, 93, 95, 91, 96, 1472, 1469, 91, 95, 125,
139, 1468, 89, 92, 98, 98, 93, 90, 94, 96,
1458, 94, 97, 1457, 99, 1447, 101, 94, 94, 95,
103, 96, 94, 97, 101, 104, 94, 97, 99, 97,
1441, 98, 94, 139, 104, 94, 97, 100, 94, 97,
99, 99, 103, 101, 94, 94, 102, 103, 100, 94,
97, 105, 104, 94, 97, 99, 97, 102, 106, 110,
105, 110, 110, 114, 100, 115, 116, 117, 119, 1440,
116, 106, 118, 102, 120, 114, 121, 115, 105, 126,
122, 118, 124, 123, 1435, 106, 117, 127, 121, 130,
114, 119, 115, 116, 117, 119, 130, 123, 124, 118,
120, 120, 122, 121, 123, 126, 126, 122, 129, 124,
123, 128, 131, 127, 127, 132, 130, 128, 133, 134,
135, 136, 137, 140, 123, 142, 132, 141, 141, 129,
131, 1434, 138, 135, 142, 129, 136, 138, 128, 131,
145, 134, 132, 133, 137, 133, 134, 135, 136, 137,
144, 138, 142, 147, 146, 149, 140, 141, 138, 138,
148, 150, 144, 146, 138, 1433, 1428, 148, 147, 151,
152, 1421, 154, 145, 1419, 1411, 1409, 149, 138, 150,
157, 146, 149, 144, 153, 1404, 147, 148, 150, 144,
152, 153, 151, 154, 155, 147, 151, 152, 156, 154,
156, 155, 157, 156, 158, 159, 160, 157, 161, 163,
158, 153, 162, 164, 161, 165, 168, 159, 160, 172,
162, 155, 163, 167, 165, 156, 166, 156, 167, 169,
173, 158, 159, 160, 170, 161, 163, 168, 171, 162,
175, 170, 165, 168, 177, 182, 164, 171, 178, 166,
167, 169, 172, 166, 180, 176, 169, 179, 180, 185,
1398, 170, 176, 173, 175, 171, 179, 177, 181, 184,
178, 177, 176, 175, 185, 178, 184, 191, 182, 187,
176, 180, 176, 188, 179, 186, 185, 190, 193, 176,
181, 175, 187, 189, 1394, 181, 184, 186, 194, 176,
192, 188, 189, 191, 191, 190, 187, 192, 195, 198,
188, 196, 186, 193, 190, 193, 199, 197, 194, 200,
189, 209, 204, 201, 203, 194, 202, 192, 197, 195,
201, 199, 202, 203, 210, 195, 211, 196, 196, 205,
1392, 1390, 198, 199, 197, 204, 206, 207, 205, 204,
201, 203, 200, 202, 209, 206, 208, 214, 213, 207,
216, 221, 215, 213, 217, 218, 205, 210, 208, 211,
213, 215, 222, 206, 207, 214, 219, 217, 216, 218,
224, 223, 221, 208, 214, 213, 217, 216, 221, 215,
213, 217, 218, 223, 219, 225, 226, 238, 227, 228,
222, 228, 224, 219, 217, 229, 230, 224, 223, 231,
232, 241, 233, 225, 230, 235, 227, 232, 234, 254,
1379, 237, 225, 229, 226, 227, 228, 239, 1378, 240,
238, 243, 229, 230, 233, 231, 231, 232, 235, 233,
234, 236, 235, 237, 241, 234, 242, 240, 237, 239,
236, 236, 254, 243, 239, 236, 240, 246, 243, 236,
1367, 245, 247, 245, 242, 246, 1366, 250, 236, 248,
1359, 1357, 267, 242, 249, 247, 245, 236, 236, 245,
1354, 248, 236, 244, 246, 250, 253, 245, 245, 247,
245, 264, 1352, 244, 250, 249, 248, 244, 244, 251,
244, 249, 252, 245, 253, 267, 245, 244, 255, 252,
244, 251, 264, 253, 251, 252, 256, 255, 264, 257,
244, 258, 252, 1346, 244, 244, 1341, 244, 266, 263,
252, 257, 251, 258, 1339, 255, 252, 259, 251, 256,
260, 251, 252, 256, 259, 261, 257, 260, 258, 252,
262, 263, 265, 268, 266, 266, 263, 269, 261, 270,
270, 272, 262, 271, 259, 278, 1328, 260, 269, 271,
279, 268, 261, 273, 265, 274, 275, 262, 277, 265,
268, 280, 281, 272, 269, 276, 273, 278, 272, 270,
271, 273, 278, 274, 280, 281, 279, 279, 282, 275,
273, 277, 274, 275, 283, 277, 276, 287, 280, 281,
284, 285, 276, 273, 286, 284, 289, 288, 290, 293,
282, 290, 287, 284, 285, 282, 283, 291, 302, 292,
297, 283, 286, 295, 287, 295, 299, 284, 285, 288,
289, 286, 284, 289, 288, 290, 301, 305, 297, 291,
298, 299, 293, 303, 291, 292, 292, 297, 303, 298,
295, 302, 304, 299, 306, 308, 309, 307, 310, 301,
305, 311, 1323, 301, 305, 307, 308, 298, 312, 310,
303, 312, 313, 314, 304, 1321, 306, 315, 317, 304,
314, 306, 308, 316, 307, 310, 312, 311, 311, 309,
320, 313, 316, 318, 321, 312, 1320, 324, 312, 313,
314, 319, 315, 317, 315, 317, 321, 322, 318, 319,
316, 323, 325, 327, 328, 322, 326, 323, 331, 324,
318, 321, 326, 320, 324, 329, 328, 330, 319, 330,
325, 1314, 1312, 333, 322, 327, 334, 336, 323, 325,
327, 328, 332, 326, 331, 331, 1311, 329, 334, 333,
332, 333, 329, 335, 330, 336, 337, 339, 341, 342,
333, 340, 348, 334, 336, 337, 342, 344, 335, 332,
335, 350, 1308, 349, 341, 339, 333, 335, 343, 340,
335, 341, 347, 337, 339, 341, 342, 345, 340, 346,
348, 343, 351, 350, 343, 335, 352, 335, 350, 345,
344, 341, 347, 353, 343, 343, 349, 351, 354, 347,
363, 356, 346, 357, 345, 355, 346, 358, 343, 351,
359, 343, 358, 355, 353, 356, 360, 362, 357, 352,
353, 364, 361, 363, 366, 1307, 367, 363, 356, 365,
357, 354, 355, 361, 370, 369, 365, 373, 359, 371,
358, 368, 374, 364, 360, 362, 366, 370, 364, 361,
368, 366, 367, 367, 371, 372, 365, 369, 376, 377,
373, 370, 369, 378, 373, 374, 371, 375, 368, 374,
372, 379, 381, 375, 377, 380, 376, 378, 387, 386,
381, 382, 372, 383, 386, 376, 377, 388, 384, 380,
378, 387, 382, 379, 375, 389, 380, 383, 379, 381,
388, 390, 380, 384, 383, 387, 385, 391, 382, 385,
383, 393, 386, 392, 388, 384, 380, 389, 391, 394,
385, 395, 389, 390, 383, 1292, 397, 404, 390, 1289,
396, 407, 398, 385, 391, 392, 385, 396, 397, 400,
392, 398, 399, 402, 393, 403, 400, 399, 401, 401,
405, 445, 394, 397, 395, 404, 405, 396, 407, 398,
406, 402, 408, 403, 409, 406, 400, 411, 410, 399,
402, 409, 403, 411, 412, 401, 413, 405, 415, 414,
408, 416, 412, 421, 445, 406, 410, 446, 416, 408,
417, 409, 415, 406, 411, 410, 414, 421, 413, 417,
418, 412, 419, 413, 422, 415, 414, 420, 416, 418,
421, 419, 406, 423, 424, 420, 427, 417, 428, 424,
446, 426, 422, 425, 429, 430, 1288, 418, 433, 419,
434, 422, 426, 432, 420, 423, 425, 431, 427, 429,
423, 432, 428, 427, 435, 428, 433, 424, 426, 439,
425, 429, 431, 430, 437, 433, 434, 434, 436, 438,
432, 436, 441, 435, 431, 438, 437, 442, 440, 444,
447, 435, 442, 439, 448, 451, 439, 444, 447, 463,
449, 437, 440, 450, 441, 436, 438, 451, 457, 441,
452, 1280, 448, 444, 459, 440, 444, 447, 449, 460,
442, 448, 451, 463, 444, 450, 463, 449, 460, 462,
450, 457, 452, 1274, 462, 457, 459, 452, 453, 464,
466, 459, 453, 465, 471, 453, 460, 461, 466, 461,
469, 470, 453, 453, 467, 453, 467, 468, 471, 468,
453, 464, 462, 469, 470, 453, 464, 466, 465, 453,
465, 471, 453, 474, 461, 472, 472, 469, 470, 453,
453, 467, 453, 473, 468, 473, 475, 478, 476, 477,
479, 482, 480, 490, 481, 474, 483, 476, 477, 488,
474, 480, 472, 481, 484, 487, 489, 492, 479, 485,
473, 496, 493, 484, 475, 476, 477, 479, 485, 480,
478, 481, 483, 483, 482, 487, 490, 488, 491, 494,
495, 484, 487, 497, 489, 498, 485, 491, 493, 493,
492, 500, 497, 501, 496, 499, 499, 498, 1262, 508,
502, 503, 505, 494, 495, 491, 494, 495, 503, 513,
497, 502, 498, 500, 512, 501, 511, 512, 500, 510,
501, 514, 513, 505, 1254, 499, 508, 502, 503, 505,
506, 506, 506, 510, 511, 515, 513, 506, 516, 518,
1246, 512, 1238, 511, 515, 506, 510, 517, 519, 514,
520, 521, 522, 1234, 523, 519, 521, 520, 518, 522,
516, 506, 515, 524, 506, 516, 518, 526, 526, 517,
524, 525, 506, 528, 517, 519, 523, 520, 521, 522,
525, 523, 529, 532, 530, 531, 534, 1233, 529, 538,
524, 1231, 1229, 535, 526, 536, 531, 539, 525, 530,
535, 528, 1228, 538, 536, 532, 541, 537, 534, 529,
532, 530, 531, 534, 537, 542, 538, 543, 539, 540,
535, 1227, 536, 547, 539, 544, 540, 542, 541, 548,
544, 1225, 549, 541, 537, 545, 554, 1212, 545, 549,
552, 1192, 542, 543, 543, 547, 540, 1184, 555, 545,
547, 548, 544, 552, 551, 553, 548, 556, 553, 549,
557, 1182, 545, 1178, 554, 545, 550, 552, 550, 551,
564, 555, 550, 557, 550, 555, 551, 558, 1157, 550,
559, 551, 553, 564, 566, 556, 562, 557, 560, 558,
550, 563, 559, 550, 561, 550, 551, 564, 560, 550,
558, 550, 569, 565, 558, 571, 550, 559, 562, 561,
560, 565, 566, 562, 570, 560, 558, 563, 563, 577,
567, 561, 570, 571, 569, 560, 572, 573, 574, 569,
565, 567, 571, 579, 575, 576, 578, 572, 580, 1147,
1145, 570, 575, 576, 577, 582, 577, 567, 583, 592,
583, 585, 586, 572, 1138, 573, 574, 587, 578, 587,
585, 575, 576, 578, 588, 584, 579, 582, 590, 584,
598, 580, 582, 588, 586, 583, 584, 589, 585, 586,
591, 597, 592, 598, 587, 589, 590, 584, 596, 599,
595, 588, 584, 595, 603, 590, 584, 598, 600, 604,
596, 599, 591, 584, 589, 607, 597, 591, 597, 601,
600, 602, 601, 605, 606, 596, 599, 595, 602, 603,
608, 603, 609, 1134, 610, 600, 1132, 1130, 616, 606,
616, 616, 604, 607, 1126, 613, 601, 612, 602, 618,
617, 606, 626, 1123, 609, 610, 605, 612, 608, 609,
619, 610, 611, 611, 611, 611, 611, 613, 617, 612,
623, 620, 613, 618, 612, 627, 618, 617, 620, 624,
622, 619, 622, 625, 612, 626, 628, 619, 625, 635,
629, 624, 630, 638, 623, 611, 633, 623, 620, 631,
632, 631, 636, 627, 628, 632, 624, 622, 633, 637,
639, 1109, 629, 628, 636, 641, 625, 629, 640, 642,
630, 638, 635, 633, 643, 1095, 631, 642, 644, 636,
639, 645, 646, 632, 650, 647, 648, 644, 639, 640,
1088, 646, 637, 641, 651, 640, 642, 647, 649, 645,
655, 652, 643, 651, 648, 644, 650, 639, 645, 646,
652, 650, 647, 648, 654, 653, 649, 653, 656, 657,
660, 651, 655, 659, 669, 649, 654, 655, 652, 658,
662, 656, 657, 661, 663, 659, 665, 1087, 667, 686,
668, 654, 653, 1082, 660, 656, 657, 660, 662, 670,
659, 658, 669, 671, 672, 663, 658, 662, 665, 661,
661, 663, 668, 665, 667, 667, 671, 668, 674, 670,
677, 673, 686, 679, 682, 675, 670, 674, 672, 673,
671, 672, 675, 676, 680, 687, 681, 682, 677, 683,
676, 693, 688, 689, 681, 674, 690, 677, 673, 679,
679, 682, 675, 691, 690, 697, 1075, 694, 1073, 692,
676, 691, 680, 681, 688, 683, 683, 692, 687, 688,
694, 689, 695, 690, 693, 696, 699, 697, 700, 691,
691, 702, 697, 698, 694, 695, 692, 701, 691, 696,
703, 698, 705, 704, 701, 702, 706, 703, 712, 695,
700, 696, 696, 706, 704, 700, 707, 1062, 702, 699,
698, 704, 707, 705, 701, 709, 696, 703, 711, 705,
704, 710, 708, 706, 708, 713, 712, 714, 709, 715,
1059, 704, 716, 707, 710, 720, 719, 721, 714, 711,
715, 1050, 709, 713, 723, 711, 1047, 1037, 710, 708,
716, 719, 713, 723, 714, 731, 715, 720, 725, 716,
725, 721, 720, 719, 721, 722, 722, 722, 722, 722,
724, 723, 727, 728, 727, 727, 724, 732, 729, 730,
728, 734, 733, 731, 735, 725, 729, 734, 730, 733,
737, 1033, 735, 740, 739, 735, 742, 724, 722, 743,
728, 745, 743, 1028, 746, 729, 730, 740, 734, 733,
732, 735, 747, 751, 745, 737, 743, 737, 739, 735,
740, 739, 748, 743, 742, 748, 743, 752, 745, 743,
746, 746, 754, 756, 757, 758, 748, 758, 747, 747,
759, 761, 766, 743, 760, 752, 751, 763, 765, 748,
762, 764, 748, 765, 752, 757, 759, 760, 764, 763,
754, 757, 758, 767, 762, 761, 756, 759, 761, 768,
771, 760, 767, 769, 763, 766, 772, 762, 764, 771,
769, 765, 770, 775, 770, 772, 773, 774, 776, 780,
767, 1015, 775, 777, 774, 768, 768, 771, 778, 782,
769, 781, 783, 772, 784, 785, 773, 783, 790, 770,
775, 778, 784, 773, 774, 782, 776, 787, 777, 786,
777, 1014, 780, 788, 781, 778, 782, 785, 781, 787,
788, 784, 785, 791, 792, 783, 790, 786, 800, 793,
794, 798, 795, 792, 787, 799, 786, 793, 794, 798,
788, 795, 797, 799, 797, 801, 791, 800, 802, 806,
791, 792, 801, 803, 804, 800, 793, 794, 798, 795,
803, 804, 799, 808, 805, 807, 810, 1009, 809, 797,
808, 811, 801, 805, 802, 802, 809, 812, 814, 817,
803, 804, 806, 813, 807, 815, 812, 816, 810, 818,
808, 805, 807, 810, 815, 809, 813, 811, 811, 816,
817, 819, 814, 827, 812, 814, 817, 821, 820, 824,
813, 823, 815, 826, 816, 820, 821, 818, 824, 832,
825, 827, 819, 828, 823, 990, 829, 826, 819, 825,
827, 831, 828, 834, 821, 820, 824, 829, 823, 830,
826, 833, 835, 838, 831, 837, 830, 825, 839, 986,
828, 840, 832, 829, 842, 839, 841, 843, 831, 844,
842, 834, 973, 840, 852, 847, 830, 848, 846, 837,
835, 849, 837, 851, 833, 839, 838, 841, 840, 843,
846, 842, 844, 841, 843, 848, 844, 847, 850, 853,
852, 852, 847, 849, 848, 846, 851, 854, 849, 855,
851, 857, 858, 859, 858, 860, 861, 853, 862, 850,
864, 863, 865, 962, 855, 850, 853, 854, 872, 868,
868, 854, 857, 860, 854, 870, 855, 871, 857, 858,
862, 859, 860, 864, 866, 862, 863, 864, 863, 861,
865, 869, 874, 877, 854, 866, 868, 875, 869, 871,
870, 872, 870, 873, 871, 876, 880, 876, 879, 882,
873, 866, 881, 880, 874, 875, 956, 892, 869, 874,
934, 877, 883, 879, 875, 933, 887, 884, 886, 888,
873, 896, 876, 880, 887, 879, 888, 889, 881, 881,
890, 893, 882, 884, 883, 892, 886, 890, 894, 883,
889, 884, 897, 887, 884, 886, 888, 898, 895, 896,
897, 899, 900, 893, 889, 901, 894, 890, 893, 902,
884, 903, 904, 899, 918, 894, 895, 907, 891, 897,
905, 898, 906, 901, 898, 895, 908, 905, 899, 906,
909, 904, 901, 903, 902, 900, 902, 910, 903, 904,
915, 909, 911, 912, 908, 912, 910, 905, 913, 906,
907, 911, 914, 908, 916, 913, 917, 909, 919, 921,
922, 885, 920, 914, 910, 927, 925, 878, 915, 911,
912, 920, 923, 924, 926, 913, 919, 917, 916, 914,
928, 916, 926, 917, 925, 919, 928, 921, 922, 920,
929, 931, 941, 925, 923, 924, 867, 930, 927, 923,
924, 926, 932, 935, 930, 932, 937, 928, 936, 944,
938, 942, 931, 939, 940, 935, 948, 856, 931, 938,
936, 845, 939, 929, 930, 941, 943, 940, 945, 932,
935, 944, 943, 947, 937, 936, 944, 938, 946, 942,
939, 940, 945, 949, 951, 950, 949, 953, 952, 948,
954, 955, 836, 943, 947, 945, 950, 952, 946, 957,
947, 959, 960, 951, 963, 958, 946, 961, 963, 953,
949, 951, 950, 961, 953, 952, 954, 954, 958, 955,
965, 957, 966, 964, 960, 946, 957, 967, 959, 960,
968, 963, 958, 969, 961, 964, 967, 966, 970, 971,
972, 822, 974, 796, 975, 970, 982, 789, 978, 966,
964, 968, 971, 965, 967, 978, 979, 968, 980, 977,
984, 969, 975, 979, 974, 970, 971, 976, 972, 974,
981, 975, 977, 976, 982, 978, 985, 977, 979, 983,
980, 983, 981, 979, 992, 980, 977, 987, 984, 991,
979, 988, 988, 993, 976, 989, 989, 981, 985, 977,
987, 994, 992, 985, 991, 995, 983, 998, 994, 996,
999, 992, 1000, 1001, 987, 1002, 991, 997, 988, 995,
1001, 993, 989, 1004, 996, 1003, 997, 1006, 994, 1002,
1000, 1005, 995, 1005, 1008, 998, 996, 1003, 999, 1000,
1001, 1007, 1002, 1011, 997, 1010, 1012, 1013, 1016, 1021,
1017, 1023, 1003, 1018, 1019, 1006, 1004, 1010, 1005, 1013,
1018, 1019, 1022, 1007, 1025, 1011, 1012, 1008, 1007, 1016,
1011, 1017, 1010, 1012, 1013, 1016, 1020, 1017, 1024, 1023,
1018, 1019, 1021, 1022, 1020, 1025, 1026, 1029, 1027, 1022,
1030, 1025, 1026, 1027, 1029, 1031, 1024, 1034, 1035, 1038,
779, 755, 1041, 1020, 1032, 1024, 1036, 753, 1032, 1032,
1034, 1039, 1040, 1026, 1029, 1027, 1044, 1045, 1031, 1040,
1032, 1035, 1031, 1030, 1034, 1035, 1042, 1038, 1036, 1039,
1041, 1032, 1043, 1036, 1044, 1032, 1032, 1046, 1039, 1040,
1048, 750, 1051, 1044, 1049, 1045, 1053, 749, 1042, 1052,
1054, 1051, 1046, 1042, 1043, 1061, 744, 1055, 1056, 1043,
1057, 1058, 1060, 1054, 1046, 1063, 741, 1060, 1048, 1051,
1049, 1049, 1067, 1052, 1053, 1061, 1052, 1054, 1055, 1058,
1056, 1057, 1061, 1064, 1055, 1056, 1066, 1057, 1058, 1065,
1064, 1068, 1069, 1063, 1067, 1060, 1065, 738, 1071, 1067,
1070, 1069, 1072, 1074, 736, 1076, 726, 1071, 1078, 1066,
1064, 1079, 718, 1066, 1076, 1072, 1065, 717, 1070, 1069,
1084, 1077, 1080, 1081, 1068, 1071, 1083, 1070, 1077, 1072,
1078, 1074, 1076, 1079, 1080, 1078, 1085, 1089, 1079, 1086,
1091, 1081, 1084, 1090, 1083, 1093, 1092, 1084, 1077, 1080,
1081, 1089, 1094, 1083, 1097, 685, 1096, 684, 1085, 1092,
1086, 1090, 1091, 1085, 1089, 1096, 1086, 1091, 1097, 1093,
1090, 1098, 1093, 1092, 1101, 1099, 1100, 1105, 1102, 1103,
1104, 1097, 1105, 1096, 1099, 1094, 1098, 1107, 1110, 1101,
1111, 1106, 678, 1108, 1112, 1114, 1102, 1103, 1098, 1111,
1113, 1101, 1099, 1110, 1100, 1102, 1103, 1112, 1104, 1106,
1105, 1108, 1115, 1107, 1107, 1110, 1116, 1111, 1106, 1117,
1108, 1112, 1113, 1114, 1115, 1118, 1119, 1113, 1120, 1121,
1122, 1116, 1124, 1125, 1128, 1120, 666, 1129, 664, 1115,
634, 1117, 1122, 1116, 1129, 1124, 1117, 1136, 1119, 1118,
1127, 1125, 1118, 1119, 1131, 1120, 1133, 1122, 1128, 1124,
1125, 1128, 1121, 1137, 1129, 1127, 1139, 1143, 1140, 1131,
1133, 1135, 1141, 1135, 1135, 1142, 1144, 1127, 1146, 1149,
1136, 1131, 1143, 1133, 1156, 1137, 1140, 1148, 1139, 1148,
1137, 1150, 1159, 1139, 1143, 1140, 1151, 1144, 1149, 1152,
1141, 1142, 1142, 1144, 1155, 1151, 1149, 1154, 1153, 1155,
1152, 1146, 1156, 1150, 1148, 1153, 1162, 1158, 1150, 1160,
1159, 1161, 1163, 1151, 1164, 1165, 1152, 1166, 1170, 1154,
1158, 1155, 1167, 1171, 1154, 1153, 1162, 621, 1164, 1168,
1169, 1171, 1174, 1162, 1158, 1172, 1173, 1160, 1176, 1161,
1163, 1164, 1177, 1165, 1169, 1166, 1170, 1175, 1167, 1167,
1171, 1168, 1179, 1174, 1172, 1175, 1168, 1169, 1180, 1174,
1173, 1180, 1172, 1173, 1181, 1185, 1185, 1181, 1183, 1186,
1193, 1176, 1187, 1189, 1175, 1177, 1188, 1183, 1194, 1190,
1179, 1196, 1198, 1193, 1191, 1180, 1190, 1187, 1200, 1196,
1186, 1181, 1185, 1191, 1200, 1183, 1186, 1193, 1188, 1187,
1194, 1189, 1195, 1188, 1195, 1194, 1190, 1197, 1196, 1201,
1198, 1191, 1199, 1199, 1202, 1200, 1204, 1203, 1205, 615,
1210, 1197, 1206, 1211, 1207, 1218, 1208, 1201, 1202, 1195,
1213, 1217, 1204, 1209, 1197, 1203, 1201, 1208, 1211, 1199,
1205, 1202, 1209, 1204, 1203, 1205, 1207, 1206, 1210, 1206,
1211, 1207, 1214, 1208, 1213, 1215, 1216, 1213, 1218, 1217,
1209, 1220, 1219, 1222, 1216, 1221, 614, 1223, 1224, 1220,
1226, 1230, 594, 1215, 1214, 1219, 1242, 1235, 1232, 1214,
1223, 1236, 1215, 1216, 1237, 1239, 1240, 1247, 1220, 1219,
1224, 1221, 1221, 1248, 1223, 1224, 1222, 1241, 1226, 1230,
1232, 1235, 1242, 1242, 1235, 1232, 1237, 1239, 1240, 1236,
1243, 1237, 1239, 1240, 1244, 1245, 1241, 1249, 1243, 1251,
1247, 1257, 593, 1245, 1241, 1244, 1248, 1250, 1252, 1253,
1255, 581, 1256, 1258, 1259, 1261, 1257, 1243, 568, 1263,
1251, 1244, 1245, 1249, 1249, 1260, 1251, 1266, 1257, 1250,
1252, 1263, 1267, 1256, 1250, 1252, 1260, 1253, 1255, 1256,
1264, 1258, 1259, 1261, 1265, 1267, 1263, 1264, 1268, 1266,
1269, 1265, 1260, 1270, 1266, 1271, 1273, 546, 1272, 1267,
1275, 1282, 1277, 533, 1276, 527, 1278, 1264, 1282, 509,
1279, 1265, 507, 504, 1285, 1290, 1268, 486, 1269, 1270,
1270, 1278, 1275, 1271, 1272, 1272, 1276, 1275, 1282, 1273,
1277, 1276, 1279, 1278, 1281, 1281, 1283, 1279, 1284, 1285,
1286, 1285, 1287, 1290, 1281, 1284, 1291, 1286, 1293, 458,
1294, 1287, 456, 1296, 1283, 1295, 1300, 1297, 1294, 1298,
455, 1281, 1281, 1283, 1304, 1284, 1299, 1286, 1291, 1287,
1301, 1302, 1305, 1291, 1300, 1296, 1293, 1294, 1299, 1295,
1296, 1297, 1295, 1300, 1297, 1301, 1302, 1298, 1303, 1306,
1305, 1309, 1304, 1299, 1310, 1303, 1310, 1301, 1302, 1305,
1313, 1316, 454, 1315, 1319, 1317, 1309, 1317, 1318, 1322,
1325, 1325, 1324, 1326, 1327, 1303, 1315, 1306, 1309, 1324,
1318, 1310, 1329, 1330, 1332, 1333, 1319, 1337, 1313, 1316,
1315, 1319, 1317, 1322, 1331, 1318, 1322, 1325, 1338, 1324,
1331, 1326, 1327, 1333, 1329, 1334, 1332, 1330, 1335, 1329,
1330, 1332, 1333, 1336, 1340, 1342, 1356, 1334, 1343, 1336,
1337, 1331, 1344, 443, 1347, 1345, 1349, 1335, 1348, 1348,
338, 1338, 1334, 1347, 1343, 1335, 1350, 1351, 1355, 1358,
1336, 1353, 1340, 1342, 1356, 1343, 1344, 1345, 1349, 1344,
1355, 1347, 1345, 1349, 1353, 1348, 1360, 1362, 1350, 1351,
1363, 1358, 1364, 1350, 1351, 1355, 1358, 1361, 1353, 1364,
1365, 1368, 300, 1361, 1369, 1374, 1363, 1373, 1370, 1372,
1371, 296, 1365, 1369, 1360, 1362, 1372, 1363, 1371, 1364,
1373, 1380, 1382, 1391, 1361, 1375, 1377, 1365, 1381, 1368,
1370, 1369, 1376, 1374, 1373, 1370, 1372, 1371, 1375, 1377,
1376, 1383, 1384, 1395, 1381, 1385, 1387, 1386, 1383, 1380,
1382, 1391, 1375, 1377, 1396, 1381, 1376, 1388, 1385, 1376,
1386, 1387, 1389, 1393, 1384, 1397, 1389, 1376, 1383, 1384,
1393, 1395, 1385, 1387, 1386, 1388, 1396, 1399, 1397, 1400,
1401, 1396, 1405, 1402, 1388, 1402, 1403, 294, 1400, 1389,
1393, 1401, 1397, 1406, 1407, 212, 1408, 1410, 1412, 1399,
1413, 1418, 1420, 183, 1399, 1405, 1400, 1401, 174, 1405,
1402, 1414, 1415, 1427, 1403, 1406, 1407, 1416, 1423, 112,
1406, 1407, 1408, 1408, 1422, 1410, 1412, 1417, 1413, 1418,
1420, 1414, 1415, 1422, 1417, 1416, 1424, 1426, 1414, 1415,
1423, 1427, 1429, 1424, 1416, 1423, 1425, 1430, 1425, 1426,
1431, 1422, 1431, 1432, 1417, 1436, 1430, 1429, 1437, 1442,
111, 1438, 1436, 1424, 1426, 1437, 1439, 1432, 1439, 1429,
1443, 1444, 1442, 1425, 1430, 1438, 1445, 1431, 1446, 1448,
1432, 1450, 1436, 1449, 1455, 1437, 1442, 109, 1438, 1451,
1449, 1446, 1456, 1439, 1452, 1462, 1453, 1461, 1443, 1444,
1454, 1448, 107, 1459, 50, 1446, 1448, 46, 1463, 1445,
1449, 1451, 1455, 1452, 1450, 1453, 1451, 1459, 1454, 1464,
1456, 1452, 1465, 1453, 1460, 1461, 1466, 1454, 1462, 1463,
1459, 1467, 1460, 1470, 1471, 1463, 1473, 1478, 1467, 1480,
1479, 1474, 42, 41, 1481, 36, 10, 1464, 1479, 1482,
1465, 1460, 1488, 1487, 1466, 1470, 1471, 1473, 1467, 1474,
1470, 1471, 1481, 1473, 1482, 1478, 1484, 1479, 1474, 1485,
1486, 1481, 1480, 1489, 1484, 1487, 1482, 1490, 1488, 1488,
1487, 1491, 1494, 1485, 1493, 1486, 1492, 9, 1501, 0,
1496, 1506, 1493, 1484, 1497, 1489, 1485, 1486, 1500, 1490,
1489, 0, 1497, 1502, 1490, 1504, 1492, 1499, 0, 1491,
1494, 1493, 1496, 1492, 1505, 1499, 1501, 1496, 0, 1506,
0, 1497, 1505, 1502, 1500, 1500, 0, 1504, 0, 0,
1502, 0, 1504, 0, 1499, 0, 0, 0, 0, 0,
0, 1505, 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510,
1511, 1511, 1511, 1511, 1513, 1513, 0, 1513, 1514, 1514,
1516, 1516, 1517, 1517, 0, 1517, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
1508, 1508, 1508
} ;
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
extern int yy_flex_debug;
int yy_flex_debug = 0;
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
*/
#define REJECT reject_used_but_not_detected
static int yy_more_flag = 0;
static int yy_more_len = 0;
#define yymore() ((yy_more_flag) = 1)
#define YY_MORE_ADJ (yy_more_len)
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "configlexer.lex"
#line 2 "configlexer.lex"
/*
* configlexer.lex - lexical analyzer for NSD config file
*
* Copyright (c) 2001-2006, NLnet Labs. All rights reserved
*
* See LICENSE for the license.
*
*/
/* because flex keeps having sign-unsigned compare problems that are unfixed*/
#if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif
#include
#include
#include
#include
#ifdef HAVE_GLOB_H
# include
#endif
#include "options.h"
#include "configparser.h"
#if 0
#define LEXOUT(s) printf s /* used ONLY when debugging */
#else
#define LEXOUT(s)
#endif
struct inc_state {
char* filename;
int line;
YY_BUFFER_STATE buffer;
struct inc_state* next;
};
static struct inc_state* config_include_stack = NULL;
static int inc_depth = 0;
static void config_start_include(const char* filename)
{
FILE *input;
struct inc_state* s;
char* nm;
if(inc_depth++ > 10000000) {
c_error("too many include files");
return;
}
if(strlen(filename) == 0) {
c_error("empty include file name");
return;
}
s = (struct inc_state*)malloc(sizeof(*s));
if(!s) {
c_error("include %s: malloc failure", filename);
return;
}
nm = strdup(filename);
if(!nm) {
c_error("include %s: strdup failure", filename);
free(s);
return;
}
input = fopen(filename, "r");
if(!input) {
c_error("cannot open include file '%s': %s",
filename, strerror(errno));
free(s);
free(nm);
return;
}
LEXOUT(("switch_to_include_file(%s) ", filename));
s->filename = cfg_parser->filename;
s->line = cfg_parser->line;
s->buffer = YY_CURRENT_BUFFER;
s->next = config_include_stack;
config_include_stack = s;
cfg_parser->filename = nm;
cfg_parser->line = 1;
yy_switch_to_buffer(yy_create_buffer(input, YY_BUF_SIZE));
}
static void config_start_include_glob(const char* filename)
{
/* check for wildcards */
#ifdef HAVE_GLOB
glob_t g;
int i, r, flags;
#endif /* HAVE_GLOB */
if (cfg_parser->chroot) {
int l = strlen(cfg_parser->chroot); /* chroot has trailing slash */
if (strncmp(cfg_parser->chroot, filename, l) != 0) {
c_error("include file '%s' is not relative to chroot '%s'",
filename, cfg_parser->chroot);
return;
}
filename += l - 1; /* strip chroot without trailing slash */
}
#ifdef HAVE_GLOB
if(!(!strchr(filename, '*') && !strchr(filename, '?') &&
!strchr(filename, '[') && !strchr(filename, '{') &&
!strchr(filename, '~'))) {
flags = 0
#ifdef GLOB_ERR
| GLOB_ERR
#endif
/* do not set GLOB_NOSORT so the results are sorted
and in a predictable order. */
#ifdef GLOB_BRACE
| GLOB_BRACE
#endif
#ifdef GLOB_TILDE
| GLOB_TILDE
#endif
;
memset(&g, 0, sizeof(g));
r = glob(filename, flags, NULL, &g);
if(r) {
/* some error */
globfree(&g);
if(r == GLOB_NOMATCH)
return; /* no matches for pattern */
config_start_include(filename); /* let original deal with it */
return;
}
/* process files found, if any */
for(i=(int)g.gl_pathc-1; i>=0; i--) {
config_start_include(g.gl_pathv[i]);
}
globfree(&g);
return;
}
#endif /* HAVE_GLOB */
config_start_include(filename);
}
static void config_end_include(void)
{
struct inc_state* s = config_include_stack;
--inc_depth;
if(!s) return;
free(cfg_parser->filename);
cfg_parser->filename = s->filename;
cfg_parser->line = s->line;
yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(s->buffer);
config_include_stack = s->next;
free(s);
}
#ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
#define yy_set_bol(at_bol) \
{ \
if ( ! yy_current_buffer ) \
yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
}
#endif
#line 2317 ""
#define YY_NO_INPUT 1
#line 165 "configlexer.lex"
#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT 1
#endif
#ifndef YY_NO_INPUT
#define YY_NO_INPUT 1
#endif
#line 2326 ""
#line 2328 ""
#define INITIAL 0
#define quotedstring 1
#define include 2
#define include_quoted 3
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user's section 1 to have been scanned first.
* The user has a chance to override it with an option.
*/
#include
#endif
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif
static int yy_init_globals ( void );
/* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */
int yylex_destroy ( void );
int yyget_debug ( void );
void yyset_debug ( int debug_flag );
YY_EXTRA_TYPE yyget_extra ( void );
void yyset_extra ( YY_EXTRA_TYPE user_defined );
FILE *yyget_in ( void );
void yyset_in ( FILE * _in_str );
FILE *yyget_out ( void );
void yyset_out ( FILE * _out_str );
int yyget_leng ( void );
char *yyget_text ( void );
int yyget_lineno ( void );
void yyset_lineno ( int _line_number );
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap ( void );
#else
extern int yywrap ( void );
#endif
#endif
#ifndef YY_NO_UNPUT
#endif
#ifndef yytext_ptr
static void yy_flex_strncpy ( char *, const char *, int );
#endif
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen ( const char * );
#endif
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput ( void );
#else
static int input ( void );
#endif
#endif
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k */
#define YY_READ_BUF_SIZE 16384
#else
#define YY_READ_BUF_SIZE 8192
#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
* is returned in "result".
*/
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
if ( c == '\n' ) \
buf[n++] = (char) c; \
if ( c == EOF && ferror( yyin ) ) \
YY_FATAL_ERROR( "input in flex scanner failed" ); \
result = n; \
} \
else \
{ \
errno=0; \
while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
{ \
if( errno != EINTR) \
{ \
YY_FATAL_ERROR( "input in flex scanner failed" ); \
break; \
} \
errno=0; \
clearerr(yyin); \
} \
}\
\
#endif
/* No semi-colon after return; correct usage is to write "yyterminate();" -
* we don't want an extra ';' after the "return" because that will cause
* some compilers to complain about unreachable statements.
*/
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif
/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif
/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif
/* end tables serialization structures and prototypes */
/* Default declaration of generated scanner - a define so the user can
* easily add parameters.
*/
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1
extern int yylex (void);
#define YY_DECL int yylex (void)
#endif /* !YY_DECL */
/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up.
*/
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK /*LINTED*/break;
#endif
#define YY_RULE_SETUP \
YY_USER_ACTION
/** The main scanner function which does all the work.
*/
YY_DECL
{
yy_state_type yy_current_state;
char *yy_cp, *yy_bp;
int yy_act;
if ( !(yy_init) )
{
(yy_init) = 1;
#ifdef YY_USER_INIT
YY_USER_INIT;
#endif
if ( ! (yy_start) )
(yy_start) = 1; /* first start state */
if ( ! yyin )
yyin = stdin;
if ( ! yyout )
yyout = stdout;
if ( ! YY_CURRENT_BUFFER ) {
yyensure_buffer_stack ();
YY_CURRENT_BUFFER_LVALUE =
yy_create_buffer( yyin, YY_BUF_SIZE );
}
yy_load_buffer_state( );
}
{
#line 183 "configlexer.lex"
#line 2548 ""
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
(yy_more_len) = 0;
if ( (yy_more_flag) )
{
(yy_more_len) = (int) ((yy_c_buf_p) - (yytext_ptr));
(yy_more_flag) = 0;
}
yy_cp = (yy_c_buf_p);
/* Support of yytext. */
*yy_cp = (yy_hold_char);
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run.
*/
yy_bp = yy_cp;
yy_current_state = (yy_start);
yy_match:
do
{
YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
(yy_last_accepting_cpos) = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1509 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
while ( yy_base[yy_current_state] != 4267 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
if ( yy_act == 0 )
{ /* have to back up */
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
yy_act = yy_accept[yy_current_state];
}
YY_DO_BEFORE_ACTION;
do_action: /* This label is used only to access EOF actions. */
switch ( yy_act )
{ /* beginning of action switch */
case 0: /* must back up */
/* undo the effects of YY_DO_BEFORE_ACTION */
*yy_cp = (yy_hold_char);
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
goto yy_find_action;
case 1:
YY_RULE_SETUP
#line 184 "configlexer.lex"
{ LEXOUT(("SP ")); /* ignore */ }
YY_BREAK
case 2:
YY_RULE_SETUP
#line 185 "configlexer.lex"
{ LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
YY_BREAK
case 3:
YY_RULE_SETUP
#line 186 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER;}
YY_BREAK
case 4:
YY_RULE_SETUP
#line 187 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NAME;}
YY_BREAK
case 5:
YY_RULE_SETUP
#line 188 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 189 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_ADDRESS;}
YY_BREAK
case 7:
YY_RULE_SETUP
#line 190 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_TRANSPARENT;}
YY_BREAK
case 8:
YY_RULE_SETUP
#line 191 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP_FREEBIND;}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 192 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SEND_BUFFER_SIZE;}
YY_BREAK
case 10:
YY_RULE_SETUP
#line 193 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RECEIVE_BUFFER_SIZE;}
YY_BREAK
case 11:
YY_RULE_SETUP
#line 194 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DEBUG_MODE;}
YY_BREAK
case 12:
YY_RULE_SETUP
#line 195 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_USE_SYSTEMD;}
YY_BREAK
case 13:
YY_RULE_SETUP
#line 196 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_HIDE_VERSION;}
YY_BREAK
case 14:
YY_RULE_SETUP
#line 197 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_HIDE_IDENTITY;}
YY_BREAK
case 15:
YY_RULE_SETUP
#line 198 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DROP_UPDATES; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 199 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP4_ONLY;}
YY_BREAK
case 17:
YY_RULE_SETUP
#line 200 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IP6_ONLY;}
YY_BREAK
case 18:
YY_RULE_SETUP
#line 201 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP4;}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 202 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DO_IP6;}
YY_BREAK
case 20:
YY_RULE_SETUP
#line 203 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DATABASE;}
YY_BREAK
case 21:
YY_RULE_SETUP
#line 204 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IDENTITY;}
YY_BREAK
case 22:
YY_RULE_SETUP
#line 205 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERSION;}
YY_BREAK
case 23:
YY_RULE_SETUP
#line 206 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NSID;}
YY_BREAK
case 24:
YY_RULE_SETUP
#line 207 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOGFILE;}
YY_BREAK
case 25:
YY_RULE_SETUP
#line 208 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOG_ONLY_SYSLOG;}
YY_BREAK
case 26:
YY_RULE_SETUP
#line 209 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_COUNT;}
YY_BREAK
case 27:
YY_RULE_SETUP
#line 210 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_COUNT;}
YY_BREAK
case 28:
YY_RULE_SETUP
#line 211 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_REJECT_OVERFLOW;}
YY_BREAK
case 29:
YY_RULE_SETUP
#line 212 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_QUERY_COUNT;}
YY_BREAK
case 30:
YY_RULE_SETUP
#line 213 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_TIMEOUT;}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 214 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TCP_MSS;}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 215 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_TCP_MSS;}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 216 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IPV4_EDNS_SIZE;}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 217 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IPV6_EDNS_SIZE;}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 218 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PIDFILE;}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 219 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PORT;}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 220 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REUSEPORT;}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 221 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_STATISTICS;}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 222 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CHROOT;}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 223 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_USERNAME;}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 224 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONESDIR;}
YY_BREAK
case 42:
YY_RULE_SETUP
#line 225 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONELISTFILE;}
YY_BREAK
case 43:
YY_RULE_SETUP
#line 226 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DIFFFILE;}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 227 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRDFILE;}
YY_BREAK
case 45:
YY_RULE_SETUP
#line 228 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRDIR;}
YY_BREAK
case 46:
YY_RULE_SETUP
#line 229 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_RELOAD_TIMEOUT;}
YY_BREAK
case 47:
YY_RULE_SETUP
#line 230 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERBOSITY;}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 231 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONE;}
YY_BREAK
case 49:
YY_RULE_SETUP
#line 232 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILE;}
YY_BREAK
case 50:
YY_RULE_SETUP
#line 233 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONESTATS;}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 234 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_NOTIFY;}
YY_BREAK
case 52:
YY_RULE_SETUP
#line 235 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SIZE_LIMIT_XFR;}
YY_BREAK
case 53:
YY_RULE_SETUP
#line 236 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REQUEST_XFR;}
YY_BREAK
case 54:
YY_RULE_SETUP
#line 237 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY;}
YY_BREAK
case 55:
YY_RULE_SETUP
#line 238 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_NOTIFY_RETRY;}
YY_BREAK
case 56:
YY_RULE_SETUP
#line 239 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PROVIDE_XFR;}
YY_BREAK
case 57:
YY_RULE_SETUP
#line 240 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_QUERY;}
YY_BREAK
case 58:
YY_RULE_SETUP
#line 241 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_OUTGOING_INTERFACE;}
YY_BREAK
case 59:
YY_RULE_SETUP
#line 242 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALLOW_AXFR_FALLBACK;}
YY_BREAK
case 60:
YY_RULE_SETUP
#line 243 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH;}
YY_BREAK
case 61:
YY_RULE_SETUP
#line 244 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_DOMAIN_NAME;}
YY_BREAK
case 62:
YY_RULE_SETUP
#line 245 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_CERT;}
YY_BREAK
case 63:
YY_RULE_SETUP
#line 246 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_KEY;}
YY_BREAK
case 64:
YY_RULE_SETUP
#line 247 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_CLIENT_KEY_PW;}
YY_BREAK
case 65:
YY_RULE_SETUP
#line 248 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_KEY;}
YY_BREAK
case 66:
YY_RULE_SETUP
#line 249 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ALGORITHM;}
YY_BREAK
case 67:
YY_RULE_SETUP
#line 250 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SECRET;}
YY_BREAK
case 68:
YY_RULE_SETUP
#line 251 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PATTERN;}
YY_BREAK
case 69:
YY_RULE_SETUP
#line 252 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_INCLUDE_PATTERN;}
YY_BREAK
case 70:
YY_RULE_SETUP
#line 253 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REMOTE_CONTROL;}
YY_BREAK
case 71:
YY_RULE_SETUP
#line 254 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_ENABLE;}
YY_BREAK
case 72:
YY_RULE_SETUP
#line 255 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_INTERFACE;}
YY_BREAK
case 73:
YY_RULE_SETUP
#line 256 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_PORT;}
YY_BREAK
case 74:
YY_RULE_SETUP
#line 257 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_KEY_FILE;}
YY_BREAK
case 75:
YY_RULE_SETUP
#line 258 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_SERVER_CERT_FILE;}
YY_BREAK
case 76:
YY_RULE_SETUP
#line 259 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_KEY_FILE;}
YY_BREAK
case 77:
YY_RULE_SETUP
#line 260 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONTROL_CERT_FILE;}
YY_BREAK
case 78:
YY_RULE_SETUP
#line 261 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_METRICS_ENABLE;}
YY_BREAK
case 79:
YY_RULE_SETUP
#line 262 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_METRICS_INTERFACE;}
YY_BREAK
case 80:
YY_RULE_SETUP
#line 263 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_METRICS_PORT;}
YY_BREAK
case 81:
YY_RULE_SETUP
#line 264 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_METRICS_PATH;}
YY_BREAK
case 82:
YY_RULE_SETUP
#line 265 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_AXFR;}
YY_BREAK
case 83:
YY_RULE_SETUP
#line 266 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_UDP;}
YY_BREAK
case 84:
YY_RULE_SETUP
#line 267 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SIZE;}
YY_BREAK
case 85:
YY_RULE_SETUP
#line 268 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_RATELIMIT;}
YY_BREAK
case 86:
YY_RULE_SETUP
#line 269 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_SLIP;}
YY_BREAK
case 87:
YY_RULE_SETUP
#line 270 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV4_PREFIX_LENGTH;}
YY_BREAK
case 88:
YY_RULE_SETUP
#line 271 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_IPV6_PREFIX_LENGTH;}
YY_BREAK
case 89:
YY_RULE_SETUP
#line 272 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST_RATELIMIT;}
YY_BREAK
case 90:
YY_RULE_SETUP
#line 273 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RRL_WHITELIST;}
YY_BREAK
case 91:
YY_RULE_SETUP
#line 274 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_RELOAD_CONFIG; }
YY_BREAK
case 92:
YY_RULE_SETUP
#line 275 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_CHECK;}
YY_BREAK
case 93:
YY_RULE_SETUP
#line 276 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ZONEFILES_WRITE;}
YY_BREAK
case 94:
YY_RULE_SETUP
#line 277 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP;}
YY_BREAK
case 95:
YY_RULE_SETUP
#line 278 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_ENABLE;}
YY_BREAK
case 96:
YY_RULE_SETUP
#line 279 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SOCKET_PATH; }
YY_BREAK
case 97:
YY_RULE_SETUP
#line 280 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_IP; }
YY_BREAK
case 98:
YY_RULE_SETUP
#line 281 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS; }
YY_BREAK
case 99:
YY_RULE_SETUP
#line 282 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_SERVER_NAME; }
YY_BREAK
case 100:
YY_RULE_SETUP
#line 283 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CERT_BUNDLE; }
YY_BREAK
case 101:
YY_RULE_SETUP
#line 284 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CLIENT_KEY_FILE; }
YY_BREAK
case 102:
YY_RULE_SETUP
#line 285 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_TLS_CLIENT_CERT_FILE; }
YY_BREAK
case 103:
YY_RULE_SETUP
#line 286 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SEND_IDENTITY; }
YY_BREAK
case 104:
YY_RULE_SETUP
#line 287 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_SEND_VERSION; }
YY_BREAK
case 105:
YY_RULE_SETUP
#line 288 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_IDENTITY; }
YY_BREAK
case 106:
YY_RULE_SETUP
#line 289 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_VERSION; }
YY_BREAK
case 107:
YY_RULE_SETUP
#line 290 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_LOG_AUTH_QUERY_MESSAGES; }
YY_BREAK
case 108:
YY_RULE_SETUP
#line 291 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_DNSTAP_LOG_AUTH_RESPONSE_MESSAGES; }
YY_BREAK
case 109:
YY_RULE_SETUP
#line 292 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOG_TIME_ASCII;}
YY_BREAK
case 110:
YY_RULE_SETUP
#line 293 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_LOG_TIME_ISO;}
YY_BREAK
case 111:
YY_RULE_SETUP
#line 294 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ROUND_ROBIN;}
YY_BREAK
case 112:
YY_RULE_SETUP
#line 295 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MINIMAL_RESPONSES;}
YY_BREAK
case 113:
YY_RULE_SETUP
#line 296 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CONFINE_TO_ZONE;}
YY_BREAK
case 114:
YY_RULE_SETUP
#line 297 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_REFUSE_ANY;}
YY_BREAK
case 115:
YY_RULE_SETUP
#line 298 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MAX_REFRESH_TIME;}
YY_BREAK
case 116:
YY_RULE_SETUP
#line 299 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_REFRESH_TIME;}
YY_BREAK
case 117:
YY_RULE_SETUP
#line 300 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MAX_RETRY_TIME;}
YY_BREAK
case 118:
YY_RULE_SETUP
#line 301 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_RETRY_TIME;}
YY_BREAK
case 119:
YY_RULE_SETUP
#line 302 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MIN_EXPIRE_TIME;}
YY_BREAK
case 120:
YY_RULE_SETUP
#line 303 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_STORE_IXFR;}
YY_BREAK
case 121:
YY_RULE_SETUP
#line 304 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IXFR_SIZE;}
YY_BREAK
case 122:
YY_RULE_SETUP
#line 305 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_IXFR_NUMBER;}
YY_BREAK
case 123:
YY_RULE_SETUP
#line 306 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CREATE_IXFR;}
YY_BREAK
case 124:
YY_RULE_SETUP
#line 307 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MULTI_PRIMARY_CHECK;}
YY_BREAK
case 125:
YY_RULE_SETUP
#line 308 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_MULTI_PRIMARY_CHECK;}
YY_BREAK
case 126:
YY_RULE_SETUP
#line 309 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_KEY;}
YY_BREAK
case 127:
YY_RULE_SETUP
#line 310 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_OCSP;}
YY_BREAK
case 128:
YY_RULE_SETUP
#line 311 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_SERVICE_PEM;}
YY_BREAK
case 129:
YY_RULE_SETUP
#line 312 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_PORT;}
YY_BREAK
case 130:
YY_RULE_SETUP
#line 313 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_PORT;}
YY_BREAK
case 131:
YY_RULE_SETUP
#line 314 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_AUTH_XFR_ONLY;}
YY_BREAK
case 132:
YY_RULE_SETUP
#line 315 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_TLS_CERT_BUNDLE; }
YY_BREAK
case 133:
YY_RULE_SETUP
#line 316 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_PROXY_PROTOCOL_PORT; }
YY_BREAK
case 134:
YY_RULE_SETUP
#line 317 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ANSWER_COOKIE;}
YY_BREAK
case 135:
YY_RULE_SETUP
#line 318 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_COOKIE_SECRET;}
YY_BREAK
case 136:
YY_RULE_SETUP
#line 319 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_COOKIE_SECRET_FILE;}
YY_BREAK
case 137:
YY_RULE_SETUP
#line 320 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_COOKIE_STAGING_SECRET;}
YY_BREAK
case 138:
YY_RULE_SETUP
#line 321 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_TCP_MAX;}
YY_BREAK
case 139:
YY_RULE_SETUP
#line 322 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_TCP_PIPELINE;}
YY_BREAK
case 140:
YY_RULE_SETUP
#line 323 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY; }
YY_BREAK
case 141:
YY_RULE_SETUP
#line 324 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_ENABLE; }
YY_BREAK
case 142:
YY_RULE_SETUP
#line 325 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY_ZONE; }
YY_BREAK
case 143:
YY_RULE_SETUP
#line 326 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFY_ZONES; }
YY_BREAK
case 144:
YY_RULE_SETUP
#line 327 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER; }
YY_BREAK
case 145:
YY_RULE_SETUP
#line 328 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_COUNT; }
YY_BREAK
case 146:
YY_RULE_SETUP
#line 329 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_FEED_ZONE; }
YY_BREAK
case 147:
YY_RULE_SETUP
#line 330 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_VERIFIER_TIMEOUT; }
YY_BREAK
case 148:
YY_RULE_SETUP
#line 331 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CATALOG; }
YY_BREAK
case 149:
YY_RULE_SETUP
#line 332 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CATALOG_MEMBER_PATTERN; }
YY_BREAK
case 150:
YY_RULE_SETUP
#line 333 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CATALOG_PRODUCER_ZONE; }
YY_BREAK
case 151:
/* rule 151 can match eol */
YY_RULE_SETUP
#line 334 "configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
case 152:
YY_RULE_SETUP
#line 336 "configlexer.lex"
{
yyless(yyleng - (yyleng - 8));
LEXOUT(("v(%s) ", yytext));
return VAR_SERVERS;
}
YY_BREAK
case 153:
YY_RULE_SETUP
#line 341 "configlexer.lex"
{
yyless(yyleng - (yyleng - 13));
LEXOUT(("v(%s) ", yytext));
return VAR_BINDTODEVICE;
}
YY_BREAK
case 154:
YY_RULE_SETUP
#line 346 "configlexer.lex"
{
yyless(yyleng - (yyleng - 7));
LEXOUT(("v(%s) ", yytext));
return VAR_SETFIB;
}
YY_BREAK
case 155:
YY_RULE_SETUP
#line 352 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_CPU_AFFINITY; }
YY_BREAK
case 156:
YY_RULE_SETUP
#line 353 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); return VAR_XFRD_CPU_AFFINITY; }
YY_BREAK
case 157:
YY_RULE_SETUP
#line 354 "configlexer.lex"
{
char *str = yytext;
LEXOUT(("v(%s) ", yytext));
/* Skip server- */
while (*str != '\0' && (*str < '0' || *str > '9')) {
str++;
}
c_lval.llng = strtoll(str, NULL, 10);
return VAR_SERVER_CPU_AFFINITY;
}
YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
case 158:
YY_RULE_SETUP
#line 366 "configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
YY_BREAK
case YY_STATE_EOF(quotedstring):
#line 367 "configlexer.lex"
{
c_error("EOF inside quoted string");
BEGIN(INITIAL);
}
YY_BREAK
case 159:
YY_RULE_SETUP
#line 371 "configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
YY_BREAK
case 160:
/* rule 160 can match eol */
YY_RULE_SETUP
#line 372 "configlexer.lex"
{ cfg_parser->line++; yymore(); }
YY_BREAK
case 161:
YY_RULE_SETUP
#line 373 "configlexer.lex"
{
LEXOUT(("QE "));
BEGIN(INITIAL);
yytext[yyleng - 1] = '\0';
c_lval.str = region_strdup(cfg_parser->opt->region, yytext);
return STRING;
}
YY_BREAK
/* include: directive */
case 162:
YY_RULE_SETUP
#line 382 "configlexer.lex"
{ LEXOUT(("v(%s) ", yytext)); BEGIN(include); }
YY_BREAK
case YY_STATE_EOF(include):
#line 383 "configlexer.lex"
{
c_error("EOF inside include directive");
BEGIN(INITIAL);
}
YY_BREAK
case 163:
YY_RULE_SETUP
#line 387 "configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
YY_BREAK
case 164:
/* rule 164 can match eol */
YY_RULE_SETUP
#line 388 "configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
YY_BREAK
case 165:
YY_RULE_SETUP
#line 389 "configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
YY_BREAK
case 166:
YY_RULE_SETUP
#line 390 "configlexer.lex"
{
LEXOUT(("Iunquotedstr(%s) ", yytext));
config_start_include_glob(yytext);
BEGIN(INITIAL);
}
YY_BREAK
case YY_STATE_EOF(include_quoted):
#line 395 "configlexer.lex"
{
c_error("EOF inside quoted string");
BEGIN(INITIAL);
}
YY_BREAK
case 167:
YY_RULE_SETUP
#line 399 "configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
YY_BREAK
case 168:
/* rule 168 can match eol */
YY_RULE_SETUP
#line 400 "configlexer.lex"
{ cfg_parser->line++; yymore(); }
YY_BREAK
case 169:
YY_RULE_SETUP
#line 401 "configlexer.lex"
{
LEXOUT(("IQE "));
yytext[yyleng - 1] = '\0';
config_start_include_glob(yytext);
BEGIN(INITIAL);
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 407 "configlexer.lex"
{
yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
if (!config_include_stack) {
yyterminate();
} else {
fclose(yyin);
config_end_include();
}
}
YY_BREAK
case 170:
YY_RULE_SETUP
#line 417 "configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext));
c_lval.str = region_strdup(cfg_parser->opt->region, yytext); return STRING; }
YY_BREAK
case 171:
YY_RULE_SETUP
#line 420 "configlexer.lex"
ECHO;
YY_BREAK
#line 3542 ""
case YY_END_OF_BUFFER:
{
/* Amount of text matched not including the EOB char. */
int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
/* Undo the effects of YY_DO_BEFORE_ACTION. */
*yy_cp = (yy_hold_char);
YY_RESTORE_YY_MORE_OFFSET
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
{
/* We're scanning a new file or input source. It's
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex(). If so, then we have to assure
* consistency between YY_CURRENT_BUFFER and our
* globals. Here is the right place to do so, because
* this is the first action (other than possibly a
* back-up) that will match for the new input source.
*/
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
}
/* Note that here we test for yy_c_buf_p "<=" to the position
* of the first EOB in the buffer, since yy_c_buf_p will
* already have been incremented past the NUL character
* (since all states make transitions on EOB to the
* end-of-buffer state). Contrast this with the test
* in input().
*/
if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
{ /* This was really a NUL. */
yy_state_type yy_next_state;
(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state( );
/* Okay, we're now positioned to make the NUL
* transition. We couldn't have
* yy_get_previous_state() go ahead and do it
* for us because it doesn't know how to deal
* with the possibility of jamming (and we don't
* want to build jamming into it because then it
* will run more slowly).
*/
yy_next_state = yy_try_NUL_trans( yy_current_state );
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
if ( yy_next_state )
{
/* Consume the NUL. */
yy_cp = ++(yy_c_buf_p);
yy_current_state = yy_next_state;
goto yy_match;
}
else
{
yy_cp = (yy_c_buf_p);
goto yy_find_action;
}
}
else switch ( yy_get_next_buffer( ) )
{
case EOB_ACT_END_OF_FILE:
{
(yy_did_buffer_switch_on_eof) = 0;
if ( yywrap( ) )
{
/* Note: because we've taken care in
* yy_get_next_buffer() to have set up
* yytext, we can now set up
* yy_c_buf_p so that if some total
* hoser (like flex itself) wants to
* call the scanner after we return the
* YY_NULL, it'll still work - another
* YY_NULL will get returned.
*/
(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
}
else
{
if ( ! (yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
}
break;
}
case EOB_ACT_CONTINUE_SCAN:
(yy_c_buf_p) =
(yytext_ptr) + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state( );
yy_cp = (yy_c_buf_p);
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
(yy_c_buf_p) =
&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
yy_current_state = yy_get_previous_state( );
yy_cp = (yy_c_buf_p);
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
goto yy_find_action;
}
break;
}
default:
YY_FATAL_ERROR(
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
} /* end of user's declarations */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
*
* Returns a code representing an action:
* EOB_ACT_LAST_MATCH -
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
*/
static int yy_get_next_buffer (void)
{
char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
char *source = (yytext_ptr);
int number_to_move, i;
int ret_val;
if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
YY_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed" );
if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
{ /* Don't try to fill the buffer, so this is an EOF. */
if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
{
/* We matched a single character, the EOB, so
* treat this as a final EOF.
*/
return EOB_ACT_END_OF_FILE;
}
else
{
/* We matched some text prior to the EOB, first
* process it.
*/
return EOB_ACT_LAST_MATCH;
}
}
/* Try to read more data. */
/* First move last chars to start of buffer. */
number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
else
{
int num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
else
b->yy_buf_size *= 2;
b->yy_ch_buf = (char *)
/* Include room in for 2 EOB chars. */
yyrealloc( (void *) b->yy_ch_buf,
(yy_size_t) (b->yy_buf_size + 2) );
}
else
/* Can't grow it, we don't own it. */
b->yy_ch_buf = NULL;
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR(
"fatal error - scanner input buffer overflow" );
(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
number_to_move - 1;
}
if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
(yy_n_chars), num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
if ( (yy_n_chars) == 0 )
{
if ( number_to_move == YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE;
yyrestart( yyin );
}
else
{
ret_val = EOB_ACT_LAST_MATCH;
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
YY_BUFFER_EOF_PENDING;
}
}
else
ret_val = EOB_ACT_CONTINUE_SCAN;
if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
/* "- 2" to take care of EOB's */
YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
}
(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
return ret_val;
}
/* yy_get_previous_state - get the state just before the EOB char was reached */
static yy_state_type yy_get_previous_state (void)
{
yy_state_type yy_current_state;
char *yy_cp;
yy_current_state = (yy_start);
for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
{
YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
(yy_last_accepting_cpos) = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1509 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
}
return yy_current_state;
}
/* yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
* next_state = yy_try_NUL_trans( current_state );
*/
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
{
int yy_is_jam;
char *yy_cp = (yy_c_buf_p);
YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
(yy_last_accepting_cpos) = yy_cp;
}
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 1509 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
yy_is_jam = (yy_current_state == 1508);
return yy_is_jam ? 0 : yy_current_state;
}
#ifndef YY_NO_UNPUT
#endif
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput (void)
#else
static int input (void)
#endif
{
int c;
*(yy_c_buf_p) = (yy_hold_char);
if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
{
/* yy_c_buf_p now points to the character we want to return.
* If this occurs *before* the EOB characters, then it's a
* valid NUL; if not, then we've hit the end of the buffer.
*/
if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
/* This was really a NUL. */
*(yy_c_buf_p) = '\0';
else
{ /* need more input */
int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
{
case EOB_ACT_LAST_MATCH:
/* This happens because yy_g_n_b()
* sees that we've accumulated a
* token and flags that we need to
* try matching the token before
* proceeding. But for input(),
* there's no matching to consider.
* So convert the EOB_ACT_LAST_MATCH
* to EOB_ACT_END_OF_FILE.
*/
/* Reset buffer status. */
yyrestart( yyin );
/*FALLTHROUGH*/
case EOB_ACT_END_OF_FILE:
{
if ( yywrap( ) )
return 0;
if ( ! (yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
#ifdef __cplusplus
return yyinput();
#else
return input();
#endif
}
case EOB_ACT_CONTINUE_SCAN:
(yy_c_buf_p) = (yytext_ptr) + offset;
break;
}
}
}
c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
*(yy_c_buf_p) = '\0'; /* preserve yytext */
(yy_hold_char) = *++(yy_c_buf_p);
return c;
}
#endif /* ifndef YY_NO_INPUT */
/** Immediately switch to a different input stream.
* @param input_file A readable stream.
*
* @note This function does not reset the start condition to @c INITIAL .
*/
void yyrestart (FILE * input_file )
{
if ( ! YY_CURRENT_BUFFER ){
yyensure_buffer_stack ();
YY_CURRENT_BUFFER_LVALUE =
yy_create_buffer( yyin, YY_BUF_SIZE );
}
yy_init_buffer( YY_CURRENT_BUFFER, input_file );
yy_load_buffer_state( );
}
/** Switch to a different input buffer.
* @param new_buffer The new input buffer.
*
*/
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
{
/* TODO. We should be able to replace this entire function body
* with
* yypop_buffer_state();
* yypush_buffer_state(new_buffer);
*/
yyensure_buffer_stack ();
if ( YY_CURRENT_BUFFER == new_buffer )
return;
if ( YY_CURRENT_BUFFER )
{
/* Flush out information for old buffer. */
*(yy_c_buf_p) = (yy_hold_char);
YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
YY_CURRENT_BUFFER_LVALUE = new_buffer;
yy_load_buffer_state( );
/* We don't actually know whether we did this switch during
* EOF (yywrap()) processing, but the only time this flag
* is looked at is after yywrap() is called, so it's safe
* to go ahead and always set it.
*/
(yy_did_buffer_switch_on_eof) = 1;
}
static void yy_load_buffer_state (void)
{
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
(yy_hold_char) = *(yy_c_buf_p);
}
/** Allocate and initialize an input buffer state.
* @param file A readable stream.
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
*
* @return the allocated buffer state.
*/
YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
{
YY_BUFFER_STATE b;
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_buf_size = size;
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
*/
b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_is_our_buffer = 1;
yy_init_buffer( b, file );
return b;
}
/** Destroy the buffer.
* @param b a buffer created with yy_create_buffer()
*
*/
void yy_delete_buffer (YY_BUFFER_STATE b )
{
if ( ! b )
return;
if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
if ( b->yy_is_our_buffer )
yyfree( (void *) b->yy_ch_buf );
yyfree( (void *) b );
}
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
*/
static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
{
int oerrno = errno;
yy_flush_buffer( b );
b->yy_input_file = file;
b->yy_fill_buffer = 1;
/* If b is the current buffer, then yy_init_buffer was _probably_
* called from yyrestart() or through yy_get_next_buffer.
* In that case, we don't want to reset the lineno or column.
*/
if (b != YY_CURRENT_BUFFER){
b->yy_bs_lineno = 1;
b->yy_bs_column = 0;
}
b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
errno = oerrno;
}
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
* @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
*
*/
void yy_flush_buffer (YY_BUFFER_STATE b )
{
if ( ! b )
return;
b->yy_n_chars = 0;
/* We always need two end-of-buffer characters. The first causes
* a transition to the end-of-buffer state. The second causes
* a jam in that state.
*/
b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
b->yy_buf_pos = &b->yy_ch_buf[0];
b->yy_at_bol = 1;
b->yy_buffer_status = YY_BUFFER_NEW;
if ( b == YY_CURRENT_BUFFER )
yy_load_buffer_state( );
}
/** Pushes the new state onto the stack. The new state becomes
* the current state. This function will allocate the stack
* if necessary.
* @param new_buffer The new state.
*
*/
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
if (new_buffer == NULL)
return;
yyensure_buffer_stack();
/* This block is copied from yy_switch_to_buffer. */
if ( YY_CURRENT_BUFFER )
{
/* Flush out information for old buffer. */
*(yy_c_buf_p) = (yy_hold_char);
YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
/* Only push if top exists. Otherwise, replace top. */
if (YY_CURRENT_BUFFER)
(yy_buffer_stack_top)++;
YY_CURRENT_BUFFER_LVALUE = new_buffer;
/* copied from yy_switch_to_buffer. */
yy_load_buffer_state( );
(yy_did_buffer_switch_on_eof) = 1;
}
/** Removes and deletes the top of the stack, if present.
* The next element becomes the new top.
*
*/
void yypop_buffer_state (void)
{
if (!YY_CURRENT_BUFFER)
return;
yy_delete_buffer(YY_CURRENT_BUFFER );
YY_CURRENT_BUFFER_LVALUE = NULL;
if ((yy_buffer_stack_top) > 0)
--(yy_buffer_stack_top);
if (YY_CURRENT_BUFFER) {
yy_load_buffer_state( );
(yy_did_buffer_switch_on_eof) = 1;
}
}
/* Allocates the stack if it does not exist.
* Guarantees space for at least one push.
*/
static void yyensure_buffer_stack (void)
{
yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
/* First allocation is just for 2 elements, since we don't know if this
* scanner will even need a stack. We use 2 instead of 1 to avoid an
* immediate realloc on the next call.
*/
num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
(yy_buffer_stack_top) = 0;
return;
}
if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
/* Increase the buffer to prepare for a possible push. */
yy_size_t grow_size = 8 /* arbitrary grow size */;
num_to_alloc = (yy_buffer_stack_max) + grow_size;
(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
((yy_buffer_stack),
num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
/* zero only the new slots.*/
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
}
}
/** Setup the input buffer state to scan directly from a user-specified character buffer.
* @param base the character buffer
* @param size the size in bytes of the character buffer
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
{
YY_BUFFER_STATE b;
if ( size < 2 ||
base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size-1] != YY_END_OF_BUFFER_CHAR )
/* They forgot to leave room for the EOB's. */
return NULL;
b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
b->yy_buf_pos = b->yy_ch_buf = base;
b->yy_is_our_buffer = 0;
b->yy_input_file = NULL;
b->yy_n_chars = b->yy_buf_size;
b->yy_is_interactive = 0;
b->yy_at_bol = 1;
b->yy_fill_buffer = 0;
b->yy_buffer_status = YY_BUFFER_NEW;
yy_switch_to_buffer( b );
return b;
}
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
* @param yystr a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
* yy_scan_bytes() instead.
*/
YY_BUFFER_STATE yy_scan_string (const char * yystr )
{
return yy_scan_bytes( yystr, (int) strlen(yystr) );
}
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
int i;
/* Get memory for full buffer, including space for trailing EOB's. */
n = (yy_size_t) (_yybytes_len + 2);
buf = (char *) yyalloc( n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for ( i = 0; i < _yybytes_len; ++i )
buf[i] = yybytes[i];
buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer( buf, n );
if ( ! b )
YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
/* It's okay to grow etc. this buffer, and we should throw it
* away when we're done.
*/
b->yy_is_our_buffer = 1;
return b;
}
#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif
static void yynoreturn yy_fatal_error (const char* msg )
{
fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
/* Redefine yyless() so it works in section 3 code. */
#undef yyless
#define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
int yyless_macro_arg = (n); \
YY_LESS_LINENO(yyless_macro_arg);\
yytext[yyleng] = (yy_hold_char); \
(yy_c_buf_p) = yytext + yyless_macro_arg; \
(yy_hold_char) = *(yy_c_buf_p); \
*(yy_c_buf_p) = '\0'; \
yyleng = yyless_macro_arg; \
} \
while ( 0 )
/* Accessor methods (get/set functions) to struct members. */
/** Get the current line number.
*
*/
int yyget_lineno (void)
{
return yylineno;
}
/** Get the input stream.
*
*/
FILE *yyget_in (void)
{
return yyin;
}
/** Get the output stream.
*
*/
FILE *yyget_out (void)
{
return yyout;
}
/** Get the length of the current token.
*
*/
int yyget_leng (void)
{
return yyleng;
}
/** Get the current token.
*
*/
char *yyget_text (void)
{
return yytext;
}
/** Set the current line number.
* @param _line_number line number
*
*/
void yyset_lineno (int _line_number )
{
yylineno = _line_number;
}
/** Set the input stream. This does not discard the current
* input buffer.
* @param _in_str A readable stream.
*
* @see yy_switch_to_buffer
*/
void yyset_in (FILE * _in_str )
{
yyin = _in_str ;
}
void yyset_out (FILE * _out_str )
{
yyout = _out_str ;
}
int yyget_debug (void)
{
return yy_flex_debug;
}
void yyset_debug (int _bdebug )
{
yy_flex_debug = _bdebug ;
}
static int yy_init_globals (void)
{
/* Initialization is the same as for the non-reentrant scanner.
* This function is called from yylex_destroy(), so don't allocate here.
*/
(yy_buffer_stack) = NULL;
(yy_buffer_stack_top) = 0;
(yy_buffer_stack_max) = 0;
(yy_c_buf_p) = NULL;
(yy_init) = 0;
(yy_start) = 0;
/* Defined in main.c */
#ifdef YY_STDINIT
yyin = stdin;
yyout = stdout;
#else
yyin = NULL;
yyout = NULL;
#endif
/* For future reference: Set errno on error, since we are called by
* yylex_init()
*/
return 0;
}
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy (void)
{
/* Pop the buffer stack, destroying each element. */
while(YY_CURRENT_BUFFER){
yy_delete_buffer( YY_CURRENT_BUFFER );
YY_CURRENT_BUFFER_LVALUE = NULL;
yypop_buffer_state();
}
/* Destroy the stack itself. */
yyfree((yy_buffer_stack) );
(yy_buffer_stack) = NULL;
/* Reset the globals. This is important in a non-reentrant scanner so the next time
* yylex() is called, initialization will occur. */
yy_init_globals( );
return 0;
}
/*
* Internal utility routines.
*/
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, const char * s2, int n )
{
int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#endif
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (const char * s )
{
int n;
for ( n = 0; s[n]; ++n )
;
return n;
}
#endif
void *yyalloc (yy_size_t size )
{
return malloc(size);
}
void *yyrealloc (void * ptr, yy_size_t size )
{
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
* because both ANSI C and C++ allow castless assignment from
* any pointer type to void*, and deal with argument conversions
* as though doing an assignment.
*/
return realloc(ptr, size);
}
void yyfree (void * ptr )
{
free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
}
#define YYTABLES_NAME "yytables"
#line 420 "configlexer.lex"
nsd-4.12.0/config.guess 0000700 0001750 0001750 00000142676 15002373060 014320 0 ustar mozzie mozzie #! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2023-08-22'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see .
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to .
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX. However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system '$me' is run on.
Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
# Just in case it came from the environment.
GUESS=
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
# use 'HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
tmp=
# shellcheck disable=SC2172
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
set_cc_for_build() {
# prevent multiple calls if $tmp is already set
test "$tmp" && return 0
: "${TMPDIR=/tmp}"
# shellcheck disable=SC2039,SC3028
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
dummy=$tmp/dummy
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
,,) echo "int x;" > "$dummy.c"
for driver in cc gcc c89 c99 ; do
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
CC_FOR_BUILD=$driver
break
fi
done
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac
}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
LIBC=unknown
set_cc_for_build
cat <<-EOF > "$dummy.c"
#if defined(__ANDROID__)
LIBC=android
#else
#include
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#elif defined(__GLIBC__)
LIBC=gnu
#else
#include
/* First heuristic to detect musl libc. */
#ifdef __DEFINED_va_list
LIBC=musl
#endif
#endif
#endif
EOF
cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
eval "$cc_set_libc"
# Second heuristic to detect musl libc.
if [ "$LIBC" = unknown ] &&
command -v ldd >/dev/null &&
ldd --version 2>&1 | grep -q ^musl; then
LIBC=musl
fi
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
if [ "$LIBC" = unknown ]; then
LIBC=gnu
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
/usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
case $UNAME_MACHINE_ARCH in
aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
*) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
case $UNAME_MACHINE_ARCH in
earm*)
os=netbsdelf
;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# Determine ABI tags.
case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
*)
release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
GUESS=$machine-${os}${release}${abi-}
;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
;;
*:SecBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
;;
*:MidnightBSD:*:*)
GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
;;
*:ekkoBSD:*:*)
GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
;;
*:SolidBSD:*:*)
GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
;;
*:OS108:*:*)
GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
;;
macppc:MirBSD:*:*)
GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
;;
*:MirBSD:*:*)
GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
;;
*:Sortix:*:*)
GUESS=$UNAME_MACHINE-unknown-sortix
;;
*:Twizzler:*:*)
GUESS=$UNAME_MACHINE-unknown-twizzler
;;
*:Redox:*:*)
GUESS=$UNAME_MACHINE-unknown-redox
;;
mips:OSF1:*.*)
GUESS=mips-dec-osf1
;;
alpha:OSF1:*:*)
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case $ALPHA_CPU_TYPE in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
UNAME_MACHINE=alpha ;;
"EV5 (21164)")
UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
;;
Amiga*:UNIX_System_V:4.0:*)
GUESS=m68k-unknown-sysv4
;;
*:[Aa]miga[Oo][Ss]:*:*)
GUESS=$UNAME_MACHINE-unknown-amigaos
;;
*:[Mm]orph[Oo][Ss]:*:*)
GUESS=$UNAME_MACHINE-unknown-morphos
;;
*:OS/390:*:*)
GUESS=i370-ibm-openedition
;;
*:z/VM:*:*)
GUESS=s390-ibm-zvmoe
;;
*:OS400:*:*)
GUESS=powerpc-ibm-os400
;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
GUESS=arm-acorn-riscix$UNAME_RELEASE
;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
GUESS=arm-unknown-riscos
;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
GUESS=hppa1.1-hitachi-hiuxmpp
;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
case `(/bin/universe) 2>/dev/null` in
att) GUESS=pyramid-pyramid-sysv3 ;;
*) GUESS=pyramid-pyramid-bsd ;;
esac
;;
NILE*:*:*:dcosx)
GUESS=pyramid-pyramid-svr4
;;
DRS?6000:unix:4.0:6*)
GUESS=sparc-icl-nx6
;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) GUESS=sparc-icl-nx7 ;;
esac
;;
s390x:SunOS:*:*)
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
;;
sun4H:SunOS:5.*:*)
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=sparc-hal-solaris2$SUN_REL
;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=sparc-sun-solaris2$SUN_REL
;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
GUESS=i386-pc-auroraux$UNAME_RELEASE
;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
fi
fi
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=sparc-sun-solaris3$SUN_REL
;;
sun4*:SunOS:*:*)
case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like '4.1.3-JL'.
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
GUESS=sparc-sun-sunos$SUN_REL
;;
sun3*:SunOS:*:*)
GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
case `/bin/arch` in
sun3)
GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
;;
aushp:SunOS:*:*)
GUESS=sparc-auspex-sunos$UNAME_RELEASE
;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
GUESS=m68k-atari-mint$UNAME_RELEASE
;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
GUESS=m68k-atari-mint$UNAME_RELEASE
;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
GUESS=m68k-atari-mint$UNAME_RELEASE
;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
GUESS=m68k-milan-mint$UNAME_RELEASE
;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
GUESS=m68k-hades-mint$UNAME_RELEASE
;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
GUESS=m68k-unknown-mint$UNAME_RELEASE
;;
m68k:machten:*:*)
GUESS=m68k-apple-machten$UNAME_RELEASE
;;
powerpc:machten:*:*)
GUESS=powerpc-apple-machten$UNAME_RELEASE
;;
RISC*:Mach:*:*)
GUESS=mips-dec-mach_bsd4.3
;;
RISC*:ULTRIX:*:*)
GUESS=mips-dec-ultrix$UNAME_RELEASE
;;
VAX*:ULTRIX*:*:*)
GUESS=vax-dec-ultrix$UNAME_RELEASE
;;
2020:CLIX:*:* | 2430:CLIX:*:*)
GUESS=clipper-intergraph-clix$UNAME_RELEASE
;;
mips:*:*:UMIPS | mips:*:*:RISCos)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
GUESS=mips-mips-riscos$UNAME_RELEASE
;;
Motorola:PowerMAX_OS:*:*)
GUESS=powerpc-motorola-powermax
;;
Motorola:*:4.3:PL8-*)
GUESS=powerpc-harris-powermax
;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
GUESS=powerpc-harris-powermax
;;
Night_Hawk:Power_UNIX:*:*)
GUESS=powerpc-harris-powerunix
;;
m88k:CX/UX:7*:*)
GUESS=m88k-harris-cxux7
;;
m88k:*:4*:R4*)
GUESS=m88k-motorola-sysv4
;;
m88k:*:3*:R3*)
GUESS=m88k-motorola-sysv3
;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
test "$TARGET_BINARY_INTERFACE"x = x
then
GUESS=m88k-dg-dgux$UNAME_RELEASE
else
GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
GUESS=i586-dg-dgux$UNAME_RELEASE
fi
;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
GUESS=m88k-dolphin-sysv3
;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
GUESS=m88k-motorola-sysv3
;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
GUESS=m88k-tektronix-sysv3
;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
GUESS=m68k-tektronix-bsd
;;
*:IRIX*:*:*)
IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
GUESS=mips-sgi-irix$IRIX_REL
;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
GUESS=i386-ibm-aix
;;
ia64:AIX:*:*)
if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
GUESS=$SYSTEM_NAME
else
GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
GUESS=rs6000-ibm-aix3.2.4
else
GUESS=rs6000-ibm-aix3.2
fi
;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if test -x /usr/bin/lslpp ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
GUESS=$IBM_ARCH-ibm-aix$IBM_REV
;;
*:AIX:*:*)
GUESS=rs6000-ibm-aix
;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
GUESS=romp-ibm-bsd4.4
;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
GUESS=rs6000-bull-bosx
;;
DPX/2?00:B.O.S.:*:*)
GUESS=m68k-bull-sysv3
;;
9000/[34]??:4.3bsd:1.*:*)
GUESS=m68k-hp-bsd
;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
GUESS=m68k-hp-bsd4.4
;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
case $UNAME_MACHINE in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case $sc_cpu_version in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case $sc_kernel_bits in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include
#include
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH=hppa2.0w
else
HP_ARCH=hppa64
fi
fi
GUESS=$HP_ARCH-hp-hpux$HPUX_REV
;;
ia64:HP-UX:*:*)
HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
GUESS=ia64-hp-hpux$HPUX_REV
;;
3050*:HI-UX:*:*)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
#include
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
GUESS=unknown-hitachi-hiuxwe2
;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
GUESS=hppa1.1-hp-bsd
;;
9000/8??:4.3bsd:*:*)
GUESS=hppa1.0-hp-bsd
;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
GUESS=hppa1.0-hp-mpeix
;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
GUESS=hppa1.1-hp-osf
;;
hp8??:OSF1:*:*)
GUESS=hppa1.0-hp-osf
;;
i*86:OSF1:*:*)
if test -x /usr/sbin/sysversion ; then
GUESS=$UNAME_MACHINE-unknown-osf1mk
else
GUESS=$UNAME_MACHINE-unknown-osf1
fi
;;
parisc*:Lites*:*:*)
GUESS=hppa1.1-hp-lites
;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
GUESS=c1-convex-bsd
;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
GUESS=c34-convex-bsd
;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
GUESS=c38-convex-bsd
;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
GUESS=c4-convex-bsd
;;
CRAY*Y-MP:*:*:*)
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
GUESS=ymp-cray-unicos$CRAY_REL
;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
GUESS=t90-cray-unicos$CRAY_REL
;;
CRAY*T3E:*:*:*)
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
GUESS=alphaev5-cray-unicosmk$CRAY_REL
;;
CRAY*SV1:*:*:*)
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
GUESS=sv1-cray-unicos$CRAY_REL
;;
*:UNICOS/mp:*:*)
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
GUESS=craynv-cray-unicosmp$CRAY_REL
;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
;;
sparc*:BSD/OS:*:*)
GUESS=sparc-unknown-bsdi$UNAME_RELEASE
;;
*:BSD/OS:*:*)
GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
;;
arm:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
else
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
fi
;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
;;
i*:CYGWIN*:*)
GUESS=$UNAME_MACHINE-pc-cygwin
;;
*:MINGW64*:*)
GUESS=$UNAME_MACHINE-pc-mingw64
;;
*:MINGW*:*)
GUESS=$UNAME_MACHINE-pc-mingw32
;;
*:MSYS*:*)
GUESS=$UNAME_MACHINE-pc-msys
;;
i*:PW*:*)
GUESS=$UNAME_MACHINE-pc-pw32
;;
*:SerenityOS:*:*)
GUESS=$UNAME_MACHINE-pc-serenity
;;
*:Interix*:*)
case $UNAME_MACHINE in
x86)
GUESS=i586-pc-interix$UNAME_RELEASE
;;
authenticamd | genuineintel | EM64T)
GUESS=x86_64-unknown-interix$UNAME_RELEASE
;;
IA64)
GUESS=ia64-unknown-interix$UNAME_RELEASE
;;
esac ;;
i*:UWIN*:*)
GUESS=$UNAME_MACHINE-pc-uwin
;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
GUESS=x86_64-pc-cygwin
;;
prep*:SunOS:5.*:*)
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
GUESS=powerpcle-unknown-solaris2$SUN_REL
;;
*:GNU:*:*)
# the GNU system
GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
;;
x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
;;
*:[Mm]anagarm:*:*)
GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
;;
*:Minix:*:*)
GUESS=$UNAME_MACHINE-unknown-minix
;;
aarch64:Linux:*:*)
set_cc_for_build
CPU=$UNAME_MACHINE
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
ABI=64
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __ARM_EABI__
#ifdef __ARM_PCS_VFP
ABI=eabihf
#else
ABI=eabi
#endif
#endif
EOF
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
eval "$cc_set_abi"
case $ABI in
eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
esac
fi
GUESS=$CPU-unknown-linux-$LIBCABI
;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
arm*:Linux:*:*)
set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
;;
avr32*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
cris:Linux:*:*)
GUESS=$UNAME_MACHINE-axis-linux-$LIBC
;;
crisv32:Linux:*:*)
GUESS=$UNAME_MACHINE-axis-linux-$LIBC
;;
e2k:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
frv:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
hexagon:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
i*86:Linux:*:*)
GUESS=$UNAME_MACHINE-pc-linux-$LIBC
;;
ia64:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
k1om:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
kvx:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
kvx:cos:*:*)
GUESS=$UNAME_MACHINE-unknown-cos
;;
kvx:mbr:*:*)
GUESS=$UNAME_MACHINE-unknown-mbr
;;
loongarch32:Linux:*:* | loongarch64:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
m32r*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
m68*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
mips:Linux:*:* | mips64:Linux:*:*)
set_cc_for_build
IS_GLIBC=0
test x"${LIBC}" = xgnu && IS_GLIBC=1
sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
#undef mips
#undef mipsel
#undef mips64
#undef mips64el
#if ${IS_GLIBC} && defined(_ABI64)
LIBCABI=gnuabi64
#else
#if ${IS_GLIBC} && defined(_ABIN32)
LIBCABI=gnuabin32
#else
LIBCABI=${LIBC}
#endif
#endif
#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa64r6
#else
#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
CPU=mipsisa32r6
#else
#if defined(__mips64)
CPU=mips64
#else
CPU=mips
#endif
#endif
#endif
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
MIPS_ENDIAN=
#else
MIPS_ENDIAN=
#endif
#endif
EOF
cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
eval "$cc_set_vars"
test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
openrisc*:Linux:*:*)
GUESS=or1k-unknown-linux-$LIBC
;;
or32:Linux:*:* | or1k*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
padre:Linux:*:*)
GUESS=sparc-unknown-linux-$LIBC
;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
GUESS=hppa64-unknown-linux-$LIBC
;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
*) GUESS=hppa-unknown-linux-$LIBC ;;
esac
;;
ppc64:Linux:*:*)
GUESS=powerpc64-unknown-linux-$LIBC
;;
ppc:Linux:*:*)
GUESS=powerpc-unknown-linux-$LIBC
;;
ppc64le:Linux:*:*)
GUESS=powerpc64le-unknown-linux-$LIBC
;;
ppcle:Linux:*:*)
GUESS=powerpcle-unknown-linux-$LIBC
;;
riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
s390:Linux:*:* | s390x:Linux:*:*)
GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
;;
sh64*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
sh*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
sparc:Linux:*:* | sparc64:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
tile*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
vax:Linux:*:*)
GUESS=$UNAME_MACHINE-dec-linux-$LIBC
;;
x86_64:Linux:*:*)
set_cc_for_build
CPU=$UNAME_MACHINE
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
ABI=64
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __i386__
ABI=x86
#else
#ifdef __ILP32__
ABI=x32
#endif
#endif
EOF
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
eval "$cc_set_abi"
case $ABI in
x86) CPU=i686 ;;
x32) LIBCABI=${LIBC}x32 ;;
esac
fi
GUESS=$CPU-pc-linux-$LIBCABI
;;
xtensa*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
GUESS=i386-sequent-sysv4
;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
;;
i*86:OS/2:*:*)
# If we were able to find 'uname', then EMX Unix compatibility
# is probably installed.
GUESS=$UNAME_MACHINE-pc-os2-emx
;;
i*86:XTS-300:*:STOP)
GUESS=$UNAME_MACHINE-unknown-stop
;;
i*86:atheos:*:*)
GUESS=$UNAME_MACHINE-unknown-atheos
;;
i*86:syllable:*:*)
GUESS=$UNAME_MACHINE-pc-syllable
;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
GUESS=i386-unknown-lynxos$UNAME_RELEASE
;;
i*86:*DOS:*:*)
GUESS=$UNAME_MACHINE-pc-msdosdjgpp
;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
GUESS=$UNAME_MACHINE-pc-sysv32
fi
;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
GUESS=i586-pc-msdosdjgpp
;;
Intel:Mach:3*:*)
GUESS=i386-pc-mach3
;;
paragon:*:*:*)
GUESS=i860-intel-osf1
;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
;;
mini*:CTIX:SYS*5:*)
# "miniframe"
GUESS=m68010-convergent-sysv
;;
mc68k:UNIX:SYSTEM5:3.51m)
GUESS=m68k-convergent-sysv
;;
M680?0:D-NIX:5.3:*)
GUESS=m68k-diab-dnix
;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
GUESS=m68k-unknown-lynxos$UNAME_RELEASE
;;
mc68030:UNIX_System_V:4.*:*)
GUESS=m68k-atari-sysv4
;;
TSUNAMI:LynxOS:2.*:*)
GUESS=sparc-unknown-lynxos$UNAME_RELEASE
;;
rs6000:LynxOS:2.*:*)
GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
;;
SM[BE]S:UNIX_SV:*:*)
GUESS=mips-dde-sysv$UNAME_RELEASE
;;
RM*:ReliantUNIX-*:*:*)
GUESS=mips-sni-sysv4
;;
RM*:SINIX-*:*:*)
GUESS=mips-sni-sysv4
;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
GUESS=$UNAME_MACHINE-sni-sysv4
else
GUESS=ns32k-sni-sysv
fi
;;
PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
# says
GUESS=i586-unisys-sysv4
;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes .
# How about differentiating between stratus architectures? -djm
GUESS=hppa1.1-stratus-sysv4
;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
GUESS=i860-stratus-sysv4
;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
GUESS=$UNAME_MACHINE-stratus-vos
;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
GUESS=hppa1.1-stratus-vos
;;
mc68*:A/UX:*:*)
GUESS=m68k-apple-aux$UNAME_RELEASE
;;
news*:NEWS-OS:6*:*)
GUESS=mips-sony-newsos6
;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if test -d /usr/nec; then
GUESS=mips-nec-sysv$UNAME_RELEASE
else
GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
GUESS=powerpc-be-beos
;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
GUESS=powerpc-apple-beos
;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
GUESS=i586-pc-beos
;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
GUESS=i586-pc-haiku
;;
ppc:Haiku:*:*) # Haiku running on Apple PowerPC
GUESS=powerpc-apple-haiku
;;
*:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
GUESS=$UNAME_MACHINE-unknown-haiku
;;
SX-4:SUPER-UX:*:*)
GUESS=sx4-nec-superux$UNAME_RELEASE
;;
SX-5:SUPER-UX:*:*)
GUESS=sx5-nec-superux$UNAME_RELEASE
;;
SX-6:SUPER-UX:*:*)
GUESS=sx6-nec-superux$UNAME_RELEASE
;;
SX-7:SUPER-UX:*:*)
GUESS=sx7-nec-superux$UNAME_RELEASE
;;
SX-8:SUPER-UX:*:*)
GUESS=sx8-nec-superux$UNAME_RELEASE
;;
SX-8R:SUPER-UX:*:*)
GUESS=sx8r-nec-superux$UNAME_RELEASE
;;
SX-ACE:SUPER-UX:*:*)
GUESS=sxace-nec-superux$UNAME_RELEASE
;;
Power*:Rhapsody:*:*)
GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
;;
*:Rhapsody:*:*)
GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
;;
arm64:Darwin:*:*)
GUESS=aarch64-apple-darwin$UNAME_RELEASE
;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
unknown) UNAME_PROCESSOR=powerpc ;;
esac
if command -v xcode-select > /dev/null 2> /dev/null && \
! xcode-select --print-path > /dev/null 2> /dev/null ; then
# Avoid executing cc if there is no toolchain installed as
# cc will be a stub that puts up a graphical alert
# prompting the user to install developer tools.
CC_FOR_BUILD=no_compiler_found
else
set_cc_for_build
fi
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
case $UNAME_PROCESSOR in
i386) UNAME_PROCESSOR=x86_64 ;;
powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac
fi
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_PPC >/dev/null
then
UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
# uname -m returns i386 or x86_64
UNAME_PROCESSOR=$UNAME_MACHINE
fi
GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
;;
*:QNX:*:4*)
GUESS=i386-pc-qnx
;;
NEO-*:NONSTOP_KERNEL:*:*)
GUESS=neo-tandem-nsk$UNAME_RELEASE
;;
NSE-*:NONSTOP_KERNEL:*:*)
GUESS=nse-tandem-nsk$UNAME_RELEASE
;;
NSR-*:NONSTOP_KERNEL:*:*)
GUESS=nsr-tandem-nsk$UNAME_RELEASE
;;
NSV-*:NONSTOP_KERNEL:*:*)
GUESS=nsv-tandem-nsk$UNAME_RELEASE
;;
NSX-*:NONSTOP_KERNEL:*:*)
GUESS=nsx-tandem-nsk$UNAME_RELEASE
;;
*:NonStop-UX:*:*)
GUESS=mips-compaq-nonstopux
;;
BS2000:POSIX*:*:*)
GUESS=bs2000-siemens-sysv
;;
DS/*:UNIX_System_V:*:*)
GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
elif test "x${cputype-}" != x; then
UNAME_MACHINE=$cputype
fi
GUESS=$UNAME_MACHINE-unknown-plan9
;;
*:TOPS-10:*:*)
GUESS=pdp10-unknown-tops10
;;
*:TENEX:*:*)
GUESS=pdp10-unknown-tenex
;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
GUESS=pdp10-dec-tops20
;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
GUESS=pdp10-xkl-tops20
;;
*:TOPS-20:*:*)
GUESS=pdp10-unknown-tops20
;;
*:ITS:*:*)
GUESS=pdp10-unknown-its
;;
SEI:*:*:SEIUX)
GUESS=mips-sei-seiux$UNAME_RELEASE
;;
*:DragonFly:*:*)
DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case $UNAME_MACHINE in
A*) GUESS=alpha-dec-vms ;;
I*) GUESS=ia64-dec-vms ;;
V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
GUESS=i386-pc-xenix
;;
i*86:skyos:*:*)
SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
;;
i*86:rdos:*:*)
GUESS=$UNAME_MACHINE-pc-rdos
;;
i*86:Fiwix:*:*)
GUESS=$UNAME_MACHINE-pc-fiwix
;;
*:AROS:*:*)
GUESS=$UNAME_MACHINE-unknown-aros
;;
x86_64:VMkernel:*:*)
GUESS=$UNAME_MACHINE-unknown-esx
;;
amd64:Isilon\ OneFS:*:*)
GUESS=x86_64-unknown-onefs
;;
*:Unleashed:*:*)
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
;;
esac
# Do we have a guess based on uname results?
if test "x$GUESS" != x; then
echo "$GUESS"
exit
fi
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" <
#include
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#include
#if defined(_SIZE_T_) || defined(SIGLOST)
#include
#endif
#endif
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
#if !defined (ultrix)
#include
#if defined (BSD)
#if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
#else
#if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
#else
printf ("vax-dec-bsd\n"); exit (0);
#endif
#endif
#else
printf ("vax-dec-bsd\n"); exit (0);
#endif
#else
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname un;
uname (&un);
printf ("vax-dec-ultrix%s\n", un.release); exit (0);
#else
printf ("vax-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
#if defined(_SIZE_T_) || defined(SIGLOST)
struct utsname *un;
uname (&un);
printf ("mips-dec-ultrix%s\n", un.release); exit (0);
#else
printf ("mips-dec-ultrix\n"); exit (0);
#endif
#endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
echo "$0: unable to guess system type" >&2
case $UNAME_MACHINE:$UNAME_SYSTEM in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <&2 <&2 </dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = "$UNAME_MACHINE"
UNAME_RELEASE = "$UNAME_RELEASE"
UNAME_SYSTEM = "$UNAME_SYSTEM"
UNAME_VERSION = "$UNAME_VERSION"
EOF
fi
exit 1
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
nsd-4.12.0/config.sub 0000700 0001750 0001750 00000107202 15002373060 013745 0 ustar mozzie mozzie #! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2023 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2023-09-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see .
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches to .
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX. However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.sub ($timestamp)
Copyright 1992-2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
echo "$1"
exit ;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Split fields of configuration type
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <&2
exit 1
;;
*-*-*-*)
basic_machine=$field1-$field2
basic_os=$field3-$field4
;;
*-*-*)
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
# parts
maybe_os=$field2-$field3
case $maybe_os in
nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
| windows-* )
basic_machine=$field1
basic_os=$maybe_os
;;
android-linux)
basic_machine=$field1-unknown
basic_os=linux-android
;;
*)
basic_machine=$field1-$field2
basic_os=$field3
;;
esac
;;
*-*)
# A lone config we happen to match not fitting any pattern
case $field1-$field2 in
decstation-3100)
basic_machine=mips-dec
basic_os=
;;
*-*)
# Second component is usually, but not always the OS
case $field2 in
# Prevent following clause from handling this valid os
sun*os*)
basic_machine=$field1
basic_os=$field2
;;
zephyr*)
basic_machine=$field1-unknown
basic_os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
| unicom* | ibm* | next | hp | isi* | apollo | altos* \
| convergent* | ncr* | news | 32* | 3600* | 3100* \
| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
| ultra | tti* | harris | dolphin | highlevel | gould \
| cbm | ns | masscomp | apple | axis | knuth | cray \
| microblaze* | sim | cisco \
| oki | wec | wrs | winbond)
basic_machine=$field1-$field2
basic_os=
;;
*)
basic_machine=$field1
basic_os=$field2
;;
esac
;;
esac
;;
*)
# Convert single-component short-hands not valid as part of
# multi-component configurations.
case $field1 in
386bsd)
basic_machine=i386-pc
basic_os=bsd
;;
a29khif)
basic_machine=a29k-amd
basic_os=udi
;;
adobe68k)
basic_machine=m68010-adobe
basic_os=scout
;;
alliant)
basic_machine=fx80-alliant
basic_os=
;;
altos | altos3068)
basic_machine=m68k-altos
basic_os=
;;
am29k)
basic_machine=a29k-none
basic_os=bsd
;;
amdahl)
basic_machine=580-amdahl
basic_os=sysv
;;
amiga)
basic_machine=m68k-unknown
basic_os=
;;
amigaos | amigados)
basic_machine=m68k-unknown
basic_os=amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
basic_os=sysv4
;;
apollo68)
basic_machine=m68k-apollo
basic_os=sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
basic_os=bsd
;;
aros)
basic_machine=i386-pc
basic_os=aros
;;
aux)
basic_machine=m68k-apple
basic_os=aux
;;
balance)
basic_machine=ns32k-sequent
basic_os=dynix
;;
blackfin)
basic_machine=bfin-unknown
basic_os=linux
;;
cegcc)
basic_machine=arm-unknown
basic_os=cegcc
;;
convex-c1)
basic_machine=c1-convex
basic_os=bsd
;;
convex-c2)
basic_machine=c2-convex
basic_os=bsd
;;
convex-c32)
basic_machine=c32-convex
basic_os=bsd
;;
convex-c34)
basic_machine=c34-convex
basic_os=bsd
;;
convex-c38)
basic_machine=c38-convex
basic_os=bsd
;;
cray)
basic_machine=j90-cray
basic_os=unicos
;;
crds | unos)
basic_machine=m68k-crds
basic_os=
;;
da30)
basic_machine=m68k-da30
basic_os=
;;
decstation | pmax | pmin | dec3100 | decstatn)
basic_machine=mips-dec
basic_os=
;;
delta88)
basic_machine=m88k-motorola
basic_os=sysv3
;;
dicos)
basic_machine=i686-pc
basic_os=dicos
;;
djgpp)
basic_machine=i586-pc
basic_os=msdosdjgpp
;;
ebmon29k)
basic_machine=a29k-amd
basic_os=ebmon
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
basic_os=ose
;;
gmicro)
basic_machine=tron-gmicro
basic_os=sysv
;;
go32)
basic_machine=i386-pc
basic_os=go32
;;
h8300hms)
basic_machine=h8300-hitachi
basic_os=hms
;;
h8300xray)
basic_machine=h8300-hitachi
basic_os=xray
;;
h8500hms)
basic_machine=h8500-hitachi
basic_os=hms
;;
harris)
basic_machine=m88k-harris
basic_os=sysv3
;;
hp300 | hp300hpux)
basic_machine=m68k-hp
basic_os=hpux
;;
hp300bsd)
basic_machine=m68k-hp
basic_os=bsd
;;
hppaosf)
basic_machine=hppa1.1-hp
basic_os=osf
;;
hppro)
basic_machine=hppa1.1-hp
basic_os=proelf
;;
i386mach)
basic_machine=i386-mach
basic_os=mach
;;
isi68 | isi)
basic_machine=m68k-isi
basic_os=sysv
;;
m68knommu)
basic_machine=m68k-unknown
basic_os=linux
;;
magnum | m3230)
basic_machine=mips-mips
basic_os=sysv
;;
merlin)
basic_machine=ns32k-utek
basic_os=sysv
;;
mingw64)
basic_machine=x86_64-pc
basic_os=mingw64
;;
mingw32)
basic_machine=i686-pc
basic_os=mingw32
;;
mingw32ce)
basic_machine=arm-unknown
basic_os=mingw32ce
;;
monitor)
basic_machine=m68k-rom68k
basic_os=coff
;;
morphos)
basic_machine=powerpc-unknown
basic_os=morphos
;;
moxiebox)
basic_machine=moxie-unknown
basic_os=moxiebox
;;
msdos)
basic_machine=i386-pc
basic_os=msdos
;;
msys)
basic_machine=i686-pc
basic_os=msys
;;
mvs)
basic_machine=i370-ibm
basic_os=mvs
;;
nacl)
basic_machine=le32-unknown
basic_os=nacl
;;
ncr3000)
basic_machine=i486-ncr
basic_os=sysv4
;;
netbsd386)
basic_machine=i386-pc
basic_os=netbsd
;;
netwinder)
basic_machine=armv4l-rebel
basic_os=linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
basic_os=newsos
;;
news1000)
basic_machine=m68030-sony
basic_os=newsos
;;
necv70)
basic_machine=v70-nec
basic_os=sysv
;;
nh3000)
basic_machine=m68k-harris
basic_os=cxux
;;
nh[45]000)
basic_machine=m88k-harris
basic_os=cxux
;;
nindy960)
basic_machine=i960-intel
basic_os=nindy
;;
mon960)
basic_machine=i960-intel
basic_os=mon960
;;
nonstopux)
basic_machine=mips-compaq
basic_os=nonstopux
;;
os400)
basic_machine=powerpc-ibm
basic_os=os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
basic_os=ose
;;
os68k)
basic_machine=m68k-none
basic_os=os68k
;;
paragon)
basic_machine=i860-intel
basic_os=osf
;;
parisc)
basic_machine=hppa-unknown
basic_os=linux
;;
psp)
basic_machine=mipsallegrexel-sony
basic_os=psp
;;
pw32)
basic_machine=i586-unknown
basic_os=pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
basic_os=rdos
;;
rdos32)
basic_machine=i386-pc
basic_os=rdos
;;
rom68k)
basic_machine=m68k-rom68k
basic_os=coff
;;
sa29200)
basic_machine=a29k-amd
basic_os=udi
;;
sei)
basic_machine=mips-sei
basic_os=seiux
;;
sequent)
basic_machine=i386-sequent
basic_os=
;;
sps7)
basic_machine=m68k-bull
basic_os=sysv2
;;
st2000)
basic_machine=m68k-tandem
basic_os=
;;
stratus)
basic_machine=i860-stratus
basic_os=sysv4
;;
sun2)
basic_machine=m68000-sun
basic_os=
;;
sun2os3)
basic_machine=m68000-sun
basic_os=sunos3
;;
sun2os4)
basic_machine=m68000-sun
basic_os=sunos4
;;
sun3)
basic_machine=m68k-sun
basic_os=
;;
sun3os3)
basic_machine=m68k-sun
basic_os=sunos3
;;
sun3os4)
basic_machine=m68k-sun
basic_os=sunos4
;;
sun4)
basic_machine=sparc-sun
basic_os=
;;
sun4os3)
basic_machine=sparc-sun
basic_os=sunos3
;;
sun4os4)
basic_machine=sparc-sun
basic_os=sunos4
;;
sun4sol2)
basic_machine=sparc-sun
basic_os=solaris2
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
basic_os=
;;
sv1)
basic_machine=sv1-cray
basic_os=unicos
;;
symmetry)
basic_machine=i386-sequent
basic_os=dynix
;;
t3e)
basic_machine=alphaev5-cray
basic_os=unicos
;;
t90)
basic_machine=t90-cray
basic_os=unicos
;;
toad1)
basic_machine=pdp10-xkl
basic_os=tops20
;;
tpf)
basic_machine=s390x-ibm
basic_os=tpf
;;
udi29k)
basic_machine=a29k-amd
basic_os=udi
;;
ultra3)
basic_machine=a29k-nyu
basic_os=sym1
;;
v810 | necv810)
basic_machine=v810-nec
basic_os=none
;;
vaxv)
basic_machine=vax-dec
basic_os=sysv
;;
vms)
basic_machine=vax-dec
basic_os=vms
;;
vsta)
basic_machine=i386-pc
basic_os=vsta
;;
vxworks960)
basic_machine=i960-wrs
basic_os=vxworks
;;
vxworks68)
basic_machine=m68k-wrs
basic_os=vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
basic_os=vxworks
;;
xbox)
basic_machine=i686-pc
basic_os=mingw32
;;
ymp)
basic_machine=ymp-cray
basic_os=unicos
;;
*)
basic_machine=$1
basic_os=
;;
esac
;;
esac
# Decode 1-component or ad-hoc basic machines
case $basic_machine in
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
cpu=hppa1.1
vendor=winbond
;;
op50n)
cpu=hppa1.1
vendor=oki
;;
op60c)
cpu=hppa1.1
vendor=oki
;;
ibm*)
cpu=i370
vendor=ibm
;;
orion105)
cpu=clipper
vendor=highlevel
;;
mac | mpw | mac-mpw)
cpu=m68k
vendor=apple
;;
pmac | pmac-mpw)
cpu=powerpc
vendor=apple
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
cpu=m68000
vendor=att
;;
3b*)
cpu=we32k
vendor=att
;;
bluegene*)
cpu=powerpc
vendor=ibm
basic_os=cnk
;;
decsystem10* | dec10*)
cpu=pdp10
vendor=dec
basic_os=tops10
;;
decsystem20* | dec20*)
cpu=pdp10
vendor=dec
basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
cpu=m68k
vendor=motorola
;;
dpx2*)
cpu=m68k
vendor=bull
basic_os=sysv3
;;
encore | umax | mmax)
cpu=ns32k
vendor=encore
;;
elxsi)
cpu=elxsi
vendor=elxsi
basic_os=${basic_os:-bsd}
;;
fx2800)
cpu=i860
vendor=alliant
;;
genix)
cpu=ns32k
vendor=ns
;;
h3050r* | hiux*)
cpu=hppa1.1
vendor=hitachi
basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
cpu=hppa1.0
vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
cpu=m68000
vendor=hp
;;
hp9k3[2-9][0-9])
cpu=m68k
vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
cpu=hppa1.0
vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
cpu=hppa1.1
vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
cpu=hppa1.1
vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
cpu=hppa1.1
vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
cpu=hppa1.1
vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
cpu=hppa1.0
vendor=hp
;;
i*86v32)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv32
;;
i*86v4*)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv4
;;
i*86v)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv
;;
i*86sol2)
cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=solaris2
;;
j90 | j90-cray)
cpu=j90
vendor=cray
basic_os=${basic_os:-unicos}
;;
iris | iris4d)
cpu=mips
vendor=sgi
case $basic_os in
irix*)
;;
*)
basic_os=irix4
;;
esac
;;
miniframe)
cpu=m68000
vendor=convergent
;;
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
cpu=m68k
vendor=atari
basic_os=mint
;;
news-3600 | risc-news)
cpu=mips
vendor=sony
basic_os=newsos
;;
next | m*-next)
cpu=m68k
vendor=next
case $basic_os in
openstep*)
;;
nextstep*)
;;
ns2*)
basic_os=nextstep2
;;
*)
basic_os=nextstep3
;;
esac
;;
np1)
cpu=np1
vendor=gould
;;
op50n-* | op60c-*)
cpu=hppa1.1
vendor=oki
basic_os=proelf
;;
pa-hitachi)
cpu=hppa1.1
vendor=hitachi
basic_os=hiuxwe2
;;
pbd)
cpu=sparc
vendor=tti
;;
pbb)
cpu=m68k
vendor=tti
;;
pc532)
cpu=ns32k
vendor=pc532
;;
pn)
cpu=pn
vendor=gould
;;
power)
cpu=power
vendor=ibm
;;
ps2)
cpu=i386
vendor=ibm
;;
rm[46]00)
cpu=mips
vendor=siemens
;;
rtpc | rtpc-*)
cpu=romp
vendor=ibm
;;
sde)
cpu=mipsisa32
vendor=sde
basic_os=${basic_os:-elf}
;;
simso-wrs)
cpu=sparclite
vendor=wrs
basic_os=vxworks
;;
tower | tower-32)
cpu=m68k
vendor=ncr
;;
vpp*|vx|vx-*)
cpu=f301
vendor=fujitsu
;;
w65)
cpu=w65
vendor=wdc
;;
w89k-*)
cpu=hppa1.1
vendor=winbond
basic_os=proelf
;;
none)
cpu=none
vendor=none
;;
leon|leon[3-9])
cpu=sparc
vendor=$basic_machine
;;
leon-*|leon[3-9]-*)
cpu=sparc
vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
*-*)
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read cpu vendor <&2
exit 1
;;
esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $vendor in
digital*)
vendor=dec
;;
commodore*)
vendor=cbm
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if test x"$basic_os" != x
then
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# set os.
obj=
case $basic_os in
gnu/linux*)
kernel=linux
os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
;;
os2-emx)
kernel=os2
os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
;;
nto-qnx*)
kernel=nto
os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
;;
*-*)
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read kernel os <&2
fi
;;
*)
echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
exit 1
;;
esac
case $obj in
aout* | coff* | elf* | pe*)
;;
'')
# empty is fine
;;
*)
echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
exit 1
;;
esac
# Here we handle the constraint that a (synthetic) cpu and os are
# valid only in combination with each other and nowhere else.
case $cpu-$os in
# The "javascript-unknown-ghcjs" triple is used by GHC; we
# accept it here in order to tolerate that, but reject any
# variations.
javascript-ghcjs)
;;
javascript-* | *-ghcjs)
echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
exit 1
;;
esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
case $kernel-$os-$obj in
linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \
| linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- )
;;
uclinux-uclibc*- )
;;
managarm-mlibc*- | managarm-kernel*- )
;;
windows*-msvc*-)
;;
-dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
exit 1
;;
-kernel*- )
echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
exit 1
;;
*-kernel*- )
echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
exit 1
;;
*-msvc*- )
echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
exit 1
;;
kfreebsd*-gnu*- | kopensolaris*-gnu*-)
;;
vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
;;
nto-qnx*-)
;;
os2-emx-)
;;
*-eabi*- | *-gnueabi*-)
;;
none--*)
# None (no kernel, i.e. freestanding / bare metal),
# can be paired with an machine code file format
;;
-*-)
# Blank kernel with real OS is always fine.
;;
--*)
# Blank kernel and OS with real machine code file format is always fine.
;;
*-*-*)
echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
exit 1
;;
esac
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
case $cpu-$os in
*-riscix*)
vendor=acorn
;;
*-sunos*)
vendor=sun
;;
*-cnk* | *-aix*)
vendor=ibm
;;
*-beos*)
vendor=be
;;
*-hpux*)
vendor=hp
;;
*-mpeix*)
vendor=hp
;;
*-hiux*)
vendor=hitachi
;;
*-unos*)
vendor=crds
;;
*-dgux*)
vendor=dg
;;
*-luna*)
vendor=omron
;;
*-genix*)
vendor=ns
;;
*-clix*)
vendor=intergraph
;;
*-mvs* | *-opened*)
vendor=ibm
;;
*-os400*)
vendor=ibm
;;
s390-* | s390x-*)
vendor=ibm
;;
*-ptx*)
vendor=sequent
;;
*-tpf*)
vendor=ibm
;;
*-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
*-aux*)
vendor=apple
;;
*-hms*)
vendor=hitachi
;;
*-mpw* | *-macos*)
vendor=apple
;;
*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
*-vos*)
vendor=stratus
;;
esac
;;
esac
echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
exit
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
nsd-4.12.0/install-sh 0000700 0001750 0001750 00000036101 15002373060 013765 0 ustar mozzie mozzie #!/bin/sh
# install - install a program, script, or datafile
scriptversion=2023-11-23.18; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
tab=' '
nl='
'
IFS=" $tab$nl"
# Set DOITPROG to "echo" to test this script.
doit=${DOITPROG-}
doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_mkdir=
# Desired mode of installed file.
mode=0755
# Create dirs (including intermediate dirs) using mode 755.
# This is like GNU 'install' as of coreutils 8.32 (2020).
mkdir_umask=22
backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-p pass -p to $cpprog.
-s $stripprog installed files.
-S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
By default, rm is invoked with -f; when overridden with RMPROG,
it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Report bugs to .
GNU Automake home page: .
General help using GNU software: ."
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-p) cpprog="$cpprog -p";;
-s) stripcmd=$stripprog;;
-S) backupsuffix="$2"
shift;;
-t)
is_target_a_directory=always
dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
# We allow the use of options -d and -T together, by making -d
# take the precedence; this is for compatibility with GNU install.
if test -n "$dir_arg"; then
if test -n "$dst_arg"; then
echo "$0: target directory not allowed when installing a directory." >&2
exit 1
fi
fi
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
if test $# -gt 1 || test "$is_target_a_directory" = always; then
if test ! -d "$dst_arg"; then
echo "$0: $dst_arg: Is not a directory." >&2
exit 1
fi
fi
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for 'test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
# Don't chown directories that already exist.
if test $dstdir_status = 0; then
chowncmd=""
fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename.
if test -d "$dst"; then
if test "$is_target_a_directory" = never; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dstbase=`basename "$src"`
case $dst in
*/) dst=$dst$dstbase;;
*) dst=$dst/$dstbase;;
esac
dstdir_status=0
else
dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
fi
case $dstdir in
*/) dstdirslash=$dstdir;;
*) dstdirslash=$dstdir/;;
esac
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
# The $RANDOM variable is not portable (e.g., dash). Use it
# here however when possible just to lower collision chance.
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap '
ret=$?
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
exit $ret
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask &&
$mkdirprog $mkdir_mode "$tmpdir" &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
test_tmpdir="$tmpdir/a"
ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
fi
trap '' 0;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
oIFS=$IFS
IFS=/
set -f
set fnord $dstdir
shift
set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=${dstdirslash}_inst.$$_
rmtmp=${dstdirslash}_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask &&
{ test -z "$stripcmd" || {
# Create $dsttmp read-write so that cp doesn't create it read-only,
# which would cause strip to fail.
if test -z "$doit"; then
: >"$dsttmp" # No need to fork-exec 'touch'.
else
$doit touch "$dsttmp"
fi
}
} &&
$doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# If $backupsuffix is set, and the file being installed
# already exists, attempt a backup. Don't worry if it fails,
# e.g., if mv doesn't support -f.
if test -n "$backupsuffix" && test -f "$dst"; then
$doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
fi
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
nsd-4.12.0/config.h.in 0000644 0001750 0001750 00000070346 15002373060 014027 0 ustar mozzie mozzie /* config.h.in. Generated from configure.ac by autoheader. */
/* apply the noreturn attribute to a function that exits the program */
#undef ATTR_NORETURN
/* apply the weak attribute to a symbol */
#undef ATTR_WEAK
/* Define this to enable BIND8 like NSTATS & XSTATS. */
#undef BIND8_STATS
/* NSD default chroot directory */
#undef CHROOTDIR
/* Command line arguments used with configure */
#undef CONFCMDLINE
/* NSD config dir */
#undef CONFIGDIR
/* Pathname to the NSD configuration file */
#undef CONFIGFILE
/* Pathname to the NSD cookies secrets file. */
#undef COOKIESECRETSFILE
/* number of arguments for CPU_OR is three */
#undef CPU_OR_THREE_ARGS
/* Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work
*/
#undef DARWIN_BROKEN_SETREUID
/* Whether ERR_load_SSL_strings is deprecated */
#undef DEPRECATED_ERR_LOAD_SSL_STRINGS
/* Whether SHA1_Init is deprecated */
#undef DEPRECATED_SHA1_INIT
/* default dnstap socket path */
#undef DNSTAP_SOCKET_PATH
/* Define to the default maximum message length with EDNS. */
#undef EDNS_MAX_MESSAGE_LEN
/* Define to the default facility for syslog. */
#undef FACILITY
/* Define to 1 if you have the 'accept4' function. */
#undef HAVE_ACCEPT4
/* Define to 1 if you have the 'alarm' function. */
#undef HAVE_ALARM
/* Define to 1 if you have the 'arc4random' function. */
#undef HAVE_ARC4RANDOM
/* Define to 1 if you have the 'arc4random_uniform' function. */
#undef HAVE_ARC4RANDOM_UNIFORM
/* Define to 1 if you have the header file. */
#undef HAVE_ARPA_INET_H
/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */
#undef HAVE_ASN1_STRING_GET0_DATA
/* Whether the C compiler accepts the "format" attribute */
#undef HAVE_ATTR_FORMAT
/* Whether the C compiler accepts the "noreturn" attribute */
#undef HAVE_ATTR_NORETURN
/* Whether the C compiler accepts the "unused" attribute */
#undef HAVE_ATTR_UNUSED
/* Whether the C compiler accepts the "weak" attribute */
#undef HAVE_ATTR_WEAK
/* Define to 1 if you have the 'b64_ntop' function. */
#undef HAVE_B64_NTOP
/* Define to 1 if you have the 'b64_pton' function. */
#undef HAVE_B64_PTON
/* Define to 1 if you have the 'basename' function. */
#undef HAVE_BASENAME
/* Define to 1 if your system has a working 'chown' function. */
#undef HAVE_CHOWN
/* Define to 1 if you have the 'chroot' function. */
#undef HAVE_CHROOT
/* Define to 1 if you have the 'clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
/* Define to 1 if the system has the type 'cpuid_t'. */
#undef HAVE_CPUID_T
/* Define to 1 if the system has the type 'cpuset_t'. */
#undef HAVE_CPUSET_T
/* Define to 1 if the system has the type 'cpu_set_t'. */
#undef HAVE_CPU_SET_T
/* Define to 1 if you have the 'CRYPTO_memcmp' function. */
#undef HAVE_CRYPTO_MEMCMP
/* if time.h provides ctime_r prototype */
#undef HAVE_CTIME_R_PROTO
/* Define to 1 if you have the declaration of 'reallocarray', and to 0 if you
don't. */
#undef HAVE_DECL_REALLOCARRAY
/* Define to 1 if you have the declaration of 'SSL_CTX_set_ecdh_auto', and to
0 if you don't. */
#undef HAVE_DECL_SSL_CTX_SET_ECDH_AUTO
/* Define to 1 if you have the declaration of 'SSL_CTX_set_tmp_ecdh', and to 0
if you don't. */
#undef HAVE_DECL_SSL_CTX_SET_TMP_ECDH
/* Define to 1 if you have the 'dup2' function. */
#undef HAVE_DUP2
/* Define to 1 if you have the 'EC_KEY_new_by_curve_name' function. */
#undef HAVE_EC_KEY_NEW_BY_CURVE_NAME
/* Define to 1 if you have the header file. */
#undef HAVE_ENDIAN_H
/* Define to 1 if you have the 'endpwent' function. */
#undef HAVE_ENDPWENT
/* Define to 1 if you have the 'ERR_load_crypto_strings' function. */
#undef HAVE_ERR_LOAD_CRYPTO_STRINGS
/* Define to 1 if you have the 'ERR_load_SSL_strings' function. */
#undef HAVE_ERR_LOAD_SSL_STRINGS
/* Define to 1 if you have the 'event_base_free' function. */
#undef HAVE_EVENT_BASE_FREE
/* Define to 1 if you have the 'event_base_get_method' function. */
#undef HAVE_EVENT_BASE_GET_METHOD
/* Define to 1 if you have the 'event_base_new' function. */
#undef HAVE_EVENT_BASE_NEW
/* Define to 1 if you have the 'event_base_once' function. */
#undef HAVE_EVENT_BASE_ONCE
/* Define to 1 if you have the header file. */
#undef HAVE_EVENT_H
/* Define to 1 if you have the 'evhttp_free' function. */
#undef HAVE_EVHTTP_FREE
/* Define to 1 if you have the 'EVP_cleanup' function. */
#undef HAVE_EVP_CLEANUP
/* Define to 1 if you have the 'EVP_MAC_CTX_get_mac_size' function. */
#undef HAVE_EVP_MAC_CTX_GET_MAC_SIZE
/* Define to 1 if you have the 'EVP_MAC_CTX_new' function. */
#undef HAVE_EVP_MAC_CTX_NEW
/* Define to 1 if you have the 'EVP_MAC_CTX_set_params' function. */
#undef HAVE_EVP_MAC_CTX_SET_PARAMS
/* Define to 1 if you have the 'ev_default_loop' function. */
#undef HAVE_EV_DEFAULT_LOOP
/* Define to 1 if you have the 'ev_loop' function. */
#undef HAVE_EV_LOOP
/* Define to 1 if you have the 'explicit_bzero' function. */
#undef HAVE_EXPLICIT_BZERO
/* Define to 1 if you have the header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the 'fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the 'freeaddrinfo' function. */
#undef HAVE_FREEADDRINFO
/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */
#undef HAVE_FSEEKO
/* Define to 1 if you have the 'gai_strerror' function. */
#undef HAVE_GAI_STRERROR
/* Define to 1 if you have the 'getaddrinfo' function. */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the 'gethostname' function. */
#undef HAVE_GETHOSTNAME
/* Define to 1 if you have the 'getifaddrs' function. */
#undef HAVE_GETIFADDRS
/* Define to 1 if you have the 'getnameinfo' function. */
#undef HAVE_GETNAMEINFO
/* Define to 1 if you have the 'getpwnam' function. */
#undef HAVE_GETPWNAM
/* Define to 1 if you have the 'getrandom' function. */
#undef HAVE_GETRANDOM
/* Define to 1 if you have the 'glob' function. */
#undef HAVE_GLOB
/* Define to 1 if you have the header file. */
#undef HAVE_GLOB_H
/* Define to 1 if you have the header file. */
#undef HAVE_GRP_H
/* Define to 1 if you have the 'HMAC_CTX_new' function. */
#undef HAVE_HMAC_CTX_NEW
/* Define to 1 if you have the 'HMAC_CTX_reset' function. */
#undef HAVE_HMAC_CTX_RESET
/* Define to 1 if you have the header file. */
#undef HAVE_IFADDRS_H
/* Define to 1 if you have the 'inet_aton' function. */
#undef HAVE_INET_ATON
/* Define to 1 if you have the 'inet_ntop' function. */
#undef HAVE_INET_NTOP
/* Define to 1 if you have the 'inet_pton' function. */
#undef HAVE_INET_PTON
/* Define to 1 if you have the 'initgroups' function. */
#undef HAVE_INITGROUPS
/* Define to 1 if you have the header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the 'crypto' library (-lcrypto). */
#undef HAVE_LIBCRYPTO
/* Define to 1 if you have the header file. */
#undef HAVE_LIMITS_H
/* Define to 1 if you have the 'localtime_r' function. */
#undef HAVE_LOCALTIME_R
/* Define to 1 if you have the header file. */
#undef HAVE_LOGIN_CAP_H
/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the 'memcpy' function. */
#undef HAVE_MEMCPY
/* Define to 1 if you have the 'memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the 'memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the header file. */
#undef HAVE_MINIX_CONFIG_H
/* Define to 1 if you have the 'mmap' function. */
#undef HAVE_MMAP
/* If sys/socket.h has a struct mmsghdr. */
#undef HAVE_MMSGHDR
/* Define to 1 if you have the 'munmap' function. */
#undef HAVE_MUNMAP
/* Define to 1 if you have the header file. */
#undef HAVE_NETDB_H
/* Define to 1 if you have the header file. */
#undef HAVE_NETINET_IN_H
/* Define to 1 if you have the header file. */
#undef HAVE_NETINET_TCP_H
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_CORE_NAMES_H
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_ERR_H
/* Define to 1 if you have the 'OPENSSL_init_crypto' function. */
#undef HAVE_OPENSSL_INIT_CRYPTO
/* Define to 1 if you have the 'OPENSSL_init_ssl' function. */
#undef HAVE_OPENSSL_INIT_SSL
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_OCSP_H
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_RAND_H
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_SSL_H
/* Define to 1 if you have the header file. */
#undef HAVE_OPENSSL_X509V3_H
/* Define to 1 if you have the 'ppoll' function. */
#undef HAVE_PPOLL
/* Define to 1 if you have the 'pselect' function. */
#undef HAVE_PSELECT
/* if sys/select.h provides pselect prototype */
#undef HAVE_PSELECT_PROTO
/* Define to 1 if you have the 'pwrite' function. */
#undef HAVE_PWRITE
/* If we have reallocarray(3) */
#undef HAVE_REALLOCARRAY
/* Define if recvmmsg is implemented */
#undef HAVE_RECVMMSG
/* Define to 1 if you have the header file. */
#undef HAVE_SCHED_H
/* Define this if sched_setaffinity is available */
#undef HAVE_SCHED_SETAFFINITY
/* Define if sendmmsg is implemented */
#undef HAVE_SENDMMSG
/* Define to 1 if you have the 'setproctitle' function. */
#undef HAVE_SETPROCTITLE
/* Define to 1 if you have the 'setregid' function. */
#undef HAVE_SETREGID
/* Define to 1 if you have the 'setresgid' function. */
#undef HAVE_SETRESGID
/* Define to 1 if you have the 'setresuid' function. */
#undef HAVE_SETRESUID
/* Define to 1 if you have the 'setreuid' function. */
#undef HAVE_SETREUID
/* Define to 1 if you have the 'setusercontext' function. */
#undef HAVE_SETUSERCONTEXT
/* Define to 1 if you have the 'SHA1_Init' function. */
#undef HAVE_SHA1_INIT
/* Define to 1 if you have the 'sigaction' function. */
#undef HAVE_SIGACTION
/* Define to 1 if you have the header file. */
#undef HAVE_SIGNAL_H
/* Define to 1 if you have the 'sigprocmask' function. */
#undef HAVE_SIGPROCMASK
/* Define to 1 if you have the 'snprintf' function. */
#undef HAVE_SNPRINTF
/* Define to 1 if you have the 'socket' function. */
#undef HAVE_SOCKET
/* Define if you have the SSL libraries installed. */
#undef HAVE_SSL
/* Define to 1 if you have the 'SSL_CTX_set_security_level' function. */
#undef HAVE_SSL_CTX_SET_SECURITY_LEVEL
/* Define to 1 if you have the 'SSL_get1_peer_certificate' function. */
#undef HAVE_SSL_GET1_PEER_CERTIFICATE
/* Define to 1 if you have the header file. */
#undef HAVE_STDARG_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDDEF_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDIO_H
/* Define to 1 if you have the header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the 'strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the 'strchr' function. */
#undef HAVE_STRCHR
/* Define to 1 if you have the 'strdup' function. */
#undef HAVE_STRDUP
/* Define to 1 if you have the 'strerror' function. */
#undef HAVE_STRERROR
/* Define to 1 if you have the 'strftime' function. */
#undef HAVE_STRFTIME
/* Define to 1 if you have the header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the 'strlcat' function. */
#undef HAVE_STRLCAT
/* Define to 1 if you have the 'strlcpy' function. */
#undef HAVE_STRLCPY
/* Define to 1 if you have the 'strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define to 1 if you have the 'strptime' function. */
#undef HAVE_STRPTIME
/* Define to 1 if you have the 'strtol' function. */
#undef HAVE_STRTOL
/* Define to 1 if 'sun_len' is a member of 'struct sockaddr_un'. */
#undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN
/* Define to 1 if 'st_mtimensec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIMENSEC
/* Define to 1 if 'st_mtim.tv_nsec' is a member of 'struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
/* If time.h has a struct timespec (for pselect). */
#undef HAVE_STRUCT_TIMESPEC
/* Define to 1 if you have the 'sysconf' function. */
#undef HAVE_SYSCONF
/* Define to 1 if you have the header file. */
#undef HAVE_SYSLOG_H
/* Define to 1 if systemd should be used */
#undef HAVE_SYSTEMD
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_BITYPES_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_CPUSET_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_MMAN_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_PARAM_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_RANDOM_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SELECT_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the header file. */
#undef HAVE_SYS_UN_H
/* Define to 1 if you have that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the header file. */
#undef HAVE_TCPD_H
/* Define to 1 if you have the header file. */
#undef HAVE_TIME_H
/* Define if TLS 1.3 is supported by OpenSSL */
#undef HAVE_TLS_1_3
/* Define to 1 if you have the 'tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
/* Define this if you have double va_list definitions. */
#undef HAVE_VA_LIST_DOUBLE_DEF
/* Define to 1 if you have the 'vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the header file. */
#undef HAVE_VFORK_H
/* Define to 1 if you have the header file. */
#undef HAVE_WCHAR_H
/* Define to 1 if 'fork' works. */
#undef HAVE_WORKING_FORK
/* Define to 1 if 'vfork' works. */
#undef HAVE_WORKING_VFORK
/* Define to 1 if you have the 'writev' function. */
#undef HAVE_WRITEV
/* Define to the default nsd identity. */
#undef IDENTITY
/* Define this to enable IPv6 support. */
#undef INET6
/* If flex defines yy_current_buffer as a macro */
#undef LEX_DEFINES_YY_CURRENT_BUFFER
/* Define to the maximum message length to pass to syslog. */
#undef MAXSYSLOGMSGLEN
/* Define this to cleanup memory at exit (eg. for valgrind, etc.) */
#undef MEMCLEAN
/* Define if memcmp() does not compare unsigned bytes */
#undef MEMCMP_IS_BROKEN
/* Define this to enable response minimalization to reduce truncation. */
#undef MINIMAL_RESPONSES
/* Define if mkdir has one argument. */
#undef MKDIR_HAS_ONE_ARG
/* Undefine this to enable internal runtime checks. */
#undef NDEBUG
/* Define if the network stack does not fully support nonblocking io (causes
lower performance). */
#undef NONBLOCKING_IS_BROKEN
/* Define to the default nsd-control port. */
#undef NSD_CONTROL_PORT
/* Define to nsd-control proto version. */
#undef NSD_CONTROL_VERSION
/* Define the default metrics HTTP endpoint port. */
#undef NSD_METRICS_PORT
/* Pathname to start nsd from nsd-control */
#undef NSD_START_PATH
/* Define this to enable NSEC3 support. */
#undef NSEC3
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define this to use packed structure alignment. */
#undef PACKED_STRUCTS
/* Pathname to the NSD pidfile */
#undef PIDFILE
/* Define this to enable rate limiting. */
#undef RATELIMIT
/* Define this to set ratelimit to off by default. */
#undef RATELIMIT_DEFAULT_OFF
/* If reallocarray needs defines to appear in the headers */
#undef REALLOCARRAY_NEEDS_DEFINES
/* Return type of signal handlers, but autoconf 2.70 says 'your code may
safely assume C89 semantics that RETSIGTYPE is void.' */
#undef RETSIGTYPE
/* The size of 'off_t', as computed by sizeof. */
#undef SIZEOF_OFF_T
/* The size of 'void*', as computed by sizeof. */
#undef SIZEOF_VOIDP
/* Define to 1 if all of the C89 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. */
#undef STDC_HEADERS
/* strptime is available from time.h with some defines. */
#undef STRPTIME_NEEDS_DEFINES
/* use default strptime. */
#undef STRPTIME_WORKS
/* Define to the backlog to be used with listen. */
#undef TCP_BACKLOG
/* Define to the default maximum message length. */
#undef TCP_MAX_MESSAGE_LEN
/* Define to the default tcp port. */
#undef TCP_PORT
/* Define to the default tcp timeout. */
#undef TCP_TIMEOUT
/* Define to the default DNS over TLS port. */
#undef TLS_PORT
/* Define to the default maximum udp message length. */
#undef UDP_MAX_MESSAGE_LEN
/* Define to the default udp port. */
#undef UDP_PORT
/* the user name to drop privileges to */
#undef USER
/* Define to 1 to enable dnstap support */
#undef USE_DNSTAP
/* Define this to show the role of processes in the logfile for debugging
purposes. */
#undef USE_LOG_PROCESS_ROLE
/* Define this to expose NSD statistics via a prometheus metrics HTTP
endpoint. */
#undef USE_METRICS
/* Define if you want to use internal select based events */
#undef USE_MINI_EVENT
/* Define this to enable mmap instead of malloc. Experimental. */
#undef USE_MMAP_ALLOC
/* Define this to configure to use the radix tree. */
#undef USE_RADIX_TREE
/* Enable extensions on AIX, Interix, z/OS. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable general extensions on macOS. */
#ifndef _DARWIN_C_SOURCE
# undef _DARWIN_C_SOURCE
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#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
# undef _HPUX_ALT_XOPEN_SOCKET_API
#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
# undef _NETBSD_SOURCE
#endif
/* Enable OpenBSD compatibility extensions on NetBSD.
Oddly enough, this does nothing on OpenBSD. */
#ifndef _OPENBSD_SOURCE
# undef _OPENBSD_SOURCE
#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
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
# undef __STDC_WANT_IEC_60559_BFP_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
# undef __STDC_WANT_IEC_60559_DFP_EXT__
#endif
/* Enable extensions specified by C23 Annex F. */
#ifndef __STDC_WANT_IEC_60559_EXT__
# undef __STDC_WANT_IEC_60559_EXT__
#endif
/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
#endif
/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
# undef __STDC_WANT_IEC_60559_TYPES_EXT__
#endif
/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
#ifndef __STDC_WANT_LIB_EXT2__
# undef __STDC_WANT_LIB_EXT2__
#endif
/* Enable extensions specified by ISO/IEC 24747:2009. */
#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
# undef __STDC_WANT_MATH_SPEC_FUNCS__
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable X/Open extensions. Define to 500 only if necessary
to make mbstate_t available. */
#ifndef _XOPEN_SOURCE
# undef _XOPEN_SOURCE
#endif
/* Define this to enable TCP fast open. */
#undef USE_TCP_FASTOPEN
/* Define this to enable per-zone statistics gathering. */
#undef USE_ZONE_STATS
/* Define to the default zone verification udp port. */
#undef VERIFY_PORT
/* Define to the NSD version to answer version.server query. */
#undef VERSION
/* Pathname to the NSD xfrd zone timer state file. */
#undef XFRDFILE
/* Pathname to where the NSD transfer dir is created. */
#undef XFRDIR
/* Define to 1 if 'lex' declares 'yytext' as a 'char *' by default, not a
'char[]'. */
#undef YYTEXT_POINTER
/* Pathname to the NSD zone list file. */
#undef ZONELISTFILE
/* NSD default location for zone files. Empty string or NULL to disable. */
#undef ZONESDIR
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
/* Define to 1 if necessary to make fseeko visible. */
#undef _LARGEFILE_SOURCE
/* Define to 1 on platforms where this makes off_t a 64-bit type. */
#undef _LARGE_FILES
/* Enable for compile on Minix */
#undef _NETBSD_SOURCE
/* Number of bits in time_t, on hosts where this is settable. */
#undef _TIME_BITS
/* Define to 1 on platforms where this makes time_t a 64-bit type. */
#undef __MINGW_USE_VC2005_COMPAT
/* Define to empty if 'const' does not conform to ANSI C. */
#undef const
/* Define as 'int' if doesn't define. */
#undef gid_t
/* in_addr_t */
#undef in_addr_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 "int16_t" to "short" if "int16_t" is missing */
#undef int16_t
/* Define "int32_t" to "int" if "int32_t" is missing */
#undef int32_t
/* Define "int64_t" to "long long" if "int64_t" is missing */
#undef int64_t
/* Define "int8_t" to "char" if "int8_t" is missing */
#undef int8_t
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to 'long int' if does not define. */
#undef off_t
/* Define as a signed integer type capable of holding a process identifier. */
#undef pid_t
/* Define "sig_atomic_t" to "int" if "sig_atomic_t" is missing */
#undef sig_atomic_t
/* Define as 'unsigned int' if doesn't define. */
#undef size_t
/* Define "socklen_t" to "int" if "socklen_t" is missing */
#undef socklen_t
/* Fallback member name for socket family in struct sockaddr_storage */
#undef ss_family
/* Define "ssize_t" to "int" if "ssize_t" is missing */
#undef ssize_t
/* Define "suseconds_t" to "time_t" if "suseconds_t" is missing */
#undef suseconds_t
/* Define as 'int' if doesn't define. */
#undef uid_t
/* Define "uint16_t" to "unsigned short" if "uint16_t" is missing */
#undef uint16_t
/* Define "uint32_t" to "unsigned int" if "uint32_t" is missing */
#undef uint32_t
/* Define "uint64_t" to "unsigned long long" if "uint64_t" is missing */
#undef uint64_t
/* Define "uint8_t" to "unsigned char" if "uint8_t" is missing */
#undef uint8_t
/* Define "uintptr_t" to "void*" if "uintptr_t" is missing */
#undef uintptr_t
/* Define as 'fork' if 'vfork' does not work. */
#undef vfork
/* define before includes as it specifies what standard to use. */
#if (defined(HAVE_PSELECT) && !defined (HAVE_PSELECT_PROTO)) \
|| !defined (HAVE_CTIME_R_PROTO) \
|| defined (STRPTIME_NEEDS_DEFINES) || defined(REALLOCARRAY_NEEDS_DEFINES)
# ifndef _XOPEN_SOURCE
# define _XOPEN_SOURCE 600
# endif
# ifndef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 200112
# endif
# ifndef _BSD_SOURCE
# define _BSD_SOURCE 1
# endif
# ifndef _OPENBSD_SOURCE
# define _OPENBSD_SOURCE 1
# endif
# ifndef _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1
# endif
# ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
# endif
# ifndef _STDC_C99
# define _STDC_C99 1
# endif
# ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
# endif
#endif
#ifdef HAVE_VA_LIST_DOUBLE_DEF
/* workaround double va_list definition on some platforms */
# ifndef _VA_LIST_DEFINED
# define _VA_LIST_DEFINED
# endif
#endif
#include
#include
#include
#include
#ifdef HAVE_TIME_H
#include
#endif
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_NETINET_IN_H
#include
#endif
#ifdef HAVE_NETINET_TCP_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
#ifdef HAVE_ATTR_FORMAT
#define ATTR_FORMAT(archetype, string_index, first_to_check) \
__attribute__ ((format (archetype, string_index, first_to_check)))
#else /* !HAVE_ATTR_FORMAT */
#define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
#endif /* !HAVE_ATTR_FORMAT */
#if defined(__cplusplus)
#define ATTR_UNUSED(x)
#elif defined(HAVE_ATTR_UNUSED)
#define ATTR_UNUSED(x) x __attribute__((unused))
#else /* !HAVE_ATTR_UNUSED */
#define ATTR_UNUSED(x) x
#endif /* !HAVE_ATTR_UNUSED */
#ifndef IPV6_MIN_MTU
#define IPV6_MIN_MTU 1280
#endif /* IPV6_MIN_MTU */
#ifndef AF_INET6
#define AF_INET6 28
#endif /* AF_INET6 */
/* maximum nesting of included files */
#define MAXINCLUDES 10
#ifndef HAVE_B64_NTOP
int b64_ntop(uint8_t const *src, size_t srclength,
char *target, size_t targsize);
#endif /* !HAVE_B64_NTOP */
#ifndef HAVE_B64_PTON
int b64_pton(char const *src, uint8_t *target, size_t targsize);
#endif /* !HAVE_B64_PTON */
#ifndef HAVE_FSEEKO
#define fseeko fseek
#define ftello ftell
#endif /* HAVE_FSEEKO */
#ifndef HAVE_SNPRINTF
#include
int snprintf (char *str, size_t count, const char *fmt, ...);
int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
#endif /* HAVE_SNPRINTF */
#ifndef HAVE_INET_PTON
int inet_pton(int af, const char* src, void* dst);
#endif /* HAVE_INET_PTON */
#ifndef HAVE_INET_NTOP
const char *inet_ntop(int af, const void *src, char *dst, size_t size);
#endif
#ifndef HAVE_INET_ATON
int inet_aton(const char *cp, struct in_addr *addr);
#endif
#ifndef HAVE_MEMMOVE
void *memmove(void *dest, const void *src, size_t n);
#endif
#ifndef HAVE_EXPLICIT_BZERO
#define explicit_bzero nsd_explicit_bzero
void explicit_bzero(void* buf, size_t len);
#endif
#ifndef HAVE_STRLCAT
size_t strlcat(char *dst, const char *src, size_t siz);
#endif
#ifndef HAVE_STRLCPY
size_t strlcpy(char *dst, const char *src, size_t siz);
#endif
#ifndef HAVE_REALLOCARRAY
void* reallocarray(void *ptr, size_t nmemb, size_t size);
#endif
#ifndef HAVE_GETADDRINFO
#include "compat/fake-rfc2553.h"
#endif
#ifndef HAVE_STRPTIME
#define HAVE_STRPTIME 1
char *strptime(const char *s, const char *format, struct tm *tm);
#endif
#ifndef STRPTIME_WORKS
#define STRPTIME_WORKS 1
char *nsd_strptime(const char *s, const char *format, struct tm *tm);
#define strptime(a,b,c) nsd_strptime((a),(b),(c))
#endif
#if (HAVE_CPU_SET_T || HAVE_CPUSET_T)
#include "compat/cpuset.h"
#endif
#ifndef HAVE_SETPROCTITLE
#ifdef __linux__
#define HAVE_SETPROCTITLE 1
#include
void setproctitle(const char *fmt, ...);
#endif
#endif
#ifdef MEMCMP_IS_BROKEN
#include "compat/memcmp.h"
#define memcmp memcmp_nsd
int memcmp(const void *x, const void *y, size_t n);
#endif
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 256
#endif
/* provide timespec def if not available */
#ifndef CONFIG_DEFINES
#define CONFIG_DEFINES
#ifndef HAVE_STRUCT_TIMESPEC
#ifndef __timespec_defined
#define __timespec_defined 1
struct timespec {
long tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
#endif /* !__timespec_defined */
#endif /* !HAVE_STRUCT_TIMESPEC */
#endif /* !CONFIG_DEFINES */
#ifdef PACKED_STRUCTS
#define ATTR_PACKED __attribute__((packed))
#else
#define ATTR_PACKED
#endif
nsd-4.12.0/configure 0000755 0001750 0001750 00001321776 15002373060 013722 0 ustar mozzie mozzie #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.72 for NSD 4.12.0.
#
# Report bugs to .
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
# Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else case e in #(
e) case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac ;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as 'sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed 'exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else case e in #(
e) case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac ;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
else case e in #(
e) exitcode=1; echo positional parameters were not saved. ;;
esac
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
else case e in #(
e) as_have_required=no ;;
esac
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
else case e in #(
e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$as_shell as_have_required=yes
if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
then :
break 2
fi
fi
done;;
esac
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else case e in #(
e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi ;;
esac
fi
if test "x$CONFIG_SHELL" != x
then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed 'exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
printf "%s\n" "$0: This script requires a shell more modern than all"
printf "%s\n" "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://github.com/NLnetLabs/nsd/issues or
$0: nsd-bugs@nlnetlabs.nl about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
$0: shell if you do have one."
fi
exit 1
fi ;;
esac
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else case e in #(
e) as_fn_append ()
{
eval $1=\$$1\$2
} ;;
esac
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else case e in #(
e) as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
} ;;
esac
fi # as_fn_arith
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
t clear
:clear
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
# In both cases, we have to default to 'cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
# Sed expression to map a string onto a valid variable name.
as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
as_tr_sh="eval sed '$as_sed_sh'" # deprecated
test -n "$DJDIR" || exec 7<&0 &1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='NSD'
PACKAGE_TARNAME='nsd'
PACKAGE_VERSION='4.12.0'
PACKAGE_STRING='NSD 4.12.0'
PACKAGE_BUGREPORT='https://github.com/NLnetLabs/nsd/issues or nsd-bugs@nlnetlabs.nl'
PACKAGE_URL=''
# Factoring default headers for most tests.
ac_includes_default="\
#include
#ifdef HAVE_STDIO_H
# include
#endif
#ifdef HAVE_STDLIB_H
# include
#endif
#ifdef HAVE_STRING_H
# include
#endif
#ifdef HAVE_INTTYPES_H
# include
#endif
#ifdef HAVE_STDINT_H
# include
#endif
#ifdef HAVE_STRINGS_H
# include
#endif
#ifdef HAVE_SYS_TYPES_H
# include
#endif
#ifdef HAVE_SYS_STAT_H
# include
#endif
#ifdef HAVE_UNISTD_H
# include
#endif"
ac_header_c_list=
ac_func_c_list=
enable_option_checking=no
enable_year2038=no
ac_subst_vars='LTLIBOBJS
subdirs
SYSTEMD_DAEMON_LIBS
SYSTEMD_DAEMON_CFLAGS
SYSTEMD_LIBS
SYSTEMD_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
DNSTAP_OBJ
DNSTAP_SRC
opt_dnstap_socket_path
ENABLE_DNSTAP
PROTOC_C
SSL_LIBS
HAVE_SSL
ratelimit_default
ratelimit
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
CPP
LIBOBJS
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
LN_S
YFLAGS
LEXLIB
LEX_OUTPUT_ROOT
user
chrootdir
xfrdir
cookiesecretsfile
zonelistfile
xfrdfile
zonesdir
piddir
pidfile
logfile
nsd_conf_file
configdir
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
YACC
LEX
EGREP
GREP
AWK
SED
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
with_configdir
with_nsd_conf_file
with_logfile
with_pidfile
with_dbfile
with_zonesdir
with_xfrdfile
with_zonelistfile
with_cookiesecretsfile
with_xfrdir
with_chroot
with_user
enable_flto
enable_pie
enable_relro_now
with_libevent
enable_largefile
enable_recvmmsg
with_facility
with_tcp_timeout
enable_root_server
enable_ipv6
enable_bind8_stats
enable_zone_stats
enable_checking
enable_log_role
enable_memclean
enable_ratelimit
enable_ratelimit_default_is_off
with_ssl
enable_nsec3
enable_minimal_responses
enable_mmap
enable_radix_tree
enable_packed
enable_dnstap
with_dnstap_socket_path
with_protobuf_c
with_libfstrm
enable_systemd
enable_tcp_fastopen
enable_westmere
enable_haswell
enable_year2038
'
ac_precious_vars='build_alias
host_alias
target_alias
SED
AWK
GREP
EGREP
LEX
YACC
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
YFLAGS
CPP
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
SYSTEMD_CFLAGS
SYSTEMD_LIBS
SYSTEMD_DAEMON_CFLAGS
SYSTEMD_DAEMON_LIBS'
ac_subdirs_all='simdzone'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: '$ac_option'
Try '$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: '$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: '$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
'configure' configures NSD 4.12.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print 'checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for '--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or '..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, 'make install' will install all the files in
'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify
an installation prefix other than '$ac_default_prefix' using '--prefix',
for instance '--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/nsd]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of NSD 4.12.0:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-flto Disable link-time optimization (gcc specific option)
--enable-pie Enable Position-Independent Executable (eg. to fully
benefit from ASLR, small performance penalty)
--enable-relro-now Enable full relocation binding at load-time (RELRO
NOW, to protect GOT and .dtor areas)
--disable-largefile omit support for large files
--enable-recvmmsg Enable recvmmsg and sendmmsg compilation, faster but
some kernel versions may have implementation
problems for IPv6
--enable-root-server Configure NSD as a root server (obsolete)
--disable-ipv6 Disables IPv6 support
--enable-bind8-stats Enables BIND8 like NSTATS & XSTATS and statistics in
nsd-control
--enable-zone-stats Enable per-zone statistics gathering (needs
--enable-bind8-stats)
--enable-checking Enable internal runtime checks
--enable-log-role Shows the role of processes in the logfile (enable
this only for debugging purposes)
--enable-memclean Cleanup memory (at exit) for eg. valgrind, memcheck
--enable-ratelimit Enable rate limiting
--enable-ratelimit-default-is-off
Enable this to set default of ratelimit to off
(enable in nsd.conf), otherwise ratelimit is enabled
by default if --enable-ratelimit is enabled
--disable-nsec3 Disable NSEC3 support
--disable-minimal-responses
Disable response minimization. More truncation.
--enable-mmap Use mmap instead of malloc. Experimental.
--disable-radix-tree You can disable the radix tree and use the red-black
tree for the main lookups, the red-black tree uses
less memory, but uses some more CPU.
--enable-packed Enable packed structure alignment, uses less memory,
but unaligned reads.
--enable-dnstap Enable dnstap support (requires fstrm, protobuf-c)
--enable-systemd compile with systemd support
--enable-tcp-fastopen Enable TCP Fast Open
--disable-westmere Disable Westmere (SSE4.2) parser kernel
--disable-haswell Disable Haswell (AVX2) parser kernel
--enable-year2038 support timestamps after 2038
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-configdir=dir NSD configuration directory
--with-nsd_conf_file=path
Pathname to the NSD configuration file
--with-logfile=path Pathname to the default log file
--with-pidfile=path Pathname to the NSD pidfile
--with-dbfile=path Pathname to the NSD database (obsolete)
--with-zonesdir=dir NSD default location for zone files
--with-xfrdfile=path Pathname to the NSD xfrd zone timer state file
--with-zonelistfile=path
Pathname to the NSD zone list file
--with-cookiesecretsfile=path
Pathname to the NSD cookie secrets file
--with-xfrdir=path Pathname to where the NSD transfer dir is created
--with-chroot=dir NSD default chroot directory
--with-user=username User name or ID to answer the queries with
--with-libevent=pathname
use libevent (will check /usr/local /opt/local
/usr/lib /usr/pkg /usr/sfw /usr
/usr/local/opt/libevent or you can specify an
explicit path), useful when the zone count is high.
--with-facility=name Syslog default facility (LOG_DAEMON)
--with-tcp-timeout=number
Limit the default tcp timeout
--with-ssl=pathname enable SSL (will check /usr/local/ssl /usr/lib/ssl
/usr/ssl /usr/pkg /usr/sfw /usr/local /usr
/usr/local/opt/openssl)
--with-dnstap-socket-path=pathname
set default dnstap socket path
--with-protobuf-c=path Path where protobuf-c is installed, for dnstap
--with-libfstrm=path Path where libfstrm is installed, for dnstap
Some influential environment variables:
SED location of the sed program
AWK location of the awk program
GREP location of the grep program
EGREP location of the egrep program
LEX location of the lex program with GNU extensions (flex)
YACC location of the yacc program with GNU extensions (bison)
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
default value of '-d' given by some make applications.
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
SYSTEMD_CFLAGS
C compiler flags for SYSTEMD, overriding pkg-config
SYSTEMD_LIBS
linker flags for SYSTEMD, overriding pkg-config
SYSTEMD_DAEMON_CFLAGS
C compiler flags for SYSTEMD_DAEMON, overriding pkg-config
SYSTEMD_DAEMON_LIBS
linker flags for SYSTEMD_DAEMON, overriding pkg-config
Use these variables to override the choices made by 'configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to .
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
NSD configure 4.12.0
generated by GNU Autoconf 2.72
Copyright (C) 2023 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext
then :
ac_retval=0
else case e in #(
e) printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
esac
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else case e in #(
e) eval "$3=no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
}
then :
ac_retval=0
else case e in #(
e) printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
esac
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
# Tests whether TYPE exists after having included INCLUDES, setting cache
# variable VAR accordingly.
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof ($2))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof (($2)))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else case e in #(
e) eval "$3=yes" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
# ac_fn_c_try_run LINENO
# ----------------------
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
# executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
ac_retval=0
else case e in #(
e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status ;;
esac
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
eval ac_save_FLAGS=\$$6
as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
#ifndef $as_decl_name
#ifdef __cplusplus
(void) $as_decl_use;
#else
(void) $as_decl_name;
#endif
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else case e in #(
e) eval "$3=no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
eval $6=\$ac_save_FLAGS
;;
esac
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_check_decl
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case declares $2.
For example, HP-UX 11i declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (void); below. */
#include
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 (void);
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
eval "$3=yes"
else case e in #(
e) eval "$3=no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}
then :
ac_retval=0
else case e in #(
e) printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
esac
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
# Tries to find if the field MEMBER exists in type AGGR, after including
# INCLUDES, setting cache variable VAR accordingly.
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
printf %s "checking for $2.$3... " >&6; }
if eval test \${$4+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else case e in #(
e) eval "$4=no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
eval ac_res=\$$4
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
# Tries to find the compile-time value of EXPR in a program that includes
# INCLUDES, setting VAR accordingly. Returns whether the value could be
# computed
ac_fn_c_compute_int ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=0 ac_mid=0
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid; break
else case e in #(
e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val
if test $ac_lo -le $ac_mid; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) < 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=-1 ac_mid=-1
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=$ac_mid; break
else case e in #(
e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
if test $ac_mid -le $ac_hi; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else case e in #(
e) ac_lo= ac_hi= ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Binary search between lo and hi bounds.
while test "x$ac_lo" != "x$ac_hi"; do
as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid
else case e in #(
e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
case $ac_lo in #((
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
'') ac_retval=1 ;;
esac
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
static long int longval (void) { return $2; }
static unsigned long int ulongval (void) { return $2; }
#include
#include
int
main (void)
{
FILE *f = fopen ("conftest.val", "w");
if (! f)
return 1;
if (($2) < 0)
{
long int i = longval ();
if (i != ($2))
return 1;
fprintf (f, "%ld", i);
}
else
{
unsigned long int i = ulongval ();
if (i != ($2))
return 1;
fprintf (f, "%lu", i);
}
/* Do not output a trailing newline, as this causes \r\n confusion
on some platforms. */
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
echo >>conftest.val; read $3 config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by NSD $as_me 4.12.0, which was
generated by GNU Autoconf 2.72. Invocation command line was
$ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Sanitize IFS.
IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
printf "%s\n" "$as_me: caught signal $ac_signal"
printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
if test -n "$CONFIG_SITE"; then
ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
for ac_site_file in $ac_site_files
do
case $ac_site_file in #(
*/*) :
;; #(
*) :
ac_site_file=./$ac_site_file ;;
esac
if test -f "$ac_site_file" && test -r "$ac_site_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See 'config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
# Test code for whether the C compiler supports C89 (global declarations)
ac_c_conftest_c89_globals='
/* Does the compiler advertise C89 conformance?
Do not test the value of __STDC__, because some compilers set it to 0
while being otherwise adequately conformant. */
#if !defined __STDC__
# error "Compiler does not advertise C89 conformance"
#endif
#include
#include
struct stat;
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (char **p, int i)
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* C89 style stringification. */
#define noexpand_stringify(a) #a
const char *stringified = noexpand_stringify(arbitrary+token=sequence);
/* C89 style token pasting. Exercises some of the corner cases that
e.g. old MSVC gets wrong, but not very hard. */
#define noexpand_concat(a,b) a##b
#define expand_concat(a,b) noexpand_concat(a,b)
extern int vA;
extern int vbee;
#define aye A
#define bee B
int *pvA = &expand_concat(v,aye);
int *pvbee = &noexpand_concat(v,bee);
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not \xHH hex character constants.
These do not provoke an error unfortunately, instead are silently treated
as an "x". The following induces an error, until -std is added to get
proper ANSI mode. Curiously \x00 != x always comes out true, for an
array size at least. It is necessary to write \x00 == 0 to get something
that is true only with -std. */
int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) '\''x'\''
int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
int, int);'
# Test code for whether the C compiler supports C89 (body of main).
ac_c_conftest_c89_main='
ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
'
# Test code for whether the C compiler supports C99 (global declarations)
ac_c_conftest_c99_globals='
/* Does the compiler advertise C99 conformance? */
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
# error "Compiler does not advertise C99 conformance"
#endif
// See if C++-style comments work.
#include
extern int puts (const char *);
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
extern void free (void *);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
// FILE and stderr.
#define debug(...) dprintf (2, __VA_ARGS__)
#define showlist(...) puts (#__VA_ARGS__)
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
static void
test_varargs_macros (void)
{
int x = 1234;
int y = 5678;
debug ("Flag");
debug ("X = %d\n", x);
showlist (The first, second, and third items.);
report (x>y, "x is %d but y is %d", x, y);
}
// Check long long types.
#define BIG64 18446744073709551615ull
#define BIG32 4294967295ul
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
#if !BIG_OK
#error "your preprocessor is broken"
#endif
#if BIG_OK
#else
#error "your preprocessor is broken"
#endif
static long long int bignum = -9223372036854775807LL;
static unsigned long long int ubignum = BIG64;
struct incomplete_array
{
int datasize;
double data[];
};
struct named_init {
int number;
const wchar_t *name;
double average;
};
typedef const char *ccp;
static inline int
test_restrict (ccp restrict text)
{
// Iterate through items via the restricted pointer.
// Also check for declarations in for loops.
for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
continue;
return 0;
}
// Check varargs and va_copy.
static bool
test_varargs (const char *format, ...)
{
va_list args;
va_start (args, format);
va_list args_copy;
va_copy (args_copy, args);
const char *str = "";
int number = 0;
float fnumber = 0;
while (*format)
{
switch (*format++)
{
case '\''s'\'': // string
str = va_arg (args_copy, const char *);
break;
case '\''d'\'': // int
number = va_arg (args_copy, int);
break;
case '\''f'\'': // float
fnumber = va_arg (args_copy, double);
break;
default:
break;
}
}
va_end (args_copy);
va_end (args);
return *str && number && fnumber;
}
'
# Test code for whether the C compiler supports C99 (body of main).
ac_c_conftest_c99_main='
// Check bool.
_Bool success = false;
success |= (argc != 0);
// Check restrict.
if (test_restrict ("String literal") == 0)
success = true;
char *restrict newvar = "Another string";
// Check varargs.
success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
test_varargs_macros ();
// Check flexible array members.
struct incomplete_array *ia =
malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
// Work around memory leak warnings.
free (ia);
// Check named initializers.
struct named_init ni = {
.number = 34,
.name = L"Test wide string",
.average = 543.34343,
};
ni.number = 58;
int dynamic_array[ni.number];
dynamic_array[0] = argv[0][0];
dynamic_array[ni.number - 1] = 543;
// work around unused variable warnings
ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
|| dynamic_array[ni.number - 1] != 543);
'
# Test code for whether the C compiler supports C11 (global declarations)
ac_c_conftest_c11_globals='
/* Does the compiler advertise C11 conformance? */
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
# error "Compiler does not advertise C11 conformance"
#endif
// Check _Alignas.
char _Alignas (double) aligned_as_double;
char _Alignas (0) no_special_alignment;
extern char aligned_as_int;
char _Alignas (0) _Alignas (int) aligned_as_int;
// Check _Alignof.
enum
{
int_alignment = _Alignof (int),
int_array_alignment = _Alignof (int[100]),
char_alignment = _Alignof (char)
};
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
// Check _Noreturn.
int _Noreturn does_not_return (void) { for (;;) continue; }
// Check _Static_assert.
struct test_static_assert
{
int x;
_Static_assert (sizeof (int) <= sizeof (long int),
"_Static_assert does not work in struct");
long int y;
};
// Check UTF-8 literals.
#define u8 syntax error!
char const utf8_literal[] = u8"happens to be ASCII" "another string";
// Check duplicate typedefs.
typedef long *long_ptr;
typedef long int *long_ptr;
typedef long_ptr long_ptr;
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
struct anonymous
{
union {
struct { int i; int j; };
struct { int k; long int l; } w;
};
int m;
} v1;
'
# Test code for whether the C compiler supports C11 (body of main).
ac_c_conftest_c11_main='
_Static_assert ((offsetof (struct anonymous, i)
== offsetof (struct anonymous, w.k)),
"Anonymous union alignment botch");
v1.i = 2;
v1.w.k = 5;
ok |= v1.i != 5;
'
# Test code for whether the C compiler supports C11 (complete).
ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
${ac_c_conftest_c11_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
${ac_c_conftest_c11_main}
return ok;
}
"
# Test code for whether the C compiler supports C99 (complete).
ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
return ok;
}
"
# Test code for whether the C compiler supports C89 (complete).
ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
return ok;
}
"
as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
as_fn_append ac_func_c_list " fork HAVE_FORK"
as_fn_append ac_func_c_list " vfork HAVE_VFORK"
# Auxiliary files required by this configure script.
ac_aux_files="config.guess config.sub install-sh"
# Locations in which to look for auxiliary files.
ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
# Search for a directory containing all of the required auxiliary files,
# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
# If we don't find one directory that contains all the files we need,
# we report the set of missing files from the *first* directory in
# $ac_aux_dir_candidates and give up.
ac_missing_aux_files=""
ac_first_candidate=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in $ac_aux_dir_candidates
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
ac_aux_dir_found=yes
ac_install_sh=
for ac_aux in $ac_aux_files
do
# As a special case, if "install-sh" is required, that requirement
# can be satisfied by any of "install-sh", "install.sh", or "shtool",
# and $ac_install_sh is set appropriately for whichever one is found.
if test x"$ac_aux" = x"install-sh"
then
if test -f "${as_dir}install-sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
ac_install_sh="${as_dir}install-sh -c"
elif test -f "${as_dir}install.sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
ac_install_sh="${as_dir}install.sh -c"
elif test -f "${as_dir}shtool"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
ac_install_sh="${as_dir}shtool install -c"
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} install-sh"
else
break
fi
fi
else
if test -f "${as_dir}${ac_aux}"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
else
break
fi
fi
fi
done
if test "$ac_aux_dir_found" = yes; then
ac_aux_dir="$as_dir"
break
fi
ac_first_candidate=false
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else case e in #(
e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;
esac
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
if test -f "${ac_aux_dir}config.guess"; then
ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
fi
if test -f "${ac_aux_dir}config.sub"; then
ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
fi
if test -f "$ac_aux_dir/configure"; then
ac_configure="$SHELL ${ac_aux_dir}configure"
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5
printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5
printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers config.h"
#
# Setup the standard programs
# https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Setting-Output-Variables.html
cmdln="`echo $@ | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/"/\\\\"/'g`"
printf "%s\n" "#define CONFCMDLINE \"$cmdln\"" >>confdefs.h
CFLAGS="$CFLAGS"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
set dummy ${ac_tool_prefix}clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "clang", so it can be a program name with args.
set dummy clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
fi
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See 'config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
printf %s "checking whether the C compiler works... " >&6; }
ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an '-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else case e in #(
e) ac_file='' ;;
esac
fi
if test -z "$ac_file"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See 'config.log' for more details" "$LINENO" 5; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; } ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will
# work properly (i.e., refer to 'conftest.exe'), while it won't with
# 'rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else case e in #(
e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
rm -f conftest conftest$ac_cv_exeext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
int
main (void)
{
FILE *f = fopen ("conftest.out", "w");
if (!f)
return 1;
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use '--host'.
See 'config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext \
conftest.o conftest.obj conftest.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else case e in #(
e) printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
else case e in #(
e) ac_compiler_gnu=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
else case e in #(
e) CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else case e in #(
e) ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c11=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
ac_prog_cc_stdc=c11 ;;
esac
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c99_program
_ACEOF
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c99=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
ac_prog_cc_stdc=c99 ;;
esac
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
ac_prog_cc_stdc=c89 ;;
esac
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_header= ac_cache=
for ac_item in $ac_header_c_list
do
if test $ac_cache; then
ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
printf "%s\n" "#define $ac_item 1" >> confdefs.h
fi
ac_header= ac_cache=
elif test $ac_header; then
ac_cache=$ac_item
else
ac_header=$ac_item
fi
done
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
then :
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if test ${ac_cv_safe_to_define___extensions__+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# define __EXTENSIONS__ 1
$ac_includes_default
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_safe_to_define___extensions__=yes
else case e in #(
e) ac_cv_safe_to_define___extensions__=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
if test ${ac_cv_should_define__xopen_source+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_should_define__xopen_source=no
if test $ac_cv_header_wchar_h = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 500
#include
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_should_define__xopen_source=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
if test $ac_cv_header_minix_config_h = yes
then :
MINIX=yes
printf "%s\n" "#define _MINIX 1" >>confdefs.h
printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
else case e in #(
e) MINIX= ;;
esac
fi
if test $ac_cv_safe_to_define___extensions__ = yes
then :
printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
fi
if test $ac_cv_should_define__xopen_source = yes
then :
printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
fi
if test "$ac_cv_header_minix_config_h" = "yes"; then
printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
fi
case "$prefix" in
NONE)
case "$sysconfdir" in
'${prefix}/etc')
sysconfdir=/etc
;;
esac
case "$localstatedir" in
'${prefix}/var')
localstatedir=/var
;;
esac
;;
esac
#
# Determine configuration directory
#
configdir=$sysconfdir/nsd
# Check whether --with-configdir was given.
if test ${with_configdir+y}
then :
withval=$with_configdir; configdir=$withval
fi
cat >>confdefs.h <<_ACEOF
#define CONFIGDIR "`eval echo $configdir`"
_ACEOF
#
# Determine configuration file
nsd_conf_file=${configdir}/nsd.conf
# Check whether --with-nsd_conf_file was given.
if test ${with_nsd_conf_file+y}
then :
withval=$with_nsd_conf_file; nsd_conf_file=$withval
fi
# the eval is to evaluate shell expansion twice, once
# for $nsd_conf_file and once for the ${prefix} within it.
cat >>confdefs.h <<_ACEOF
#define CONFIGFILE "`eval echo $nsd_conf_file`"
_ACEOF
#
# Default logfile
#
logfile=${localstatedir}/log/nsd.log
# Check whether --with-logfile was given.
if test ${with_logfile+y}
then :
withval=$with_logfile; logfile=$withval
fi
#
# Database directory
#
dbdir=${localstatedir}/db/nsd
#
# Determine the pidfile location. Check if /var/run exists, if so set pidfile
# to /var/run/nsd.pid by default
#
if test -d ${localstatedir}/run; then
pidfile=${localstatedir}/run/nsd.pid
else
pidfile=${dbdir}/nsd.pid
fi
# Check whether --with-pidfile was given.
if test ${with_pidfile+y}
then :
withval=$with_pidfile; pidfile=$withval
fi
cat >>confdefs.h <<_ACEOF
#define PIDFILE "`eval echo $pidfile`"
_ACEOF
# Check whether --with-dbfile was given.
if test ${with_dbfile+y}
then :
withval=$with_dbfile;
fi
piddir=`dirname $pidfile`
#
# Determine the default directory for the zone files
#
zonesdir=$configdir
# Check whether --with-zonesdir was given.
if test ${with_zonesdir+y}
then :
withval=$with_zonesdir; zonesdir=$withval
fi
cat >>confdefs.h <<_ACEOF
#define ZONESDIR "`eval echo $zonesdir`"
_ACEOF
# default xfrd file location.
xfrdfile=${dbdir}/xfrd.state
# Check whether --with-xfrdfile was given.
if test ${with_xfrdfile+y}
then :
withval=$with_xfrdfile; xfrdfile=$withval
fi
cat >>confdefs.h <<_ACEOF
#define XFRDFILE "`eval echo $xfrdfile`"
_ACEOF
# default zonelist file location.
zonelistfile=${dbdir}/zone.list
# Check whether --with-zonelistfile was given.
if test ${with_zonelistfile+y}
then :
withval=$with_zonelistfile; zonelistfile=$withval
fi
cat >>confdefs.h <<_ACEOF
#define ZONELISTFILE "`eval echo $zonelistfile`"
_ACEOF
# default cookiesecrets file location.
cookiesecretsfile=${dbdir}/cookiesecrets.txt
# Check whether --with-cookiesecretsfile was given.
if test ${with_cookiesecretsfile+y}
then :
withval=$with_cookiesecretsfile; cookiesecretsfile=$withval
fi
cat >>confdefs.h <<_ACEOF
#define COOKIESECRETSFILE "`eval echo $cookiesecretsfile`"
_ACEOF
# default xfr dir location.
xfrdir="/tmp"
# Check whether --with-xfrdir was given.
if test ${with_xfrdir+y}
then :
withval=$with_xfrdir; xfrdir=$withval
fi
cat >>confdefs.h <<_ACEOF
#define XFRDIR "`eval echo $xfrdir`"
_ACEOF
# nsd sbin location. tmpinstantiate execprefix with defaults if not yet done.
if test "x${exec_prefix}" = "xNONE"; then
if test "x${prefix}" = "xNONE"; then exec_prefix="$ac_default_prefix"
else exec_prefix="${prefix}"; fi
nsd_start_path="`eval echo $sbindir`/nsd"
exec_prefix="NONE"
else
nsd_start_path="`eval echo $sbindir`/nsd"
fi
printf "%s\n" "#define NSD_START_PATH \"$nsd_start_path\"" >>confdefs.h
#
# Determine default chroot directory
#
# Check whether --with-chroot was given.
if test ${with_chroot+y}
then :
withval=$with_chroot;
chrootdir=$withval
cat >>confdefs.h <<_ACEOF
#define CHROOTDIR "`eval echo $chrootdir`"
_ACEOF
fi
#
# Determine the user name to drop privileges to
#
user=nsd
# Check whether --with-user was given.
if test ${with_user+y}
then :
withval=$with_user; user=$withval
fi
printf "%s\n" "#define USER \"$user\"" >>confdefs.h
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
ac_prog_rejected=no
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# != 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
fi
fi
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
for ac_prog in cl.exe
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in cl.exe
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
fi
if test -z "$CC"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
set dummy ${ac_tool_prefix}clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_CC"; then
ac_ct_CC=$CC
# Extract the first word of "clang", so it can be a program name with args.
set dummy clang; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="clang"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
else
CC="$ac_cv_prog_CC"
fi
fi
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See 'config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
else case e in #(
e) ac_compiler_gnu=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
else case e in #(
e) CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else case e in #(
e) ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c11=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
ac_prog_cc_stdc=c11 ;;
esac
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c99_program
_ACEOF
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c99=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
ac_prog_cc_stdc=c99 ;;
esac
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC ;;
esac
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89" ;;
esac
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
ac_prog_cc_stdc=c89 ;;
esac
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
{ ac_script=; unset ac_script;}
if test -z "$SED"; then
ac_path_SED_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in sed gsed
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in #(
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_SED_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_SED="$ac_path_SED"
ac_path_SED_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_SED_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
fi
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
printf %s "checking for grep that handles long lines and -e... " >&6; }
if test ${ac_cv_path_GREP+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in #(
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
ac_path_GREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_GREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
printf "%s\n" "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in #(
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
EGREP_TRADITIONAL=$EGREP
ac_cv_path_EGREP_TRADITIONAL=$EGREP
for ac_prog in flex lex
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LEX+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$LEX"; then
ac_cv_prog_LEX="$LEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LEX="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
LEX=$ac_cv_prog_LEX
if test -n "$LEX"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
printf "%s\n" "$LEX" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$LEX" && break
done
test -n "$LEX" || LEX=":"
if test "x$LEX" != "x:"; then
cat >conftest.l <<_ACEOF
%{
#ifdef __cplusplus
extern "C"
#endif
int yywrap(void);
%}
%%
a { ECHO; }
b { REJECT; }
c { yymore (); }
d { yyless (1); }
e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument. */
#ifdef __cplusplus
yyless ((yyinput () != 0));
#else
yyless ((input () != 0));
#endif
}
f { unput (yytext[0]); }
. { BEGIN INITIAL; }
%%
#ifdef YYTEXT_POINTER
extern char *yytext;
#endif
int
yywrap (void)
{
return 1;
}
int
main (void)
{
return ! yylex ();
}
_ACEOF
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex output file root" >&5
printf %s "checking for lex output file root... " >&6; }
if test ${ac_cv_prog_lex_root+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
ac_cv_prog_lex_root=unknown
{ { ac_try="$LEX conftest.l"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$LEX conftest.l") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } &&
if test -f lex.yy.c; then
ac_cv_prog_lex_root=lex.yy
elif test -f lexyy.c; then
ac_cv_prog_lex_root=lexyy
fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
printf "%s\n" "$ac_cv_prog_lex_root" >&6; }
if test "$ac_cv_prog_lex_root" = unknown
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find output from $LEX; giving up on $LEX" >&5
printf "%s\n" "$as_me: WARNING: cannot find output from $LEX; giving up on $LEX" >&2;}
LEX=: LEXLIB=
fi
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
if test ${LEXLIB+y}
then :
else case e in #(
e)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lex library" >&5
printf %s "checking for lex library... " >&6; }
if test ${ac_cv_lib_lex+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
ac_save_LIBS="$LIBS"
ac_found=false
for ac_cv_lib_lex in 'none needed' -lfl -ll 'not found'; do
case $ac_cv_lib_lex in #(
'none needed') :
;; #(
'not found') :
break ;; #(
*) :
LIBS="$ac_cv_lib_lex $ac_save_LIBS" ;; #(
*) :
;;
esac
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_found=:
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if $ac_found; then
break
fi
done
LIBS="$ac_save_LIBS"
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
printf "%s\n" "$ac_cv_lib_lex" >&6; }
if test "$ac_cv_lib_lex" = 'not found'
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: required lex library not found; giving up on $LEX" >&5
printf "%s\n" "$as_me: WARNING: required lex library not found; giving up on $LEX" >&2;}
LEX=: LEXLIB=
elif test "$ac_cv_lib_lex" = 'none needed'
then :
LEXLIB=''
else case e in #(
e) LEXLIB=$ac_cv_lib_lex ;;
esac
fi
;;
esac
fi
if test "$LEX" != :
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
printf %s "checking whether yytext is a pointer... " >&6; }
if test ${ac_cv_prog_lex_yytext_pointer+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) # POSIX says lex can declare yytext either as a pointer or an array; the
# default is implementation-dependent. Figure out which it is, since
# not all implementations provide the %pointer and %array declarations.
ac_cv_prog_lex_yytext_pointer=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define YYTEXT_POINTER 1
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_lex_yytext_pointer=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
printf "%s\n" "$ac_cv_prog_lex_yytext_pointer" >&6; }
if test $ac_cv_prog_lex_yytext_pointer = yes; then
printf "%s\n" "#define YYTEXT_POINTER 1" >>confdefs.h
fi
fi
rm -f conftest.l $LEX_OUTPUT_ROOT.c
fi
for ac_prog in 'bison -y' byacc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_YACC+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_YACC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi ;;
esac
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
printf "%s\n" "$YACC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$YACC" && break
done
test -n "$YACC" || YACC="yacc"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
printf "%s\n" "no, using $LN_S" >&6; }
fi
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test ${ac_cv_path_install+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
# Account for fact that we put trailing slashes in our PATH walk.
case $as_dir in #((
./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
;;
esac
fi
if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
if test "$LEX" != ":" -a "$LEX" != ""; then
# Solaris provides anemic tools, and they don't offer GNU extensions like
# 'flex -i'. Solaris also does not offer GNU replacements in /usr/gnu/bin.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lex accepts -i" >&5
printf %s "checking whether lex accepts -i... " >&6; }
if echo "%%" | $LEX -i -t >/dev/null 2>&1
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else case e in #(
e)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
as_fn_error $? "unable to find a lexer that supports -i. If one is available then set the LEX variable" "$LINENO" 5
;;
esac
fi
# Check if lex defines yy_current_buffer, because 2.4.6 and older use it,
# but later could define it as a macro and then we should not redefine it.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if lex defines yy_current_buffer" >&5
printf %s "checking if lex defines yy_current_buffer... " >&6; }
cat <conftest.lex
%%
EOF
$LEX -i -t conftest.lex >> conftest.c 2>/dev/null
if $GREP "^#define yy_current_buffer" conftest.c >/dev/null; then
printf "%s\n" "#define LEX_DEFINES_YY_CURRENT_BUFFER 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
rm -f conftest.lex conftest.c
fi
# Checks for typedefs, structures, and compiler characteristics.
# allow user to override the -g -O2 flags.
if test "x$CFLAGS" = "x" ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
printf %s "checking whether $CC supports -g... " >&6; }
cache=`echo g | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -g -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
;;
esac
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -g"
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
:
fi
# we do not use O3 because it causes miscompilations.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
printf %s "checking whether $CC supports -O2... " >&6; }
cache=`echo O2 | sed 'y%.=/+-%___p_%'`
if eval test \${cv_prog_cc_flag_$cache+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
echo 'void f(void){}' >conftest.c
if test -z "`$CC $CPPFLAGS $CFLAGS -O2 -c conftest.c 2>&1`"; then
eval "cv_prog_cc_flag_$cache=yes"
else
eval "cv_prog_cc_flag_$cache=no"
fi
rm -f conftest conftest.o conftest.c
;;
esac
fi
if eval "test \"`echo '$cv_prog_cc_flag_'$cache`\" = yes"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
:
CFLAGS="$CFLAGS -O2"
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
:
fi
# Check whether --enable-flto was given.
if test ${enable_flto+y}
then :
enableval=$enable_flto;
fi
if test "x$enable_flto" != "xno"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -flto" >&5
printf %s "checking if $CC supports -flto... " >&6; }
BAKCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -flto"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if $CC $CFLAGS -o conftest conftest.c 2>&1 | $GREP -e "warning: no debug symbols in executable" -e "warning: object" >/dev/null; then
CFLAGS="$BAKCFLAGS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
else case e in #(
e) CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
# Check whether --enable-pie was given.
if test ${enable_pie+y}
then :
enableval=$enable_pie;
fi
if test "x$enable_pie" = "xyes"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports PIE" >&5
printf %s "checking if $CC supports PIE... " >&6; }
BAKLDFLAGS="$LDFLAGS"
BAKCFLAGS="$CFLAGS"
LDFLAGS="$LDFLAGS -pie"
CFLAGS="$CFLAGS -fPIE"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
LDFLAGS="$BAKLDFLAGS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
else case e in #(
e) LDFLAGS="$BAKLDFLAGS" ; CFLAGS="$BAKCFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
# Check whether --enable-relro_now was given.
if test ${enable_relro_now+y}
then :
enableval=$enable_relro_now;
fi
if test "x$enable_relro_now" = "xyes"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Wl,-z,relro,-z,now" >&5
printf %s "checking if $CC supports -Wl,-z,relro,-z,now... " >&6; }
BAKLDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,-z,relro,-z,now"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if $CC $CFLAGS $LDFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
LDFLAGS="$BAKLDFLAGS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
rm -f conftest conftest.c conftest.o
else case e in #(
e) LDFLAGS="$BAKLDFLAGS" ; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; } ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __cplusplus
/* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this sort of thing. */
char tx;
char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
else case e in #(
e) ac_cv_c_const=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
printf "%s\n" "#define const /**/" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
printf %s "checking for inline... " >&6; }
if test ${ac_cv_c_inline+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
static $ac_kw foo_t static_foo (void) {return 0; }
$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_inline=$ac_kw
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
*)
case $ac_cv_c_inline in
no) ac_val=;;
*) ac_val=$ac_cv_c_inline;;
esac
cat >>confdefs.h <<_ACEOF
#ifndef __cplusplus
#define inline $ac_val
#endif
_ACEOF
;;
esac
ac_fn_c_check_type "$LINENO" "uid_t" "ac_cv_type_uid_t" "$ac_includes_default"
if test "x$ac_cv_type_uid_t" = xyes
then :
else case e in #(
e)
printf "%s\n" "#define uid_t int" >>confdefs.h
;;
esac
fi
ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default"
if test "x$ac_cv_type_gid_t" = xyes
then :
else case e in #(
e)
printf "%s\n" "#define gid_t int" >>confdefs.h
;;
esac
fi
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
"
if test "x$ac_cv_type_pid_t" = xyes
then :
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined _WIN64 && !defined __CYGWIN__
LLP64
#endif
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_pid_type='int'
else case e in #(
e) ac_pid_type='__int64' ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
;;
esac
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
else case e in #(
e)
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
;;
esac
fi
ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
if test "x$ac_cv_type_off_t" = xyes
then :
else case e in #(
e)
printf "%s\n" "#define off_t long int" >>confdefs.h
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
printf %s "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
if test ${ac_cv_c_format_attribute+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_format_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
void f (char *format, ...) __attribute__ ((format (printf, 1, 2)));
void (*pf) (char *format, ...) __attribute__ ((format (printf, 1, 2)));
int
main (void)
{
f ("%s", "str");
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_format_attribute="yes"
else case e in #(
e) ac_cv_c_format_attribute="no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_format_attribute" >&5
printf "%s\n" "$ac_cv_c_format_attribute" >&6; }
if test $ac_cv_c_format_attribute = yes; then
printf "%s\n" "#define HAVE_ATTR_FORMAT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
printf %s "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
if test ${ac_cv_c_unused_attribute+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_unused_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
void f (char *u __attribute__((unused)));
int
main (void)
{
f ("x");
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_unused_attribute="yes"
else case e in #(
e) ac_cv_c_unused_attribute="no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_unused_attribute" >&5
printf "%s\n" "$ac_cv_c_unused_attribute" >&6; }
if test $ac_cv_c_unused_attribute = yes; then
printf "%s\n" "#define HAVE_ATTR_UNUSED 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute" >&5
printf %s "checking whether the C compiler (${CC-cc}) accepts the \"weak\" attribute... " >&6; }
if test ${ac_cv_c_weak_attribute+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_weak_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
__attribute__((weak)) void f(int x) { printf("%d", x); }
int
main (void)
{
f(1);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_weak_attribute="yes"
else case e in #(
e) ac_cv_c_weak_attribute="no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_weak_attribute" >&5
printf "%s\n" "$ac_cv_c_weak_attribute" >&6; }
if test $ac_cv_c_weak_attribute = yes; then
printf "%s\n" "#define HAVE_ATTR_WEAK 1" >>confdefs.h
printf "%s\n" "#define ATTR_WEAK __attribute__((weak))" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute" >&5
printf %s "checking whether the C compiler (${CC-cc}) accepts the \"noreturn\" attribute... " >&6; }
if test ${ac_cv_c_noreturn_attribute+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_noreturn_attribute=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
__attribute__((noreturn)) void f(int x) { printf("%d", x); }
int
main (void)
{
f(1);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_noreturn_attribute="yes"
else case e in #(
e) ac_cv_c_noreturn_attribute="no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_noreturn_attribute" >&5
printf "%s\n" "$ac_cv_c_noreturn_attribute" >&6; }
if test $ac_cv_c_noreturn_attribute = yes; then
printf "%s\n" "#define HAVE_ATTR_NORETURN 1" >>confdefs.h
printf "%s\n" "#define ATTR_NORETURN __attribute__((__noreturn__))" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if memcmp compares unsigned" >&5
printf %s "checking if memcmp compares unsigned... " >&6; }
if test "$cross_compiling" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compile no" >&5
printf "%s\n" "cross-compile no" >&6; }
printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
case " $LIBOBJS " in
*" memcmp.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
;;
esac
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
int main(void)
{
char a = 255, b = 0;
if(memcmp(&a, &b, 1) < 0)
return 1;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "#define MEMCMP_IS_BROKEN 1" >>confdefs.h
case " $LIBOBJS " in
*" memcmp.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
;;
esac
;;
esac
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ctime_r works with two arguments" >&5
printf %s "checking whether ctime_r works with two arguments... " >&6; }
if test ${ac_cv_c_ctime_c+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_cv_c_ctime_c=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
void testing (void) { time_t clock; char current_time[40]; ctime_r(&clock, current_time); }
int
main (void)
{
testing();
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_ctime_c="yes"
else case e in #(
e) ac_cv_c_ctime_c="no" ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_ctime_c" >&5
printf "%s\n" "$ac_cv_c_ctime_c" >&6; }
if test $ac_cv_c_ctime_c = no; then
CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
fi
# Checks for libraries.
# Check for SSL, original taken from
# http://www.gnu.org/software/ac-archive/htmldoc/check_ssl.html and
# modified for NSD.
# check for libevent
# Check whether --with-libevent was given.
if test ${with_libevent+y}
then :
withval=$with_libevent;
else case e in #(
e) withval="yes" ;;
esac
fi
if test x_$withval = x_yes -o x_$withval != x_no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libevent" >&5
printf %s "checking for libevent... " >&6; }
if test x_$withval = x_ -o x_$withval = x_yes; then
withval="/usr/local /opt/local /usr/lib /usr/pkg /usr/sfw /usr /usr/local/opt/libevent"
fi
for dir in $withval; do
thedir="$dir"
if test -f "$dir/include/event.h" -o -f "$dir/include/event2/event.h"; then
found_libevent="yes"
if test "$thedir" != "/usr"; then
CPPFLAGS="$CPPFLAGS -I$thedir/include"
fi
break;
fi
done
if test x_$found_libevent != x_yes; then
if test -f "$dir/event.h" -a \( -f "$dir/libevent.la" -o -f "$dir/libev.la" \) ; then
# libevent source directory
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
printf "%s\n" "found in $thedir" >&6; }
CPPFLAGS="$CPPFLAGS -I$thedir -I$thedir/include"
# remove evdns from linking
ev_files_o=`ls $thedir/*.o | $GREP -v evdns\.o | $GREP -v bufferevent_openssl\.o`
cp $ev_files_o .
LDFLAGS="$ev_files_o $LDFLAGS -lm"
else
as_fn_error $? "Cannot find the libevent library.
You can restart ./configure --with-libevent=no to use a builtin alternative." "$LINENO" 5
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $thedir" >&5
printf "%s\n" "found in $thedir" >&6; }
if test ! -f $thedir/lib/libevent.a -a ! -f $thedir/lib/libevent.so -a -d "$thedir/lib/event2"; then
LDFLAGS="$LDFLAGS -L$thedir/lib/event2"
if test "x$enable_rpath" = xyes; then
if echo "$thedir/lib/event2" | grep "^/" >/dev/null; then
RUNTIME_PATH="$RUNTIME_PATH -R$thedir/lib/event2"
fi
fi
else
if test "$thedir" != "/usr" -a "$thedir" != ""; then
LDFLAGS="$LDFLAGS -L$thedir/lib"
if test "x$enable_rpath" = xyes; then
if echo "$thedir/lib" | grep "^/" >/dev/null; then
RUNTIME_PATH="$RUNTIME_PATH -R$thedir/lib"
fi
fi
fi
fi
fi
# check for library used by libevent after 1.3c
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char clock_gettime (void);
int
main (void)
{
return clock_gettime ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_clock_gettime+y}
then :
break
fi
done
if test ${ac_cv_search_clock_gettime+y}
then :
else case e in #(
e) ac_cv_search_clock_gettime=no ;;
esac
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# is the event.h header libev or libevent?
ac_fn_c_check_header_compile "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default
"
if test "x$ac_cv_header_event_h" = xyes
then :
printf "%s\n" "#define HAVE_EVENT_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_save_CFLAGS=$CFLAGS
ac_cv_c_undeclared_builtin_options='cannot detect'
for ac_arg in '' -fno-builtin; do
CFLAGS="$ac_save_CFLAGS $ac_arg"
# This test program should *not* compile successfully.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
(void) strchr;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else case e in #(
e) # This test program should compile successfully.
# No library function is consistently available on
# freestanding implementations, so test against a dummy
# declaration. Include always-available headers on the
# off chance that they somehow elicit warnings.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
extern void ac_decl (int, char *);
int
main (void)
{
(void) ac_decl (0, (char *) 0);
(void) ac_decl;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
if test x"$ac_arg" = x
then :
ac_cv_c_undeclared_builtin_options='none needed'
else case e in #(
e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;
esac
fi
break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
CFLAGS=$ac_save_CFLAGS
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
case $ac_cv_c_undeclared_builtin_options in #(
'cannot detect') :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot make $CC report undeclared builtins
See 'config.log' for more details" "$LINENO" 5; } ;; #(
'none needed') :
ac_c_undeclared_builtin_options='' ;; #(
*) :
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac
ac_fn_check_decl "$LINENO" "EV_VERSION_MAJOR" "ac_cv_have_decl_EV_VERSION_MAJOR" "$ac_includes_default
#include
" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
printf %s "checking for library containing event_set... " >&6; }
if test ${ac_cv_search_event_set+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char event_set (void);
int
main (void)
{
return event_set ();
;
return 0;
}
_ACEOF
for ac_lib in '' ev
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_event_set=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_event_set+y}
then :
break
fi
done
if test ${ac_cv_search_event_set+y}
then :
else case e in #(
e) ac_cv_search_event_set=no ;;
esac
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
printf "%s\n" "$ac_cv_search_event_set" >&6; }
ac_res=$ac_cv_search_event_set
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
else case e in #(
e)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
printf %s "checking for library containing event_set... " >&6; }
if test ${ac_cv_search_event_set+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char event_set (void);
int
main (void)
{
return event_set ();
;
return 0;
}
_ACEOF
for ac_lib in '' event
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_event_set=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_event_set+y}
then :
break
fi
done
if test ${ac_cv_search_event_set+y}
then :
else case e in #(
e) ac_cv_search_event_set=no ;;
esac
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_event_set" >&5
printf "%s\n" "$ac_cv_search_event_set" >&6; }
ac_res=$ac_cv_search_event_set
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
esac
fi
ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
if test "x$ac_cv_func_event_base_free" = xyes
then :
printf "%s\n" "#define HAVE_EVENT_BASE_FREE 1" >>confdefs.h
fi
# only in libevent 1.2 and later
ac_fn_c_check_func "$LINENO" "event_base_once" "ac_cv_func_event_base_once"
if test "x$ac_cv_func_event_base_once" = xyes
then :
printf "%s\n" "#define HAVE_EVENT_BASE_ONCE 1" >>confdefs.h
fi
# only in libevent 1.4.1 and later
ac_fn_c_check_func "$LINENO" "event_base_new" "ac_cv_func_event_base_new"
if test "x$ac_cv_func_event_base_new" = xyes
then :
printf "%s\n" "#define HAVE_EVENT_BASE_NEW 1" >>confdefs.h
fi
# only in libevent 1.4.1 and later
ac_fn_c_check_func "$LINENO" "event_base_get_method" "ac_cv_func_event_base_get_method"
if test "x$ac_cv_func_event_base_get_method" = xyes
then :
printf "%s\n" "#define HAVE_EVENT_BASE_GET_METHOD 1" >>confdefs.h
fi
# only in libevent 1.4.3 and later
ac_fn_c_check_func "$LINENO" "ev_loop" "ac_cv_func_ev_loop"
if test "x$ac_cv_func_ev_loop" = xyes
then :
printf "%s\n" "#define HAVE_EV_LOOP 1" >>confdefs.h
fi
# only in libev. (tested on 3.51)
ac_fn_c_check_func "$LINENO" "ev_default_loop" "ac_cv_func_ev_default_loop"
if test "x$ac_cv_func_ev_default_loop" = xyes
then :
printf "%s\n" "#define HAVE_EV_DEFAULT_LOOP 1" >>confdefs.h
fi
# only in libev. (tested on 4.00)
# prometheus metrics depend on libevent 2.0 and later, and is therefore
# only enabled when the required version is found and used
for ac_func in evhttp_free
do :
ac_fn_c_check_func "$LINENO" "evhttp_free" "ac_cv_func_evhttp_free"
if test "x$ac_cv_func_evhttp_free" = xyes
then :
printf "%s\n" "#define HAVE_EVHTTP_FREE 1" >>confdefs.h
printf "%s\n" "#define USE_METRICS /**/" >>confdefs.h
printf "%s\n" "#define NSD_METRICS_PORT 9100" >>confdefs.h
else case e in #(
e)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: disabling prometheus metrics" >&5
printf "%s\n" "$as_me: disabling prometheus metrics" >&6;}
;;
esac
fi
done
else
printf "%s\n" "#define USE_MINI_EVENT 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Prometheus metrics are disabled with the builtin libevent alternative" >&5
printf "%s\n" "$as_me: Prometheus metrics are disabled with the builtin libevent alternative" >&6;}
fi
# Checks for header files.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
printf %s "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
if test ${ac_cv_header_sys_wait_h+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#ifndef WEXITSTATUS
# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
#endif
#ifndef WIFEXITED
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif
int
main (void)
{
int s;
wait (&s);
s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_header_sys_wait_h=yes
else case e in #(
e) ac_cv_header_sys_wait_h=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
printf "%s\n" "$ac_cv_header_sys_wait_h" >&6; }
if test $ac_cv_header_sys_wait_h = yes; then
printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default
"
if test "x$ac_cv_header_time_h" = xyes
then :
printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default
"
if test "x$ac_cv_header_arpa_inet_h" = xyes
then :
printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default
"
if test "x$ac_cv_header_signal_h" = xyes
then :
printf "%s\n" "#define HAVE_SIGNAL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default
"
if test "x$ac_cv_header_string_h" = xyes
then :
printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default
"
if test "x$ac_cv_header_strings_h" = xyes
then :
printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default
"
if test "x$ac_cv_header_fcntl_h" = xyes
then :
printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default
"
if test "x$ac_cv_header_limits_h" = xyes
then :
printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default
"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" "$ac_includes_default
"
if test "x$ac_cv_header_netinet_tcp_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_TCP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default
"
if test "x$ac_cv_header_stddef_h" = xyes
then :
printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_un_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default
"
if test "x$ac_cv_header_syslog_h" = xyes
then :
printf "%s\n" "#define HAVE_SYSLOG_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default
"
if test "x$ac_cv_header_unistd_h" = xyes
then :
printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_select_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default
"
if test "x$ac_cv_header_stdarg_h" = xyes
then :
printf "%s\n" "#define HAVE_STDARG_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default
"
if test "x$ac_cv_header_stdint_h" = xyes
then :
printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default
"
if test "x$ac_cv_header_netdb_h" = xyes
then :
printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/bitypes.h" "ac_cv_header_sys_bitypes_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_bitypes_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_BITYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default
"
if test "x$ac_cv_header_tcpd_h" = xyes
then :
printf "%s\n" "#define HAVE_TCPD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default
"
if test "x$ac_cv_header_glob_h" = xyes
then :
printf "%s\n" "#define HAVE_GLOB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default
"
if test "x$ac_cv_header_grp_h" = xyes
then :
printf "%s\n" "#define HAVE_GRP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default
"
if test "x$ac_cv_header_endian_h" = xyes
then :
printf "%s\n" "#define HAVE_ENDIAN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/random.h" "ac_cv_header_sys_random_h" "$ac_includes_default
"
if test "x$ac_cv_header_sys_random_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_RANDOM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default
"
if test "x$ac_cv_header_ifaddrs_h" = xyes
then :
printf "%s\n" "#define HAVE_IFADDRS_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for double definition of struct va_list" >&5
printf %s "checking for double definition of struct va_list... " >&6; }
if test ${ac_cv_c_va_list_def+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat >conftest.c <
#include
int foo(void);
EOF
if test -z "`$CC -Werror -D_XOPEN_SOURCE=600 -c conftest.c 2>&1`"; then
eval "ac_cv_c_va_list_def=no"
else
eval "ac_cv_c_va_list_def=yes"
fi
rm -f conftest*
;;
esac
fi
if test $ac_cv_c_va_list_def = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
:
printf "%s\n" "#define HAVE_VA_LIST_DOUBLE_DEF /**/" >>confdefs.h
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
:
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strptime needs defines" >&5
printf %s "checking whether strptime needs defines... " >&6; }
if test ${ac_cv_c_strptime_needs_defs+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat >conftest.c <
int testing (void) { struct tm t; const char *timestr="201201"; return strptime(timestr, "%Y%m", &t) != 0; }
EOF
if test -z "`$CC -Wall -Werror -c conftest.c 2>&1`"; then
eval "ac_cv_c_strptime_needs_defs=no"
else
eval "ac_cv_c_strptime_needs_defs=yes"
fi
rm -f conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_needs_defs" >&5
printf "%s\n" "$ac_cv_c_strptime_needs_defs" >&6; }
if test $ac_cv_c_strptime_needs_defs = yes; then
printf "%s\n" "#define STRPTIME_NEEDS_DEFINES 1" >>confdefs.h
fi
# check wether strptime also works
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
printf %s "checking for library containing inet_pton... " >&6; }
if test ${ac_cv_search_inet_pton+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char inet_pton (void);
int
main (void)
{
return inet_pton ();
;
return 0;
}
_ACEOF
for ac_lib in '' nsl
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_inet_pton=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_inet_pton+y}
then :
break
fi
done
if test ${ac_cv_search_inet_pton+y}
then :
else case e in #(
e) ac_cv_search_inet_pton=no ;;
esac
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
ac_res=$ac_cv_search_inet_pton
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
printf %s "checking for library containing socket... " >&6; }
if test ${ac_cv_search_socket+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply.
The 'extern "C"' is for builds by C++ compilers;
although this is not generally supported in C code supporting it here
has little cost and some practical benefit (sr 110532). */
#ifdef __cplusplus
extern "C"
#endif
char socket (void);
int
main (void)
{
return socket ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_socket=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_socket+y}
then :
break
fi
done
if test ${ac_cv_search_socket+y}
then :
else case e in #(
e) ac_cv_search_socket=no ;;
esac
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
printf "%s\n" "$ac_cv_search_socket" >&6; }
ac_res=$ac_cv_search_socket
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
printf %s "checking whether strptime works... " >&6; }
if test c${cross_compiling} = cno; then
if test "$cross_compiling" = yes
then :
eval "ac_cv_c_strptime_works=maybe"
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 600
#include
int main(void) { struct tm tm; char *res;
res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
if (!res) return 1; return 0; }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
eval "ac_cv_c_strptime_works=yes"
else case e in #(
e) eval "ac_cv_c_strptime_works=no" ;;
esac
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
else
eval "ac_cv_c_strptime_works=maybe"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
printf "%s\n" "$ac_cv_c_strptime_works" >&6; }
if test $ac_cv_c_strptime_works = no; then
case " $LIBOBJS " in
*" strptime.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS strptime.$ac_objext"
;;
esac
else
printf "%s\n" "#define STRPTIME_WORKS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if nonblocking sockets work" >&5
printf %s "checking if nonblocking sockets work... " >&6; }
if echo $host | grep mingw >/dev/null; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (windows)" >&5
printf "%s\n" "no (windows)" >&6; }
printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
else
if test "$cross_compiling" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: crosscompile(yes)" >&5
printf "%s\n" "crosscompile(yes)" >&6; }
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#include
#include
#ifdef HAVE_SYS_TYPES_H
#include
#endif
#ifdef HAVE_SYS_SELECT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_NETINET_IN_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_UNISTD_H
#include
#endif
#ifdef HAVE_TIME_H
#include
#endif
int main(void)
{
int port;
int sfd, cfd;
int num = 10;
int i, p;
struct sockaddr_in a;
/* test if select and nonblocking reads work well together */
/* open port.
fork child to send 10 messages.
select to read.
then try to nonblocking read the 10 messages
then, nonblocking read must give EAGAIN
*/
port = 12345 + (time(0)%32);
sfd = socket(PF_INET, SOCK_DGRAM, 0);
if(sfd == -1) {
perror("socket");
return 1;
}
memset(&a, 0, sizeof(a));
a.sin_family = AF_INET;
a.sin_port = htons(port);
a.sin_addr.s_addr = inet_addr("127.0.0.1");
if(bind(sfd, (struct sockaddr*)&a, sizeof(a)) < 0) {
perror("bind");
return 1;
}
if(fcntl(sfd, F_SETFL, O_NONBLOCK) == -1) {
perror("fcntl");
return 1;
}
cfd = socket(PF_INET, SOCK_DGRAM, 0);
if(cfd == -1) {
perror("client socket");
return 1;
}
a.sin_port = 0;
if(bind(cfd, (struct sockaddr*)&a, sizeof(a)) < 0) {
perror("client bind");
return 1;
}
a.sin_port = htons(port);
/* no handler, causes exit in 10 seconds */
alarm(10);
/* send and receive on the socket */
if((p=fork()) == 0) {
for(i=0; i&5
printf "%s\n" "yes" >&6; }
else case e in #(
e)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "#define NONBLOCKING_IS_BROKEN 1" >>confdefs.h
;;
esac
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mkdir has one arg" >&5
printf %s "checking whether mkdir has one arg... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#ifdef HAVE_WINSOCK2_H
#include
#endif
#ifdef HAVE_SYS_STAT_H
#include
#endif
int
main (void)
{
(void)mkdir("directory");
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
printf "%s\n" "#define MKDIR_HAS_ONE_ARG 1" >>confdefs.h
else case e in #(
e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# set -I. and -Isrcdir
if test -n "$CPPFLAGS"; then
CPPFLAGS="$CPPFLAGS -I."
else
CPPFLAGS="-I."
fi
if test "$srcdir" != "."; then
CPPFLAGS="$CPPFLAGS -I$srcdir"
if test -f $srcdir/config.h; then
as_fn_error $? "$srcdir/config.h is in the way, please remove it" "$LINENO" 5
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test ${ac_cv_prog_CPP+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) # Double quotes because $CC needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else case e in #(
e) # Broken: fails on valid input.
continue ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else case e in #(
e) # Passes both tests.
ac_preproc_ok=:
break ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
break
fi
done
ac_cv_prog_CPP=$CPP
;;
esac
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else case e in #(
e) # Broken: fails on valid input.
continue ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else case e in #(
e) # Passes both tests.
ac_preproc_ok=:
break ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
else case e in #(
e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
printf %s "checking for egrep -e... " >&6; }
if test ${ac_cv_path_EGREP_TRADITIONAL+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if test -z "$EGREP_TRADITIONAL"; then
ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
# Check for GNU $ac_path_EGREP_TRADITIONAL
case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
"$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
:
fi
else
ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
if test "$ac_cv_path_EGREP_TRADITIONAL"
then :
ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E"
else case e in #(
e) if test -z "$EGREP_TRADITIONAL"; then
ac_path_EGREP_TRADITIONAL_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue
# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found.
# Check for GNU $ac_path_EGREP_TRADITIONAL
case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #(
*GNU*)
ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;;
#(
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
"$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL"
ac_path_EGREP_TRADITIONAL_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_TRADITIONAL_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL
fi
;;
esac
fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int8_t" >&5
printf %s "checking for int8_t... " >&6; }
if test ${ac_cv_type_int8_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])int8_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_int8_t=yes
else case e in #(
e) ac_cv_type_int8_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_int8_t" >&5
printf "%s\n" "$ac_cv_type_int8_t" >&6; }
if test $ac_cv_type_int8_t = no; then
printf "%s\n" "#define int8_t char" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int16_t" >&5
printf %s "checking for int16_t... " >&6; }
if test ${ac_cv_type_int16_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])int16_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_int16_t=yes
else case e in #(
e) ac_cv_type_int16_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_int16_t" >&5
printf "%s\n" "$ac_cv_type_int16_t" >&6; }
if test $ac_cv_type_int16_t = no; then
printf "%s\n" "#define int16_t short" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int32_t" >&5
printf %s "checking for int32_t... " >&6; }
if test ${ac_cv_type_int32_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_int32_t=yes
else case e in #(
e) ac_cv_type_int32_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_int32_t" >&5
printf "%s\n" "$ac_cv_type_int32_t" >&6; }
if test $ac_cv_type_int32_t = no; then
printf "%s\n" "#define int32_t int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int64_t" >&5
printf %s "checking for int64_t... " >&6; }
if test ${ac_cv_type_int64_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_int64_t=yes
else case e in #(
e) ac_cv_type_int64_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_int64_t" >&5
printf "%s\n" "$ac_cv_type_int64_t" >&6; }
if test $ac_cv_type_int64_t = no; then
printf "%s\n" "#define int64_t long long" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint8_t" >&5
printf %s "checking for uint8_t... " >&6; }
if test ${ac_cv_type_uint8_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])uint8_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_uint8_t=yes
else case e in #(
e) ac_cv_type_uint8_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uint8_t" >&5
printf "%s\n" "$ac_cv_type_uint8_t" >&6; }
if test $ac_cv_type_uint8_t = no; then
printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint16_t" >&5
printf %s "checking for uint16_t... " >&6; }
if test ${ac_cv_type_uint16_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])uint16_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_uint16_t=yes
else case e in #(
e) ac_cv_type_uint16_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uint16_t" >&5
printf "%s\n" "$ac_cv_type_uint16_t" >&6; }
if test $ac_cv_type_uint16_t = no; then
printf "%s\n" "#define uint16_t unsigned short" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint32_t" >&5
printf %s "checking for uint32_t... " >&6; }
if test ${ac_cv_type_uint32_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include
#ifdef HAVE_STDINT_H
#include
#endif
#ifdef HAVE_SYS_SOCKET_H
#include
#endif
#ifdef HAVE_ARPA_INET_H
#include
#endif
#ifdef HAVE_SIGNAL_H
#include
#endif
/* For Tru64 */
#ifdef HAVE_SYS_BITYPES_H
#include
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]" >/dev/null 2>&1
then :
ac_cv_type_uint32_t=yes
else case e in #(
e) ac_cv_type_uint32_t=no ;;
esac
fi
rm -rf conftest*
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uint32_t" >&5
printf "%s\n" "$ac_cv_type_uint32_t" >&6; }
if test $ac_cv_type_uint32_t = no; then
printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint64_t" >&5
printf %s "checking for uint64_t... " >&6; }
if test ${ac_cv_type_uint64_t+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include
#include
#include