Codebase list unbound / 4015e91
Imported Upstream version 1.4.14 Robert S. Edmonds 12 years ago
106 changed file(s) with 9945 addition(s) and 5703 deletion(s). Raw diff Collapse all Expand all
00 # Copyright 2007 NLnet Labs
11 # See the file LICENSE for the license
2
3 debug_enabled=@debug_enabled@
4 ifeq "$(QUIET)" ""
5 ifeq ($(debug_enabled),yes)
6 QUIET=yes
7 LIBTOOLQUIET=yes
8 else
9 QUIET=no
10 LIBTOOLQUIET=yes
11 endif
12 endif
13
14 ifeq "$(QUIET)" "yes"
15 Q=@
16 INFO=@echo
17 else
18 Q=
19 INFO=@:
20 endif
212
223 SHELL=@SHELL@
234 VERSION=@PACKAGE_VERSION@
3920 EXEEXT=@EXEEXT@
4021 configfile=@ub_conf_file@
4122 UNBOUND_RUN_DIR=@UNBOUND_RUN_DIR@
42 CHECKLOCK_SRC=@CHECKLOCK_SRC@
43 UB_ON_WINDOWS=@UB_ON_WINDOWS@
23 CHECKLOCK_SRC=testcode/checklocks.c
24 CHECKLOCK_OBJ=@CHECKLOCK_OBJ@
4425 WITH_PYTHONMODULE=@WITH_PYTHONMODULE@
4526 WITH_PYUNBOUND=@WITH_PYUNBOUND@
4627 PYTHON_SITE_PKG=@PYTHON_SITE_PKG@
47 EXPORT_ALL_SYMBOLS=@EXPORT_ALL_SYMBOLS@
28 PYTHONMOD_INSTALL=@PYTHONMOD_INSTALL@
29 PYTHONMOD_UNINSTALL=@PYTHONMOD_UNINSTALL@
30 PYUNBOUND_INSTALL=@PYUNBOUND_INSTALL@
31 PYUNBOUND_UNINSTALL=@PYUNBOUND_UNINSTALL@
32
33 # _unbound.la if pyunbound enabled.
34 PYUNBOUND_TARGET=@PYUNBOUND_TARGET@
4835
4936 # override $U variable which is used by autotools for deansification (for
5037 # K&R C compilers), but causes problems if $U is defined in the env).
5643 STRIP=@STRIP@
5744 CC=@CC@
5845 CPPFLAGS=-I. @CPPFLAGS@
59 ifneq "$(srcdir)" "."
60 CPPFLAGS:=-I$(srcdir) $(CPPFLAGS)
61 endif
62 CPPFLAGS:=$(strip $(CPPFLAGS))
6346 CFLAGS=@CFLAGS@
6447 LDFLAGS=@LDFLAGS@
65 LIBS=$(strip @LIBS@)
48 LIBS=@LIBS@
6649 LIBOBJS=@LIBOBJS@
50 # filter out ctime_r from compat obj.
51 LIBOBJ_WITHOUT_CTIME=@LIBOBJ_WITHOUT_CTIME@
6752 RUNTIME_PATH=@RUNTIME_PATH@
6853 DEPFLAG=@DEPFLAG@
69 DATE=$(shell date +%Y%m%d)
54 DATE=@CONFIG_DATE@
7055 LIBTOOL=$(libtool)
71 ifeq "$(LIBTOOLQUIET)" "yes"
72 LIBTOOL+=--quiet
73 endif
7456 BUILD=build/
57 UBSYMS=@UBSYMS@
58 EXTRALINK=@EXTRALINK@
7559
7660 WINDRES=@WINDRES@
7761 LINT=splint
8064 # compat with openssl linux edition.
8165 LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned"
8266 # compat with NetBSD
83 ifeq "$(shell uname)" "NetBSD"
84 LINTFLAGS+="-D__RENAME(x)=" -D_NETINET_IN_H_
85 endif
67 LINTFLAGS+=@NETBSD_LINTFLAGS@
8668 # compat with OpenBSD
8769 LINTFLAGS+="-Dsigset_t=long"
8870 # FreeBSD8
8971 LINTFLAGS+="-D__uint16_t=uint16_t"
9072
9173 INSTALL=$(srcdir)/install-sh
92 ifeq "$(WITH_PYTHONMODULE)" "yes"
93 PYTHONMOD_SRC=$(srcdir)/pythonmod/*.c
94 endif
95
96 COMMON_SRC=$(patsubst $(srcdir)/%,%, $(wildcard $(srcdir)/services/*.c \
97 $(srcdir)/services/cache/*.c $(srcdir)/util/*.c \
98 $(srcdir)/util/data/*.c $(srcdir)/util/storage/*.c \
99 $(srcdir)/iterator/*.c $(srcdir)/validator/*.c $(PYTHONMOD_SRC))) \
100 util/configparser.c util/configlexer.c $(CHECKLOCK_SRC)
101 COMMON_OBJ=$(addprefix $(BUILD),$(COMMON_SRC:.c=.lo))
102 COMPAT_SRC=$(addprefix compat/,$(LIBOBJS:.o=.c))
103 COMPAT_OBJ=$(addprefix $(BUILD)compat/,$(LIBOBJS:.o=.lo))
104 UNITTEST_SRC=$(patsubst $(srcdir)/%,%, \
105 $(wildcard $(srcdir)/testcode/unit*.c)) \
106 testcode/readhex.c testcode/ldns-testpkts.c smallapp/worker_cb.c \
107 $(COMMON_SRC)
108 UNITTEST_OBJ=$(addprefix $(BUILD),$(UNITTEST_SRC:.c=.lo)) $(COMPAT_OBJ)
109
110 DAEMON_SRC=$(patsubst $(srcdir)/%,%, $(wildcard $(srcdir)/daemon/*.c))
111 ifneq "$(EXPORT_ALL_SYMBOLS)" "yes"
112 DAEMON_SRC+=$(COMMON_SRC)
113 endif
114 DAEMON_OBJ=$(addprefix $(BUILD),$(DAEMON_SRC:.c=.lo)) $(COMPAT_OBJ)
115
74
75 #pythonmod.c is not here, it is mentioned by itself in its own rules,
76 #makedepend fails on missing interface.h otherwise.
77 PYTHONMOD_SRC=pythonmod/pythonmod_utils.c
78 # pythonmod.lo pythonmod_utils.lo if python mod enabled.
79 PYTHONMOD_OBJ=@PYTHONMOD_OBJ@
80 # libunbound/python/libunbound_wrap.c is dealt with by its own rules.
81 PYUNBOUND_SRC=
82 # libunbound_wrap.lo if python libunbound wrapper enabled.
83 PYUNBOUND_OBJ=@PYUNBOUND_OBJ@
84 COMMON_SRC=services/cache/dns.c services/cache/infra.c services/cache/rrset.c \
85 util/data/dname.c util/data/msgencode.c util/data/msgparse.c \
86 util/data/msgreply.c util/data/packed_rrset.c iterator/iterator.c \
87 iterator/iter_delegpt.c iterator/iter_donotq.c iterator/iter_fwd.c \
88 iterator/iter_hints.c iterator/iter_priv.c iterator/iter_resptype.c \
89 iterator/iter_scrub.c iterator/iter_utils.c services/listen_dnsport.c \
90 services/localzone.c services/mesh.c services/modstack.c \
91 services/outbound_list.c services/outside_network.c util/alloc.c \
92 util/config_file.c util/configlexer.c util/configparser.c \
93 util/fptr_wlist.c util/locks.c util/log.c util/mini_event.c util/module.c \
94 util/netevent.c util/net_help.c util/random.c util/rbtree.c util/regional.c \
95 util/rtt.c util/storage/dnstree.c util/storage/lookup3.c \
96 util/storage/lruhash.c util/storage/slabhash.c util/timehist.c util/tube.c \
97 util/winsock_event.c validator/autotrust.c validator/val_anchor.c \
98 validator/validator.c validator/val_kcache.c validator/val_kentry.c \
99 validator/val_neg.c validator/val_nsec3.c validator/val_nsec.c \
100 validator/val_sigcrypt.c validator/val_utils.c $(CHECKLOCK_SRC)
101 COMMON_OBJ_WITHOUT_NETCALL=dns.lo infra.lo rrset.lo dname.lo msgencode.lo \
102 msgparse.lo msgreply.lo packed_rrset.lo iterator.lo iter_delegpt.lo \
103 iter_donotq.lo iter_fwd.lo iter_hints.lo iter_priv.lo iter_resptype.lo \
104 iter_scrub.lo iter_utils.lo localzone.lo mesh.lo modstack.lo \
105 outbound_list.lo alloc.lo config_file.lo configlexer.lo configparser.lo \
106 fptr_wlist.lo locks.lo log.lo mini_event.lo module.lo net_help.lo \
107 random.lo rbtree.lo regional.lo rtt.lo dnstree.lo lookup3.lo lruhash.lo \
108 slabhash.lo timehist.lo tube.lo winsock_event.lo autotrust.lo val_anchor.lo \
109 validator.lo val_kcache.lo val_kentry.lo val_neg.lo val_nsec3.lo val_nsec.lo \
110 val_sigcrypt.lo val_utils.lo $(PYTHONMOD_OBJ) $(CHECKLOCK_OBJ)
111 COMMON_OBJ=$(COMMON_OBJ_WITHOUT_NETCALL) netevent.lo listen_dnsport.lo \
112 outside_network.lo
113 # set to $COMMON_OBJ or to "" if --enableallsymbols
114 COMMON_OBJ_ALL_SYMBOLS=@COMMON_OBJ_ALL_SYMBOLS@
115 COMPAT_SRC=compat/ctime_r.c compat/fake-rfc2553.c compat/gmtime_r.c \
116 compat/inet_aton.c compat/inet_ntop.c compat/inet_pton.c compat/malloc.c \
117 compat/memcmp.c compat/memmove.c compat/snprintf.c compat/strlcpy.c \
118 compat/strptime.c
119 COMPAT_OBJ=$(LIBOBJS:.o=.lo)
120 COMPAT_OBJ_WITHOUT_CTIME=$(LIBOBJ_WITHOUT_CTIME:.o=.lo)
121 UNITTEST_SRC=testcode/unitanchor.c testcode/unitdname.c \
122 testcode/unitlruhash.c testcode/unitmain.c testcode/unitmsgparse.c \
123 testcode/unitneg.c testcode/unitregional.c testcode/unitslabhash.c \
124 testcode/unitverify.c testcode/readhex.c testcode/ldns-testpkts.c
125 UNITTEST_OBJ=unitanchor.lo unitdname.lo unitlruhash.lo unitmain.lo \
126 unitmsgparse.lo unitneg.lo unitregional.lo unitslabhash.lo unitverify.lo \
127 readhex.lo ldns-testpkts.lo
128 UNITTEST_OBJ_LINK=$(UNITTEST_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
129 DAEMON_SRC=daemon/acl_list.c daemon/cachedump.c daemon/daemon.c \
130 daemon/remote.c daemon/stats.c daemon/unbound.c daemon/worker.c @WIN_DAEMON_SRC@
131 DAEMON_OBJ=acl_list.lo cachedump.lo daemon.lo remote.lo stats.lo unbound.lo \
132 worker.lo @WIN_DAEMON_OBJ@
133 DAEMON_OBJ_LINK=$(DAEMON_OBJ) $(COMMON_OBJ_ALL_SYMBOLS) \
134 $(COMPAT_OBJ) @WIN_DAEMON_OBJ_LINK@
116135 CHECKCONF_SRC=smallapp/unbound-checkconf.c smallapp/worker_cb.c
117 ifneq "$(EXPORT_ALL_SYMBOLS)" "yes"
118 CHECKCONF_SRC+=$(COMMON_SRC)
119 endif
120 CHECKCONF_OBJ=$(addprefix $(BUILD),$(CHECKCONF_SRC:.c=.lo)) $(COMPAT_OBJ)
121
122 CONTROL_SRC=smallapp/unbound-control.c smallapp/worker_cb.c
123 ifneq "$(EXPORT_ALL_SYMBOLS)" "yes"
124 CONTROL_SRC+=$(COMMON_SRC)
125 endif
126 CONTROL_OBJ=$(addprefix $(BUILD),$(CONTROL_SRC:.c=.lo)) $(COMPAT_OBJ)
127
136 CHECKCONF_OBJ=unbound-checkconf.lo worker_cb.lo
137 CHECKCONF_OBJ_LINK=$(CHECKCONF_OBJ) $(COMMON_OBJ_ALL_SYMBOLS) \
138 $(COMPAT_OBJ) @WIN_CHECKCONF_OBJ_LINK@
139 CONTROL_SRC=smallapp/unbound-control.c
140 CONTROL_OBJ=unbound-control.lo
141 CONTROL_OBJ_LINK=$(CONTROL_OBJ) worker_cb.lo $(COMMON_OBJ_ALL_SYMBOLS) \
142 $(COMPAT_OBJ) @WIN_CONTROL_OBJ_LINK@
128143 HOST_SRC=smallapp/unbound-host.c
129 HOST_OBJ=$(addprefix $(BUILD),$(HOST_SRC:.c=.lo)) $(filter-out $(BUILD)compat/ctime_r.lo, $(COMPAT_OBJ))
144 HOST_OBJ=unbound-host.lo
145 HOST_OBJ_LINK=$(HOST_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME) @WIN_HOST_OBJ_LINK@
130146 UBANCHOR_SRC=smallapp/unbound-anchor.c
131 UBANCHOR_OBJ=$(addprefix $(BUILD),$(UBANCHOR_SRC:.c=.lo)) $(filter-out $(BUILD)compat/ctime_r.lo, $(COMPAT_OBJ))
147 UBANCHOR_OBJ=unbound-anchor.lo
148 UBANCHOR_OBJ_LINK=$(UBANCHOR_OBJ) \
149 $(COMPAT_OBJ_WITHOUT_CTIME) @WIN_UBANCHOR_OBJ_LINK@
132150 TESTBOUND_SRC=testcode/testbound.c testcode/ldns-testpkts.c \
133 daemon/worker.c daemon/acl_list.c daemon/daemon.c daemon/stats.c \
134 testcode/replay.c testcode/fake_event.c $(filter-out util/netevent.c \
135 services/listen_dnsport.c services/outside_network.c, $(COMMON_SRC))
136 TESTBOUND_OBJ=$(addprefix $(BUILD),$(TESTBOUND_SRC:.c=.lo)) $(COMPAT_OBJ)
137 LOCKVERIFY_SRC=testcode/lock_verify.c smallapp/worker_cb.c $(COMMON_SRC)
138 LOCKVERIFY_OBJ=$(addprefix $(BUILD),$(LOCKVERIFY_SRC:.c=.lo)) $(COMPAT_OBJ)
151 daemon/worker.c daemon/acl_list.c daemon/daemon.c daemon/stats.c \
152 testcode/replay.c testcode/fake_event.c
153 TESTBOUND_OBJ=testbound.lo replay.lo fake_event.lo
154 TESTBOUND_OBJ_LINK=$(TESTBOUND_OBJ) ldns-testpkts.lo worker.lo acl_list.lo \
155 daemon.lo stats.lo $(COMMON_OBJ_WITHOUT_NETCALL) $(COMPAT_OBJ)
156 LOCKVERIFY_SRC=testcode/lock_verify.c
157 LOCKVERIFY_OBJ=lock_verify.lo
158 LOCKVERIFY_OBJ_LINK=$(LOCKVERIFY_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
139159 PETAL_SRC=testcode/petal.c
140 PETAL_OBJ=$(addprefix $(BUILD),$(PETAL_SRC:.c=.lo)) $(filter-out $(BUILD)compat/ctime_r.lo, $(COMPAT_OBJ))
141 PKTVIEW_SRC=testcode/pktview.c testcode/readhex.c smallapp/worker_cb.c \
142 $(COMMON_SRC)
143 PKTVIEW_OBJ=$(addprefix $(BUILD),$(PKTVIEW_SRC:.c=.lo)) $(COMPAT_OBJ)
144 SIGNIT_SRC=testcode/signit.c smallapp/worker_cb.c $(COMMON_SRC)
145 SIGNIT_OBJ=$(addprefix $(BUILD),$(SIGNIT_SRC:.c=.lo)) $(COMPAT_OBJ)
146 MEMSTATS_SRC=testcode/memstats.c smallapp/worker_cb.c $(COMMON_SRC)
147 MEMSTATS_OBJ=$(addprefix $(BUILD),$(MEMSTATS_SRC:.c=.lo)) $(COMPAT_OBJ)
148 ASYNCLOOK_SRC=testcode/asynclook.c util/log.c util/locks.c
149 ASYNCLOOK_OBJ=$(addprefix $(BUILD),$(ASYNCLOOK_SRC:.c=.lo)) $(COMPAT_OBJ)
150 STREAMTCP_SRC=testcode/streamtcp.c smallapp/worker_cb.c $(COMMON_SRC)
151 STREAMTCP_OBJ=$(addprefix $(BUILD),$(STREAMTCP_SRC:.c=.lo)) $(COMPAT_OBJ)
152 PERF_SRC=testcode/perf.c smallapp/worker_cb.c $(COMMON_SRC)
153 PERF_OBJ=$(addprefix $(BUILD),$(PERF_SRC:.c=.lo)) $(COMPAT_OBJ)
154 DELAYER_SRC=testcode/delayer.c smallapp/worker_cb.c $(COMMON_SRC)
155 DELAYER_OBJ=$(addprefix $(BUILD),$(DELAYER_SRC:.c=.lo)) $(COMPAT_OBJ)
160 PETAL_OBJ=petal.lo
161 PETAL_OBJ_LINK=$(PETAL_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME)
162 PKTVIEW_SRC=testcode/pktview.c testcode/readhex.c
163 PKTVIEW_OBJ=pktview.lo
164 PKTVIEW_OBJ_LINK=$(PKTVIEW_OBJ) worker_cb.lo readhex.lo $(COMMON_OBJ) \
165 $(COMPAT_OBJ)
166 SIGNIT_SRC=testcode/signit.c
167 SIGNIT_OBJ=signit.lo
168 SIGNIT_OBJ_LINK=$(SIGNIT_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
169 MEMSTATS_SRC=testcode/memstats.c
170 MEMSTATS_OBJ=memstats.lo
171 MEMSTATS_OBJ_LINK=$(MEMSTATS_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
172 ASYNCLOOK_SRC=testcode/asynclook.c
173 ASYNCLOOK_OBJ=asynclook.lo
174 ASYNCLOOK_OBJ_LINK=$(ASYNCLOOK_OBJ) log.lo locks.lo $(COMPAT_OBJ)
175 STREAMTCP_SRC=testcode/streamtcp.c
176 STREAMTCP_OBJ=streamtcp.lo
177 STREAMTCP_OBJ_LINK=$(STREAMTCP_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
178 PERF_SRC=testcode/perf.c
179 PERF_OBJ=perf.lo
180 PERF_OBJ_LINK=$(PERF_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
181 DELAYER_SRC=testcode/delayer.c
182 DELAYER_OBJ=delayer.lo
183 DELAYER_OBJ_LINK=$(DELAYER_OBJ) worker_cb.lo $(COMMON_OBJ) $(COMPAT_OBJ)
156184 HARVEST_SRC=testcode/harvest.c
157 HARVEST_OBJ=$(addprefix $(BUILD),$(HARVEST_SRC:.c=.lo)) $(COMPAT_OBJ)
158 LIBUNBOUND_SRC=$(patsubst $(srcdir)/%,%, \
159 $(wildcard $(srcdir)/libunbound/*.c) $(COMMON_SRC))
160 LIBUNBOUND_OBJ=$(addprefix $(BUILD),$(LIBUNBOUND_SRC:.c=.lo)) $(COMPAT_OBJ)
161 ALL_SRC=$(sort $(COMMON_SRC) $(UNITTEST_SRC) $(DAEMON_SRC) \
185 HARVEST_OBJ=harvest.lo
186 HARVEST_OBJ_LINK=$(HARVEST_OBJ) $(COMPAT_OBJ_WITHOUT_CTIME)
187 LIBUNBOUND_SRC=libunbound/context.c libunbound/libunbound.c \
188 libunbound/libworker.c
189 LIBUNBOUND_OBJ=context.lo libunbound.lo libworker.lo
190 LIBUNBOUND_OBJ_LINK=$(LIBUNBOUND_OBJ) $(COMMON_OBJ) $(COMPAT_OBJ)
191
192 # win apps or "" if not on windows
193 WINAPPS=@WINAPPS@
194 WIN_DAEMON_THE_SRC=winrc/win_svc.c winrc/w_inst.c
195 SVCINST_SRC=winrc/unbound-service-install.c
196 SVCINST_OBJ=unbound-service-install.lo
197 SVCINST_OBJ_LINK=$(SVCINST_OBJ) w_inst.lo rsrc_svcinst.o $(COMPAT_OBJ_WITHOUT_CTIME)
198 SVCUNINST_SRC=winrc/unbound-service-remove.c
199 SVCUNINST_OBJ=unbound-service-remove.lo
200 SVCUNINST_OBJ_LINK=$(SVCUNINST_OBJ) w_inst.lo rsrc_svcuninst.o \
201 $(COMPAT_OBJ_WITHOUT_CTIME)
202 ANCHORUPD_SRC=winrc/anchor-update.c
203 ANCHORUPD_OBJ=anchor-update.lo
204 ANCHORUPD_OBJ_LINK=$(ANCHORUPD_OBJ) rsrc_anchorupd.o $(COMPAT_OBJ_WITHOUT_CTIME)
205 RSRC_OBJ=rsrc_svcinst.o rsrc_svcuninst.o rsrc_anchorupd.o rsrc_unbound.o \
206 rsrc_unbound_host.o rsrc_unbound_anchor.o rsrc_unbound_control.o \
207 rsrc_unbound_checkconf.o
208
209 ALL_SRC=$(COMMON_SRC) $(UNITTEST_SRC) $(DAEMON_SRC) \
162210 $(TESTBOUND_SRC) $(LOCKVERIFY_SRC) $(PKTVIEW_SRC) $(SIGNIT_SRC) \
163211 $(MEMSTATS_SRC) $(CHECKCONF_SRC) $(LIBUNBOUND_SRC) $(HOST_SRC) \
164212 $(ASYNCLOOK_SRC) $(STREAMTCP_SRC) $(PERF_SRC) $(DELAYER_SRC) \
165 $(HARVEST_SRC) $(CONTROL_SRC) $(UBANCHOR_SRC) $(PETAL_SRC))
166 ALL_OBJ=$(addprefix $(BUILD),$(ALL_SRC:.c=.lo) \
167 $(addprefix compat/,$(LIBOBJS:.o=.lo))) $(COMPAT_OBJ)
168
169 ifeq "$(UB_ON_WINDOWS)" "yes"
170 DAEMON_SRC+=winrc/win_svc.c winrc/w_inst.c
171 DAEMON_OBJ+=$(BUILD)winrc/rsrc_unbound.o $(BUILD)winrc/win_svc.lo
172 HOST_OBJ+=$(BUILD)winrc/rsrc_unbound_host.o
173 UBANCHOR_OBJ+=$(BUILD)winrc/rsrc_unbound_anchor.o
174 CONTROL_OBJ+=$(BUILD)winrc/rsrc_unbound_control.o
175 CHECKCONF_OBJ+=$(BUILD)winrc/rsrc_unbound_checkconf.o
176
177 WINAPPS=$(addsuffix $(EXEEXT), unbound-service-install \
178 unbound-service-remove anchor-update)
179 COMPAT_WINAPP=$(filter-out $(BUILD)compat/ctime_r.lo, $(COMPAT_OBJ))
180 SVCINST_SRC=winrc/unbound-service-install.c winrc/w_inst.c
181 SVCINST_OBJ=$(addprefix $(BUILD),$(SVCINST_SRC:.c=.lo)) $(COMPAT_WINAPP) \
182 $(BUILD)winrc/rsrc_svcinst.o
183 SVCUNINST_SRC=winrc/unbound-service-remove.c winrc/w_inst.c
184 SVCUNINST_OBJ=$(addprefix $(BUILD),$(SVCUNINST_SRC:.c=.lo)) $(COMPAT_WINAPP) \
185 $(BUILD)winrc/rsrc_svcuninst.o
186 ANCHORUPD_SRC=winrc/anchor-update.c
187 ANCHORUPD_OBJ=$(addprefix $(BUILD),$(ANCHORUPD_SRC:.c=.lo)) $(COMPAT_WINAPP) \
188 $(BUILD)winrc/rsrc_anchorupd.o
189 ALL_SRC:=$(sort $(ALL_SRC) $(SVCINST_SRC) $(SVCUNINST_SRC) $(ANCHORUPD_SRC))
190 ALL_OBJ:=$(sort $(ALL_OBJ) $(SVCINST_OBJ) $(SVCUNINST_OBJ) $(ANCHORUPD_OBJ))
191
192 $(BUILD)%.o: $(srcdir)/%.rc $(srcdir)/config.h
193 $(INFO) Resource $<
194 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
195 $Q$(WINDRES) $(CPPFLAGS) $< $@
196 endif
213 $(HARVEST_SRC) $(CONTROL_SRC) $(UBANCHOR_SRC) $(PETAL_SRC) \
214 $(PYTHONMOD_SRC) $(PYUNBOUND_SRC) $(WIN_DAEMON_THE_SRC)\
215 $(SVCINST_SRC) $(SVCUNINST_SRC) $(ANCHORUPD_SRC)
216 ALL_OBJ=$(COMMON_OBJ) $(UNITTEST_OBJ) $(DAEMON_OBJ) \
217 $(TESTBOUND_OBJ) $(LOCKVERIFY_OBJ) $(PKTVIEW_OBJ) $(SIGNIT_OBJ) \
218 $(MEMSTATS_OBJ) $(CHECKCONF_OBJ) $(LIBUNBOUND_OBJ) $(HOST_OBJ) \
219 $(ASYNCLOOK_OBJ) $(STREAMTCP_OBJ) $(PERF_OBJ) $(DELAYER_OBJ) \
220 $(HARVEST_OBJ) $(CONTROL_OBJ) $(UBANCHOR_OBJ) $(PETAL_OBJ) \
221 $(COMPAT_OBJ) $(PYUNBOUND_OBJ) \
222 $(SVCINST_OBJ) $(SVCUNINST_OBJ) $(ANCHORUPD_OBJ)
197223
198224 COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS)
199 LINK=$(LIBTOOL) --tag=CC --mode=link $(strip $(CC) $(staticexe) $(RUNTIME_PATH) $(CFLAGS) $(LDFLAGS))
200 LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(strip $(CC) $(RUNTIME_PATH) $(CFLAGS) $(LDFLAGS) $(staticexe) -version-number @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined)
225 LINK=$(LIBTOOL) --tag=CC --mode=link $(CC) $(staticexe) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
226 LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(staticexe) -version-number @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined
201227
202228 .PHONY: clean realclean doc lint all install uninstall tests test strip lib longtest longcheck check
203229
204 $(BUILD)%.lo: $(srcdir)/%.c
205 $(INFO) Build $<
206 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
207 $Q$(COMPILE) -o $@ -c $<
208
209 all: $(COMMON_OBJ) unbound$(EXEEXT) unbound-checkconf$(EXEEXT) lib unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-anchor$(EXEEXT) unbound-control-setup $(WINAPPS)
210
211 TEST_BIN=$(addsuffix $(EXEEXT),asynclook delayer harvest lock-verify \
212 memstats perf petal pktview signit streamtcp testbound unittest)
230 all: $(COMMON_OBJ) unbound$(EXEEXT) unbound-checkconf$(EXEEXT) lib unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-anchor$(EXEEXT) unbound-control-setup $(WINAPPS) $(PYUNBOUND_TARGET)
231
232 # compat with BSD make, register suffix, and an implicit rule to actualise it.
233 .SUFFIXES: .lo
234 .c.lo:
235 $(COMPILE) -o $@ -c $<
236
237 $(ALL_OBJ):
238 @@SOURCEDETERMINE@
239 $(COMPILE) -o $@ -c @SOURCEFILE@
240
241 $(RSRC_OBJ):
242 @@SOURCEDETERMINE@
243 $(WINDRES) $(CPPFLAGS) @SOURCEFILE@ $@
244
245 rsrc_svcinst.o: $(srcdir)/winrc/rsrc_svcinst.rc config.h
246 rsrc_svcuninst.o: $(srcdir)/winrc/rsrc_svcuninst.rc config.h
247 rsrc_anchorupd.o: $(srcdir)/winrc/rsrc_anchorupd.rc config.h
248 rsrc_unbound.o: $(srcdir)/winrc/rsrc_unbound.rc config.h
249 rsrc_unbound_host.o: $(srcdir)/winrc/rsrc_unbound_host.rc config.h
250 rsrc_unbound_anchor.o: $(srcdir)/winrc/rsrc_unbound_anchor.rc config.h
251 rsrc_unbound_control.o: $(srcdir)/winrc/rsrc_unbound_control.rc config.h
252 rsrc_unbound_checkconf.o: $(srcdir)/winrc/rsrc_unbound_checkconf.rc config.h
253
254 TEST_BIN=asynclook$(EXEEXT) delayer$(EXEEXT) harvest$(EXEEXT) \
255 lock-verify$(EXEEXT) memstats$(EXEEXT) perf$(EXEEXT) \
256 petal$(EXEEXT) pktview$(EXEEXT) signit$(EXEEXT) streamtcp$(EXEEXT) \
257 testbound$(EXEEXT) unittest$(EXEEXT)
213258 tests: all $(TEST_BIN)
214259
215260 check: test
226271
227272 lib: libunbound.la
228273
229 UBSYMS+=-export-symbols $(srcdir)/libunbound/ubsyms.def
230 CLUBSYMS=-export-symbols $(BUILD)clubsyms.def
231 EXTRALINK=
232 ifeq "$(EXPORT_ALL_SYMBOLS)" "yes"
233 UBSYMS=
234 CLUBSYMS=
235 EXTRALINK=-L. -L.libs -lunbound
236 endif
237
238 libunbound.la: $(LIBUNBOUND_OBJ)
239 $(INFO) Link $@
240 ifeq ($(CHECKLOCK_SRC),)
241 $Q$(LINK_LIB) $(UBSYMS) -o $@ $(sort $(LIBUNBOUND_OBJ)) -rpath $(libdir) $(LIBS)
242 else
243 cp $(srcdir)/libunbound/ubsyms.def $(BUILD)clubsyms.def
244 echo lock_protect >> $(BUILD)clubsyms.def
245 echo lock_unprotect >> $(BUILD)clubsyms.def
246 echo lock_get_mem >> $(BUILD)clubsyms.def
247 echo checklock_start >> $(BUILD)clubsyms.def
248 echo checklock_stop >> $(BUILD)clubsyms.def
249 echo checklock_lock >> $(BUILD)clubsyms.def
250 echo checklock_unlock >> $(BUILD)clubsyms.def
251 echo checklock_init >> $(BUILD)clubsyms.def
252 echo checklock_thrcreate >> $(BUILD)clubsyms.def
253 echo checklock_thrjoin >> $(BUILD)clubsyms.def
254 $Q$(LINK_LIB) $(CLUBSYMS) -o $@ $(sort $(LIBUNBOUND_OBJ)) -rpath $(libdir) $(LIBS)
255 endif
256
257 unbound$(EXEEXT): $(DAEMON_OBJ) libunbound.la
258 $(INFO) Link $@
259 $Q$(LINK) -o $@ $(sort $(DAEMON_OBJ)) $(EXTRALINK) -lssl $(LIBS)
260
261 unbound-checkconf$(EXEEXT): $(CHECKCONF_OBJ) libunbound.la
262 $(INFO) Link $@
263 $Q$(LINK) -o $@ $(sort $(CHECKCONF_OBJ)) $(EXTRALINK) -lssl $(LIBS)
264
265 unbound-control$(EXEEXT): $(CONTROL_OBJ) libunbound.la
266 $(INFO) Link $@
267 $Q$(LINK) -o $@ $(sort $(CONTROL_OBJ)) $(EXTRALINK) -lssl $(LIBS)
268
269 unbound-host$(EXEEXT): $(HOST_OBJ) libunbound.la
270 $(INFO) Link $@
271 $Q$(LINK) -o $@ $(sort $(HOST_OBJ)) -L. -L.libs -lunbound $(LIBS)
272
273 unbound-anchor$(EXEEXT): $(UBANCHOR_OBJ) libunbound.la
274 $(INFO) Link $@
275 $Q$(LINK) -o $@ $(sort $(UBANCHOR_OBJ)) -L. -L.libs -lunbound -lexpat -lssl $(LIBS)
276
277 unbound-service-install$(EXEEXT): $(SVCINST_OBJ)
278 $(INFO) Link $@
279 $Q$(LINK) -o $@ $(sort $(SVCINST_OBJ)) $(LIBS)
280
281 unbound-service-remove$(EXEEXT): $(SVCUNINST_OBJ)
282 $(INFO) Link $@
283 $Q$(LINK) -o $@ $(sort $(SVCUNINST_OBJ)) $(LIBS)
284
285 anchor-update$(EXEEXT): $(ANCHORUPD_OBJ) libunbound.la
286 $(INFO) Link $@
287 $Q$(LINK) -o $@ $(sort $(ANCHORUPD_OBJ)) -L. -L.libs -lunbound $(LIBS)
288
289 unittest$(EXEEXT): $(UNITTEST_OBJ)
290 $(INFO) Link $@
291 $Q$(LINK) -o $@ $(sort $(UNITTEST_OBJ)) $(LIBS)
292
293 testbound$(EXEEXT): $(TESTBOUND_OBJ)
294 $(INFO) Link $@
295 $Q$(LINK) -o $@ $(sort $(TESTBOUND_OBJ)) -lssl $(LIBS)
296
297 lock-verify$(EXEEXT): $(LOCKVERIFY_OBJ)
298 $(INFO) Link $@
299 $Q$(LINK) -o $@ $(sort $(LOCKVERIFY_OBJ)) $(LIBS)
300
301 petal$(EXEEXT): $(PETAL_OBJ)
302 $(INFO) Link $@
303 $Q$(LINK) -o $@ $(sort $(PETAL_OBJ)) -lssl $(LIBS)
304
305 pktview$(EXEEXT): $(PKTVIEW_OBJ)
306 $(INFO) Link $@
307 $Q$(LINK) -o $@ $(sort $(PKTVIEW_OBJ)) $(LIBS)
308
309 signit$(EXEEXT): $(SIGNIT_OBJ)
310 $(INFO) Link $@
311 $Q$(LINK) -o $@ $(sort $(SIGNIT_OBJ)) $(LIBS)
312
313 memstats$(EXEEXT): $(MEMSTATS_OBJ)
314 $(INFO) Link $@
315 $Q$(LINK) -o $@ $(sort $(MEMSTATS_OBJ)) $(LIBS)
316
317 asynclook$(EXEEXT): $(ASYNCLOOK_OBJ) libunbound.la
318 $(INFO) Link $@
319 $Q$(LINK) -o $@ $(sort $(ASYNCLOOK_OBJ)) $(LIBS) -L. -L.libs -lunbound
320
321 streamtcp$(EXEEXT): $(STREAMTCP_OBJ)
322 $(INFO) Link $@
323 $Q$(LINK) -o $@ $(sort $(STREAMTCP_OBJ)) $(LIBS)
324
325 perf$(EXEEXT): $(PERF_OBJ)
326 $(INFO) Link $@
327 $Q$(LINK) -o $@ $(sort $(PERF_OBJ)) $(LIBS)
328
329 delayer$(EXEEXT): $(DELAYER_OBJ)
330 $(INFO) Link $@
331 $Q$(LINK) -o $@ $(sort $(DELAYER_OBJ)) $(LIBS)
332
333 harvest$(EXEEXT): $(HARVEST_OBJ) libunbound.la
334 $(INFO) Link $@
335 $Q$(LINK) -o $@ $(sort $(HARVEST_OBJ)) $(LIBS) -L. -L.libs -lunbound
274 libunbound.la: $(LIBUNBOUND_OBJ_LINK)
275 $(LINK_LIB) $(UBSYMS) -o $@ $(LIBUNBOUND_OBJ_LINK) -rpath $(libdir) -lssl $(LIBS)
276
277 unbound$(EXEEXT): $(DAEMON_OBJ_LINK) libunbound.la
278 $(LINK) -o $@ $(DAEMON_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS)
279
280 unbound-checkconf$(EXEEXT): $(CHECKCONF_OBJ_LINK) libunbound.la
281 $(LINK) -o $@ $(CHECKCONF_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS)
282
283 unbound-control$(EXEEXT): $(CONTROL_OBJ_LINK) libunbound.la
284 $(LINK) -o $@ $(CONTROL_OBJ_LINK) $(EXTRALINK) -lssl $(LIBS)
285
286 unbound-host$(EXEEXT): $(HOST_OBJ_LINK) libunbound.la
287 $(LINK) -o $@ $(HOST_OBJ_LINK) -L. -L.libs -lunbound $(LIBS)
288
289 unbound-anchor$(EXEEXT): $(UBANCHOR_OBJ_LINK) libunbound.la
290 $(LINK) -o $@ $(UBANCHOR_OBJ_LINK) -L. -L.libs -lunbound -lexpat -lssl $(LIBS)
291
292 unbound-service-install$(EXEEXT): $(SVCINST_OBJ_LINK)
293 $(LINK) -o $@ $(SVCINST_OBJ_LINK) $(LIBS)
294
295 unbound-service-remove$(EXEEXT): $(SVCUNINST_OBJ_LINK)
296 $(LINK) -o $@ $(SVCUNINST_OBJ_LINK) $(LIBS)
297
298 anchor-update$(EXEEXT): $(ANCHORUPD_OBJ_LINK) libunbound.la
299 $(LINK) -o $@ $(ANCHORUPD_OBJ_LINK) -L. -L.libs -lunbound $(LIBS)
300
301 unittest$(EXEEXT): $(UNITTEST_OBJ_LINK)
302 $(LINK) -o $@ $(UNITTEST_OBJ_LINK) -lssl $(LIBS)
303
304 testbound$(EXEEXT): $(TESTBOUND_OBJ_LINK)
305 $(LINK) -o $@ $(TESTBOUND_OBJ_LINK) -lssl $(LIBS)
306
307 lock-verify$(EXEEXT): $(LOCKVERIFY_OBJ_LINK)
308 $(LINK) -o $@ $(LOCKVERIFY_OBJ_LINK) -lssl $(LIBS)
309
310 petal$(EXEEXT): $(PETAL_OBJ_LINK)
311 $(LINK) -o $@ $(PETAL_OBJ_LINK) -lssl $(LIBS)
312
313 pktview$(EXEEXT): $(PKTVIEW_OBJ_LINK)
314 $(LINK) -o $@ $(PKTVIEW_OBJ_LINK) -lssl $(LIBS)
315
316 signit$(EXEEXT): $(SIGNIT_OBJ_LINK)
317 $(LINK) -o $@ $(SIGNIT_OBJ_LINK) -lssl $(LIBS)
318
319 memstats$(EXEEXT): $(MEMSTATS_OBJ_LINK)
320 $(LINK) -o $@ $(MEMSTATS_OBJ_LINK) -lssl $(LIBS)
321
322 asynclook$(EXEEXT): $(ASYNCLOOK_OBJ_LINK) libunbound.la
323 $(LINK) -o $@ $(ASYNCLOOK_OBJ_LINK) $(LIBS) -L. -L.libs -lunbound
324
325 streamtcp$(EXEEXT): $(STREAMTCP_OBJ_LINK)
326 $(LINK) -o $@ $(STREAMTCP_OBJ_LINK) -lssl $(LIBS)
327
328 perf$(EXEEXT): $(PERF_OBJ_LINK)
329 $(LINK) -o $@ $(PERF_OBJ_LINK) -lssl $(LIBS)
330
331 delayer$(EXEEXT): $(DELAYER_OBJ_LINK)
332 $(LINK) -o $@ $(DELAYER_OBJ_LINK) -lssl $(LIBS)
333
334 harvest$(EXEEXT): $(HARVEST_OBJ_LINK) libunbound.la
335 $(LINK) -o $@ $(HARVEST_OBJ_LINK) $(LIBS) -L. -L.libs -lunbound
336336
337337 unbound-control-setup: $(srcdir)/smallapp/unbound-control-setup.sh
338 $(INFO) Sed $@
339 $Qsed -e 's:^DESTDIR=.*$$:DESTDIR=$(UNBOUND_RUN_DIR):' < $< > $@
340 $Q-chmod +x $@
338 sed -e 's:^DESTDIR=.*$$:DESTDIR=$(UNBOUND_RUN_DIR):' < $(srcdir)/smallapp/unbound-control-setup.sh > $@
339 -chmod +x $@
341340
342341 #testcode/ldns-testpkts.c: $(ldnsdir)/examples/ldns-testpkts.c \
343342 # $(ldnsdir)/examples/ldns-testpkts.h
344343 # cp $(ldnsdir)/examples/ldns-testpkts.c testcode/ldns-testpkts.c
345344 # cp $(ldnsdir)/examples/ldns-testpkts.h testcode/ldns-testpkts.h
346345
347 ifeq "$(WITH_PYTHONMODULE)" "yes"
348 $(srcdir)/pythonmod/pythonmod.c: pythonmod/interface.h
349 %.h: $(srcdir)/%.i $(srcdir)/config.h
350 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
351 $(INFO) Swig $<
352 $Q$(SWIG) $(CPPFLAGS) -o $@ -python $<
353 endif
354
355 ifeq "$(WITH_PYUNBOUND)" "yes"
346 # Python Module
347 pythonmod.lo pythonmod.o: $(srcdir)/pythonmod/pythonmod.c config.h \
348 pythonmod/interface.h \
349 $(srcdir)/pythonmod/pythonmod.h $(srcdir)/util/module.h \
350 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
351 $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h \
352 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
353 $(srcdir)/services/outbound_list.h $(srcdir)/util/config_file.h \
354 $(srcdir)/pythonmod/pythonmod_utils.h $(srcdir)/util/netevent.h \
355 $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h \
356 $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h \
357 $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
358
359 pythonmod/interface.h: $(srcdir)/pythonmod/interface.i $(srcdir)/config.h
360 @-if test ! -d pythonmod; then $(INSTALL) -d pythonmod; fi
361 $(SWIG) $(CPPFLAGS) -o $@ -python $(srcdir)/pythonmod/interface.i
362
363 libunbound_wrap.lo libunbound_wrap.o: libunbound/python/libunbound_wrap.c \
364 $(srcdir)/libunbound/unbound.h
356365 libunbound/python/libunbound_wrap.c: $(srcdir)/libunbound/python/libunbound.i $(srcdir)/libunbound/unbound.h
357 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
358 $(INFO) Swig $<
359 $Q$(SWIG) -python -o $@ $(CPPFLAGS) $<
360
361 all: _unbound.la
362 _unbound.la: $(BUILD)libunbound/python/libunbound_wrap.lo libunbound.la
363 $(INFO) Link $@
364 $Q$(LIBTOOL) --tag=CC --mode=link $(strip $(CC) $(RUNTIME_PATH) $(CFLAGS) $(LDFLAGS) -module -version-number @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined) -o $@ $< -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound $(LIBS)
365 endif
366 @-if test ! -d libunbound/python; then $(INSTALL) -d libunbound/python; fi
367 $(SWIG) -python -o $@ $(CPPFLAGS) $(srcdir)/libunbound/python/libunbound.i
368
369 # Pyunbound python unbound wrapper
370 _unbound.la: libunbound_wrap.lo libunbound.la
371 $(LIBTOOL) --tag=CC --mode=link $(CC) $(RUNTIME_PATH) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -module -version-number @LIBUNBOUND_CURRENT@:@LIBUNBOUND_REVISION@:@LIBUNBOUND_AGE@ -no-undefined -o $@ libunbound_wrap.lo -rpath $(PYTHON_SITE_PKG) L. -L.libs -lunbound $(LIBS)
366372
367373 util/config_file.c: util/configparser.h
368374 util/configlexer.c: $(srcdir)/util/configlexer.lex util/configparser.h
369 $(INFO) Lex $<
370 ifeq "$(strip $(LEX))" ":"
371 $Qecho "rebuild lexer, but no lex program, skipped"
372 else
373375 @-if test ! -d util; then $(INSTALL) -d util; fi
374 $Qecho "#include \"config.h\"" > $@
375 $Qecho "#include \"util/configyyrename.h\"" >> $@
376 $Q$(LEX) -t $< >> $@
377 endif
376 if test "$(LEX)" != ":"; then \
377 echo "#include \"config.h\"" > $@ ;\
378 echo "#include \"util/configyyrename.h\"" >> $@ ;\
379 $(LEX) -t $(srcdir)/util/configlexer.lex >> $@ ;\
380 fi
378381
379382 util/configparser.c util/configparser.h: $(srcdir)/util/configparser.y
380 $(INFO) Yacc $<
381383 @-if test ! -d util; then $(INSTALL) -d util; fi
382 $Q$(YACC) -d -o util/configparser.c $<
384 $(YACC) -d -o util/configparser.c $(srcdir)/util/configparser.y
383385
384386 clean:
385387 rm -f *.o *.d *.lo *~ tags
386388 rm -f unbound$(EXEEXT) unbound-checkconf$(EXEEXT) unbound-host$(EXEEXT) unbound-control$(EXEEXT) unbound-anchor$(EXEEXT) unbound-control-setup libunbound.la
389 rm -f $(ALL_SRC:.c=.lint)
387390 rm -rf autom4te.cache .libs build doc/html doc/xml
388391
389392 realclean: clean
393396 rm -f $(TEST_BIN)
394397 rm -f Makefile
395398
396 $(BUILD)%.lint: $(srcdir)/%.c
397 $(INFO) Lint $<
398 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
399 $Q$(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $<
400 $Qtouch $@
401
402 lint: $(addprefix $(BUILD),$(filter-out util/configparser.lint,$(filter-out util/configlexer.lint,$(sort $(ALL_SRC:.c=.lint)))))
399 .SUFFIXES: .lint
400 .c.lint:
401 $(LINT) $(LINTFLAGS) -I. -I$(srcdir) -I$(ldnsdir)/include $<
402 touch $@
403
404 util/configparser.lint util/configlexer.lint pythonmod/pythonmod.lint libunbound/python/libunbound_wrap.lint:
405 # skip lint for generated code
406 touch $@
407
408 winrc/win_svc.lint winrc/w_inst.lint winrc/unbound-service-install.lint winrc/unbound-service-remove.lint:
409 # skip lint for windows types
410 touch $@
411
412 lint: $(ALL_SRC:.c=.lint)
403413
404414 tags: $(srcdir)/*.[ch] $(srcdir)/*/*.[ch]
405415 ctags -f $(srcdir)/tags $(srcdir)/*.[ch] $(srcdir)/*/*.[ch]
407417 doc:
408418 if test -n "$(doxygen)"; then \
409419 $(doxygen) $(srcdir)/doc/unbound.doxygen; fi
410 ifeq "$(findstring yes,$(WITH_PYUNBOUND)$(WITH_PYTHONMODULE))" "yes"
411 if test -x "`which sphinx-build 2>&1`"; then \
420 if test "$(WITH_PYUNBOUND)" = "yes" -o "$(WITH_PYTHONMODULE)" = "yes"; \
421 then if test -x "`which sphinx-build 2>&1`"; then \
412422 sphinx-build -b html pythonmod/doc doc/html/pythonmod; \
413423 sphinx-build -b html libunbound/python/doc doc/html/pyunbound;\
424 fi ;\
414425 fi
415 endif
416426
417427 strip:
418428 $(STRIP) unbound$(EXEEXT)
421431 $(STRIP) unbound-host$(EXEEXT)
422432 $(STRIP) unbound-anchor$(EXEEXT)
423433
424 install: all
434 pythonmod-install:
435 $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
436 $(INSTALL) -c -m 644 pythonmod/unboundmodule.py $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py
437
438 pyunbound-install:
439 $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
440 $(INSTALL) -c -m 644 libunbound/python/unbound.py $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py
441 $(LIBTOOL) --mode=install cp _unbound.la $(DESTDIR)$(PYTHON_SITE_PKG)
442 $(LIBTOOL) --mode=finish $(DESTDIR)$(PYTHON_SITE_PKG)
443
444 install: all $(PYTHONMOD_INSTALL) $(PYUNBOUND_INSTALL)
425445 $(INSTALL) -m 755 -d $(DESTDIR)$(sbindir)
426446 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)
427447 $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man8
435455 $(LIBTOOL) --mode=install cp unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT)
436456 $(LIBTOOL) --mode=install cp unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT)
437457 $(LIBTOOL) --mode=install cp unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT)
438 ifeq "$(WITH_PYTHONMODULE)" "yes"
439 $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
440 $(INSTALL) -c -m 644 pythonmod/unboundmodule.py $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py
441 endif
442 ifeq "$(WITH_PYUNBOUND)" "yes"
443 $(INSTALL) -m 755 -d $(DESTDIR)$(PYTHON_SITE_PKG)
444 $(INSTALL) -c -m 644 libunbound/python/unbound.py $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py
445 $(LIBTOOL) --mode=install cp _unbound.la $(DESTDIR)$(PYTHON_SITE_PKG)
446 $(LIBTOOL) --mode=finish $(DESTDIR)$(PYTHON_SITE_PKG)
447 endif
448458 $(INSTALL) -c -m 644 doc/unbound.8 $(DESTDIR)$(mandir)/man8
449459 $(INSTALL) -c -m 644 doc/unbound-checkconf.8 $(DESTDIR)$(mandir)/man8
450460 $(INSTALL) -c -m 644 doc/unbound-control.8 $(DESTDIR)$(mandir)/man8
458468 $(LIBTOOL) --mode=install cp libunbound.la $(DESTDIR)$(libdir)
459469 $(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
460470
461 uninstall:
471 pythonmod-uninstall:
472 rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py
473
474 pyunbound-uninstall:
475 rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py
476 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(PYTHON_SITE_PKG)/_unbound.la
477
478 uninstall: $(PYTHONMOD_UNINSTALL) $(PYUNBOUND_UNINSTALL)
462479 rm -f -- $(DESTDIR)$(sbindir)/unbound$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-checkconf$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-host$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-anchor$(EXEEXT) $(DESTDIR)$(sbindir)/unbound-control-setup
463480 rm -f -- $(DESTDIR)$(mandir)/man8/unbound.8 $(DESTDIR)$(mandir)/man8/unbound-checkconf.8 $(DESTDIR)$(mandir)/man5/unbound.conf.5 $(DESTDIR)$(mandir)/man8/unbound-control.8 $(DESTDIR)$(mandir)/man8/unbound-anchor.8
464481 rm -f -- $(DESTDIR)$(mandir)/man1/unbound-host.1 $(DESTDIR)$(mandir)/man3/libunbound.3
465482 rm -f -- $(DESTDIR)$(includedir)/unbound.h
466483 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libunbound.la
467 ifeq "$(WITH_PYTHONMODULE)" "yes"
468 rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unboundmodule.py
469 endif
470 ifeq "$(WITH_PYUNBOUND)" "yes"
471 rm -f -- $(DESTDIR)$(PYTHON_SITE_PKG)/unbound.py
472 $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(PYTHON_SITE_PKG)/_unbound.la
473 endif
474484 @echo
475485 @echo "You still need to remove "`dirname $(DESTDIR)$(configfile)`" , $(DESTDIR)$(configfile) by hand"
476486
477487 iana_update:
478 curl -o port-numbers.tmp http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
479 awk '/<record>/ {p=0;} /<protocol>udp/ {p=1;} /<protocol>[^u]/ {p=0;} /Decomissioned|Decommissioned|Removed|De-registered|unassigned|Unassigned|Reserved/ {u=1;} /<number>/ { if(u==1) {u=0;} else { if(p==1) { match($$0,/[0-9]+/); print substr($$0, RSTART, RLENGTH) ","}}}' port-numbers.tmp | sort -nu > util/iana_ports.inc
480 rm -f port-numbers.tmp portslist.tmp
481
482 # Automatic dependencies.
483 $(BUILD)%.d: $(srcdir)/%.c
484 $(INFO) Depend $<
485 @-if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi
486 $Q$(SHELL) -ec '$(CC) $(DEPFLAG) $(CPPFLAGS) $(CFLAGS) $< | sed '\''s!\(.*\)\.o[ :]*!$(dir $@)\1.lo $@ : !g'\'' > $@; [ -s $@ ] || rm -f $@'
487
488 ifneq ($(MAKECMDGOALS),clean)
489 ifneq ($(MAKECMDGOALS),realclean)
490 ifeq ($(debug_enabled),yes)
491 -include $(addprefix $(BUILD),$(ALL_SRC:.c=.d) $(COMPAT_SRC:.c=.d))
492 endif
493 endif
494 endif
488 curl -o port-numbers.tmp http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml --compressed
489 if file port-numbers.tmp | grep 'gzip' >/dev/null; then zcat port-numbers.tmp; else cat port-numbers.tmp; fi | awk '/<record>/ {p=0;} /<protocol>udp/ {p=1;} /<protocol>[^u]/ {p=0;} /Decomissioned|Decommissioned|Removed|De-registered|unassigned|Unassigned|Reserved/ {u=1;} /<number>/ { if(u==1) {u=0;} else { if(p==1) { match($$0,/[0-9]+/); print substr($$0, RSTART, RLENGTH) ","}}}' | sort -nu > util/iana_ports.inc
490 rm -f port-numbers.tmp
491
492 # dependency generation
493 DEPEND_TMP=depend1073.tmp
494 DEPEND_TMP2=depend1074.tmp
495 DEPEND_TARGET=Makefile
496 DEPEND_TARGET2=Makefile.in
497 # actions: generate deplines from gcc,
498 # then, filter out home/xx, /usr/xx and /opt/xx lines (some cc already do this)
499 # then, remove empty " \" lines
500 # then, add srcdir before .c and .h in deps.
501 # then, remove srcdir from the (generated) parser and lexer.
502 # and mention the .lo
503 depend:
504 (cd $(srcdir) ; $(CC) $(DEPFLAG) $(CPPFLAGS) $(CFLAGS) $(ALL_SRC) $(COMPAT_SRC)) | \
505 sed -e 's!'$$HOME'[^ ]* !!g' -e 's!'$$HOME'[^ ]*$$!!g' \
506 -e 's!/usr[^ ]* !!g' -e 's!/usr[^ ]*$$!!g' \
507 -e 's!/opt[^ ]* !!g' -e 's!/opt[^ ]*$$!!g' | \
508 sed -e '/^ \\$$/d' | \
509 sed -e 's? *\([^ ]*\.[ch]\)? $$(srcdir)/\1?g' | \
510 sed -e 's? *\([^ ]*\.inc\)? $$(srcdir)/\1?g' | \
511 sed -e 's?$$(srcdir)/config.h?config.h?g' \
512 -e 's?$$(srcdir)/util/configlexer.c?util/configlexer.c?g' \
513 -e 's?$$(srcdir)/util/configparser.c?util/configparser.c?g' \
514 -e 's?$$(srcdir)/util/configparser.h?util/configparser.h?g' \
515 -e 's!\(.*\)\.o[ :]*!\1.lo \1.o: !g' \
516 > $(DEPEND_TMP)
517 cp $(DEPEND_TARGET) $(DEPEND_TMP2)
518 head -`egrep -n "# Dependencies" $(DEPEND_TARGET) | tail -1 | sed -e 's/:.*$$//'` $(DEPEND_TMP2) > $(DEPEND_TARGET)
519 cat $(DEPEND_TMP) >> $(DEPEND_TARGET)
520 @if diff $(DEPEND_TARGET) $(DEPEND_TMP2); then echo " $(DEPEND_TARGET) unchanged"; else echo " Updated $(DEPEND_TARGET))"; fi
521 @if test -f $(DEPEND_TARGET2); then \
522 cp $(DEPEND_TARGET2) $(DEPEND_TMP2); \
523 head -`egrep -n "# Dependencies" $(DEPEND_TARGET2) | tail -1 | sed -e 's/:.*$$//'` $(DEPEND_TMP2) > $(DEPEND_TARGET2); \
524 cat $(DEPEND_TMP) >> $(DEPEND_TARGET2); \
525 if diff $(DEPEND_TARGET2) $(DEPEND_TMP2); then echo " $(DEPEND_TARGET2) unchanged"; else echo " Updated $(DEPEND_TARGET2))"; fi; \
526 fi
527 rm -f $(DEPEND_TMP) $(DEPEND_TMP2)
528
529 # Dependencies
530 dns.lo dns.o: $(srcdir)/services/cache/dns.c config.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
531 $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
532 $(srcdir)/util/locks.h \
533 $(srcdir)/services/cache/dns.h $(srcdir)/util/data/msgreply.h $(srcdir)/services/cache/rrset.h \
534 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/dname.h $(srcdir)/util/module.h \
535 $(srcdir)/util/data/msgparse.h \
536 $(srcdir)/util/net_help.h \
537 $(srcdir)/util/regional.h $(srcdir)/util/config_file.h
538 infra.lo infra.o: $(srcdir)/services/cache/infra.c config.h \
539 $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
540 $(srcdir)/util/rtt.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lookup3.h \
541 $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/iterator/iterator.h \
542 $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
543 $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
544
545 rrset.lo rrset.o: $(srcdir)/services/cache/rrset.c config.h $(srcdir)/services/cache/rrset.h \
546 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
547 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/data/packed_rrset.h \
548 $(srcdir)/util/config_file.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/regional.h $(srcdir)/util/alloc.h
549 dname.lo dname.o: $(srcdir)/util/data/dname.c config.h $(srcdir)/util/data/dname.h \
550 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
551 $(srcdir)/util/data/msgparse.h \
552 $(srcdir)/util/storage/lookup3.h
553 msgencode.lo msgencode.o: $(srcdir)/util/data/msgencode.c config.h \
554 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
555 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h \
556 $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h
557 msgparse.lo msgparse.o: $(srcdir)/util/data/msgparse.c config.h \
558 $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
559 $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/data/packed_rrset.h \
560 $(srcdir)/util/storage/lookup3.h $(srcdir)/util/regional.h
561 msgreply.lo msgreply.o: $(srcdir)/util/data/msgreply.c config.h \
562 $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
563 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h \
564 $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/regional.h \
565 $(srcdir)/util/data/msgparse.h $(srcdir)/util/data/msgencode.h
566 packed_rrset.lo packed_rrset.o: $(srcdir)/util/data/packed_rrset.c config.h \
567 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
568 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \
569 $(srcdir)/util/net_help.h
570 iterator.lo iterator.o: $(srcdir)/iterator/iterator.c config.h \
571 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
572 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
573 $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/iterator/iter_utils.h \
574 $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h \
575 $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h \
576 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_scrub.h $(srcdir)/iterator/iter_priv.h \
577 $(srcdir)/validator/val_neg.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/infra.h \
578 $(srcdir)/util/rtt.h $(srcdir)/util/netevent.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
579 $(srcdir)/util/data/dname.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
580 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/util/config_file.h
581 iter_delegpt.lo iter_delegpt.o: $(srcdir)/iterator/iter_delegpt.c config.h $(srcdir)/iterator/iter_delegpt.h \
582 $(srcdir)/util/log.h \
583 $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
584 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
585 $(srcdir)/util/regional.h \
586 $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h
587 iter_donotq.lo iter_donotq.o: $(srcdir)/iterator/iter_donotq.c config.h $(srcdir)/iterator/iter_donotq.h \
588 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
589 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
590 iter_fwd.lo iter_fwd.o: $(srcdir)/iterator/iter_fwd.c config.h \
591 $(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
592 $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
593 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
594 iter_hints.lo iter_hints.o: $(srcdir)/iterator/iter_hints.c config.h \
595 $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
596 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h \
597 $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
598 iter_priv.lo iter_priv.o: $(srcdir)/iterator/iter_priv.c config.h \
599 $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h \
600 $(srcdir)/util/regional.h \
601 $(srcdir)/util/log.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \
602 $(srcdir)/util/locks.h $(srcdir)/util/data/msgparse.h \
603 $(srcdir)/util/net_help.h \
604 $(srcdir)/util/storage/dnstree.h
605 iter_resptype.lo iter_resptype.o: $(srcdir)/iterator/iter_resptype.c config.h \
606 $(srcdir)/iterator/iter_resptype.h $(srcdir)/iterator/iter_delegpt.h $(srcdir)/util/log.h \
607 $(srcdir)/services/cache/dns.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
608 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/net_help.h \
609 $(srcdir)/util/data/dname.h
610 iter_scrub.lo iter_scrub.o: $(srcdir)/iterator/iter_scrub.c config.h $(srcdir)/iterator/iter_scrub.h \
611 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
612 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
613 $(srcdir)/util/module.h \
614 $(srcdir)/util/data/msgparse.h \
615 $(srcdir)/iterator/iter_priv.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/rrset.h \
616 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
617 $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h
618 iter_utils.lo iter_utils.o: $(srcdir)/iterator/iter_utils.c config.h $(srcdir)/iterator/iter_utils.h \
619 $(srcdir)/iterator/iter_resptype.h \
620 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/util/data/msgreply.h \
621 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/data/packed_rrset.h \
622 $(srcdir)/util/module.h \
623 $(srcdir)/util/data/msgparse.h \
624 $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
625 $(srcdir)/iterator/iter_fwd.h $(srcdir)/iterator/iter_donotq.h $(srcdir)/iterator/iter_delegpt.h \
626 $(srcdir)/iterator/iter_priv.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
627 $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h \
628 $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/data/dname.h \
629 $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \
630 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h $(srcdir)/validator/val_anchor.h \
631 $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h
632 listen_dnsport.lo listen_dnsport.o: $(srcdir)/services/listen_dnsport.c config.h \
633 $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h \
634 $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/log.h $(srcdir)/util/config_file.h \
635 $(srcdir)/util/net_help.h
636 localzone.lo localzone.o: $(srcdir)/services/localzone.c config.h \
637 $(srcdir)/services/localzone.h $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
638 $(srcdir)/util/regional.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
639 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
640 $(srcdir)/util/net_help.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h
641 mesh.lo mesh.o: $(srcdir)/services/mesh.c config.h \
642 $(srcdir)/services/mesh.h \
643 $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h \
644 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
645 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h \
646 $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/dns.h $(srcdir)/util/net_help.h \
647 $(srcdir)/util/regional.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/timehist.h $(srcdir)/util/fptr_wlist.h \
648 $(srcdir)/util/tube.h $(srcdir)/util/alloc.h $(srcdir)/util/config_file.h
649 modstack.lo modstack.o: $(srcdir)/services/modstack.c config.h $(srcdir)/services/modstack.h \
650 $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
651 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
652 $(srcdir)/util/data/msgparse.h \
653 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h \
654 $(srcdir)/util/rbtree.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
655 $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h $(srcdir)/pythonmod/pythonmod.h
656 outbound_list.lo outbound_list.o: $(srcdir)/services/outbound_list.c config.h \
657 $(srcdir)/services/outbound_list.h $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h \
658 $(srcdir)/util/netevent.h \
659
660 outside_network.lo outside_network.o: $(srcdir)/services/outside_network.c config.h \
661 $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h \
662 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/infra.h $(srcdir)/util/storage/lruhash.h \
663 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgparse.h \
664 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
665 $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/util/fptr_wlist.h \
666 $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
667 alloc.lo alloc.o: $(srcdir)/util/alloc.c config.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
668 $(srcdir)/util/regional.h \
669 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
670 $(srcdir)/util/fptr_wlist.h \
671 $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
672 $(srcdir)/util/tube.h \
673 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
674 config_file.lo config_file.o: $(srcdir)/util/config_file.c config.h \
675 $(srcdir)/util/log.h \
676 $(srcdir)/util/configyyrename.h $(srcdir)/util/config_file.h util/configparser.h \
677 $(srcdir)/util/net_help.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
678 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
679 $(srcdir)/util/regional.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \
680 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/dname.h \
681 $(srcdir)/util/iana_ports.inc
682 configlexer.lo configlexer.o: util/configlexer.c config.h $(srcdir)/util/configyyrename.h \
683 $(srcdir)/util/config_file.h util/configparser.h
684 configparser.lo configparser.o: util/configparser.c config.h $(srcdir)/util/configyyrename.h \
685 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
686
687 fptr_wlist.lo fptr_wlist.o: $(srcdir)/util/fptr_wlist.c config.h $(srcdir)/util/fptr_wlist.h \
688 $(srcdir)/util/netevent.h \
689 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
690 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
691 $(srcdir)/util/data/msgparse.h \
692 $(srcdir)/util/tube.h \
693 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h \
694 $(srcdir)/util/rbtree.h $(srcdir)/daemon/worker.h $(srcdir)/util/alloc.h $(srcdir)/daemon/stats.h \
695 $(srcdir)/util/timehist.h $(srcdir)/daemon/remote.h $(srcdir)/services/outside_network.h \
696 $(srcdir)/services/localzone.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
697 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/iterator/iterator.h \
698 $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/validator.h \
699 $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h $(srcdir)/validator/val_nsec3.h \
700 $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_neg.h \
701 $(srcdir)/validator/autotrust.h $(srcdir)/util/storage/dnstree.h $(srcdir)/libunbound/libworker.h \
702 $(srcdir)/libunbound/context.h $(srcdir)/libunbound/unbound.h $(srcdir)/util/config_file.h \
703 $(srcdir)/pythonmod/pythonmod.h
704 locks.lo locks.o: $(srcdir)/util/locks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
705
706 log.lo log.o: $(srcdir)/util/log.c config.h $(srcdir)/util/log.h \
707 $(srcdir)/util/locks.h
708 mini_event.lo mini_event.o: $(srcdir)/util/mini_event.c config.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h \
709 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h \
710 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/module.h \
711 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
712 $(srcdir)/util/data/msgparse.h \
713 $(srcdir)/util/tube.h \
714 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
715 module.lo module.o: $(srcdir)/util/module.c config.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h \
716 $(srcdir)/util/locks.h $(srcdir)/util/log.h \
717 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
718 $(srcdir)/util/data/msgparse.h \
719
720 netevent.lo netevent.o: $(srcdir)/util/netevent.c config.h \
721 $(srcdir)/util/netevent.h \
722 $(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h \
723 $(srcdir)/util/locks.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
724 $(srcdir)/util/data/msgparse.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
725 $(srcdir)/services/modstack.h $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
726 net_help.lo net_help.o: $(srcdir)/util/net_help.c config.h \
727 $(srcdir)/util/net_help.h \
728 $(srcdir)/util/log.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
729 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
730 $(srcdir)/util/data/msgparse.h $(srcdir)/util/regional.h
731 random.lo random.o: $(srcdir)/util/random.c config.h $(srcdir)/util/random.h $(srcdir)/util/log.h \
732
733 rbtree.lo rbtree.o: $(srcdir)/util/rbtree.c config.h $(srcdir)/util/log.h \
734 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
735 $(srcdir)/util/log.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
736 $(srcdir)/util/data/msgparse.h \
737 $(srcdir)/util/tube.h \
738 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
739 regional.lo regional.o: $(srcdir)/util/regional.c config.h $(srcdir)/util/log.h \
740 $(srcdir)/util/regional.h
741 rtt.lo rtt.o: $(srcdir)/util/rtt.c config.h $(srcdir)/util/rtt.h $(srcdir)/util/log.h \
742
743 dnstree.lo dnstree.o: $(srcdir)/util/storage/dnstree.c config.h $(srcdir)/util/storage/dnstree.h \
744 $(srcdir)/util/rbtree.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
745 $(srcdir)/util/log.h \
746 $(srcdir)/util/net_help.h
747 lookup3.lo lookup3.o: $(srcdir)/util/storage/lookup3.c config.h $(srcdir)/util/storage/lookup3.h
748 lruhash.lo lruhash.o: $(srcdir)/util/storage/lruhash.c config.h $(srcdir)/util/storage/lruhash.h \
749 $(srcdir)/util/locks.h $(srcdir)/util/log.h \
750 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
751 $(srcdir)/util/data/packed_rrset.h \
752 $(srcdir)/util/data/msgparse.h \
753 $(srcdir)/util/tube.h \
754 $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
755 slabhash.lo slabhash.o: $(srcdir)/util/storage/slabhash.c config.h $(srcdir)/util/storage/slabhash.h \
756 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
757
758 timehist.lo timehist.o: $(srcdir)/util/timehist.c config.h $(srcdir)/util/timehist.h $(srcdir)/util/log.h \
759
760 tube.lo tube.o: $(srcdir)/util/tube.c config.h $(srcdir)/util/tube.h $(srcdir)/util/log.h \
761 $(srcdir)/util/net_help.h \
762 $(srcdir)/util/netevent.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
763 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
764 $(srcdir)/util/data/msgparse.h \
765 $(srcdir)/services/mesh.h \
766 $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h
767 winsock_event.lo winsock_event.o: $(srcdir)/util/winsock_event.c config.h
768 autotrust.lo autotrust.o: $(srcdir)/validator/autotrust.c config.h \
769 $(srcdir)/validator/autotrust.h $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h \
770 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_anchor.h \
771 $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/dname.h \
772 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/net_help.h \
773 $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/random.h $(srcdir)/services/mesh.h \
774 $(srcdir)/util/netevent.h $(srcdir)/services/modstack.h $(srcdir)/services/cache/rrset.h \
775 $(srcdir)/util/storage/slabhash.h $(srcdir)/validator/val_kcache.h
776 val_anchor.lo val_anchor.o: $(srcdir)/validator/val_anchor.c config.h \
777 $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
778 $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
779 $(srcdir)/validator/autotrust.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
780 $(srcdir)/util/config_file.h
781 validator.lo validator.o: $(srcdir)/validator/validator.c config.h \
782 $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
783 $(srcdir)/util/log.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
784 $(srcdir)/util/data/msgparse.h $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_anchor.h \
785 $(srcdir)/util/rbtree.h $(srcdir)/validator/val_kcache.h $(srcdir)/util/storage/slabhash.h \
786 $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h \
787 $(srcdir)/validator/val_neg.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/autotrust.h \
788 $(srcdir)/services/cache/dns.h $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h \
789 $(srcdir)/util/config_file.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/tube.h \
790 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
791 val_kcache.lo val_kcache.o: $(srcdir)/validator/val_kcache.c config.h $(srcdir)/validator/val_kcache.h \
792 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
793 $(srcdir)/validator/val_kentry.h $(srcdir)/util/config_file.h $(srcdir)/util/data/dname.h \
794 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
795 $(srcdir)/util/data/msgparse.h \
796
797 val_kentry.lo val_kentry.o: $(srcdir)/validator/val_kentry.c config.h \
798 $(srcdir)/validator/val_kentry.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
799 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lookup3.h \
800 $(srcdir)/util/regional.h $(srcdir)/util/net_help.h
801 val_neg.lo val_neg.o: $(srcdir)/validator/val_neg.c config.h $(srcdir)/validator/val_neg.h $(srcdir)/util/locks.h \
802 $(srcdir)/util/log.h \
803 $(srcdir)/util/rbtree.h \
804 $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
805 $(srcdir)/validator/val_nsec3.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/dname.h \
806 $(srcdir)/util/data/msgreply.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h \
807 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h
808 val_nsec3.lo val_nsec3.o: $(srcdir)/validator/val_nsec3.c config.h $(srcdir)/validator/val_nsec3.h \
809 $(srcdir)/util/rbtree.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
810 $(srcdir)/util/locks.h $(srcdir)/util/log.h \
811 $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
812 $(srcdir)/util/data/msgparse.h \
813 $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kentry.h $(srcdir)/services/cache/rrset.h \
814 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
815 $(srcdir)/util/data/dname.h $(srcdir)/validator/val_nsec.h
816 val_nsec.lo val_nsec.o: $(srcdir)/validator/val_nsec.c config.h \
817 $(srcdir)/validator/val_nsec.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
818 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/val_utils.h $(srcdir)/util/data/msgreply.h \
819 $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h \
820 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h
821 val_sigcrypt.lo val_sigcrypt.o: $(srcdir)/validator/val_sigcrypt.c config.h \
822 $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
823 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/validator/validator.h $(srcdir)/util/module.h \
824 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h $(srcdir)/validator/val_utils.h \
825 $(srcdir)/util/data/dname.h $(srcdir)/util/rbtree.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h
826 val_utils.lo val_utils.o: $(srcdir)/validator/val_utils.c config.h $(srcdir)/validator/val_utils.h \
827 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
828 $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
829 $(srcdir)/util/data/msgparse.h \
830 $(srcdir)/validator/val_kentry.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/validator/val_anchor.h \
831 $(srcdir)/util/rbtree.h $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_neg.h \
832 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \
833 $(srcdir)/util/data/dname.h $(srcdir)/util/net_help.h $(srcdir)/util/regional.h $(srcdir)/util/config_file.h
834 checklocks.lo checklocks.o: $(srcdir)/testcode/checklocks.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
835 $(srcdir)/testcode/checklocks.h
836 unitanchor.lo unitanchor.o: $(srcdir)/testcode/unitanchor.c config.h \
837 $(srcdir)/util/log.h \
838 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
839 $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_anchor.h $(srcdir)/util/rbtree.h
840 unitdname.lo unitdname.o: $(srcdir)/testcode/unitdname.c config.h \
841 $(srcdir)/util/log.h \
842 $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h \
843 $(srcdir)/util/locks.h
844 unitlruhash.lo unitlruhash.o: $(srcdir)/testcode/unitlruhash.c config.h $(srcdir)/testcode/unitmain.h \
845 $(srcdir)/util/log.h \
846 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/storage/slabhash.h
847 unitmain.lo unitmain.o: $(srcdir)/testcode/unitmain.c config.h \
848 $(srcdir)/util/log.h \
849 $(srcdir)/testcode/unitmain.h $(srcdir)/util/alloc.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h \
850 $(srcdir)/util/config_file.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/infra.h \
851 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/random.h
852 unitmsgparse.lo unitmsgparse.o: $(srcdir)/testcode/unitmsgparse.c config.h \
853 $(srcdir)/util/log.h \
854 $(srcdir)/testcode/unitmain.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h \
855 $(srcdir)/util/locks.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
856 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/alloc.h $(srcdir)/util/regional.h \
857 $(srcdir)/util/net_help.h $(srcdir)/testcode/readhex.h
858 unitneg.lo unitneg.o: $(srcdir)/testcode/unitneg.c config.h $(srcdir)/util/log.h \
859 $(srcdir)/util/net_help.h \
860 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
861 $(srcdir)/util/data/dname.h \
862 $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_neg.h $(srcdir)/util/rbtree.h
863 unitregional.lo unitregional.o: $(srcdir)/testcode/unitregional.c config.h $(srcdir)/testcode/unitmain.h \
864 $(srcdir)/util/log.h \
865 $(srcdir)/util/regional.h
866 unitslabhash.lo unitslabhash.o: $(srcdir)/testcode/unitslabhash.c config.h $(srcdir)/testcode/unitmain.h \
867 $(srcdir)/util/log.h \
868 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h
869 unitverify.lo unitverify.o: $(srcdir)/testcode/unitverify.c config.h $(srcdir)/util/log.h \
870 $(srcdir)/testcode/unitmain.h $(srcdir)/validator/val_sigcrypt.h $(srcdir)/util/data/packed_rrset.h \
871 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
872 $(srcdir)/validator/val_nsec.h $(srcdir)/validator/val_nsec3.h $(srcdir)/util/rbtree.h \
873 $(srcdir)/validator/validator.h $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h \
874 $(srcdir)/util/data/msgparse.h \
875 $(srcdir)/validator/val_utils.h $(srcdir)/testcode/ldns-testpkts.h \
876 $(srcdir)/util/data/dname.h \
877 $(srcdir)/util/regional.h $(srcdir)/util/alloc.h $(srcdir)/util/net_help.h $(srcdir)/util/config_file.h
878 readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h \
879 $(srcdir)/util/log.h
880 ldns-testpkts.lo ldns-testpkts.o: $(srcdir)/testcode/ldns-testpkts.c config.h \
881 $(srcdir)/testcode/ldns-testpkts.h
882 acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
883 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
884 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
885 cachedump.lo cachedump.o: $(srcdir)/daemon/cachedump.c config.h \
886 $(srcdir)/daemon/cachedump.h \
887 $(srcdir)/daemon/remote.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
888 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
889 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
890 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
891 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/dns.h \
892 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/regional.h $(srcdir)/util/net_help.h \
893 $(srcdir)/util/data/dname.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
894 $(srcdir)/iterator/iter_delegpt.h $(srcdir)/iterator/iter_utils.h $(srcdir)/iterator/iter_resptype.h \
895 $(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h $(srcdir)/iterator/iter_hints.h \
896 $(srcdir)/util/storage/dnstree.h
897 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
898 $(srcdir)/daemon/daemon.h \
899 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/worker.h \
900 $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
901 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
902 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \
903 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h \
904 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
905 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \
906 $(srcdir)/util/tube.h
907 remote.lo remote.o: $(srcdir)/daemon/remote.c config.h \
908 $(srcdir)/daemon/remote.h \
909 $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h \
910 $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \
911 $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h $(srcdir)/util/timehist.h $(srcdir)/util/module.h \
912 $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/daemon/cachedump.h \
913 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/listen_dnsport.h \
914 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
915 $(srcdir)/util/rtt.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h $(srcdir)/services/localzone.h \
916 $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h $(srcdir)/util/data/dname.h $(srcdir)/validator/validator.h \
917 $(srcdir)/validator/val_utils.h $(srcdir)/validator/val_kcache.h $(srcdir)/validator/val_kentry.h \
918 $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h $(srcdir)/iterator/iter_fwd.h \
919 $(srcdir)/iterator/iter_hints.h $(srcdir)/util/storage/dnstree.h $(srcdir)/iterator/iter_delegpt.h \
920 $(srcdir)/services/outside_network.h
921 stats.lo stats.o: $(srcdir)/daemon/stats.c config.h \
922 $(srcdir)/daemon/stats.h \
923 $(srcdir)/util/timehist.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
924 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
925 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/module.h \
926 $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
927 $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \
928 $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h
929 unbound.lo unbound.o: $(srcdir)/daemon/unbound.c config.h $(srcdir)/util/log.h \
930 $(srcdir)/daemon/daemon.h \
931 $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/remote.h \
932 $(srcdir)/util/config_file.h $(srcdir)/util/storage/slabhash.h $(srcdir)/util/storage/lruhash.h \
933 $(srcdir)/services/listen_dnsport.h $(srcdir)/util/netevent.h $(srcdir)/services/cache/rrset.h \
934 $(srcdir)/util/data/packed_rrset.h \
935 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h \
936 $(srcdir)/util/data/msgparse.h \
937 $(srcdir)/util/net_help.h \
938 $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
939 worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
940 $(srcdir)/util/log.h \
941 $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h \
942 $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
943 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
944 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
945 $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
946 $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
947 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
948 $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
949 $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \
950 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
951 $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/autotrust.h
952 testbound.lo testbound.o: $(srcdir)/testcode/testbound.c config.h $(srcdir)/testcode/ldns-testpkts.h \
953 $(srcdir)/testcode/replay.h \
954 $(srcdir)/util/netevent.h $(srcdir)/util/rbtree.h $(srcdir)/testcode/fake_event.h $(srcdir)/daemon/remote.h \
955 $(srcdir)/util/config_file.h $(srcdir)/daemon/unbound.c $(srcdir)/util/log.h $(srcdir)/daemon/daemon.h \
956 $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/util/storage/slabhash.h \
957 $(srcdir)/util/storage/lruhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
958 $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h \
959 $(srcdir)/util/data/msgreply.h $(srcdir)/util/module.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/net_help.h \
960 $(srcdir)/util/mini_event.h $(srcdir)/util/rbtree.h
961 ldns-testpkts.lo ldns-testpkts.o: $(srcdir)/testcode/ldns-testpkts.c config.h \
962 $(srcdir)/testcode/ldns-testpkts.h
963 worker.lo worker.o: $(srcdir)/daemon/worker.c config.h \
964 $(srcdir)/util/log.h \
965 $(srcdir)/util/net_help.h $(srcdir)/util/random.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h \
966 $(srcdir)/util/locks.h $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
967 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
968 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h \
969 $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h \
970 $(srcdir)/util/config_file.h $(srcdir)/util/regional.h $(srcdir)/util/storage/slabhash.h \
971 $(srcdir)/services/listen_dnsport.h $(srcdir)/services/outside_network.h \
972 $(srcdir)/services/outbound_list.h $(srcdir)/services/cache/rrset.h $(srcdir)/services/cache/infra.h \
973 $(srcdir)/util/rtt.h $(srcdir)/services/cache/dns.h $(srcdir)/services/mesh.h $(srcdir)/services/localzone.h \
974 $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/dname.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/tube.h \
975 $(srcdir)/iterator/iter_fwd.h $(srcdir)/validator/autotrust.h
976 acl_list.lo acl_list.o: $(srcdir)/daemon/acl_list.c config.h $(srcdir)/daemon/acl_list.h \
977 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/regional.h $(srcdir)/util/log.h \
978 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
979 daemon.lo daemon.o: $(srcdir)/daemon/daemon.c config.h \
980 $(srcdir)/daemon/daemon.h \
981 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/util/alloc.h $(srcdir)/services/modstack.h $(srcdir)/daemon/worker.h \
982 $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
983 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/daemon/stats.h \
984 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h $(srcdir)/daemon/acl_list.h \
985 $(srcdir)/util/storage/dnstree.h $(srcdir)/util/rbtree.h $(srcdir)/util/config_file.h \
986 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/listen_dnsport.h $(srcdir)/services/cache/rrset.h \
987 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/localzone.h $(srcdir)/util/random.h \
988 $(srcdir)/util/tube.h
989 stats.lo stats.o: $(srcdir)/daemon/stats.c config.h \
990 $(srcdir)/daemon/stats.h \
991 $(srcdir)/util/timehist.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
992 $(srcdir)/util/alloc.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/storage/lruhash.h \
993 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/module.h \
994 $(srcdir)/daemon/daemon.h $(srcdir)/services/modstack.h $(srcdir)/services/mesh.h $(srcdir)/util/rbtree.h \
995 $(srcdir)/services/outside_network.h $(srcdir)/util/config_file.h $(srcdir)/util/tube.h \
996 $(srcdir)/util/net_help.h $(srcdir)/validator/validator.h $(srcdir)/validator/val_utils.h
997 replay.lo replay.o: $(srcdir)/testcode/replay.c config.h $(srcdir)/util/log.h \
998 $(srcdir)/util/net_help.h \
999 $(srcdir)/util/config_file.h $(srcdir)/testcode/replay.h $(srcdir)/util/netevent.h \
1000 $(srcdir)/testcode/ldns-testpkts.h \
1001 $(srcdir)/util/rbtree.h \
1002 $(srcdir)/testcode/fake_event.h
1003 fake_event.lo fake_event.o: $(srcdir)/testcode/fake_event.c config.h $(srcdir)/testcode/fake_event.h \
1004 $(srcdir)/util/netevent.h \
1005 $(srcdir)/util/net_help.h \
1006 $(srcdir)/util/log.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1007 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgencode.h \
1008 $(srcdir)/util/data/dname.h $(srcdir)/util/config_file.h $(srcdir)/services/listen_dnsport.h \
1009 $(srcdir)/services/outside_network.h $(srcdir)/util/rbtree.h $(srcdir)/services/cache/infra.h \
1010 $(srcdir)/util/rtt.h $(srcdir)/testcode/replay.h $(srcdir)/testcode/ldns-testpkts.h \
1011 $(srcdir)/util/fptr_wlist.h \
1012 $(srcdir)/util/module.h $(srcdir)/util/tube.h $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
1013 lock_verify.lo lock_verify.o: $(srcdir)/testcode/lock_verify.c config.h $(srcdir)/util/log.h \
1014 $(srcdir)/util/rbtree.h \
1015 $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \
1016 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1017 $(srcdir)/util/data/msgparse.h \
1018 $(srcdir)/util/tube.h \
1019 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
1020 pktview.lo pktview.o: $(srcdir)/testcode/pktview.c config.h \
1021 $(srcdir)/util/log.h \
1022 $(srcdir)/util/data/dname.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1023 $(srcdir)/util/data/msgparse.h $(srcdir)/testcode/unitmain.h $(srcdir)/testcode/readhex.h
1024 readhex.lo readhex.o: $(srcdir)/testcode/readhex.c config.h $(srcdir)/testcode/readhex.h \
1025 $(srcdir)/util/log.h
1026 signit.lo signit.o: $(srcdir)/testcode/signit.c config.h \
1027 $(srcdir)/util/log.h \
1028 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h
1029 memstats.lo memstats.o: $(srcdir)/testcode/memstats.c config.h $(srcdir)/util/log.h \
1030 $(srcdir)/util/rbtree.h \
1031 $(srcdir)/util/locks.h $(srcdir)/util/fptr_wlist.h $(srcdir)/util/netevent.h $(srcdir)/util/storage/lruhash.h \
1032 $(srcdir)/util/module.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1033 $(srcdir)/util/data/msgparse.h \
1034 $(srcdir)/util/tube.h \
1035 $(srcdir)/services/mesh.h $(srcdir)/services/modstack.h
1036 unbound-checkconf.lo unbound-checkconf.o: $(srcdir)/smallapp/unbound-checkconf.c config.h $(srcdir)/util/log.h \
1037 $(srcdir)/util/config_file.h $(srcdir)/util/module.h $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1038 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1039 $(srcdir)/util/data/msgparse.h \
1040 $(srcdir)/util/net_help.h \
1041 $(srcdir)/util/regional.h $(srcdir)/iterator/iterator.h $(srcdir)/services/outbound_list.h \
1042 $(srcdir)/iterator/iter_fwd.h $(srcdir)/util/rbtree.h $(srcdir)/validator/validator.h \
1043 $(srcdir)/validator/val_utils.h $(srcdir)/services/localzone.h $(srcdir)/pythonmod/pythonmod.h
1044 worker_cb.lo worker_cb.o: $(srcdir)/smallapp/worker_cb.c config.h $(srcdir)/util/log.h \
1045 $(srcdir)/services/mesh.h \
1046 $(srcdir)/util/rbtree.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgparse.h \
1047 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h \
1048 $(srcdir)/util/module.h \
1049 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/services/modstack.h
1050 context.lo context.o: $(srcdir)/libunbound/context.c config.h $(srcdir)/libunbound/context.h \
1051 $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1052 $(srcdir)/util/alloc.h \
1053 $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h \
1054 $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1055 $(srcdir)/util/module.h \
1056 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
1057 $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/services/localzone.h \
1058 $(srcdir)/services/cache/rrset.h $(srcdir)/util/storage/slabhash.h $(srcdir)/services/cache/infra.h \
1059 $(srcdir)/util/rtt.h
1060 libunbound.lo libunbound.o: $(srcdir)/libunbound/libunbound.c $(srcdir)/libunbound/unbound.h config.h \
1061 $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1062 $(srcdir)/util/alloc.h \
1063 $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h \
1064 $(srcdir)/util/storage/lruhash.h \
1065 $(srcdir)/libunbound/libworker.h $(srcdir)/util/config_file.h $(srcdir)/util/module.h \
1066 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/msgparse.h \
1067 $(srcdir)/util/regional.h \
1068 $(srcdir)/util/random.h $(srcdir)/util/net_help.h $(srcdir)/util/tube.h $(srcdir)/services/localzone.h \
1069 $(srcdir)/services/cache/infra.h $(srcdir)/util/rtt.h $(srcdir)/services/cache/rrset.h \
1070 $(srcdir)/util/storage/slabhash.h
1071 libworker.lo libworker.o: $(srcdir)/libunbound/libworker.c config.h \
1072 $(srcdir)/libunbound/libworker.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/storage/lruhash.h \
1073 $(srcdir)/util/locks.h $(srcdir)/util/log.h $(srcdir)/libunbound/context.h $(srcdir)/util/alloc.h $(srcdir)/util/rbtree.h \
1074 $(srcdir)/services/modstack.h $(srcdir)/libunbound/unbound.h $(srcdir)/services/outside_network.h \
1075 $(srcdir)/util/netevent.h $(srcdir)/services/mesh.h $(srcdir)/util/data/msgparse.h $(srcdir)/util/module.h \
1076 $(srcdir)/util/data/msgreply.h $(srcdir)/services/localzone.h $(srcdir)/services/cache/rrset.h \
1077 $(srcdir)/util/storage/slabhash.h $(srcdir)/services/outbound_list.h $(srcdir)/util/regional.h \
1078 $(srcdir)/util/random.h $(srcdir)/util/config_file.h $(srcdir)/util/net_help.h $(srcdir)/util/data/dname.h \
1079 $(srcdir)/util/data/msgencode.h $(srcdir)/util/tube.h $(srcdir)/iterator/iter_fwd.h
1080 unbound-host.lo unbound-host.o: $(srcdir)/smallapp/unbound-host.c config.h $(srcdir)/libunbound/unbound.h \
1081
1082 asynclook.lo asynclook.o: $(srcdir)/testcode/asynclook.c config.h $(srcdir)/libunbound/unbound.h \
1083 $(srcdir)/libunbound/context.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1084 $(srcdir)/util/alloc.h \
1085 $(srcdir)/util/rbtree.h $(srcdir)/services/modstack.h $(srcdir)/util/data/packed_rrset.h \
1086 $(srcdir)/util/storage/lruhash.h \
1087
1088 streamtcp.lo streamtcp.o: $(srcdir)/testcode/streamtcp.c config.h \
1089 $(srcdir)/util/locks.h \
1090 $(srcdir)/util/log.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgparse.h \
1091 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1092 $(srcdir)/util/data/dname.h
1093 perf.lo perf.o: $(srcdir)/testcode/perf.c config.h \
1094 $(srcdir)/util/log.h \
1095 $(srcdir)/util/locks.h $(srcdir)/util/net_help.h $(srcdir)/util/data/msgencode.h $(srcdir)/util/data/msgreply.h \
1096 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h $(srcdir)/util/data/msgparse.h
1097 delayer.lo delayer.o: $(srcdir)/testcode/delayer.c config.h $(srcdir)/util/net_help.h $(srcdir)/util/log.h \
1098 $(srcdir)/util/config_file.h
1099 harvest.lo harvest.o: $(srcdir)/testcode/harvest.c config.h \
1100 $(srcdir)/libunbound/unbound.h
1101 unbound-control.lo unbound-control.o: $(srcdir)/smallapp/unbound-control.c config.h $(srcdir)/util/log.h \
1102 $(srcdir)/util/config_file.h $(srcdir)/util/locks.h $(srcdir)/util/net_help.h
1103 unbound-anchor.lo unbound-anchor.o: $(srcdir)/smallapp/unbound-anchor.c config.h $(srcdir)/libunbound/unbound.h \
1104
1105 petal.lo petal.o: $(srcdir)/testcode/petal.c config.h
1106 pythonmod_utils.lo pythonmod_utils.o: $(srcdir)/pythonmod/pythonmod_utils.c config.h $(srcdir)/util/module.h \
1107 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1108 $(srcdir)/util/data/msgreply.h $(srcdir)/util/data/packed_rrset.h \
1109 $(srcdir)/util/data/msgparse.h \
1110 $(srcdir)/util/netevent.h \
1111 $(srcdir)/util/net_help.h $(srcdir)/services/cache/dns.h $(srcdir)/services/cache/rrset.h \
1112 $(srcdir)/util/storage/slabhash.h $(srcdir)/util/regional.h \
1113
1114 win_svc.lo win_svc.o: $(srcdir)/winrc/win_svc.c config.h $(srcdir)/winrc/win_svc.h $(srcdir)/winrc/w_inst.h \
1115 $(srcdir)/daemon/daemon.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1116 $(srcdir)/util/alloc.h \
1117 $(srcdir)/services/modstack.h $(srcdir)/daemon/worker.h $(srcdir)/util/netevent.h $(srcdir)/util/data/msgreply.h \
1118 $(srcdir)/util/storage/lruhash.h $(srcdir)/util/data/packed_rrset.h \
1119 $(srcdir)/util/data/msgparse.h \
1120 $(srcdir)/daemon/stats.h \
1121 $(srcdir)/util/timehist.h $(srcdir)/util/module.h $(srcdir)/daemon/remote.h $(srcdir)/util/config_file.h \
1122 $(srcdir)/util/winsock_event.h
1123 w_inst.lo w_inst.o: $(srcdir)/winrc/w_inst.c config.h $(srcdir)/winrc/w_inst.h $(srcdir)/winrc/win_svc.h
1124 unbound-service-install.lo unbound-service-install.o: $(srcdir)/winrc/unbound-service-install.c config.h \
1125 $(srcdir)/winrc/w_inst.h
1126 unbound-service-remove.lo unbound-service-remove.o: $(srcdir)/winrc/unbound-service-remove.c config.h \
1127 $(srcdir)/winrc/w_inst.h
1128 anchor-update.lo anchor-update.o: $(srcdir)/winrc/anchor-update.c config.h \
1129 $(srcdir)/libunbound/unbound.h
1130 ctime_r.lo ctime_r.o: $(srcdir)/compat/ctime_r.c config.h $(srcdir)/util/locks.h $(srcdir)/util/log.h \
1131
1132 fake-rfc2553.lo fake-rfc2553.o: $(srcdir)/compat/fake-rfc2553.c $(srcdir)/compat/fake-rfc2553.h config.h
1133 gmtime_r.lo gmtime_r.o: $(srcdir)/compat/gmtime_r.c config.h
1134 inet_aton.lo inet_aton.o: $(srcdir)/compat/inet_aton.c config.h
1135 inet_ntop.lo inet_ntop.o: $(srcdir)/compat/inet_ntop.c config.h
1136 inet_pton.lo inet_pton.o: $(srcdir)/compat/inet_pton.c config.h
1137 malloc.lo malloc.o: $(srcdir)/compat/malloc.c config.h
1138 memcmp.lo memcmp.o: $(srcdir)/compat/memcmp.c config.h
1139 memmove.lo memmove.o: $(srcdir)/compat/memmove.c config.h
1140 snprintf.lo snprintf.o: $(srcdir)/compat/snprintf.c config.h
1141 strlcpy.lo strlcpy.o: $(srcdir)/compat/strlcpy.c config.h
1142 strptime.lo strptime.o: $(srcdir)/compat/strptime.c config.h
180180 dnl
181181 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
182182 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
183 m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
183184 m4_require([_LT_CMD_RELOAD])dnl
184185 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
186 m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
185187 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
186188 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
189 m4_require([_LT_WITH_SYSROOT])dnl
187190
188191 _LT_CONFIG_LIBTOOL_INIT([
189192 # See if we are running on zsh, and set the options which allow our
754757 # if finds mixed CR/LF and LF-only lines. Since sed operates in
755758 # text mode, it properly converts lines to CR/LF. This bash problem
756759 # is reportedly fixed, but why not run on old versions too?
757 sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
758 || (rm -f "$cfgfile"; exit 1)
759
760 _LT_PROG_XSI_SHELLFNS
761
762 sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
763 || (rm -f "$cfgfile"; exit 1)
764
765 mv -f "$cfgfile" "$ofile" ||
760 sed '$q' "$ltmain" >> "$cfgfile" \
761 || (rm -f "$cfgfile"; exit 1)
762
763 _LT_PROG_REPLACE_SHELLFNS
764
765 mv -f "$cfgfile" "$ofile" ||
766766 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
767767 chmod +x "$ofile"
768768 ],
10791079 fi
10801080 ])
10811081
1082 # _LT_SYS_MODULE_PATH_AIX
1083 # -----------------------
1082 # _LT_SYS_MODULE_PATH_AIX([TAGNAME])
1083 # ----------------------------------
10841084 # Links a minimal program and checks the executable
10851085 # for the system default hardcoded library path. In most cases,
10861086 # this is /usr/lib:/lib, but when the MPI compilers are used
10871087 # the location of the communication and MPI libs are included too.
10881088 # If we don't find anything, use the default library path according
10891089 # to the aix ld manual.
1090 # Store the results from the different compilers for each TAGNAME.
1091 # Allow to override them for all tags through lt_cv_aix_libpath.
10901092 m4_defun([_LT_SYS_MODULE_PATH_AIX],
10911093 [m4_require([_LT_DECL_SED])dnl
1092 AC_LINK_IFELSE(AC_LANG_PROGRAM,[
1093 lt_aix_libpath_sed='
1094 /Import File Strings/,/^$/ {
1095 /^0/ {
1096 s/^0 *\(.*\)$/\1/
1097 p
1098 }
1099 }'
1100 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1101 # Check for a 64-bit object if we didn't find anything.
1102 if test -z "$aix_libpath"; then
1103 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1104 fi],[])
1105 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
1094 if test "${lt_cv_aix_libpath+set}" = set; then
1095 aix_libpath=$lt_cv_aix_libpath
1096 else
1097 AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
1098 [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
1099 lt_aix_libpath_sed='[
1100 /Import File Strings/,/^$/ {
1101 /^0/ {
1102 s/^0 *\([^ ]*\) *$/\1/
1103 p
1104 }
1105 }]'
1106 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1107 # Check for a 64-bit object if we didn't find anything.
1108 if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1109 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
1110 fi],[])
1111 if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
1112 _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
1113 fi
1114 ])
1115 aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
1116 fi
11061117 ])# _LT_SYS_MODULE_PATH_AIX
11071118
11081119
11271138
11281139 AC_MSG_CHECKING([how to print strings])
11291140 # Test print first, because it will be a builtin if present.
1130 if test "X`print -r -- -n 2>/dev/null`" = X-n && \
1141 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
11311142 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
11321143 ECHO='print -r --'
11331144 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
11701181 _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
11711182 ])# _LT_PROG_ECHO_BACKSLASH
11721183
1184
1185 # _LT_WITH_SYSROOT
1186 # ----------------
1187 AC_DEFUN([_LT_WITH_SYSROOT],
1188 [AC_MSG_CHECKING([for sysroot])
1189 AC_ARG_WITH([sysroot],
1190 [ --with-sysroot[=DIR] Search for dependent libraries within DIR
1191 (or the compiler's sysroot if not specified).],
1192 [], [with_sysroot=no])
1193
1194 dnl lt_sysroot will always be passed unquoted. We quote it here
1195 dnl in case the user passed a directory name.
1196 lt_sysroot=
1197 case ${with_sysroot} in #(
1198 yes)
1199 if test "$GCC" = yes; then
1200 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
1201 fi
1202 ;; #(
1203 /*)
1204 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
1205 ;; #(
1206 no|'')
1207 ;; #(
1208 *)
1209 AC_MSG_RESULT([${with_sysroot}])
1210 AC_MSG_ERROR([The sysroot must be an absolute path.])
1211 ;;
1212 esac
1213
1214 AC_MSG_RESULT([${lt_sysroot:-no}])
1215 _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
1216 [dependent libraries, and in which our libraries should be installed.])])
11731217
11741218 # _LT_ENABLE_LOCK
11751219 # ---------------
13171361 ])# _LT_ENABLE_LOCK
13181362
13191363
1364 # _LT_PROG_AR
1365 # -----------
1366 m4_defun([_LT_PROG_AR],
1367 [AC_CHECK_TOOLS(AR, [ar], false)
1368 : ${AR=ar}
1369 : ${AR_FLAGS=cru}
1370 _LT_DECL([], [AR], [1], [The archiver])
1371 _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
1372
1373 AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
1374 [lt_cv_ar_at_file=no
1375 AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
1376 [echo conftest.$ac_objext > conftest.lst
1377 lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
1378 AC_TRY_EVAL([lt_ar_try])
1379 if test "$ac_status" -eq 0; then
1380 # Ensure the archiver fails upon bogus file names.
1381 rm -f conftest.$ac_objext libconftest.a
1382 AC_TRY_EVAL([lt_ar_try])
1383 if test "$ac_status" -ne 0; then
1384 lt_cv_ar_at_file=@
1385 fi
1386 fi
1387 rm -f conftest.* libconftest.a
1388 ])
1389 ])
1390
1391 if test "x$lt_cv_ar_at_file" = xno; then
1392 archiver_list_spec=
1393 else
1394 archiver_list_spec=$lt_cv_ar_at_file
1395 fi
1396 _LT_DECL([], [archiver_list_spec], [1],
1397 [How to feed a file listing to the archiver])
1398 ])# _LT_PROG_AR
1399
1400
13201401 # _LT_CMD_OLD_ARCHIVE
13211402 # -------------------
13221403 m4_defun([_LT_CMD_OLD_ARCHIVE],
1323 [AC_CHECK_TOOL(AR, ar, false)
1324 test -z "$AR" && AR=ar
1325 test -z "$AR_FLAGS" && AR_FLAGS=cru
1326 _LT_DECL([], [AR], [1], [The archiver])
1327 _LT_DECL([], [AR_FLAGS], [1])
1404 [_LT_PROG_AR
13281405
13291406 AC_CHECK_TOOL(STRIP, strip, :)
13301407 test -z "$STRIP" && STRIP=:
16641741 /* When -fvisbility=hidden is used, assume the code has been annotated
16651742 correspondingly for the symbols needed. */
16661743 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
1667 void fnord () __attribute__((visibility("default")));
1744 int fnord () __attribute__((visibility("default")));
16681745 #endif
16691746
1670 void fnord () { int i=42; }
1747 int fnord () { return 42; }
16711748 int main ()
16721749 {
16731750 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
22072284 need_version=no
22082285 need_lib_prefix=no
22092286
2210 case $GCC,$host_os in
2211 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
2287 case $GCC,$cc_basename in
2288 yes,*)
2289 # gcc
22122290 library_names_spec='$libname.dll.a'
22132291 # DLL is installed to $(libdir)/../bin by postinstall_cmds
22142292 postinstall_cmds='base_file=`basename \${file}`~
22412319 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
22422320 ;;
22432321 esac
2322 dynamic_linker='Win32 ld.exe'
22442323 ;;
22452324
2325 *,cl*)
2326 # Native MSVC
2327 libname_spec='$name'
2328 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
2329 library_names_spec='${libname}.dll.lib'
2330
2331 case $build_os in
2332 mingw*)
2333 sys_lib_search_path_spec=
2334 lt_save_ifs=$IFS
2335 IFS=';'
2336 for lt_path in $LIB
2337 do
2338 IFS=$lt_save_ifs
2339 # Let DOS variable expansion print the short 8.3 style file name.
2340 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
2341 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
2342 done
2343 IFS=$lt_save_ifs
2344 # Convert to MSYS style.
2345 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
2346 ;;
2347 cygwin*)
2348 # Convert to unix form, then to dos form, then back to unix form
2349 # but this time dos style (no spaces!) so that the unix form looks
2350 # like /cygdrive/c/PROGRA~1:/cygdr...
2351 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
2352 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
2353 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2354 ;;
2355 *)
2356 sys_lib_search_path_spec="$LIB"
2357 if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
2358 # It is most probably a Windows format PATH.
2359 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
2360 else
2361 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
2362 fi
2363 # FIXME: find the short name or the path components, as spaces are
2364 # common. (e.g. "Program Files" -> "PROGRA~1")
2365 ;;
2366 esac
2367
2368 # DLL is installed to $(libdir)/../bin by postinstall_cmds
2369 postinstall_cmds='base_file=`basename \${file}`~
2370 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
2371 dldir=$destdir/`dirname \$dlpath`~
2372 test -d \$dldir || mkdir -p \$dldir~
2373 $install_prog $dir/$dlname \$dldir/$dlname'
2374 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
2375 dlpath=$dir/\$dldll~
2376 $RM \$dlpath'
2377 shlibpath_overrides_runpath=yes
2378 dynamic_linker='Win32 link.exe'
2379 ;;
2380
22462381 *)
2382 # Assume MSVC wrapper
22472383 library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
2384 dynamic_linker='Win32 ld.exe'
22482385 ;;
22492386 esac
2250 dynamic_linker='Win32 ld.exe'
22512387 # FIXME: first we should search . and the directory the executable is in
22522388 shlibpath_var=PATH
22532389 ;;
29553091 esac
29563092 reload_cmds='$LD$reload_flag -o $output$reload_objs'
29573093 case $host_os in
3094 cygwin* | mingw* | pw32* | cegcc*)
3095 if test "$GCC" != yes; then
3096 reload_cmds=false
3097 fi
3098 ;;
29583099 darwin*)
29593100 if test "$GCC" = yes; then
29603101 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
31733314 ;;
31743315 esac
31753316 ])
3317
3318 file_magic_glob=
3319 want_nocaseglob=no
3320 if test "$build" = "$host"; then
3321 case $host_os in
3322 mingw* | pw32*)
3323 if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
3324 want_nocaseglob=yes
3325 else
3326 file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
3327 fi
3328 ;;
3329 esac
3330 fi
3331
31763332 file_magic_cmd=$lt_cv_file_magic_cmd
31773333 deplibs_check_method=$lt_cv_deplibs_check_method
31783334 test -z "$deplibs_check_method" && deplibs_check_method=unknown
31803336 _LT_DECL([], [deplibs_check_method], [1],
31813337 [Method to check whether dependent libraries are shared objects])
31823338 _LT_DECL([], [file_magic_cmd], [1],
3183 [Command to use when deplibs_check_method == "file_magic"])
3339 [Command to use when deplibs_check_method = "file_magic"])
3340 _LT_DECL([], [file_magic_glob], [1],
3341 [How to find potential files when deplibs_check_method = "file_magic"])
3342 _LT_DECL([], [want_nocaseglob], [1],
3343 [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
31843344 ])# _LT_CHECK_MAGIC_METHOD
31853345
31863346
32833443 dnl AC_DEFUN([AM_PROG_NM], [])
32843444 dnl AC_DEFUN([AC_PROG_NM], [])
32853445
3446 # _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3447 # --------------------------------
3448 # how to determine the name of the shared library
3449 # associated with a specific link library.
3450 # -- PORTME fill in with the dynamic library characteristics
3451 m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
3452 [m4_require([_LT_DECL_EGREP])
3453 m4_require([_LT_DECL_OBJDUMP])
3454 m4_require([_LT_DECL_DLLTOOL])
3455 AC_CACHE_CHECK([how to associate runtime and link libraries],
3456 lt_cv_sharedlib_from_linklib_cmd,
3457 [lt_cv_sharedlib_from_linklib_cmd='unknown'
3458
3459 case $host_os in
3460 cygwin* | mingw* | pw32* | cegcc*)
3461 # two different shell functions defined in ltmain.sh
3462 # decide which to use based on capabilities of $DLLTOOL
3463 case `$DLLTOOL --help 2>&1` in
3464 *--identify-strict*)
3465 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
3466 ;;
3467 *)
3468 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
3469 ;;
3470 esac
3471 ;;
3472 *)
3473 # fallback: assume linklib IS sharedlib
3474 lt_cv_sharedlib_from_linklib_cmd="$ECHO"
3475 ;;
3476 esac
3477 ])
3478 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
3479 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
3480
3481 _LT_DECL([], [sharedlib_from_linklib_cmd], [1],
3482 [Command to associate shared and link libraries])
3483 ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
3484
3485
3486 # _LT_PATH_MANIFEST_TOOL
3487 # ----------------------
3488 # locate the manifest tool
3489 m4_defun([_LT_PATH_MANIFEST_TOOL],
3490 [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
3491 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
3492 AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
3493 [lt_cv_path_mainfest_tool=no
3494 echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
3495 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
3496 cat conftest.err >&AS_MESSAGE_LOG_FD
3497 if $GREP 'Manifest Tool' conftest.out > /dev/null; then
3498 lt_cv_path_mainfest_tool=yes
3499 fi
3500 rm -f conftest*])
3501 if test "x$lt_cv_path_mainfest_tool" != xyes; then
3502 MANIFEST_TOOL=:
3503 fi
3504 _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
3505 ])# _LT_PATH_MANIFEST_TOOL
3506
32863507
32873508 # LT_LIB_M
32883509 # --------
34093630 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
34103631
34113632 # Transform an extracted symbol line into symbol name and symbol address
3412 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3413 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
3633 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'"
3634 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
34143635
34153636 # Handle CRLF in mingw tool chain
34163637 opt_cr=
34463667 else
34473668 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
34483669 fi
3670 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
34493671
34503672 # Check to see that the pipe works correctly.
34513673 pipe_works=no
34793701 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
34803702 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
34813703 cat <<_LT_EOF > conftest.$ac_ext
3704 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3705 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3706 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3707 relocations are performed -- see ld's documentation on pseudo-relocs. */
3708 # define LT@&t@_DLSYM_CONST
3709 #elif defined(__osf__)
3710 /* This system does not cope well with relocations in const data. */
3711 # define LT@&t@_DLSYM_CONST
3712 #else
3713 # define LT@&t@_DLSYM_CONST const
3714 #endif
3715
34823716 #ifdef __cplusplus
34833717 extern "C" {
34843718 #endif
34903724 cat <<_LT_EOF >> conftest.$ac_ext
34913725
34923726 /* The mapping between symbol names and symbols. */
3493 const struct {
3727 LT@&t@_DLSYM_CONST struct {
34943728 const char *name;
34953729 void *address;
34963730 }
35163750 _LT_EOF
35173751 # Now try linking the two files.
35183752 mv conftest.$ac_objext conftstm.$ac_objext
3519 lt_save_LIBS="$LIBS"
3520 lt_save_CFLAGS="$CFLAGS"
3753 lt_globsym_save_LIBS=$LIBS
3754 lt_globsym_save_CFLAGS=$CFLAGS
35213755 LIBS="conftstm.$ac_objext"
35223756 CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
35233757 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
35243758 pipe_works=yes
35253759 fi
3526 LIBS="$lt_save_LIBS"
3527 CFLAGS="$lt_save_CFLAGS"
3760 LIBS=$lt_globsym_save_LIBS
3761 CFLAGS=$lt_globsym_save_CFLAGS
35283762 else
35293763 echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
35303764 fi
35573791 AC_MSG_RESULT(ok)
35583792 fi
35593793
3794 # Response file support.
3795 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
3796 nm_file_list_spec='@'
3797 elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
3798 nm_file_list_spec='@'
3799 fi
3800
35603801 _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
35613802 [Take the output of nm and produce a listing of raw symbols and C names])
35623803 _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
35673808 _LT_DECL([global_symbol_to_c_name_address_lib_prefix],
35683809 [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
35693810 [Transform the output of nm in a C name address pair when lib prefix is needed])
3811 _LT_DECL([], [nm_file_list_spec], [1],
3812 [Specify filename containing input files for $NM])
35703813 ]) # _LT_CMD_GLOBAL_SYMBOLS
35713814
35723815
35783821 _LT_TAGVAR(lt_prog_compiler_pic, $1)=
35793822 _LT_TAGVAR(lt_prog_compiler_static, $1)=
35803823
3581 AC_MSG_CHECKING([for $compiler option to produce PIC])
35823824 m4_if([$1], [CXX], [
35833825 # C++ specific cases for pic, static, wl, etc.
35843826 if test "$GXX" = yes; then
36823924 # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
36833925 ;;
36843926 esac
3927 ;;
3928 mingw* | cygwin* | os2* | pw32* | cegcc*)
3929 # This hack is so that the source file can tell whether it is being
3930 # built for inclusion in a dll (and should export symbols for example).
3931 m4_if([$1], [GCJ], [],
3932 [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
36853933 ;;
36863934 dgux*)
36873935 case $cc_basename in
40574305 _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
40584306 _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
40594307 ;;
4308 nagfor*)
4309 # NAG Fortran compiler
4310 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
4311 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
4312 _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
4313 ;;
40604314 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
40614315 # Portland Group compilers (*not* the Pentium gcc compiler,
40624316 # which looks to be a dead project)
41764430 _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
41774431 ;;
41784432 esac
4179 AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4180 _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4181 [How to pass a linker flag through the compiler])
4433
4434 AC_CACHE_CHECK([for $compiler option to produce PIC],
4435 [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
4436 [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
4437 _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
41824438
41834439 #
41844440 # Check to make sure the PIC flag actually works.
41974453 _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
41984454 [Additional compiler flags for building library objects])
41994455
4456 _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
4457 [How to pass a linker flag through the compiler])
42004458 #
42014459 # Check to make sure the static flag actually works.
42024460 #
42174475 m4_defun([_LT_LINKER_SHLIBS],
42184476 [AC_REQUIRE([LT_PATH_LD])dnl
42194477 AC_REQUIRE([LT_PATH_NM])dnl
4478 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
42204479 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
42214480 m4_require([_LT_DECL_EGREP])dnl
42224481 m4_require([_LT_DECL_SED])dnl
42254484 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
42264485 m4_if([$1], [CXX], [
42274486 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4487 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
42284488 case $host_os in
42294489 aix[[4-9]]*)
42304490 # If we're using GNU nm, then we don't want the "-C" option.
42394499 ;;
42404500 pw32*)
42414501 _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
4242 ;;
4502 ;;
42434503 cygwin* | mingw* | cegcc*)
4244 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4245 ;;
4504 case $cc_basename in
4505 cl*) ;;
4506 *)
4507 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4508 _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
4509 ;;
4510 esac
4511 ;;
42464512 *)
42474513 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
4248 ;;
4514 ;;
42494515 esac
4250 _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
42514516 ], [
42524517 runpath_var=
42534518 _LT_TAGVAR(allow_undefined_flag, $1)=
44154680 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
44164681 _LT_TAGVAR(always_export_symbols, $1)=no
44174682 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
4418 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
4683 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
4684 _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
44194685
44204686 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
44214687 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
44634729 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
44644730 && test "$tmp_diet" = no
44654731 then
4466 tmp_addflag=
4732 tmp_addflag=' $pic_flag'
44674733 tmp_sharedflag='-shared'
44684734 case $cc_basename,$host_cpu in
44694735 pgcc*) # Portland Group C compiler
45334799 _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
45344800 wlarc=
45354801 else
4536 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4537 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4802 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4803 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
45384804 fi
45394805 ;;
45404806
45524818
45534819 _LT_EOF
45544820 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4555 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4556 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4821 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4822 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
45574823 else
45584824 _LT_TAGVAR(ld_shlibs, $1)=no
45594825 fi
45994865
46004866 *)
46014867 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
4602 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4603 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
4868 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
4869 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
46044870 else
46054871 _LT_TAGVAR(ld_shlibs, $1)=no
46064872 fi
47304996 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
47314997 # Determine the default libpath from the value encoded in an
47324998 # empty executable.
4733 _LT_SYS_MODULE_PATH_AIX
4999 _LT_SYS_MODULE_PATH_AIX([$1])
47345000 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
47355001 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
47365002 else
47415007 else
47425008 # Determine the default libpath from the value encoded in an
47435009 # empty executable.
4744 _LT_SYS_MODULE_PATH_AIX
5010 _LT_SYS_MODULE_PATH_AIX([$1])
47455011 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
47465012 # Warning - without using the other run time loading flags,
47475013 # -berok will link without error, but may produce a broken library.
47855051 # Microsoft Visual C++.
47865052 # hardcode_libdir_flag_spec is actually meaningless, as there is
47875053 # no search path for DLLs.
4788 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
4789 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
4790 # Tell ltmain to make .lib files, not .a files.
4791 libext=lib
4792 # Tell ltmain to make .dll files, not .so files.
4793 shrext_cmds=".dll"
4794 # FIXME: Setting linknames here is a bad hack.
4795 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
4796 # The linker will automatically build a .lib file if we build a DLL.
4797 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
4798 # FIXME: Should let the user specify the lib program.
4799 _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
4800 _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
4801 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5054 case $cc_basename in
5055 cl*)
5056 # Native MSVC
5057 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5058 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5059 _LT_TAGVAR(always_export_symbols, $1)=yes
5060 _LT_TAGVAR(file_list_spec, $1)='@'
5061 # Tell ltmain to make .lib files, not .a files.
5062 libext=lib
5063 # Tell ltmain to make .dll files, not .so files.
5064 shrext_cmds=".dll"
5065 # FIXME: Setting linknames here is a bad hack.
5066 _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
5067 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5068 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
5069 else
5070 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
5071 fi~
5072 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
5073 linknames='
5074 # The linker will not automatically build a static lib if we build a DLL.
5075 # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5076 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5077 _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
5078 # Don't use ranlib
5079 _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
5080 _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
5081 lt_tool_outputfile="@TOOL_OUTPUT@"~
5082 case $lt_outputfile in
5083 *.exe|*.EXE) ;;
5084 *)
5085 lt_outputfile="$lt_outputfile.exe"
5086 lt_tool_outputfile="$lt_tool_outputfile.exe"
5087 ;;
5088 esac~
5089 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
5090 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
5091 $RM "$lt_outputfile.manifest";
5092 fi'
5093 ;;
5094 *)
5095 # Assume MSVC wrapper
5096 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
5097 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5098 # Tell ltmain to make .lib files, not .a files.
5099 libext=lib
5100 # Tell ltmain to make .dll files, not .so files.
5101 shrext_cmds=".dll"
5102 # FIXME: Setting linknames here is a bad hack.
5103 _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
5104 # The linker will automatically build a .lib file if we build a DLL.
5105 _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
5106 # FIXME: Should let the user specify the lib program.
5107 _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
5108 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5109 ;;
5110 esac
48025111 ;;
48035112
48045113 darwin* | rhapsody*)
48365145
48375146 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
48385147 freebsd* | dragonfly*)
4839 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
5148 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
48405149 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
48415150 _LT_TAGVAR(hardcode_direct, $1)=yes
48425151 _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
48445153
48455154 hpux9*)
48465155 if test "$GCC" = yes; then
4847 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
5156 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
48485157 else
48495158 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
48505159 fi
48605169
48615170 hpux10*)
48625171 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
4863 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5172 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
48645173 else
48655174 _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
48665175 fi
48845193 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
48855194 ;;
48865195 ia64*)
4887 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
5196 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
48885197 ;;
48895198 *)
4890 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
5199 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
48915200 ;;
48925201 esac
48935202 else
49345243
49355244 irix5* | irix6* | nonstopux*)
49365245 if test "$GCC" = yes; then
4937 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5246 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
49385247 # Try to use the -exported_symbol ld option, if it does not
49395248 # work, assume that -exports_file does not work either and
49405249 # implicitly export all symbols.
4941 save_LDFLAGS="$LDFLAGS"
4942 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
4943 AC_LINK_IFELSE(int foo(void) {},
4944 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
4945 )
4946 LDFLAGS="$save_LDFLAGS"
5250 # This should be the same for all languages, so no per-tag cache variable.
5251 AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
5252 [lt_cv_irix_exported_symbol],
5253 [save_LDFLAGS="$LDFLAGS"
5254 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
5255 AC_LINK_IFELSE(
5256 [AC_LANG_SOURCE(
5257 [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
5258 [C++], [[int foo (void) { return 0; }]],
5259 [Fortran 77], [[
5260 subroutine foo
5261 end]],
5262 [Fortran], [[
5263 subroutine foo
5264 end]])])],
5265 [lt_cv_irix_exported_symbol=yes],
5266 [lt_cv_irix_exported_symbol=no])
5267 LDFLAGS="$save_LDFLAGS"])
5268 if test "$lt_cv_irix_exported_symbol" = yes; then
5269 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
5270 fi
49475271 else
49485272 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
49495273 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
50285352 osf4* | osf5*) # as osf3* with the addition of -msym flag
50295353 if test "$GCC" = yes; then
50305354 _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
5031 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
5355 _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
50325356 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
50335357 else
50345358 _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
50475371 _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
50485372 if test "$GCC" = yes; then
50495373 wlarc='${wl}'
5050 _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
5374 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
50515375 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
5052 $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
5376 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
50535377 else
50545378 case `$CC -V 2>&1` in
50555379 *"Compilers 5.0"*)
53215645 to runtime path list])
53225646 _LT_TAGDECL([], [link_all_deplibs], [0],
53235647 [Whether libtool must link a program against all its dependency libraries])
5324 _LT_TAGDECL([], [fix_srcfile_path], [1],
5325 [Fix the shell variable $srcfile for the compiler])
53265648 _LT_TAGDECL([], [always_export_symbols], [0],
53275649 [Set to "yes" if exported symbols are required])
53285650 _LT_TAGDECL([], [export_symbols_cmds], [2],
53335655 [Symbols that must always be exported])
53345656 _LT_TAGDECL([], [prelink_cmds], [2],
53355657 [Commands necessary for linking programs (against libraries) with templates])
5658 _LT_TAGDECL([], [postlink_cmds], [2],
5659 [Commands necessary for finishing linking programs])
53365660 _LT_TAGDECL([], [file_list_spec], [1],
53375661 [Specify filename containing input files])
53385662 dnl FIXME: Not yet implemented
54305754 m4_defun([_LT_LANG_CXX_CONFIG],
54315755 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
54325756 m4_require([_LT_DECL_EGREP])dnl
5757 m4_require([_LT_PATH_MANIFEST_TOOL])dnl
54335758 if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
54345759 ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
54355760 (test "X$CXX" != "Xg++"))) ; then
54915816
54925817 # Allow CC to be a program name with arguments.
54935818 lt_save_CC=$CC
5819 lt_save_CFLAGS=$CFLAGS
54945820 lt_save_LD=$LD
54955821 lt_save_GCC=$GCC
54965822 GCC=$GXX
55085834 fi
55095835 test -z "${LDCXX+set}" || LD=$LDCXX
55105836 CC=${CXX-"c++"}
5837 CFLAGS=$CXXFLAGS
55115838 compiler=$CC
55125839 _LT_TAGVAR(compiler, $1)=$CC
55135840 _LT_CC_BASENAME([$compiler])
55295856 # Check if GNU C++ uses GNU ld as the underlying linker, since the
55305857 # archiving commands below assume that GNU ld is being used.
55315858 if test "$with_gnu_ld" = yes; then
5532 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5533 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
5859 _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
5860 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
55345861
55355862 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
55365863 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
56715998 _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
56725999 # Determine the default libpath from the value encoded in an empty
56736000 # executable.
5674 _LT_SYS_MODULE_PATH_AIX
6001 _LT_SYS_MODULE_PATH_AIX([$1])
56756002 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
56766003
56776004 _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
56836010 else
56846011 # Determine the default libpath from the value encoded in an
56856012 # empty executable.
5686 _LT_SYS_MODULE_PATH_AIX
6013 _LT_SYS_MODULE_PATH_AIX([$1])
56876014 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
56886015 # Warning - without using the other run time loading flags,
56896016 # -berok will link without error, but may produce a broken library.
57256052 ;;
57266053
57276054 cygwin* | mingw* | pw32* | cegcc*)
5728 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
5729 # as there is no search path for DLLs.
5730 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
5731 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
5732 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
5733 _LT_TAGVAR(always_export_symbols, $1)=no
5734 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
5735
5736 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
5737 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5738 # If the export-symbols file already is a .def file (1st line
5739 # is EXPORTS), use it as is; otherwise, prepend...
5740 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
5741 cp $export_symbols $output_objdir/$soname.def;
5742 else
5743 echo EXPORTS > $output_objdir/$soname.def;
5744 cat $export_symbols >> $output_objdir/$soname.def;
5745 fi~
5746 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
5747 else
5748 _LT_TAGVAR(ld_shlibs, $1)=no
5749 fi
5750 ;;
6055 case $GXX,$cc_basename in
6056 ,cl* | no,cl*)
6057 # Native MSVC
6058 # hardcode_libdir_flag_spec is actually meaningless, as there is
6059 # no search path for DLLs.
6060 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
6061 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6062 _LT_TAGVAR(always_export_symbols, $1)=yes
6063 _LT_TAGVAR(file_list_spec, $1)='@'
6064 # Tell ltmain to make .lib files, not .a files.
6065 libext=lib
6066 # Tell ltmain to make .dll files, not .so files.
6067 shrext_cmds=".dll"
6068 # FIXME: Setting linknames here is a bad hack.
6069 _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
6070 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6071 $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
6072 else
6073 $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
6074 fi~
6075 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
6076 linknames='
6077 # The linker will not automatically build a static lib if we build a DLL.
6078 # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
6079 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6080 # Don't use ranlib
6081 _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
6082 _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
6083 lt_tool_outputfile="@TOOL_OUTPUT@"~
6084 case $lt_outputfile in
6085 *.exe|*.EXE) ;;
6086 *)
6087 lt_outputfile="$lt_outputfile.exe"
6088 lt_tool_outputfile="$lt_tool_outputfile.exe"
6089 ;;
6090 esac~
6091 func_to_tool_file "$lt_outputfile"~
6092 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
6093 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
6094 $RM "$lt_outputfile.manifest";
6095 fi'
6096 ;;
6097 *)
6098 # g++
6099 # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
6100 # as there is no search path for DLLs.
6101 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
6102 _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
6103 _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
6104 _LT_TAGVAR(always_export_symbols, $1)=no
6105 _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
6106
6107 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
6108 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
6109 # If the export-symbols file already is a .def file (1st line
6110 # is EXPORTS), use it as is; otherwise, prepend...
6111 _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
6112 cp $export_symbols $output_objdir/$soname.def;
6113 else
6114 echo EXPORTS > $output_objdir/$soname.def;
6115 cat $export_symbols >> $output_objdir/$soname.def;
6116 fi~
6117 $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
6118 else
6119 _LT_TAGVAR(ld_shlibs, $1)=no
6120 fi
6121 ;;
6122 esac
6123 ;;
57516124 darwin* | rhapsody*)
57526125 _LT_DARWIN_LINKER_FEATURES($1)
57536126 ;;
58226195 ;;
58236196 *)
58246197 if test "$GXX" = yes; then
5825 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
6198 _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
58266199 else
58276200 # FIXME: insert proper C++ library support
58286201 _LT_TAGVAR(ld_shlibs, $1)=no
58936266 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
58946267 ;;
58956268 ia64*)
5896 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6269 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
58976270 ;;
58986271 *)
5899 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
6272 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
59006273 ;;
59016274 esac
59026275 fi
59376310 *)
59386311 if test "$GXX" = yes; then
59396312 if test "$with_gnu_ld" = no; then
5940 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6313 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
59416314 else
5942 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
6315 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
59436316 fi
59446317 fi
59456318 _LT_TAGVAR(link_all_deplibs, $1)=yes
62176590 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
62186591 ;;
62196592 *)
6220 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
6593 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
62216594 ;;
62226595 esac
62236596
63046677 if test "$GXX" = yes && test "$with_gnu_ld" = no; then
63056678 _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
63066679 if $CC --version | $GREP -v '^2\.7' > /dev/null; then
6307 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
6680 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
63086681 _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
6309 $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
6682 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
63106683
63116684 # Commands to make compiler produce verbose output that lists
63126685 # what "hidden" libraries, object files and flags are used when
64356808 fi # test -n "$compiler"
64366809
64376810 CC=$lt_save_CC
6811 CFLAGS=$lt_save_CFLAGS
64386812 LDCXX=$LD
64396813 LD=$lt_save_LD
64406814 GCC=$lt_save_GCC
64496823 ])# _LT_LANG_CXX_CONFIG
64506824
64516825
6826 # _LT_FUNC_STRIPNAME_CNF
6827 # ----------------------
6828 # func_stripname_cnf prefix suffix name
6829 # strip PREFIX and SUFFIX off of NAME.
6830 # PREFIX and SUFFIX must not contain globbing or regex special
6831 # characters, hashes, percent signs, but SUFFIX may contain a leading
6832 # dot (in which case that matches only a dot).
6833 #
6834 # This function is identical to the (non-XSI) version of func_stripname,
6835 # except this one can be used by m4 code that may be executed by configure,
6836 # rather than the libtool script.
6837 m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
6838 AC_REQUIRE([_LT_DECL_SED])
6839 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
6840 func_stripname_cnf ()
6841 {
6842 case ${2} in
6843 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
6844 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
6845 esac
6846 } # func_stripname_cnf
6847 ])# _LT_FUNC_STRIPNAME_CNF
6848
64526849 # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
64536850 # ---------------------------------
64546851 # Figure out "hidden" library dependencies from verbose
64576854 # objects, libraries and library flags.
64586855 m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
64596856 [m4_require([_LT_FILEUTILS_DEFAULTS])dnl
6857 AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
64606858 # Dependencies to place before and after the object being linked:
64616859 _LT_TAGVAR(predep_objects, $1)=
64626860 _LT_TAGVAR(postdep_objects, $1)=
65076905 };
65086906 _LT_EOF
65096907 ])
6908
6909 _lt_libdeps_save_CFLAGS=$CFLAGS
6910 case "$CC $CFLAGS " in #(
6911 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
6912 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
6913 esac
6914
65106915 dnl Parse the compiler output and extract the necessary
65116916 dnl objects, libraries and library flags.
65126917 if AC_TRY_EVAL(ac_compile); then
65186923 pre_test_object_deps_done=no
65196924
65206925 for p in `eval "$output_verbose_link_cmd"`; do
6521 case $p in
6926 case ${prev}${p} in
65226927
65236928 -L* | -R* | -l*)
65246929 # Some compilers place space between "-{L,R}" and the path.
65276932 test $p = "-R"; then
65286933 prev=$p
65296934 continue
6530 else
6531 prev=
65326935 fi
65336936
6937 # Expand the sysroot to ease extracting the directories later.
6938 if test -z "$prev"; then
6939 case $p in
6940 -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
6941 -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
6942 -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
6943 esac
6944 fi
6945 case $p in
6946 =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
6947 esac
65346948 if test "$pre_test_object_deps_done" = no; then
6535 case $p in
6536 -L* | -R*)
6949 case ${prev} in
6950 -L | -R)
65376951 # Internal compiler library paths should come after those
65386952 # provided the user. The postdeps already come after the
65396953 # user supplied libs so there is no need to process them.
65536967 _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
65546968 fi
65556969 fi
6970 prev=
65566971 ;;
65576972
6973 *.lto.$objext) ;; # Ignore GCC LTO objects
65586974 *.$objext)
65596975 # This assumes that the test object file only shows up
65606976 # once in the compiler output.
65907006 fi
65917007
65927008 $RM -f confest.$objext
7009 CFLAGS=$_lt_libdeps_save_CFLAGS
65937010
65947011 # PORTME: override above test on systems where it is broken
65957012 m4_if([$1], [CXX],
67397156 # Allow CC to be a program name with arguments.
67407157 lt_save_CC="$CC"
67417158 lt_save_GCC=$GCC
7159 lt_save_CFLAGS=$CFLAGS
67427160 CC=${F77-"f77"}
7161 CFLAGS=$FFLAGS
67437162 compiler=$CC
67447163 _LT_TAGVAR(compiler, $1)=$CC
67457164 _LT_CC_BASENAME([$compiler])
67937212
67947213 GCC=$lt_save_GCC
67957214 CC="$lt_save_CC"
7215 CFLAGS="$lt_save_CFLAGS"
67967216 fi # test "$_lt_disable_F77" != yes
67977217
67987218 AC_LANG_POP
68697289 # Allow CC to be a program name with arguments.
68707290 lt_save_CC="$CC"
68717291 lt_save_GCC=$GCC
7292 lt_save_CFLAGS=$CFLAGS
68727293 CC=${FC-"f95"}
7294 CFLAGS=$FCFLAGS
68737295 compiler=$CC
68747296 GCC=$ac_cv_fc_compiler_gnu
68757297
69257347 fi # test -n "$compiler"
69267348
69277349 GCC=$lt_save_GCC
6928 CC="$lt_save_CC"
7350 CC=$lt_save_CC
7351 CFLAGS=$lt_save_CFLAGS
69297352 fi # test "$_lt_disable_FC" != yes
69307353
69317354 AC_LANG_POP
69627385 _LT_LINKER_BOILERPLATE
69637386
69647387 # Allow CC to be a program name with arguments.
6965 lt_save_CC="$CC"
7388 lt_save_CC=$CC
7389 lt_save_CFLAGS=$CFLAGS
69667390 lt_save_GCC=$GCC
69677391 GCC=yes
69687392 CC=${GCJ-"gcj"}
7393 CFLAGS=$GCJFLAGS
69697394 compiler=$CC
69707395 _LT_TAGVAR(compiler, $1)=$CC
69717396 _LT_TAGVAR(LD, $1)="$LD"
69927417 AC_LANG_RESTORE
69937418
69947419 GCC=$lt_save_GCC
6995 CC="$lt_save_CC"
7420 CC=$lt_save_CC
7421 CFLAGS=$lt_save_CFLAGS
69967422 ])# _LT_LANG_GCJ_CONFIG
69977423
69987424
70277453
70287454 # Allow CC to be a program name with arguments.
70297455 lt_save_CC="$CC"
7456 lt_save_CFLAGS=$CFLAGS
70307457 lt_save_GCC=$GCC
70317458 GCC=
70327459 CC=${RC-"windres"}
7460 CFLAGS=
70337461 compiler=$CC
70347462 _LT_TAGVAR(compiler, $1)=$CC
70357463 _LT_CC_BASENAME([$compiler])
70427470
70437471 GCC=$lt_save_GCC
70447472 AC_LANG_RESTORE
7045 CC="$lt_save_CC"
7473 CC=$lt_save_CC
7474 CFLAGS=$lt_save_CFLAGS
70467475 ])# _LT_LANG_RC_CONFIG
70477476
70487477
71017530 AC_SUBST([OBJDUMP])
71027531 ])
71037532
7533 # _LT_DECL_DLLTOOL
7534 # ----------------
7535 # Ensure DLLTOOL variable is set.
7536 m4_defun([_LT_DECL_DLLTOOL],
7537 [AC_CHECK_TOOL(DLLTOOL, dlltool, false)
7538 test -z "$DLLTOOL" && DLLTOOL=dlltool
7539 _LT_DECL([], [DLLTOOL], [1], [DLL creation program])
7540 AC_SUBST([DLLTOOL])
7541 ])
71047542
71057543 # _LT_DECL_SED
71067544 # ------------
71927630 # Try some XSI features
71937631 xsi_shell=no
71947632 ( _lt_dummy="a/b/c"
7195 test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
7196 = c,a/b,, \
7633 test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
7634 = c,a/b,b/c, \
71977635 && eval 'test $(( 1 + 1 )) -eq 2 \
71987636 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
71997637 && xsi_shell=yes
72327670 ])# _LT_CHECK_SHELL_FEATURES
72337671
72347672
7235 # _LT_PROG_XSI_SHELLFNS
7236 # ---------------------
7237 # Bourne and XSI compatible variants of some useful shell functions.
7238 m4_defun([_LT_PROG_XSI_SHELLFNS],
7239 [case $xsi_shell in
7240 yes)
7241 cat << \_LT_EOF >> "$cfgfile"
7242
7243 # func_dirname file append nondir_replacement
7244 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
7245 # otherwise set result to NONDIR_REPLACEMENT.
7246 func_dirname ()
7247 {
7248 case ${1} in
7249 */*) func_dirname_result="${1%/*}${2}" ;;
7250 * ) func_dirname_result="${3}" ;;
7251 esac
7252 }
7253
7254 # func_basename file
7255 func_basename ()
7256 {
7257 func_basename_result="${1##*/}"
7258 }
7259
7260 # func_dirname_and_basename file append nondir_replacement
7261 # perform func_basename and func_dirname in a single function
7262 # call:
7263 # dirname: Compute the dirname of FILE. If nonempty,
7264 # add APPEND to the result, otherwise set result
7265 # to NONDIR_REPLACEMENT.
7266 # value returned in "$func_dirname_result"
7267 # basename: Compute filename of FILE.
7268 # value retuned in "$func_basename_result"
7269 # Implementation must be kept synchronized with func_dirname
7270 # and func_basename. For efficiency, we do not delegate to
7271 # those functions but instead duplicate the functionality here.
7272 func_dirname_and_basename ()
7273 {
7274 case ${1} in
7275 */*) func_dirname_result="${1%/*}${2}" ;;
7276 * ) func_dirname_result="${3}" ;;
7277 esac
7278 func_basename_result="${1##*/}"
7279 }
7280
7281 # func_stripname prefix suffix name
7282 # strip PREFIX and SUFFIX off of NAME.
7283 # PREFIX and SUFFIX must not contain globbing or regex special
7284 # characters, hashes, percent signs, but SUFFIX may contain a leading
7285 # dot (in which case that matches only a dot).
7286 func_stripname ()
7287 {
7288 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7289 # positional parameters, so assign one to ordinary parameter first.
7290 func_stripname_result=${3}
7291 func_stripname_result=${func_stripname_result#"${1}"}
7292 func_stripname_result=${func_stripname_result%"${2}"}
7293 }
7294
7295 # func_opt_split
7296 func_opt_split ()
7297 {
7298 func_opt_split_opt=${1%%=*}
7299 func_opt_split_arg=${1#*=}
7300 }
7301
7302 # func_lo2o object
7303 func_lo2o ()
7304 {
7305 case ${1} in
7306 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7307 *) func_lo2o_result=${1} ;;
7308 esac
7309 }
7310
7311 # func_xform libobj-or-source
7312 func_xform ()
7313 {
7314 func_xform_result=${1%.*}.lo
7315 }
7316
7317 # func_arith arithmetic-term...
7318 func_arith ()
7319 {
7320 func_arith_result=$(( $[*] ))
7321 }
7322
7323 # func_len string
7324 # STRING may not start with a hyphen.
7325 func_len ()
7326 {
7327 func_len_result=${#1}
7328 }
7329
7330 _LT_EOF
7673 # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
7674 # ------------------------------------------------------
7675 # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
7676 # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
7677 m4_defun([_LT_PROG_FUNCTION_REPLACE],
7678 [dnl {
7679 sed -e '/^$1 ()$/,/^} # $1 /c\
7680 $1 ()\
7681 {\
7682 m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1])
7683 } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
7684 && mv -f "$cfgfile.tmp" "$cfgfile" \
7685 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7686 test 0 -eq $? || _lt_function_replace_fail=:
7687 ])
7688
7689
7690 # _LT_PROG_REPLACE_SHELLFNS
7691 # -------------------------
7692 # Replace existing portable implementations of several shell functions with
7693 # equivalent extended shell implementations where those features are available..
7694 m4_defun([_LT_PROG_REPLACE_SHELLFNS],
7695 [if test x"$xsi_shell" = xyes; then
7696 _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
7697 case ${1} in
7698 */*) func_dirname_result="${1%/*}${2}" ;;
7699 * ) func_dirname_result="${3}" ;;
7700 esac])
7701
7702 _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
7703 func_basename_result="${1##*/}"])
7704
7705 _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
7706 case ${1} in
7707 */*) func_dirname_result="${1%/*}${2}" ;;
7708 * ) func_dirname_result="${3}" ;;
7709 esac
7710 func_basename_result="${1##*/}"])
7711
7712 _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
7713 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
7714 # positional parameters, so assign one to ordinary parameter first.
7715 func_stripname_result=${3}
7716 func_stripname_result=${func_stripname_result#"${1}"}
7717 func_stripname_result=${func_stripname_result%"${2}"}])
7718
7719 _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
7720 func_split_long_opt_name=${1%%=*}
7721 func_split_long_opt_arg=${1#*=}])
7722
7723 _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
7724 func_split_short_opt_arg=${1#??}
7725 func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
7726
7727 _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
7728 case ${1} in
7729 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
7730 *) func_lo2o_result=${1} ;;
7731 esac])
7732
7733 _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo])
7734
7735 _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))])
7736
7737 _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}])
7738 fi
7739
7740 if test x"$lt_shell_append" = xyes; then
7741 _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"])
7742
7743 _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
7744 func_quote_for_eval "${2}"
7745 dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
7746 eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
7747
7748 # Save a `func_append' function call where possible by direct use of '+='
7749 sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
7750 && mv -f "$cfgfile.tmp" "$cfgfile" \
7751 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7752 test 0 -eq $? || _lt_function_replace_fail=:
7753 else
7754 # Save a `func_append' function call even when '+=' is not available
7755 sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
7756 && mv -f "$cfgfile.tmp" "$cfgfile" \
7757 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
7758 test 0 -eq $? || _lt_function_replace_fail=:
7759 fi
7760
7761 if test x"$_lt_function_replace_fail" = x":"; then
7762 AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
7763 fi
7764 ])
7765
7766 # _LT_PATH_CONVERSION_FUNCTIONS
7767 # -----------------------------
7768 # Determine which file name conversion functions should be used by
7769 # func_to_host_file (and, implicitly, by func_to_host_path). These are needed
7770 # for certain cross-compile configurations and native mingw.
7771 m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
7772 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
7773 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
7774 AC_MSG_CHECKING([how to convert $build file names to $host format])
7775 AC_CACHE_VAL(lt_cv_to_host_file_cmd,
7776 [case $host in
7777 *-*-mingw* )
7778 case $build in
7779 *-*-mingw* ) # actually msys
7780 lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
7781 ;;
7782 *-*-cygwin* )
7783 lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
7784 ;;
7785 * ) # otherwise, assume *nix
7786 lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
7787 ;;
7788 esac
73317789 ;;
7332 *) # Bourne compatible functions.
7333 cat << \_LT_EOF >> "$cfgfile"
7334
7335 # func_dirname file append nondir_replacement
7336 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
7337 # otherwise set result to NONDIR_REPLACEMENT.
7338 func_dirname ()
7339 {
7340 # Extract subdirectory from the argument.
7341 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
7342 if test "X$func_dirname_result" = "X${1}"; then
7343 func_dirname_result="${3}"
7344 else
7345 func_dirname_result="$func_dirname_result${2}"
7346 fi
7347 }
7348
7349 # func_basename file
7350 func_basename ()
7351 {
7352 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
7353 }
7354
7355 dnl func_dirname_and_basename
7356 dnl A portable version of this function is already defined in general.m4sh
7357 dnl so there is no need for it here.
7358
7359 # func_stripname prefix suffix name
7360 # strip PREFIX and SUFFIX off of NAME.
7361 # PREFIX and SUFFIX must not contain globbing or regex special
7362 # characters, hashes, percent signs, but SUFFIX may contain a leading
7363 # dot (in which case that matches only a dot).
7364 # func_strip_suffix prefix name
7365 func_stripname ()
7366 {
7367 case ${2} in
7368 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
7369 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
7370 esac
7371 }
7372
7373 # sed scripts:
7374 my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q'
7375 my_sed_long_arg='1s/^-[[^=]]*=//'
7376
7377 # func_opt_split
7378 func_opt_split ()
7379 {
7380 func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
7381 func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
7382 }
7383
7384 # func_lo2o object
7385 func_lo2o ()
7386 {
7387 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
7388 }
7389
7390 # func_xform libobj-or-source
7391 func_xform ()
7392 {
7393 func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'`
7394 }
7395
7396 # func_arith arithmetic-term...
7397 func_arith ()
7398 {
7399 func_arith_result=`expr "$[@]"`
7400 }
7401
7402 # func_len string
7403 # STRING may not start with a hyphen.
7404 func_len ()
7405 {
7406 func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len`
7407 }
7408
7409 _LT_EOF
7790 *-*-cygwin* )
7791 case $build in
7792 *-*-mingw* ) # actually msys
7793 lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
7794 ;;
7795 *-*-cygwin* )
7796 lt_cv_to_host_file_cmd=func_convert_file_noop
7797 ;;
7798 * ) # otherwise, assume *nix
7799 lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
7800 ;;
7801 esac
7802 ;;
7803 * ) # unhandled hosts (and "normal" native builds)
7804 lt_cv_to_host_file_cmd=func_convert_file_noop
7805 ;;
74107806 esac
7411
7412 case $lt_shell_append in
7413 yes)
7414 cat << \_LT_EOF >> "$cfgfile"
7415
7416 # func_append var value
7417 # Append VALUE to the end of shell variable VAR.
7418 func_append ()
7419 {
7420 eval "$[1]+=\$[2]"
7421 }
7422 _LT_EOF
7807 ])
7808 to_host_file_cmd=$lt_cv_to_host_file_cmd
7809 AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
7810 _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
7811 [0], [convert $build file names to $host format])dnl
7812
7813 AC_MSG_CHECKING([how to convert $build file names to toolchain format])
7814 AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
7815 [#assume ordinary cross tools, or native build.
7816 lt_cv_to_tool_file_cmd=func_convert_file_noop
7817 case $host in
7818 *-*-mingw* )
7819 case $build in
7820 *-*-mingw* ) # actually msys
7821 lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
7822 ;;
7823 esac
74237824 ;;
7424 *)
7425 cat << \_LT_EOF >> "$cfgfile"
7426
7427 # func_append var value
7428 # Append VALUE to the end of shell variable VAR.
7429 func_append ()
7430 {
7431 eval "$[1]=\$$[1]\$[2]"
7432 }
7433
7434 _LT_EOF
7435 ;;
7436 esac
7825 esac
74377826 ])
7827 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
7828 AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
7829 _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
7830 [0], [convert $build files to toolchain format])dnl
7831 ])# _LT_PATH_CONVERSION_FUNCTIONS
74387832
74397833 # Helper functions for option handling. -*- Autoconf -*-
74407834 #
79338327 # unlimited permission to copy and/or distribute it, with or without
79348328 # modifications, as long as this notice is preserved.
79358329
7936 # Generated from ltversion.in.
7937
7938 # serial 3175 ltversion.m4
8330 # @configure_input@
8331
8332 # serial 3293 ltversion.m4
79398333 # This file is part of GNU Libtool
79408334
7941 m4_define([LT_PACKAGE_VERSION], [2.2.10])
7942 m4_define([LT_PACKAGE_REVISION], [1.3175])
8335 m4_define([LT_PACKAGE_VERSION], [2.4])
8336 m4_define([LT_PACKAGE_REVISION], [1.3293])
79438337
79448338 AC_DEFUN([LTVERSION_VERSION],
7945 [macro_version='2.2.10'
7946 macro_revision='1.3175'
8339 [macro_version='2.4'
8340 macro_revision='1.3293'
79478341 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
79488342 _LT_DECL(, macro_revision, 0)
79498343 ])
11 # Copyright 2009, Wouter Wijngaards, NLnet Labs.
22 # BSD licensed.
33 #
4 # Version 14
4 # Version 19
5 # 2011-12-05 Fix getaddrinfowithincludes on windows with fedora16 mingw32-gcc.
6 # Fix ACX_MALLOC for redefined malloc error.
7 # Fix GETADDRINFO_WITH_INCLUDES to add -lws2_32
8 # 2011-11-10 Fix FLTO test to not drop a.out in current directory.
9 # 2011-11-01 Fix FLTO test for llvm on Lion.
510 # 2011-08-01 Fix nonblock test (broken at v13).
611 # 2011-08-01 Fix autoconf 2.68 warnings
712 # 2011-06-23 Add ACX_CHECK_FLTO to check -flto.
393398 [AC_MSG_CHECKING([if $CC supports -flto])
394399 BAKCFLAGS="$CFLAGS"
395400 CFLAGS="$CFLAGS -flto"
396 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [AC_MSG_RESULT(yes)], [CFLAGS="$BAKCFLAGS" ; AC_MSG_RESULT(no)])
401 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [
402 if $CC $CFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
403 CFLAGS="$BAKCFLAGS"
404 AC_MSG_RESULT(no)
405 else
406 AC_MSG_RESULT(yes)
407 fi
408 rm -f conftest conftest.c conftest.o
409 ], [CFLAGS="$BAKCFLAGS" ; AC_MSG_RESULT(no)])
397410 ])
398411
399412 dnl Check the printf-format attribute (if any)
783796 }
784797 ]])],
785798 dnl this case on linux, solaris, bsd
786 [ac_cv_func_getaddrinfo="yes"],
799 [ac_cv_func_getaddrinfo="yes"
800 dnl see if on windows
801 if test "$ac_cv_header_windows_h" = "yes"; then
802 AC_DEFINE(USE_WINSOCK, 1, [Whether the windows socket API is used])
803 USE_WINSOCK="1"
804 LIBS="$LIBS -lws2_32"
805 fi
806 ],
787807 dnl no quick getaddrinfo, try mingw32 and winsock2 library.
788808 ORIGLIBS="$LIBS"
789809 LIBS="$LIBS -lws2_32"
10391059 dnl $1: unique name for compat code
10401060 AC_DEFUN([ACX_FUNC_MALLOC],
10411061 [
1042 AC_FUNC_MALLOC
1043 if test "$ac_cv_func_malloc_0_nonnull" = no; then
1044 AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])
1045 fi
1062 AC_MSG_CHECKING([for GNU libc compatible malloc])
1063 AC_RUN_IFELSE([AC_LANG_PROGRAM(
1064 [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
1065 #include <stdlib.h>
1066 #else
1067 char *malloc ();
1068 #endif
1069 ]], [ if(malloc(0) != 0) return 1;])
1070 ],
1071 [AC_MSG_RESULT([no])
1072 AC_LIBOBJ(malloc)
1073 AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])] ,
1074 [AC_MSG_RESULT([yes])
1075 AC_DEFINE([HAVE_MALLOC], 1, [If have GNU libc compatible malloc])],
1076 [AC_MSG_RESULT([no (crosscompile)])
1077 AC_LIBOBJ(malloc)
1078 AC_DEFINE_UNQUOTED([malloc], [rpl_malloc_$1], [Define if replacement function should be used.])] )
10461079 ])
10471080
10481081 dnl Define fallback for fseeko and ftello if needed.
134134 for (i = 0; i < IN6ADDRSZ; i++)
135135 words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
136136 best.base = -1;
137 best.len = 0;
137138 cur.base = -1;
139 cur.len = 0;
138140 for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) {
139141 if (words[i] == 0) {
140142 if (cur.base == -1)
105105 char *
106106 unbound_strptime(const char *s, const char *format, struct tm *tm)
107107 {
108 int c, alt_format, ret;
108 int c, ret;
109109 int split_year = 0;
110110
111111 while ((c = *format) != '\0') {
112 alt_format = 0;
113
114112 /* whitespace, literal or format */
115113 if (isspace(c)) { /* whitespace */
116114 /** whitespace matches zero or more whitespace characters in the
2424 /* Define if you want to use debug lock checking (slow). */
2525 #undef ENABLE_LOCK_CHECKS
2626
27 /* Define this if you enabled-allsymbols from libunbound to link binaries to
28 it for smaller install size, but the libunbound export table is polluted by
29 internal symbols */
30 #undef EXPORT_ALL_SYMBOLS
31
2732 /* Define to 1 if you have the <arpa/inet.h> header file. */
2833 #undef HAVE_ARPA_INET_H
2934
164169 /* Define to 1 if you have the <login_cap.h> header file. */
165170 #undef HAVE_LOGIN_CAP_H
166171
167 /* Define to 1 if your system has a GNU libc compatible `malloc' function, and
168 to 0 otherwise. */
172 /* If have GNU libc compatible malloc */
169173 #undef HAVE_MALLOC
170174
171175 /* Define to 1 if you have the `memmove' function. */
+1787
-852
configure less more
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.66 for unbound 1.4.13.
2 # Generated by GNU Autoconf 2.68 for unbound 1.4.14.
33 #
44 # Report bugs to <unbound-bugs@nlnetlabs.nl>.
55 #
9090 IFS=" "" $as_nl"
9191
9292 # Find who we are. Look in the path if we contain no directory separator.
93 as_myself=
9394 case $0 in #((
9495 *[\\/]* ) as_myself=$0 ;;
9596 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
223224 # We cannot yet assume a decent shell, so we have to provide a
224225 # neutralization value for shells without unset; and this also
225226 # works around shells that cannot unset nonexistent variables.
227 # Preserve -v and -x to the replacement shell.
226228 BASH_ENV=/dev/null
227229 ENV=/dev/null
228230 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
229231 export CONFIG_SHELL
230 exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
232 case $- in # ((((
233 *v*x* | *x*v* ) as_opts=-vx ;;
234 *v* ) as_opts=-v ;;
235 *x* ) as_opts=-x ;;
236 * ) as_opts= ;;
237 esac
238 exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
231239 fi
232240
233241 if test x$as_have_required = xno; then :
561569 # Identity of this package.
562570 PACKAGE_NAME='unbound'
563571 PACKAGE_TARNAME='unbound'
564 PACKAGE_VERSION='1.4.13'
565 PACKAGE_STRING='unbound 1.4.13'
572 PACKAGE_VERSION='1.4.14'
573 PACKAGE_STRING='unbound 1.4.14'
566574 PACKAGE_BUGREPORT='unbound-bugs@nlnetlabs.nl'
567575 PACKAGE_URL=''
568576
604612
605613 ac_subst_vars='LTLIBOBJS
606614 ldnsdir
607 EXPORT_ALL_SYMBOLS
615 SOURCEFILE
616 SOURCEDETERMINE
617 UBSYMS
618 EXTRALINK
619 COMMON_OBJ_ALL_SYMBOLS
620 LIBOBJ_WITHOUT_CTIME
621 WIN_CHECKCONF_OBJ_LINK
622 WIN_CONTROL_OBJ_LINK
623 WIN_UBANCHOR_OBJ_LINK
624 WIN_HOST_OBJ_LINK
625 WIN_DAEMON_OBJ_LINK
626 WIN_DAEMON_OBJ
627 WIN_DAEMON_SRC
628 WINAPPS
608629 WINDRES
609 UB_ON_WINDOWS
610 CHECKLOCK_SRC
630 CHECKLOCK_OBJ
611631 staticexe
612632 HAVE_SSL
633 CONFIG_DATE
634 NETBSD_LINTFLAGS
635 PYUNBOUND_UNINSTALL
636 PYUNBOUND_INSTALL
637 PYUNBOUND_TARGET
638 PYUNBOUND_OBJ
613639 WITH_PYUNBOUND
640 PYTHONMOD_UNINSTALL
641 PYTHONMOD_INSTALL
642 PYTHONMOD_OBJ
614643 WITH_PYTHONMODULE
615644 swig
616645 SWIG_LIB
633662 LIPO
634663 NMEDIT
635664 DSYMUTIL
665 MANIFEST_TOOL
636666 AWK
637667 RANLIB
668 ac_ct_AR
669 DLLTOOL
638670 OBJDUMP
639671 LN_S
640672 NM
744776 with_pic
745777 enable_fast_install
746778 with_gnu_ld
779 with_sysroot
747780 enable_libtool_lock
748781 enable_rpath
749782 enable_largefile
783 enable_alloc_checks
784 enable_alloc_lite
785 enable_alloc_nonregional
750786 with_pthreads
751787 with_solaris_threads
752788 with_pyunbound
758794 with_libexpat
759795 enable_static_exe
760796 enable_lock_checks
761 enable_alloc_checks
762 enable_alloc_lite
763 enable_alloc_nonregional
764797 enable_allsymbols
765798 with_ldns
766799 '
838871 fi
839872
840873 case $ac_option in
841 *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
842 *) ac_optarg=yes ;;
874 *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
875 *=) ac_optarg= ;;
876 *) ac_optarg=yes ;;
843877 esac
844878
845879 # Accept the important Cygnus configure options, so we can diagnose typos.
11791213 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
11801214 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
11811215 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1182 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
1216 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
11831217 ;;
11841218
11851219 esac
13171351 # Omit some internal or obsolete options to make the list less imposing.
13181352 # This message is too long to be a string in the A/UX 3.1 sh.
13191353 cat <<_ACEOF
1320 \`configure' configures unbound 1.4.13 to adapt to many kinds of systems.
1354 \`configure' configures unbound 1.4.14 to adapt to many kinds of systems.
13211355
13221356 Usage: $0 [OPTION]... [VAR=VALUE]...
13231357
13831417
13841418 if test -n "$ac_init_help"; then
13851419 case $ac_init_help in
1386 short | recursive ) echo "Configuration of unbound 1.4.13:";;
1420 short | recursive ) echo "Configuration of unbound 1.4.14:";;
13871421 esac
13881422 cat <<\_ACEOF
13891423
14001434 --disable-libtool-lock avoid locking (might break parallel builds)
14011435 --disable-rpath disable hardcoded rpath (default=enabled)
14021436 --disable-largefile omit support for large files
1403 --disable-sha2 Disable SHA256 and SHA512 RRSIG support
1404 --disable-gost Disable GOST support
1405 --enable-static-exe enable to compile executables statically against
1406 event, ldns libs, for debug purposes
1407 --enable-lock-checks enable to check lock and unlock calls, for debug
1408 purposes
14091437 --enable-alloc-checks enable to memory allocation statistics, for debug
14101438 purposes
14111439 --enable-alloc-lite enable for lightweight alloc assertions, for debug
14131441 --enable-alloc-nonregional
14141442 enable nonregional allocs, slow but exposes regional
14151443 allocations to other memory purifiers, for debug
1444 purposes
1445 --disable-sha2 Disable SHA256 and SHA512 RRSIG support
1446 --disable-gost Disable GOST support
1447 --enable-static-exe enable to compile executables statically against
1448 event, ldns libs, for debug purposes
1449 --enable-lock-checks enable to check lock and unlock calls, for debug
14161450 purposes
14171451 --enable-allsymbols export all symbols from libunbound and link binaries
14181452 to it, smaller install size but libunbound export
14421476 --with-pic try to use only PIC/non-PIC objects [default=use
14431477 both]
14441478 --with-gnu-ld assume the C compiler uses GNU ld [default=no]
1479 --with-sysroot=DIR Search for dependent libraries within DIR
1480 (or the compiler's sysroot if not specified).
14451481 --with-pthreads use pthreads library, or --without-pthreads to
14461482 disable threading support.
14471483 --with-solaris-threads use solaris native thread library.
14691505 CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
14701506 you have headers in a nonstandard directory <include dir>
14711507 CPP C preprocessor
1472 YACC The `Yet Another C Compiler' implementation to use. Defaults to
1473 the first program found out of: `bison -y', `byacc', `yacc'.
1508 YACC The `Yet Another Compiler Compiler' implementation to use.
1509 Defaults to the first program found out of: `bison -y', `byacc',
1510 `yacc'.
14741511 YFLAGS The list of arguments that will be passed by default to $YACC.
14751512 This script will default YFLAGS to the empty string to avoid a
14761513 default value of `-d' given by some make applications.
15451582 test -n "$ac_init_help" && exit $ac_status
15461583 if $ac_init_version; then
15471584 cat <<\_ACEOF
1548 unbound configure 1.4.13
1549 generated by GNU Autoconf 2.66
1585 unbound configure 1.4.14
1586 generated by GNU Autoconf 2.68
15501587
15511588 Copyright (C) 2010 Free Software Foundation, Inc.
15521589 This configure script is free software; the Free Software Foundation
15921629
15931630 ac_retval=1
15941631 fi
1595 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1632 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
15961633 as_fn_set_status $ac_retval
15971634
15981635 } # ac_fn_c_try_compile
16181655 mv -f conftest.er1 conftest.err
16191656 fi
16201657 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1621 test $ac_status = 0; } >/dev/null && {
1658 test $ac_status = 0; } > conftest.i && {
16221659 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
16231660 test ! -s conftest.err
16241661 }; then :
16291666
16301667 ac_retval=1
16311668 fi
1632 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1669 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
16331670 as_fn_set_status $ac_retval
16341671
16351672 } # ac_fn_c_try_cpp
16421679 ac_fn_c_check_header_mongrel ()
16431680 {
16441681 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1645 if eval "test \"\${$3+set}\"" = set; then :
1682 if eval \${$3+:} false; then :
16461683 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
16471684 $as_echo_n "checking for $2... " >&6; }
1648 if eval "test \"\${$3+set}\"" = set; then :
1685 if eval \${$3+:} false; then :
16491686 $as_echo_n "(cached) " >&6
16501687 fi
16511688 eval ac_res=\$$3
16811718 else
16821719 ac_header_preproc=no
16831720 fi
1684 rm -f conftest.err conftest.$ac_ext
1721 rm -f conftest.err conftest.i conftest.$ac_ext
16851722 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
16861723 $as_echo "$ac_header_preproc" >&6; }
16871724
17121749 esac
17131750 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17141751 $as_echo_n "checking for $2... " >&6; }
1715 if eval "test \"\${$3+set}\"" = set; then :
1752 if eval \${$3+:} false; then :
17161753 $as_echo_n "(cached) " >&6
17171754 else
17181755 eval "$3=\$ac_header_compiler"
17211758 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17221759 $as_echo "$ac_res" >&6; }
17231760 fi
1724 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1761 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17251762
17261763 } # ac_fn_c_check_header_mongrel
17271764
17621799 ac_retval=$ac_status
17631800 fi
17641801 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1765 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1802 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17661803 as_fn_set_status $ac_retval
17671804
17681805 } # ac_fn_c_try_run
17761813 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17771814 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17781815 $as_echo_n "checking for $2... " >&6; }
1779 if eval "test \"\${$3+set}\"" = set; then :
1816 if eval \${$3+:} false; then :
17801817 $as_echo_n "(cached) " >&6
17811818 else
17821819 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
17941831 eval ac_res=\$$3
17951832 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17961833 $as_echo "$ac_res" >&6; }
1797 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1834 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17981835
17991836 } # ac_fn_c_check_header_compile
18001837
18391876 # interfere with the next link command; also delete a directory that is
18401877 # left behind by Apple's compiler. We do this before executing the actions.
18411878 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1842 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1879 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
18431880 as_fn_set_status $ac_retval
18441881
18451882 } # ac_fn_c_try_link
18521889 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
18531890 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
18541891 $as_echo_n "checking for $2... " >&6; }
1855 if eval "test \"\${$3+set}\"" = set; then :
1892 if eval \${$3+:} false; then :
18561893 $as_echo_n "(cached) " >&6
18571894 else
18581895 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
19071944 eval ac_res=\$$3
19081945 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
19091946 $as_echo "$ac_res" >&6; }
1910 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1947 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
19111948
19121949 } # ac_fn_c_check_func
19131950
19201957 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
19211958 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
19221959 $as_echo_n "checking for $2... " >&6; }
1923 if eval "test \"\${$3+set}\"" = set; then :
1960 if eval \${$3+:} false; then :
19241961 $as_echo_n "(cached) " >&6
19251962 else
19261963 eval "$3=no"
19611998 eval ac_res=\$$3
19621999 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
19632000 $as_echo "$ac_res" >&6; }
1964 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2001 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
19652002
19662003 } # ac_fn_c_check_type
19672004
19762013 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
19772014 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
19782015 $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
1979 if eval "test \"\${$3+set}\"" = set; then :
2016 if eval \${$3+:} false; then :
19802017 $as_echo_n "(cached) " >&6
19812018 else
19822019 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20072044 eval ac_res=\$$3
20082045 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
20092046 $as_echo "$ac_res" >&6; }
2010 eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2047 eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
20112048
20122049 } # ac_fn_c_check_decl
20132050 cat >config.log <<_ACEOF
20142051 This file contains any messages produced by compilers while
20152052 running configure, to aid debugging if configure makes a mistake.
20162053
2017 It was created by unbound $as_me 1.4.13, which was
2018 generated by GNU Autoconf 2.66. Invocation command line was
2054 It was created by unbound $as_me 1.4.14, which was
2055 generated by GNU Autoconf 2.68. Invocation command line was
20192056
20202057 $ $0 $@
20212058
23642401
23652402
23662403 LIBUNBOUND_CURRENT=2
2367 LIBUNBOUND_REVISION=13
2404 LIBUNBOUND_REVISION=14
23682405 LIBUNBOUND_AGE=0
23692406 # 1.0.0 had 0:12:0
23702407 # 1.0.1 had 0:13:0
23932430 # 1.4.11 had 2:11:0
23942431 # 1.4.12 had 2:12:0
23952432 # 1.4.13 had 2:13:0
2433 # 1.4.14 had 2:14:0
23962434
23972435 # Current -- the number of the binary API that we're implementing
23982436 # Revision -- which iteration of the implementation of the binary
24642502
24652503 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
24662504 $as_echo_n "checking build system type... " >&6; }
2467 if test "${ac_cv_build+set}" = set; then :
2505 if ${ac_cv_build+:} false; then :
24682506 $as_echo_n "(cached) " >&6
24692507 else
24702508 ac_build_alias=$build_alias
24982536
24992537 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
25002538 $as_echo_n "checking host system type... " >&6; }
2501 if test "${ac_cv_host+set}" = set; then :
2539 if ${ac_cv_host+:} false; then :
25022540 $as_echo_n "(cached) " >&6
25032541 else
25042542 if test "x$host_alias" = x; then
25312569
25322570 { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
25332571 $as_echo_n "checking target system type... " >&6; }
2534 if test "${ac_cv_target+set}" = set; then :
2572 if ${ac_cv_target+:} false; then :
25352573 $as_echo_n "(cached) " >&6
25362574 else
25372575 if test "x$target_alias" = x; then
25902628 set dummy ${ac_tool_prefix}gcc; ac_word=$2
25912629 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
25922630 $as_echo_n "checking for $ac_word... " >&6; }
2593 if test "${ac_cv_prog_CC+set}" = set; then :
2631 if ${ac_cv_prog_CC+:} false; then :
25942632 $as_echo_n "(cached) " >&6
25952633 else
25962634 if test -n "$CC"; then
26302668 set dummy gcc; ac_word=$2
26312669 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
26322670 $as_echo_n "checking for $ac_word... " >&6; }
2633 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
2671 if ${ac_cv_prog_ac_ct_CC+:} false; then :
26342672 $as_echo_n "(cached) " >&6
26352673 else
26362674 if test -n "$ac_ct_CC"; then
26832721 set dummy ${ac_tool_prefix}cc; ac_word=$2
26842722 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
26852723 $as_echo_n "checking for $ac_word... " >&6; }
2686 if test "${ac_cv_prog_CC+set}" = set; then :
2724 if ${ac_cv_prog_CC+:} false; then :
26872725 $as_echo_n "(cached) " >&6
26882726 else
26892727 if test -n "$CC"; then
27232761 set dummy cc; ac_word=$2
27242762 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
27252763 $as_echo_n "checking for $ac_word... " >&6; }
2726 if test "${ac_cv_prog_CC+set}" = set; then :
2764 if ${ac_cv_prog_CC+:} false; then :
27272765 $as_echo_n "(cached) " >&6
27282766 else
27292767 if test -n "$CC"; then
27822820 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
27832821 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
27842822 $as_echo_n "checking for $ac_word... " >&6; }
2785 if test "${ac_cv_prog_CC+set}" = set; then :
2823 if ${ac_cv_prog_CC+:} false; then :
27862824 $as_echo_n "(cached) " >&6
27872825 else
27882826 if test -n "$CC"; then
28262864 set dummy $ac_prog; ac_word=$2
28272865 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28282866 $as_echo_n "checking for $ac_word... " >&6; }
2829 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
2867 if ${ac_cv_prog_ac_ct_CC+:} false; then :
28302868 $as_echo_n "(cached) " >&6
28312869 else
28322870 if test -n "$ac_ct_CC"; then
31093147 ac_clean_files=$ac_clean_files_save
31103148 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
31113149 $as_echo_n "checking for suffix of object files... " >&6; }
3112 if test "${ac_cv_objext+set}" = set; then :
3150 if ${ac_cv_objext+:} false; then :
31133151 $as_echo_n "(cached) " >&6
31143152 else
31153153 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
31603198 ac_objext=$OBJEXT
31613199 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
31623200 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
3163 if test "${ac_cv_c_compiler_gnu+set}" = set; then :
3201 if ${ac_cv_c_compiler_gnu+:} false; then :
31643202 $as_echo_n "(cached) " >&6
31653203 else
31663204 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
31973235 ac_save_CFLAGS=$CFLAGS
31983236 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
31993237 $as_echo_n "checking whether $CC accepts -g... " >&6; }
3200 if test "${ac_cv_prog_cc_g+set}" = set; then :
3238 if ${ac_cv_prog_cc_g+:} false; then :
32013239 $as_echo_n "(cached) " >&6
32023240 else
32033241 ac_save_c_werror_flag=$ac_c_werror_flag
32753313 fi
32763314 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
32773315 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
3278 if test "${ac_cv_prog_cc_c89+set}" = set; then :
3316 if ${ac_cv_prog_cc_c89+:} false; then :
32793317 $as_echo_n "(cached) " >&6
32803318 else
32813319 ac_cv_prog_cc_c89=no
33833421 CPP=
33843422 fi
33853423 if test -z "$CPP"; then
3386 if test "${ac_cv_prog_CPP+set}" = set; then :
3424 if ${ac_cv_prog_CPP+:} false; then :
33873425 $as_echo_n "(cached) " >&6
33883426 else
33893427 # Double quotes because CPP needs to be expanded
34133451 # Broken: fails on valid input.
34143452 continue
34153453 fi
3416 rm -f conftest.err conftest.$ac_ext
3454 rm -f conftest.err conftest.i conftest.$ac_ext
34173455
34183456 # OK, works on sane cases. Now check whether nonexistent headers
34193457 # can be detected and how.
34293467 ac_preproc_ok=:
34303468 break
34313469 fi
3432 rm -f conftest.err conftest.$ac_ext
3470 rm -f conftest.err conftest.i conftest.$ac_ext
34333471
34343472 done
34353473 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
3436 rm -f conftest.err conftest.$ac_ext
3474 rm -f conftest.i conftest.err conftest.$ac_ext
34373475 if $ac_preproc_ok; then :
34383476 break
34393477 fi
34723510 # Broken: fails on valid input.
34733511 continue
34743512 fi
3475 rm -f conftest.err conftest.$ac_ext
3513 rm -f conftest.err conftest.i conftest.$ac_ext
34763514
34773515 # OK, works on sane cases. Now check whether nonexistent headers
34783516 # can be detected and how.
34883526 ac_preproc_ok=:
34893527 break
34903528 fi
3491 rm -f conftest.err conftest.$ac_ext
3529 rm -f conftest.err conftest.i conftest.$ac_ext
34923530
34933531 done
34943532 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
3495 rm -f conftest.err conftest.$ac_ext
3533 rm -f conftest.i conftest.err conftest.$ac_ext
34963534 if $ac_preproc_ok; then :
34973535
34983536 else
35113549
35123550 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
35133551 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
3514 if test "${ac_cv_path_GREP+set}" = set; then :
3552 if ${ac_cv_path_GREP+:} false; then :
35153553 $as_echo_n "(cached) " >&6
35163554 else
35173555 if test -z "$GREP"; then
35743612
35753613 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
35763614 $as_echo_n "checking for egrep... " >&6; }
3577 if test "${ac_cv_path_EGREP+set}" = set; then :
3615 if ${ac_cv_path_EGREP+:} false; then :
35783616 $as_echo_n "(cached) " >&6
35793617 else
35803618 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
36413679
36423680 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
36433681 $as_echo_n "checking for ANSI C header files... " >&6; }
3644 if test "${ac_cv_header_stdc+set}" = set; then :
3682 if ${ac_cv_header_stdc+:} false; then :
36453683 $as_echo_n "(cached) " >&6
36463684 else
36473685 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
37703808
37713809
37723810 ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
3773 if test "x$ac_cv_header_minix_config_h" = x""yes; then :
3811 if test "x$ac_cv_header_minix_config_h" = xyes; then :
37743812 MINIX=yes
37753813 else
37763814 MINIX=
37923830
37933831 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
37943832 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
3795 if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
3833 if ${ac_cv_safe_to_define___extensions__+:} false; then :
37963834 $as_echo_n "(cached) " >&6
37973835 else
37983836 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
40224060 # Checks for typedefs, structures, and compiler characteristics.
40234061 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
40244062 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
4025 if test "${ac_cv_c_const+set}" = set; then :
4063 if ${ac_cv_c_const+:} false; then :
40264064 $as_echo_n "(cached) " >&6
40274065 else
40284066 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
41114149 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g" >&5
41124150 $as_echo_n "checking whether $CC supports -g... " >&6; }
41134151 cache=`echo g | sed 'y%.=/+-%___p_%'`
4114 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4152 if eval \${cv_prog_cc_flag_$cache+:} false; then :
41154153 $as_echo_n "(cached) " >&6
41164154 else
41174155
41424180 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O2" >&5
41434181 $as_echo_n "checking whether $CC supports -O2... " >&6; }
41444182 cache=`echo O2 | sed 'y%.=/+-%___p_%'`
4145 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4183 if eval \${cv_prog_cc_flag_$cache+:} false; then :
41464184 $as_echo_n "(cached) " >&6
41474185 else
41484186
41784216 set dummy ${ac_tool_prefix}gcc; ac_word=$2
41794217 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
41804218 $as_echo_n "checking for $ac_word... " >&6; }
4181 if test "${ac_cv_prog_CC+set}" = set; then :
4219 if ${ac_cv_prog_CC+:} false; then :
41824220 $as_echo_n "(cached) " >&6
41834221 else
41844222 if test -n "$CC"; then
42184256 set dummy gcc; ac_word=$2
42194257 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
42204258 $as_echo_n "checking for $ac_word... " >&6; }
4221 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
4259 if ${ac_cv_prog_ac_ct_CC+:} false; then :
42224260 $as_echo_n "(cached) " >&6
42234261 else
42244262 if test -n "$ac_ct_CC"; then
42714309 set dummy ${ac_tool_prefix}cc; ac_word=$2
42724310 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
42734311 $as_echo_n "checking for $ac_word... " >&6; }
4274 if test "${ac_cv_prog_CC+set}" = set; then :
4312 if ${ac_cv_prog_CC+:} false; then :
42754313 $as_echo_n "(cached) " >&6
42764314 else
42774315 if test -n "$CC"; then
43114349 set dummy cc; ac_word=$2
43124350 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
43134351 $as_echo_n "checking for $ac_word... " >&6; }
4314 if test "${ac_cv_prog_CC+set}" = set; then :
4352 if ${ac_cv_prog_CC+:} false; then :
43154353 $as_echo_n "(cached) " >&6
43164354 else
43174355 if test -n "$CC"; then
43704408 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
43714409 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
43724410 $as_echo_n "checking for $ac_word... " >&6; }
4373 if test "${ac_cv_prog_CC+set}" = set; then :
4411 if ${ac_cv_prog_CC+:} false; then :
43744412 $as_echo_n "(cached) " >&6
43754413 else
43764414 if test -n "$CC"; then
44144452 set dummy $ac_prog; ac_word=$2
44154453 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
44164454 $as_echo_n "checking for $ac_word... " >&6; }
4417 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
4455 if ${ac_cv_prog_ac_ct_CC+:} false; then :
44184456 $as_echo_n "(cached) " >&6
44194457 else
44204458 if test -n "$ac_ct_CC"; then
44984536
44994537 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
45004538 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
4501 if test "${ac_cv_c_compiler_gnu+set}" = set; then :
4539 if ${ac_cv_c_compiler_gnu+:} false; then :
45024540 $as_echo_n "(cached) " >&6
45034541 else
45044542 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
45354573 ac_save_CFLAGS=$CFLAGS
45364574 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
45374575 $as_echo_n "checking whether $CC accepts -g... " >&6; }
4538 if test "${ac_cv_prog_cc_g+set}" = set; then :
4576 if ${ac_cv_prog_cc_g+:} false; then :
45394577 $as_echo_n "(cached) " >&6
45404578 else
45414579 ac_save_c_werror_flag=$ac_c_werror_flag
46134651 fi
46144652 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
46154653 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
4616 if test "${ac_cv_prog_cc_c89+set}" = set; then :
4654 if ${ac_cv_prog_cc_c89+:} false; then :
46174655 $as_echo_n "(cached) " >&6
46184656 else
46194657 ac_cv_prog_cc_c89=no
47324770 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Werror" >&5
47334771 $as_echo_n "checking whether $CC supports -Werror... " >&6; }
47344772 cache=`echo Werror | sed 'y%.=/+-%___p_%'`
4735 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4773 if eval \${cv_prog_cc_flag_$cache+:} false; then :
47364774 $as_echo_n "(cached) " >&6
47374775 else
47384776
47634801 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
47644802 $as_echo_n "checking whether $CC supports -Wall... " >&6; }
47654803 cache=`echo Wall | sed 'y%.=/+-%___p_%'`
4766 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4804 if eval \${cv_prog_cc_flag_$cache+:} false; then :
47674805 $as_echo_n "(cached) " >&6
47684806 else
47694807
47964834 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
47974835 $as_echo_n "checking whether $CC supports -std=c99... " >&6; }
47984836 cache=`echo std=c99 | sed 'y%.=/+-%___p_%'`
4799 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4837 if eval \${cv_prog_cc_flag_$cache+:} false; then :
48004838 $as_echo_n "(cached) " >&6
48014839 else
48024840
48274865 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -xc99" >&5
48284866 $as_echo_n "checking whether $CC supports -xc99... " >&6; }
48294867 cache=`echo xc99 | sed 'y%.=/+-%___p_%'`
4830 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
4868 if eval \${cv_prog_cc_flag_$cache+:} false; then :
48314869 $as_echo_n "(cached) " >&6
48324870 else
48334871
48754913 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC" >&5
48764914 $as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE as a flag for $CC... " >&6; }
48774915 cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_ALL_SOURCE" | $as_tr_sh`
4878 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
4916 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
48794917 $as_echo_n "(cached) " >&6
48804918 else
48814919
49645002 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC" >&5
49655003 $as_echo_n "checking whether we need $C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE as a flag for $CC... " >&6; }
49665004 cache=`$as_echo "$C99FLAG -D__EXTENSIONS__ -D_BSD_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -D_ALL_SOURCE" | $as_tr_sh`
4967 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5005 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
49685006 $as_echo_n "(cached) " >&6
49695007 else
49705008
50535091 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need $C99FLAG as a flag for $CC" >&5
50545092 $as_echo_n "checking whether we need $C99FLAG as a flag for $CC... " >&6; }
50555093 cache=`$as_echo "$C99FLAG" | $as_tr_sh`
5056 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5094 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
50575095 $as_echo_n "(cached) " >&6
50585096 else
50595097
51175155 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_BSD_SOURCE as a flag for $CC" >&5
51185156 $as_echo_n "checking whether we need -D_BSD_SOURCE as a flag for $CC... " >&6; }
51195157 cache=_D_BSD_SOURCE
5120 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5158 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
51215159 $as_echo_n "(cached) " >&6
51225160 else
51235161
51825220 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE as a flag for $CC" >&5
51835221 $as_echo_n "checking whether we need -D_GNU_SOURCE as a flag for $CC... " >&6; }
51845222 cache=_D_GNU_SOURCE
5185 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5223 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
51865224 $as_echo_n "(cached) " >&6
51875225 else
51885226
52505288 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC" >&5
52515289 $as_echo_n "checking whether we need -D_GNU_SOURCE -D_FRSRESGID as a flag for $CC... " >&6; }
52525290 cache=_D_GNU_SOURCE__D_FRSRESGID
5253 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5291 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
52545292 $as_echo_n "(cached) " >&6
52555293 else
52565294
53155353 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC" >&5
53165354 $as_echo_n "checking whether we need -D_POSIX_C_SOURCE=200112 as a flag for $CC... " >&6; }
53175355 cache=`$as_echo "-D_POSIX_C_SOURCE=200112" | $as_tr_sh`
5318 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5356 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
53195357 $as_echo_n "(cached) " >&6
53205358 else
53215359
53895427 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D__EXTENSIONS__ as a flag for $CC" >&5
53905428 $as_echo_n "checking whether we need -D__EXTENSIONS__ as a flag for $CC... " >&6; }
53915429 cache=_D__EXTENSIONS__
5392 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
5430 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
53935431 $as_echo_n "(cached) " >&6
53945432 else
53955433
54865524 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
54875525 $as_echo_n "checking whether $CC supports -W... " >&6; }
54885526 cache=`echo W | sed 'y%.=/+-%___p_%'`
5489 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
5527 if eval \${cv_prog_cc_flag_$cache+:} false; then :
54905528 $as_echo_n "(cached) " >&6
54915529 else
54925530
55175555 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
55185556 $as_echo_n "checking whether $CC supports -Wall... " >&6; }
55195557 cache=`echo Wall | sed 'y%.=/+-%___p_%'`
5520 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
5558 if eval \${cv_prog_cc_flag_$cache+:} false; then :
55215559 $as_echo_n "(cached) " >&6
55225560 else
55235561
55485586 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wextra" >&5
55495587 $as_echo_n "checking whether $CC supports -Wextra... " >&6; }
55505588 cache=`echo Wextra | sed 'y%.=/+-%___p_%'`
5551 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
5589 if eval \${cv_prog_cc_flag_$cache+:} false; then :
55525590 $as_echo_n "(cached) " >&6
55535591 else
55545592
55795617 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wdeclaration-after-statement" >&5
55805618 $as_echo_n "checking whether $CC supports -Wdeclaration-after-statement... " >&6; }
55815619 cache=`echo Wdeclaration-after-statement | sed 'y%.=/+-%___p_%'`
5582 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
5620 if eval \${cv_prog_cc_flag_$cache+:} false; then :
55835621 $as_echo_n "(cached) " >&6
55845622 else
55855623
56295667 }
56305668 _ACEOF
56315669 if ac_fn_c_try_link "$LINENO"; then :
5632 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
5670
5671 if $CC $CFLAGS -o conftest conftest.c 2>&1 | grep "warning: no debug symbols in executable" >/dev/null; then
5672 CFLAGS="$BAKCFLAGS"
5673 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
5674 $as_echo "no" >&6; }
5675 else
5676 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
56335677 $as_echo "yes" >&6; }
5678 fi
5679 rm -f conftest conftest.c conftest.o
5680
56345681 else
56355682 CFLAGS="$BAKCFLAGS" ; { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
56365683 $as_echo "no" >&6; }
56415688
56425689 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
56435690 $as_echo_n "checking for inline... " >&6; }
5644 if test "${ac_cv_c_inline+set}" = set; then :
5691 if ${ac_cv_c_inline+:} false; then :
56455692 $as_echo_n "(cached) " >&6
56465693 else
56475694 ac_cv_c_inline=no
56845731
56855732 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute" >&5
56865733 $as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"format\" attribute... " >&6; }
5687 if test "${ac_cv_c_format_attribute+set}" = set; then :
5734 if ${ac_cv_c_format_attribute+:} false; then :
56885735 $as_echo_n "(cached) " >&6
56895736 else
56905737 ac_cv_c_format_attribute=no
57255772
57265773 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute" >&5
57275774 $as_echo_n "checking whether the C compiler (${CC-cc}) accepts the \"unused\" attribute... " >&6; }
5728 if test "${ac_cv_c_unused_attribute+set}" = set; then :
5775 if ${ac_cv_c_unused_attribute+:} false; then :
57295776 $as_echo_n "(cached) " >&6
57305777 else
57315778 ac_cv_c_unused_attribute=no
57775824 set dummy $ac_prog; ac_word=$2
57785825 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
57795826 $as_echo_n "checking for $ac_word... " >&6; }
5780 if test "${ac_cv_prog_LEX+set}" = set; then :
5827 if ${ac_cv_prog_LEX+:} false; then :
57815828 $as_echo_n "(cached) " >&6
57825829 else
57835830 if test -n "$LEX"; then
58475894 test $ac_status = 0; }
58485895 { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
58495896 $as_echo_n "checking lex output file root... " >&6; }
5850 if test "${ac_cv_prog_lex_root+set}" = set; then :
5897 if ${ac_cv_prog_lex_root+:} false; then :
58515898 $as_echo_n "(cached) " >&6
58525899 else
58535900
58665913 if test -z "${LEXLIB+set}"; then
58675914 { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
58685915 $as_echo_n "checking lex library... " >&6; }
5869 if test "${ac_cv_lib_lex+set}" = set; then :
5916 if ${ac_cv_lib_lex+:} false; then :
58705917 $as_echo_n "(cached) " >&6
58715918 else
58725919
58965943
58975944 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
58985945 $as_echo_n "checking whether yytext is a pointer... " >&6; }
5899 if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then :
5946 if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
59005947 $as_echo_n "(cached) " >&6
59015948 else
59025949 # POSIX says lex can declare yytext either as a pointer or an array; the
59075954 LIBS="$LEXLIB $ac_save_LIBS"
59085955 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
59095956 /* end confdefs.h. */
5910 #define YYTEXT_POINTER 1
5957
5958 #define YYTEXT_POINTER 1
59115959 `cat $LEX_OUTPUT_ROOT.c`
59125960 _ACEOF
59135961 if ac_fn_c_try_link "$LINENO"; then :
59465994 set dummy $ac_prog; ac_word=$2
59475995 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
59485996 $as_echo_n "checking for $ac_word... " >&6; }
5949 if test "${ac_cv_prog_YACC+set}" = set; then :
5997 if ${ac_cv_prog_YACC+:} false; then :
59505998 $as_echo_n "(cached) " >&6
59515999 else
59526000 if test -n "$YACC"; then
59876035 set dummy doxygen; ac_word=$2
59886036 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
59896037 $as_echo_n "checking for $ac_word... " >&6; }
5990 if test "${ac_cv_prog_doxygen+set}" = set; then :
6038 if ${ac_cv_prog_doxygen+:} false; then :
59916039 $as_echo_n "(cached) " >&6
59926040 else
59936041 if test -n "$doxygen"; then
60256073 set dummy ${ac_tool_prefix}strip; ac_word=$2
60266074 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
60276075 $as_echo_n "checking for $ac_word... " >&6; }
6028 if test "${ac_cv_prog_STRIP+set}" = set; then :
6076 if ${ac_cv_prog_STRIP+:} false; then :
60296077 $as_echo_n "(cached) " >&6
60306078 else
60316079 if test -n "$STRIP"; then
60656113 set dummy strip; ac_word=$2
60666114 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
60676115 $as_echo_n "checking for $ac_word... " >&6; }
6068 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
6116 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
60696117 $as_echo_n "(cached) " >&6
60706118 else
60716119 if test -n "$ac_ct_STRIP"; then
61376185 set dummy ${ac_tool_prefix}ar; ac_word=$2
61386186 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
61396187 $as_echo_n "checking for $ac_word... " >&6; }
6140 if test "${ac_cv_path_AR+set}" = set; then :
6188 if ${ac_cv_path_AR+:} false; then :
61416189 $as_echo_n "(cached) " >&6
61426190 else
61436191 case $AR in
61806228 set dummy ar; ac_word=$2
61816229 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
61826230 $as_echo_n "checking for $ac_word... " >&6; }
6183 if test "${ac_cv_path_ac_pt_AR+set}" = set; then :
6231 if ${ac_cv_path_ac_pt_AR+:} false; then :
61846232 $as_echo_n "(cached) " >&6
61856233 else
61866234 case $ac_pt_AR in
62426290
62436291
62446292
6245 macro_version='2.2.10'
6246 macro_revision='1.3175'
6293 macro_version='2.4'
6294 macro_revision='1.3293'
62476295
62486296
62496297
62836331 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
62846332 $as_echo_n "checking how to print strings... " >&6; }
62856333 # Test print first, because it will be a builtin if present.
6286 if test "X`print -r -- -n 2>/dev/null`" = X-n && \
6334 if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
62876335 test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
62886336 ECHO='print -r --'
62896337 elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
63306378
63316379 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
63326380 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
6333 if test "${ac_cv_path_SED+set}" = set; then :
6381 if ${ac_cv_path_SED+:} false; then :
63346382 $as_echo_n "(cached) " >&6
63356383 else
63366384 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
64126460
64136461 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
64146462 $as_echo_n "checking for fgrep... " >&6; }
6415 if test "${ac_cv_path_FGREP+set}" = set; then :
6463 if ${ac_cv_path_FGREP+:} false; then :
64166464 $as_echo_n "(cached) " >&6
64176465 else
64186466 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
65436591 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
65446592 $as_echo_n "checking for non-GNU ld... " >&6; }
65456593 fi
6546 if test "${lt_cv_path_LD+set}" = set; then :
6594 if ${lt_cv_path_LD+:} false; then :
65476595 $as_echo_n "(cached) " >&6
65486596 else
65496597 if test -z "$LD"; then
65836631 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
65846632 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
65856633 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6586 if test "${lt_cv_prog_gnu_ld+set}" = set; then :
6634 if ${lt_cv_prog_gnu_ld+:} false; then :
65876635 $as_echo_n "(cached) " >&6
65886636 else
65896637 # I'd rather use --version here, but apparently some GNU lds only accept -v.
66106658
66116659 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
66126660 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
6613 if test "${lt_cv_path_NM+set}" = set; then :
6661 if ${lt_cv_path_NM+:} false; then :
66146662 $as_echo_n "(cached) " >&6
66156663 else
66166664 if test -n "$NM"; then
66736721 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
66746722 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
66756723 $as_echo_n "checking for $ac_word... " >&6; }
6676 if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
6724 if ${ac_cv_prog_DUMPBIN+:} false; then :
66776725 $as_echo_n "(cached) " >&6
66786726 else
66796727 if test -n "$DUMPBIN"; then
67176765 set dummy $ac_prog; ac_word=$2
67186766 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
67196767 $as_echo_n "checking for $ac_word... " >&6; }
6720 if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
6768 if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
67216769 $as_echo_n "(cached) " >&6
67226770 else
67236771 if test -n "$ac_ct_DUMPBIN"; then
67896837
67906838 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
67916839 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
6792 if test "${lt_cv_nm_interface+set}" = set; then :
6840 if ${lt_cv_nm_interface+:} false; then :
67936841 $as_echo_n "(cached) " >&6
67946842 else
67956843 lt_cv_nm_interface="BSD nm"
68246872 # find the maximum length of command line arguments
68256873 { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
68266874 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
6827 if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
6875 if ${lt_cv_sys_max_cmd_len+:} false; then :
68286876 $as_echo_n "(cached) " >&6
68296877 else
68306878 i=0
69697017 # Try some XSI features
69707018 xsi_shell=no
69717019 ( _lt_dummy="a/b/c"
6972 test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
6973 = c,a/b,, \
7020 test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
7021 = c,a/b,b/c, \
69747022 && eval 'test $(( 1 + 1 )) -eq 2 \
69757023 && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
69767024 && xsi_shell=yes
70197067
70207068
70217069
7070 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
7071 $as_echo_n "checking how to convert $build file names to $host format... " >&6; }
7072 if ${lt_cv_to_host_file_cmd+:} false; then :
7073 $as_echo_n "(cached) " >&6
7074 else
7075 case $host in
7076 *-*-mingw* )
7077 case $build in
7078 *-*-mingw* ) # actually msys
7079 lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
7080 ;;
7081 *-*-cygwin* )
7082 lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
7083 ;;
7084 * ) # otherwise, assume *nix
7085 lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
7086 ;;
7087 esac
7088 ;;
7089 *-*-cygwin* )
7090 case $build in
7091 *-*-mingw* ) # actually msys
7092 lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
7093 ;;
7094 *-*-cygwin* )
7095 lt_cv_to_host_file_cmd=func_convert_file_noop
7096 ;;
7097 * ) # otherwise, assume *nix
7098 lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
7099 ;;
7100 esac
7101 ;;
7102 * ) # unhandled hosts (and "normal" native builds)
7103 lt_cv_to_host_file_cmd=func_convert_file_noop
7104 ;;
7105 esac
7106
7107 fi
7108
7109 to_host_file_cmd=$lt_cv_to_host_file_cmd
7110 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
7111 $as_echo "$lt_cv_to_host_file_cmd" >&6; }
7112
7113
7114
7115
7116
7117 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
7118 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
7119 if ${lt_cv_to_tool_file_cmd+:} false; then :
7120 $as_echo_n "(cached) " >&6
7121 else
7122 #assume ordinary cross tools, or native build.
7123 lt_cv_to_tool_file_cmd=func_convert_file_noop
7124 case $host in
7125 *-*-mingw* )
7126 case $build in
7127 *-*-mingw* ) # actually msys
7128 lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
7129 ;;
7130 esac
7131 ;;
7132 esac
7133
7134 fi
7135
7136 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
7137 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
7138 $as_echo "$lt_cv_to_tool_file_cmd" >&6; }
7139
7140
7141
7142
7143
70227144 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
70237145 $as_echo_n "checking for $LD option to reload object files... " >&6; }
7024 if test "${lt_cv_ld_reload_flag+set}" = set; then :
7146 if ${lt_cv_ld_reload_flag+:} false; then :
70257147 $as_echo_n "(cached) " >&6
70267148 else
70277149 lt_cv_ld_reload_flag='-r'
70357157 esac
70367158 reload_cmds='$LD$reload_flag -o $output$reload_objs'
70377159 case $host_os in
7160 cygwin* | mingw* | pw32* | cegcc*)
7161 if test "$GCC" != yes; then
7162 reload_cmds=false
7163 fi
7164 ;;
70387165 darwin*)
70397166 if test "$GCC" = yes; then
70407167 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
70577184 set dummy ${ac_tool_prefix}objdump; ac_word=$2
70587185 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
70597186 $as_echo_n "checking for $ac_word... " >&6; }
7060 if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
7187 if ${ac_cv_prog_OBJDUMP+:} false; then :
70617188 $as_echo_n "(cached) " >&6
70627189 else
70637190 if test -n "$OBJDUMP"; then
70977224 set dummy objdump; ac_word=$2
70987225 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
70997226 $as_echo_n "checking for $ac_word... " >&6; }
7100 if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
7227 if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
71017228 $as_echo_n "(cached) " >&6
71027229 else
71037230 if test -n "$ac_ct_OBJDUMP"; then
71567283
71577284 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
71587285 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
7159 if test "${lt_cv_deplibs_check_method+set}" = set; then :
7286 if ${lt_cv_deplibs_check_method+:} false; then :
71607287 $as_echo_n "(cached) " >&6
71617288 else
71627289 lt_cv_file_magic_cmd='$MAGIC_CMD'
73587485 fi
73597486 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
73607487 $as_echo "$lt_cv_deplibs_check_method" >&6; }
7488
7489 file_magic_glob=
7490 want_nocaseglob=no
7491 if test "$build" = "$host"; then
7492 case $host_os in
7493 mingw* | pw32*)
7494 if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
7495 want_nocaseglob=yes
7496 else
7497 file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
7498 fi
7499 ;;
7500 esac
7501 fi
7502
73617503 file_magic_cmd=$lt_cv_file_magic_cmd
73627504 deplibs_check_method=$lt_cv_deplibs_check_method
73637505 test -z "$deplibs_check_method" && deplibs_check_method=unknown
73737515
73747516
73757517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
73767528 if test -n "$ac_tool_prefix"; then
7377 # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
7378 set dummy ${ac_tool_prefix}ar; ac_word=$2
7529 # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
7530 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
73797531 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
73807532 $as_echo_n "checking for $ac_word... " >&6; }
7381 if test "${ac_cv_prog_AR+set}" = set; then :
7533 if ${ac_cv_prog_DLLTOOL+:} false; then :
73827534 $as_echo_n "(cached) " >&6
73837535 else
7384 if test -n "$AR"; then
7385 ac_cv_prog_AR="$AR" # Let the user override the test.
7536 if test -n "$DLLTOOL"; then
7537 ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
73867538 else
73877539 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
73887540 for as_dir in $PATH
73917543 test -z "$as_dir" && as_dir=.
73927544 for ac_exec_ext in '' $ac_executable_extensions; do
73937545 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
7394 ac_cv_prog_AR="${ac_tool_prefix}ar"
7546 ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
73957547 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
73967548 break 2
73977549 fi
74017553
74027554 fi
74037555 fi
7404 AR=$ac_cv_prog_AR
7405 if test -n "$AR"; then
7406 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
7407 $as_echo "$AR" >&6; }
7556 DLLTOOL=$ac_cv_prog_DLLTOOL
7557 if test -n "$DLLTOOL"; then
7558 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
7559 $as_echo "$DLLTOOL" >&6; }
74087560 else
74097561 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
74107562 $as_echo "no" >&6; }
74127564
74137565
74147566 fi
7415 if test -z "$ac_cv_prog_AR"; then
7416 ac_ct_AR=$AR
7417 # Extract the first word of "ar", so it can be a program name with args.
7418 set dummy ar; ac_word=$2
7567 if test -z "$ac_cv_prog_DLLTOOL"; then
7568 ac_ct_DLLTOOL=$DLLTOOL
7569 # Extract the first word of "dlltool", so it can be a program name with args.
7570 set dummy dlltool; ac_word=$2
74197571 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
74207572 $as_echo_n "checking for $ac_word... " >&6; }
7421 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
7573 if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
74227574 $as_echo_n "(cached) " >&6
74237575 else
7424 if test -n "$ac_ct_AR"; then
7425 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
7576 if test -n "$ac_ct_DLLTOOL"; then
7577 ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
74267578 else
74277579 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
74287580 for as_dir in $PATH
74317583 test -z "$as_dir" && as_dir=.
74327584 for ac_exec_ext in '' $ac_executable_extensions; do
74337585 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
7434 ac_cv_prog_ac_ct_AR="ar"
7586 ac_cv_prog_ac_ct_DLLTOOL="dlltool"
74357587 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
74367588 break 2
74377589 fi
74417593
74427594 fi
74437595 fi
7596 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
7597 if test -n "$ac_ct_DLLTOOL"; then
7598 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
7599 $as_echo "$ac_ct_DLLTOOL" >&6; }
7600 else
7601 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7602 $as_echo "no" >&6; }
7603 fi
7604
7605 if test "x$ac_ct_DLLTOOL" = x; then
7606 DLLTOOL="false"
7607 else
7608 case $cross_compiling:$ac_tool_warned in
7609 yes:)
7610 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
7611 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
7612 ac_tool_warned=yes ;;
7613 esac
7614 DLLTOOL=$ac_ct_DLLTOOL
7615 fi
7616 else
7617 DLLTOOL="$ac_cv_prog_DLLTOOL"
7618 fi
7619
7620 test -z "$DLLTOOL" && DLLTOOL=dlltool
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
7632 $as_echo_n "checking how to associate runtime and link libraries... " >&6; }
7633 if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
7634 $as_echo_n "(cached) " >&6
7635 else
7636 lt_cv_sharedlib_from_linklib_cmd='unknown'
7637
7638 case $host_os in
7639 cygwin* | mingw* | pw32* | cegcc*)
7640 # two different shell functions defined in ltmain.sh
7641 # decide which to use based on capabilities of $DLLTOOL
7642 case `$DLLTOOL --help 2>&1` in
7643 *--identify-strict*)
7644 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
7645 ;;
7646 *)
7647 lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
7648 ;;
7649 esac
7650 ;;
7651 *)
7652 # fallback: assume linklib IS sharedlib
7653 lt_cv_sharedlib_from_linklib_cmd="$ECHO"
7654 ;;
7655 esac
7656
7657 fi
7658 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
7659 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
7660 sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
7661 test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
7662
7663
7664
7665
7666
7667
7668
7669 if test -n "$ac_tool_prefix"; then
7670 for ac_prog in ar
7671 do
7672 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
7673 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
7674 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7675 $as_echo_n "checking for $ac_word... " >&6; }
7676 if ${ac_cv_prog_AR+:} false; then :
7677 $as_echo_n "(cached) " >&6
7678 else
7679 if test -n "$AR"; then
7680 ac_cv_prog_AR="$AR" # Let the user override the test.
7681 else
7682 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7683 for as_dir in $PATH
7684 do
7685 IFS=$as_save_IFS
7686 test -z "$as_dir" && as_dir=.
7687 for ac_exec_ext in '' $ac_executable_extensions; do
7688 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
7689 ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
7690 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7691 break 2
7692 fi
7693 done
7694 done
7695 IFS=$as_save_IFS
7696
7697 fi
7698 fi
7699 AR=$ac_cv_prog_AR
7700 if test -n "$AR"; then
7701 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
7702 $as_echo "$AR" >&6; }
7703 else
7704 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
7705 $as_echo "no" >&6; }
7706 fi
7707
7708
7709 test -n "$AR" && break
7710 done
7711 fi
7712 if test -z "$AR"; then
7713 ac_ct_AR=$AR
7714 for ac_prog in ar
7715 do
7716 # Extract the first word of "$ac_prog", so it can be a program name with args.
7717 set dummy $ac_prog; ac_word=$2
7718 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
7719 $as_echo_n "checking for $ac_word... " >&6; }
7720 if ${ac_cv_prog_ac_ct_AR+:} false; then :
7721 $as_echo_n "(cached) " >&6
7722 else
7723 if test -n "$ac_ct_AR"; then
7724 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
7725 else
7726 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
7727 for as_dir in $PATH
7728 do
7729 IFS=$as_save_IFS
7730 test -z "$as_dir" && as_dir=.
7731 for ac_exec_ext in '' $ac_executable_extensions; do
7732 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
7733 ac_cv_prog_ac_ct_AR="$ac_prog"
7734 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
7735 break 2
7736 fi
7737 done
7738 done
7739 IFS=$as_save_IFS
7740
7741 fi
7742 fi
74447743 ac_ct_AR=$ac_cv_prog_ac_ct_AR
74457744 if test -n "$ac_ct_AR"; then
74467745 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
74497748 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
74507749 $as_echo "no" >&6; }
74517750 fi
7751
7752
7753 test -n "$ac_ct_AR" && break
7754 done
74527755
74537756 if test "x$ac_ct_AR" = x; then
74547757 AR="false"
74617764 esac
74627765 AR=$ac_ct_AR
74637766 fi
7464 else
7465 AR="$ac_cv_prog_AR"
7466 fi
7467
7468 test -z "$AR" && AR=ar
7469 test -z "$AR_FLAGS" && AR_FLAGS=cru
7470
7471
7472
7473
7767 fi
7768
7769 : ${AR=ar}
7770 : ${AR_FLAGS=cru}
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
7783 $as_echo_n "checking for archiver @FILE support... " >&6; }
7784 if ${lt_cv_ar_at_file+:} false; then :
7785 $as_echo_n "(cached) " >&6
7786 else
7787 lt_cv_ar_at_file=no
7788 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7789 /* end confdefs.h. */
7790
7791 int
7792 main ()
7793 {
7794
7795 ;
7796 return 0;
7797 }
7798 _ACEOF
7799 if ac_fn_c_try_compile "$LINENO"; then :
7800 echo conftest.$ac_objext > conftest.lst
7801 lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
7802 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
7803 (eval $lt_ar_try) 2>&5
7804 ac_status=$?
7805 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
7806 test $ac_status = 0; }
7807 if test "$ac_status" -eq 0; then
7808 # Ensure the archiver fails upon bogus file names.
7809 rm -f conftest.$ac_objext libconftest.a
7810 { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
7811 (eval $lt_ar_try) 2>&5
7812 ac_status=$?
7813 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
7814 test $ac_status = 0; }
7815 if test "$ac_status" -ne 0; then
7816 lt_cv_ar_at_file=@
7817 fi
7818 fi
7819 rm -f conftest.* libconftest.a
7820
7821 fi
7822 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
7823
7824 fi
7825 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
7826 $as_echo "$lt_cv_ar_at_file" >&6; }
7827
7828 if test "x$lt_cv_ar_at_file" = xno; then
7829 archiver_list_spec=
7830 else
7831 archiver_list_spec=$lt_cv_ar_at_file
7832 fi
74747833
74757834
74767835
74837842 set dummy ${ac_tool_prefix}strip; ac_word=$2
74847843 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
74857844 $as_echo_n "checking for $ac_word... " >&6; }
7486 if test "${ac_cv_prog_STRIP+set}" = set; then :
7845 if ${ac_cv_prog_STRIP+:} false; then :
74877846 $as_echo_n "(cached) " >&6
74887847 else
74897848 if test -n "$STRIP"; then
75237882 set dummy strip; ac_word=$2
75247883 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
75257884 $as_echo_n "checking for $ac_word... " >&6; }
7526 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
7885 if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
75277886 $as_echo_n "(cached) " >&6
75287887 else
75297888 if test -n "$ac_ct_STRIP"; then
75827941 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
75837942 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
75847943 $as_echo_n "checking for $ac_word... " >&6; }
7585 if test "${ac_cv_prog_RANLIB+set}" = set; then :
7944 if ${ac_cv_prog_RANLIB+:} false; then :
75867945 $as_echo_n "(cached) " >&6
75877946 else
75887947 if test -n "$RANLIB"; then
76227981 set dummy ranlib; ac_word=$2
76237982 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
76247983 $as_echo_n "checking for $ac_word... " >&6; }
7625 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
7984 if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
76267985 $as_echo_n "(cached) " >&6
76277986 else
76287987 if test -n "$ac_ct_RANLIB"; then
77268085 set dummy $ac_prog; ac_word=$2
77278086 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
77288087 $as_echo_n "checking for $ac_word... " >&6; }
7729 if test "${ac_cv_prog_AWK+set}" = set; then :
8088 if ${ac_cv_prog_AWK+:} false; then :
77308089 $as_echo_n "(cached) " >&6
77318090 else
77328091 if test -n "$AWK"; then
77938152 # Check for command to grab the raw symbol name followed by C symbol from nm.
77948153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
77958154 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
7796 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
8155 if ${lt_cv_sys_global_symbol_pipe+:} false; then :
77978156 $as_echo_n "(cached) " >&6
77988157 else
77998158
78548213 lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
78558214
78568215 # Transform an extracted symbol line into symbol name and symbol address
7857 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
7858 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
8216 lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
8217 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
78598218
78608219 # Handle CRLF in mingw tool chain
78618220 opt_cr=
78918250 else
78928251 lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
78938252 fi
8253 lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
78948254
78958255 # Check to see that the pipe works correctly.
78968256 pipe_works=no
79328292 if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
79338293 if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
79348294 cat <<_LT_EOF > conftest.$ac_ext
8295 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
8296 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
8297 /* DATA imports from DLLs on WIN32 con't be const, because runtime
8298 relocations are performed -- see ld's documentation on pseudo-relocs. */
8299 # define LT_DLSYM_CONST
8300 #elif defined(__osf__)
8301 /* This system does not cope well with relocations in const data. */
8302 # define LT_DLSYM_CONST
8303 #else
8304 # define LT_DLSYM_CONST const
8305 #endif
8306
79358307 #ifdef __cplusplus
79368308 extern "C" {
79378309 #endif
79438315 cat <<_LT_EOF >> conftest.$ac_ext
79448316
79458317 /* The mapping between symbol names and symbols. */
7946 const struct {
8318 LT_DLSYM_CONST struct {
79478319 const char *name;
79488320 void *address;
79498321 }
79698341 _LT_EOF
79708342 # Now try linking the two files.
79718343 mv conftest.$ac_objext conftstm.$ac_objext
7972 lt_save_LIBS="$LIBS"
7973 lt_save_CFLAGS="$CFLAGS"
8344 lt_globsym_save_LIBS=$LIBS
8345 lt_globsym_save_CFLAGS=$CFLAGS
79748346 LIBS="conftstm.$ac_objext"
79758347 CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
79768348 if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
79808352 test $ac_status = 0; } && test -s conftest${ac_exeext}; then
79818353 pipe_works=yes
79828354 fi
7983 LIBS="$lt_save_LIBS"
7984 CFLAGS="$lt_save_CFLAGS"
8355 LIBS=$lt_globsym_save_LIBS
8356 CFLAGS=$lt_globsym_save_CFLAGS
79858357 else
79868358 echo "cannot find nm_test_func in $nlist" >&5
79878359 fi
80188390 $as_echo "ok" >&6; }
80198391 fi
80208392
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8393 # Response file support.
8394 if test "$lt_cv_nm_interface" = "MS dumpbin"; then
8395 nm_file_list_spec='@'
8396 elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
8397 nm_file_list_spec='@'
8398 fi
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
8427 $as_echo_n "checking for sysroot... " >&6; }
8428
8429 # Check whether --with-sysroot was given.
8430 if test "${with_sysroot+set}" = set; then :
8431 withval=$with_sysroot;
8432 else
8433 with_sysroot=no
8434 fi
8435
8436
8437 lt_sysroot=
8438 case ${with_sysroot} in #(
8439 yes)
8440 if test "$GCC" = yes; then
8441 lt_sysroot=`$CC --print-sysroot 2>/dev/null`
8442 fi
8443 ;; #(
8444 /*)
8445 lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
8446 ;; #(
8447 no|'')
8448 ;; #(
8449 *)
8450 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
8451 $as_echo "${with_sysroot}" >&6; }
8452 as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
8453 ;;
8454 esac
8455
8456 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
8457 $as_echo "${lt_sysroot:-no}" >&6; }
80378458
80388459
80398460
81648585 CFLAGS="$CFLAGS -belf"
81658586 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
81668587 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
8167 if test "${lt_cv_cc_needs_belf+set}" = set; then :
8588 if ${lt_cv_cc_needs_belf+:} false; then :
81688589 $as_echo_n "(cached) " >&6
81698590 else
81708591 ac_ext=c
82328653
82338654 need_locks="$enable_libtool_lock"
82348655
8656 if test -n "$ac_tool_prefix"; then
8657 # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
8658 set dummy ${ac_tool_prefix}mt; ac_word=$2
8659 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8660 $as_echo_n "checking for $ac_word... " >&6; }
8661 if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
8662 $as_echo_n "(cached) " >&6
8663 else
8664 if test -n "$MANIFEST_TOOL"; then
8665 ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
8666 else
8667 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8668 for as_dir in $PATH
8669 do
8670 IFS=$as_save_IFS
8671 test -z "$as_dir" && as_dir=.
8672 for ac_exec_ext in '' $ac_executable_extensions; do
8673 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
8674 ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
8675 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8676 break 2
8677 fi
8678 done
8679 done
8680 IFS=$as_save_IFS
8681
8682 fi
8683 fi
8684 MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
8685 if test -n "$MANIFEST_TOOL"; then
8686 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
8687 $as_echo "$MANIFEST_TOOL" >&6; }
8688 else
8689 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8690 $as_echo "no" >&6; }
8691 fi
8692
8693
8694 fi
8695 if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
8696 ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
8697 # Extract the first word of "mt", so it can be a program name with args.
8698 set dummy mt; ac_word=$2
8699 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
8700 $as_echo_n "checking for $ac_word... " >&6; }
8701 if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
8702 $as_echo_n "(cached) " >&6
8703 else
8704 if test -n "$ac_ct_MANIFEST_TOOL"; then
8705 ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
8706 else
8707 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8708 for as_dir in $PATH
8709 do
8710 IFS=$as_save_IFS
8711 test -z "$as_dir" && as_dir=.
8712 for ac_exec_ext in '' $ac_executable_extensions; do
8713 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
8714 ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
8715 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
8716 break 2
8717 fi
8718 done
8719 done
8720 IFS=$as_save_IFS
8721
8722 fi
8723 fi
8724 ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
8725 if test -n "$ac_ct_MANIFEST_TOOL"; then
8726 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
8727 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
8728 else
8729 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
8730 $as_echo "no" >&6; }
8731 fi
8732
8733 if test "x$ac_ct_MANIFEST_TOOL" = x; then
8734 MANIFEST_TOOL=":"
8735 else
8736 case $cross_compiling:$ac_tool_warned in
8737 yes:)
8738 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
8739 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
8740 ac_tool_warned=yes ;;
8741 esac
8742 MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
8743 fi
8744 else
8745 MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
8746 fi
8747
8748 test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
8749 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
8750 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
8751 if ${lt_cv_path_mainfest_tool+:} false; then :
8752 $as_echo_n "(cached) " >&6
8753 else
8754 lt_cv_path_mainfest_tool=no
8755 echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
8756 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
8757 cat conftest.err >&5
8758 if $GREP 'Manifest Tool' conftest.out > /dev/null; then
8759 lt_cv_path_mainfest_tool=yes
8760 fi
8761 rm -f conftest*
8762 fi
8763 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
8764 $as_echo "$lt_cv_path_mainfest_tool" >&6; }
8765 if test "x$lt_cv_path_mainfest_tool" != xyes; then
8766 MANIFEST_TOOL=:
8767 fi
8768
8769
8770
8771
8772
82358773
82368774 case $host_os in
82378775 rhapsody* | darwin*)
82408778 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
82418779 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
82428780 $as_echo_n "checking for $ac_word... " >&6; }
8243 if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
8781 if ${ac_cv_prog_DSYMUTIL+:} false; then :
82448782 $as_echo_n "(cached) " >&6
82458783 else
82468784 if test -n "$DSYMUTIL"; then
82808818 set dummy dsymutil; ac_word=$2
82818819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
82828820 $as_echo_n "checking for $ac_word... " >&6; }
8283 if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
8821 if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
82848822 $as_echo_n "(cached) " >&6
82858823 else
82868824 if test -n "$ac_ct_DSYMUTIL"; then
83328870 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
83338871 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
83348872 $as_echo_n "checking for $ac_word... " >&6; }
8335 if test "${ac_cv_prog_NMEDIT+set}" = set; then :
8873 if ${ac_cv_prog_NMEDIT+:} false; then :
83368874 $as_echo_n "(cached) " >&6
83378875 else
83388876 if test -n "$NMEDIT"; then
83728910 set dummy nmedit; ac_word=$2
83738911 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
83748912 $as_echo_n "checking for $ac_word... " >&6; }
8375 if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
8913 if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
83768914 $as_echo_n "(cached) " >&6
83778915 else
83788916 if test -n "$ac_ct_NMEDIT"; then
84248962 set dummy ${ac_tool_prefix}lipo; ac_word=$2
84258963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
84268964 $as_echo_n "checking for $ac_word... " >&6; }
8427 if test "${ac_cv_prog_LIPO+set}" = set; then :
8965 if ${ac_cv_prog_LIPO+:} false; then :
84288966 $as_echo_n "(cached) " >&6
84298967 else
84308968 if test -n "$LIPO"; then
84649002 set dummy lipo; ac_word=$2
84659003 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
84669004 $as_echo_n "checking for $ac_word... " >&6; }
8467 if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
9005 if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
84689006 $as_echo_n "(cached) " >&6
84699007 else
84709008 if test -n "$ac_ct_LIPO"; then
85169054 set dummy ${ac_tool_prefix}otool; ac_word=$2
85179055 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
85189056 $as_echo_n "checking for $ac_word... " >&6; }
8519 if test "${ac_cv_prog_OTOOL+set}" = set; then :
9057 if ${ac_cv_prog_OTOOL+:} false; then :
85209058 $as_echo_n "(cached) " >&6
85219059 else
85229060 if test -n "$OTOOL"; then
85569094 set dummy otool; ac_word=$2
85579095 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
85589096 $as_echo_n "checking for $ac_word... " >&6; }
8559 if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
9097 if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
85609098 $as_echo_n "(cached) " >&6
85619099 else
85629100 if test -n "$ac_ct_OTOOL"; then
86089146 set dummy ${ac_tool_prefix}otool64; ac_word=$2
86099147 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
86109148 $as_echo_n "checking for $ac_word... " >&6; }
8611 if test "${ac_cv_prog_OTOOL64+set}" = set; then :
9149 if ${ac_cv_prog_OTOOL64+:} false; then :
86129150 $as_echo_n "(cached) " >&6
86139151 else
86149152 if test -n "$OTOOL64"; then
86489186 set dummy otool64; ac_word=$2
86499187 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
86509188 $as_echo_n "checking for $ac_word... " >&6; }
8651 if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
9189 if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
86529190 $as_echo_n "(cached) " >&6
86539191 else
86549192 if test -n "$ac_ct_OTOOL64"; then
87239261
87249262 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
87259263 $as_echo_n "checking for -single_module linker flag... " >&6; }
8726 if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
9264 if ${lt_cv_apple_cc_single_mod+:} false; then :
87279265 $as_echo_n "(cached) " >&6
87289266 else
87299267 lt_cv_apple_cc_single_mod=no
87529290 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
87539291 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
87549292 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
8755 if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
9293 if ${lt_cv_ld_exported_symbols_list+:} false; then :
87569294 $as_echo_n "(cached) " >&6
87579295 else
87589296 lt_cv_ld_exported_symbols_list=no
87849322 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
87859323 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
87869324 $as_echo_n "checking for -force_load linker flag... " >&6; }
8787 if test "${lt_cv_ld_force_load+set}" = set; then :
9325 if ${lt_cv_ld_force_load+:} false; then :
87889326 $as_echo_n "(cached) " >&6
87899327 else
87909328 lt_cv_ld_force_load=no
88539391 do :
88549392 ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
88559393 "
8856 if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
9394 if test "x$ac_cv_header_dlfcn_h" = xyes; then :
88579395 cat >>confdefs.h <<_ACEOF
88589396 #define HAVE_DLFCN_H 1
88599397 _ACEOF
90429580
90439581 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
90449582 $as_echo_n "checking for objdir... " >&6; }
9045 if test "${lt_cv_objdir+set}" = set; then :
9583 if ${lt_cv_objdir+:} false; then :
90469584 $as_echo_n "(cached) " >&6
90479585 else
90489586 rm -f .libs 2>/dev/null
91209658 if test "$file_magic_cmd" = '$MAGIC_CMD'; then
91219659 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
91229660 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
9123 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
9661 if ${lt_cv_path_MAGIC_CMD+:} false; then :
91249662 $as_echo_n "(cached) " >&6
91259663 else
91269664 case $MAGIC_CMD in
91869724 if test -n "$ac_tool_prefix"; then
91879725 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
91889726 $as_echo_n "checking for file... " >&6; }
9189 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
9727 if ${lt_cv_path_MAGIC_CMD+:} false; then :
91909728 $as_echo_n "(cached) " >&6
91919729 else
91929730 case $MAGIC_CMD in
93249862
93259863 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
93269864 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
9327 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
9865 if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
93289866 $as_echo_n "(cached) " >&6
93299867 else
93309868 lt_cv_prog_compiler_rtti_exceptions=no
93779915 lt_prog_compiler_pic=
93789916 lt_prog_compiler_static=
93799917
9380 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
9381 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
93829918
93839919 if test "$GCC" = yes; then
93849920 lt_prog_compiler_wl='-Wl,'
954210078 lt_prog_compiler_wl='-Wl,'
954310079 lt_prog_compiler_pic='--shared'
954410080 lt_prog_compiler_static='--static'
10081 ;;
10082 nagfor*)
10083 # NAG Fortran compiler
10084 lt_prog_compiler_wl='-Wl,-Wl,,'
10085 lt_prog_compiler_pic='-PIC'
10086 lt_prog_compiler_static='-Bstatic'
954510087 ;;
954610088 pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
954710089 # Portland Group compilers (*not* the Pentium gcc compiler,
966210204 lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
966310205 ;;
966410206 esac
9665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
9666 $as_echo "$lt_prog_compiler_pic" >&6; }
9667
9668
9669
9670
9671
10207
10208 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
10209 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
10210 if ${lt_cv_prog_compiler_pic+:} false; then :
10211 $as_echo_n "(cached) " >&6
10212 else
10213 lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
10214 fi
10215 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
10216 $as_echo "$lt_cv_prog_compiler_pic" >&6; }
10217 lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
967210218
967310219 #
967410220 # Check to make sure the PIC flag actually works.
967610222 if test -n "$lt_prog_compiler_pic"; then
967710223 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
967810224 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
9679 if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
10225 if ${lt_cv_prog_compiler_pic_works+:} false; then :
968010226 $as_echo_n "(cached) " >&6
968110227 else
968210228 lt_cv_prog_compiler_pic_works=no
972910275
973010276
973110277
10278
10279
10280
10281
10282
973210283 #
973310284 # Check to make sure the static flag actually works.
973410285 #
973510286 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
973610287 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
973710288 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
9738 if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
10289 if ${lt_cv_prog_compiler_static_works+:} false; then :
973910290 $as_echo_n "(cached) " >&6
974010291 else
974110292 lt_cv_prog_compiler_static_works=no
977810329
977910330 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
978010331 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
9781 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
10332 if ${lt_cv_prog_compiler_c_o+:} false; then :
978210333 $as_echo_n "(cached) " >&6
978310334 else
978410335 lt_cv_prog_compiler_c_o=no
983310384
983410385 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
983510386 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
9836 if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
10387 if ${lt_cv_prog_compiler_c_o+:} false; then :
983710388 $as_echo_n "(cached) " >&6
983810389 else
983910390 lt_cv_prog_compiler_c_o=no
1007910630 allow_undefined_flag=unsupported
1008010631 always_export_symbols=no
1008110632 enable_shared_with_static_runtimes=yes
10082 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
10633 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
10634 exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
1008310635
1008410636 if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
1008510637 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
1012710679 if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
1012810680 && test "$tmp_diet" = no
1012910681 then
10130 tmp_addflag=
10682 tmp_addflag=' $pic_flag'
1013110683 tmp_sharedflag='-shared'
1013210684 case $cc_basename,$host_cpu in
1013310685 pgcc*) # Portland Group C compiler
1019710749 archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
1019810750 wlarc=
1019910751 else
10200 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10201 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
10752 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10753 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
1020210754 fi
1020310755 ;;
1020410756
1021610768
1021710769 _LT_EOF
1021810770 elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
10219 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10220 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
10771 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10772 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
1022110773 else
1022210774 ld_shlibs=no
1022310775 fi
1026310815
1026410816 *)
1026510817 if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
10266 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10267 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
10818 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
10819 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
1026810820 else
1026910821 ld_shlibs=no
1027010822 fi
1039410946 allow_undefined_flag='-berok'
1039510947 # Determine the default libpath from the value encoded in an
1039610948 # empty executable.
10397 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
10949 if test "${lt_cv_aix_libpath+set}" = set; then
10950 aix_libpath=$lt_cv_aix_libpath
10951 else
10952 if ${lt_cv_aix_libpath_+:} false; then :
10953 $as_echo_n "(cached) " >&6
10954 else
10955 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1039810956 /* end confdefs.h. */
1039910957
1040010958 int
1040710965 _ACEOF
1040810966 if ac_fn_c_try_link "$LINENO"; then :
1040910967
10410 lt_aix_libpath_sed='
10411 /Import File Strings/,/^$/ {
10412 /^0/ {
10413 s/^0 *\(.*\)$/\1/
10414 p
10415 }
10416 }'
10417 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10418 # Check for a 64-bit object if we didn't find anything.
10419 if test -z "$aix_libpath"; then
10420 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10421 fi
10968 lt_aix_libpath_sed='
10969 /Import File Strings/,/^$/ {
10970 /^0/ {
10971 s/^0 *\([^ ]*\) *$/\1/
10972 p
10973 }
10974 }'
10975 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10976 # Check for a 64-bit object if we didn't find anything.
10977 if test -z "$lt_cv_aix_libpath_"; then
10978 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10979 fi
1042210980 fi
1042310981 rm -f core conftest.err conftest.$ac_objext \
1042410982 conftest$ac_exeext conftest.$ac_ext
10425 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
10983 if test -z "$lt_cv_aix_libpath_"; then
10984 lt_cv_aix_libpath_="/usr/lib:/lib"
10985 fi
10986
10987 fi
10988
10989 aix_libpath=$lt_cv_aix_libpath_
10990 fi
1042610991
1042710992 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
1042810993 archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
1043410999 else
1043511000 # Determine the default libpath from the value encoded in an
1043611001 # empty executable.
10437 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11002 if test "${lt_cv_aix_libpath+set}" = set; then
11003 aix_libpath=$lt_cv_aix_libpath
11004 else
11005 if ${lt_cv_aix_libpath_+:} false; then :
11006 $as_echo_n "(cached) " >&6
11007 else
11008 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1043811009 /* end confdefs.h. */
1043911010
1044011011 int
1044711018 _ACEOF
1044811019 if ac_fn_c_try_link "$LINENO"; then :
1044911020
10450 lt_aix_libpath_sed='
10451 /Import File Strings/,/^$/ {
10452 /^0/ {
10453 s/^0 *\(.*\)$/\1/
10454 p
10455 }
10456 }'
10457 aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10458 # Check for a 64-bit object if we didn't find anything.
10459 if test -z "$aix_libpath"; then
10460 aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
10461 fi
11021 lt_aix_libpath_sed='
11022 /Import File Strings/,/^$/ {
11023 /^0/ {
11024 s/^0 *\([^ ]*\) *$/\1/
11025 p
11026 }
11027 }'
11028 lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11029 # Check for a 64-bit object if we didn't find anything.
11030 if test -z "$lt_cv_aix_libpath_"; then
11031 lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
11032 fi
1046211033 fi
1046311034 rm -f core conftest.err conftest.$ac_objext \
1046411035 conftest$ac_exeext conftest.$ac_ext
10465 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
11036 if test -z "$lt_cv_aix_libpath_"; then
11037 lt_cv_aix_libpath_="/usr/lib:/lib"
11038 fi
11039
11040 fi
11041
11042 aix_libpath=$lt_cv_aix_libpath_
11043 fi
1046611044
1046711045 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
1046811046 # Warning - without using the other run time loading flags,
1050711085 # Microsoft Visual C++.
1050811086 # hardcode_libdir_flag_spec is actually meaningless, as there is
1050911087 # no search path for DLLs.
10510 hardcode_libdir_flag_spec=' '
10511 allow_undefined_flag=unsupported
10512 # Tell ltmain to make .lib files, not .a files.
10513 libext=lib
10514 # Tell ltmain to make .dll files, not .so files.
10515 shrext_cmds=".dll"
10516 # FIXME: Setting linknames here is a bad hack.
10517 archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
10518 # The linker will automatically build a .lib file if we build a DLL.
10519 old_archive_from_new_cmds='true'
10520 # FIXME: Should let the user specify the lib program.
10521 old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
10522 fix_srcfile_path='`cygpath -w "$srcfile"`'
10523 enable_shared_with_static_runtimes=yes
11088 case $cc_basename in
11089 cl*)
11090 # Native MSVC
11091 hardcode_libdir_flag_spec=' '
11092 allow_undefined_flag=unsupported
11093 always_export_symbols=yes
11094 file_list_spec='@'
11095 # Tell ltmain to make .lib files, not .a files.
11096 libext=lib
11097 # Tell ltmain to make .dll files, not .so files.
11098 shrext_cmds=".dll"
11099 # FIXME: Setting linknames here is a bad hack.
11100 archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
11101 archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
11102 sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
11103 else
11104 sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
11105 fi~
11106 $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
11107 linknames='
11108 # The linker will not automatically build a static lib if we build a DLL.
11109 # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
11110 enable_shared_with_static_runtimes=yes
11111 export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
11112 # Don't use ranlib
11113 old_postinstall_cmds='chmod 644 $oldlib'
11114 postlink_cmds='lt_outputfile="@OUTPUT@"~
11115 lt_tool_outputfile="@TOOL_OUTPUT@"~
11116 case $lt_outputfile in
11117 *.exe|*.EXE) ;;
11118 *)
11119 lt_outputfile="$lt_outputfile.exe"
11120 lt_tool_outputfile="$lt_tool_outputfile.exe"
11121 ;;
11122 esac~
11123 if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
11124 $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
11125 $RM "$lt_outputfile.manifest";
11126 fi'
11127 ;;
11128 *)
11129 # Assume MSVC wrapper
11130 hardcode_libdir_flag_spec=' '
11131 allow_undefined_flag=unsupported
11132 # Tell ltmain to make .lib files, not .a files.
11133 libext=lib
11134 # Tell ltmain to make .dll files, not .so files.
11135 shrext_cmds=".dll"
11136 # FIXME: Setting linknames here is a bad hack.
11137 archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
11138 # The linker will automatically build a .lib file if we build a DLL.
11139 old_archive_from_new_cmds='true'
11140 # FIXME: Should let the user specify the lib program.
11141 old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
11142 enable_shared_with_static_runtimes=yes
11143 ;;
11144 esac
1052411145 ;;
1052511146
1052611147 darwin* | rhapsody*)
1058511206
1058611207 # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
1058711208 freebsd* | dragonfly*)
10588 archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
11209 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
1058911210 hardcode_libdir_flag_spec='-R$libdir'
1059011211 hardcode_direct=yes
1059111212 hardcode_shlibpath_var=no
1059311214
1059411215 hpux9*)
1059511216 if test "$GCC" = yes; then
10596 archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
11217 archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
1059711218 else
1059811219 archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
1059911220 fi
1060911230
1061011231 hpux10*)
1061111232 if test "$GCC" = yes && test "$with_gnu_ld" = no; then
10612 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
11233 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
1061311234 else
1061411235 archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
1061511236 fi
1063311254 archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
1063411255 ;;
1063511256 ia64*)
10636 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
11257 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
1063711258 ;;
1063811259 *)
10639 archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
11260 archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
1064011261 ;;
1064111262 esac
1064211263 else
1065311274 # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
1065411275 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
1065511276 $as_echo_n "checking if $CC understands -b... " >&6; }
10656 if test "${lt_cv_prog_compiler__b+set}" = set; then :
11277 if ${lt_cv_prog_compiler__b+:} false; then :
1065711278 $as_echo_n "(cached) " >&6
1065811279 else
1065911280 lt_cv_prog_compiler__b=no
1071511336
1071611337 irix5* | irix6* | nonstopux*)
1071711338 if test "$GCC" = yes; then
10718 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
11339 archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
1071911340 # Try to use the -exported_symbol ld option, if it does not
1072011341 # work, assume that -exports_file does not work either and
1072111342 # implicitly export all symbols.
10722 save_LDFLAGS="$LDFLAGS"
10723 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
10724 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
11343 # This should be the same for all languages, so no per-tag cache variable.
11344 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
11345 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
11346 if ${lt_cv_irix_exported_symbol+:} false; then :
11347 $as_echo_n "(cached) " >&6
11348 else
11349 save_LDFLAGS="$LDFLAGS"
11350 LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
11351 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1072511352 /* end confdefs.h. */
10726 int foo(void) {}
11353 int foo (void) { return 0; }
1072711354 _ACEOF
1072811355 if ac_fn_c_try_link "$LINENO"; then :
10729 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
10730
11356 lt_cv_irix_exported_symbol=yes
11357 else
11358 lt_cv_irix_exported_symbol=no
1073111359 fi
1073211360 rm -f core conftest.err conftest.$ac_objext \
1073311361 conftest$ac_exeext conftest.$ac_ext
10734 LDFLAGS="$save_LDFLAGS"
11362 LDFLAGS="$save_LDFLAGS"
11363 fi
11364 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
11365 $as_echo "$lt_cv_irix_exported_symbol" >&6; }
11366 if test "$lt_cv_irix_exported_symbol" = yes; then
11367 archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
11368 fi
1073511369 else
1073611370 archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
1073711371 archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
1081611450 osf4* | osf5*) # as osf3* with the addition of -msym flag
1081711451 if test "$GCC" = yes; then
1081811452 allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
10819 archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
11453 archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
1082011454 hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
1082111455 else
1082211456 allow_undefined_flag=' -expect_unresolved \*'
1083511469 no_undefined_flag=' -z defs'
1083611470 if test "$GCC" = yes; then
1083711471 wlarc='${wl}'
10838 archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
11472 archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
1083911473 archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
10840 $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
11474 $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
1084111475 else
1084211476 case `$CC -V 2>&1` in
1084311477 *"Compilers 5.0"*)
1102511659 # to ld, don't add -lc before -lgcc.
1102611660 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
1102711661 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
11028 if test "${lt_cv_archive_cmds_need_lc+set}" = set; then :
11662 if ${lt_cv_archive_cmds_need_lc+:} false; then :
1102911663 $as_echo_n "(cached) " >&6
1103011664 else
1103111665 $RM conftest*
1141312047 need_version=no
1141412048 need_lib_prefix=no
1141512049
11416 case $GCC,$host_os in
11417 yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
12050 case $GCC,$cc_basename in
12051 yes,*)
12052 # gcc
1141812053 library_names_spec='$libname.dll.a'
1141912054 # DLL is installed to $(libdir)/../bin by postinstall_cmds
1142012055 postinstall_cmds='base_file=`basename \${file}`~
1144712082 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
1144812083 ;;
1144912084 esac
12085 dynamic_linker='Win32 ld.exe'
1145012086 ;;
1145112087
12088 *,cl*)
12089 # Native MSVC
12090 libname_spec='$name'
12091 soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
12092 library_names_spec='${libname}.dll.lib'
12093
12094 case $build_os in
12095 mingw*)
12096 sys_lib_search_path_spec=
12097 lt_save_ifs=$IFS
12098 IFS=';'
12099 for lt_path in $LIB
12100 do
12101 IFS=$lt_save_ifs
12102 # Let DOS variable expansion print the short 8.3 style file name.
12103 lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
12104 sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
12105 done
12106 IFS=$lt_save_ifs
12107 # Convert to MSYS style.
12108 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
12109 ;;
12110 cygwin*)
12111 # Convert to unix form, then to dos form, then back to unix form
12112 # but this time dos style (no spaces!) so that the unix form looks
12113 # like /cygdrive/c/PROGRA~1:/cygdr...
12114 sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
12115 sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
12116 sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
12117 ;;
12118 *)
12119 sys_lib_search_path_spec="$LIB"
12120 if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
12121 # It is most probably a Windows format PATH.
12122 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
12123 else
12124 sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
12125 fi
12126 # FIXME: find the short name or the path components, as spaces are
12127 # common. (e.g. "Program Files" -> "PROGRA~1")
12128 ;;
12129 esac
12130
12131 # DLL is installed to $(libdir)/../bin by postinstall_cmds
12132 postinstall_cmds='base_file=`basename \${file}`~
12133 dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
12134 dldir=$destdir/`dirname \$dlpath`~
12135 test -d \$dldir || mkdir -p \$dldir~
12136 $install_prog $dir/$dlname \$dldir/$dlname'
12137 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
12138 dlpath=$dir/\$dldll~
12139 $RM \$dlpath'
12140 shlibpath_overrides_runpath=yes
12141 dynamic_linker='Win32 link.exe'
12142 ;;
12143
1145212144 *)
12145 # Assume MSVC wrapper
1145312146 library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
12147 dynamic_linker='Win32 ld.exe'
1145412148 ;;
1145512149 esac
11456 dynamic_linker='Win32 ld.exe'
1145712150 # FIXME: first we should search . and the directory the executable is in
1145812151 shlibpath_var=PATH
1145912152 ;;
1166712360 shlibpath_overrides_runpath=no
1166812361
1166912362 # Some binutils ld are patched to set DT_RUNPATH
11670 if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then :
12363 if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
1167112364 $as_echo_n "(cached) " >&6
1167212365 else
1167312366 lt_cv_shlibpath_overrides_runpath=no
1209112784 # if libdl is installed we need to link against it
1209212785 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1209312786 $as_echo_n "checking for dlopen in -ldl... " >&6; }
12094 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
12787 if ${ac_cv_lib_dl_dlopen+:} false; then :
1209512788 $as_echo_n "(cached) " >&6
1209612789 else
1209712790 ac_check_lib_save_LIBS=$LIBS
1212512818 fi
1212612819 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1212712820 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
12128 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
12821 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
1212912822 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1213012823 else
1213112824
1213912832
1214012833 *)
1214112834 ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
12142 if test "x$ac_cv_func_shl_load" = x""yes; then :
12835 if test "x$ac_cv_func_shl_load" = xyes; then :
1214312836 lt_cv_dlopen="shl_load"
1214412837 else
1214512838 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
1214612839 $as_echo_n "checking for shl_load in -ldld... " >&6; }
12147 if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
12840 if ${ac_cv_lib_dld_shl_load+:} false; then :
1214812841 $as_echo_n "(cached) " >&6
1214912842 else
1215012843 ac_check_lib_save_LIBS=$LIBS
1217812871 fi
1217912872 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
1218012873 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
12181 if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
12874 if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
1218212875 lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
1218312876 else
1218412877 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
12185 if test "x$ac_cv_func_dlopen" = x""yes; then :
12878 if test "x$ac_cv_func_dlopen" = xyes; then :
1218612879 lt_cv_dlopen="dlopen"
1218712880 else
1218812881 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
1218912882 $as_echo_n "checking for dlopen in -ldl... " >&6; }
12190 if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
12883 if ${ac_cv_lib_dl_dlopen+:} false; then :
1219112884 $as_echo_n "(cached) " >&6
1219212885 else
1219312886 ac_check_lib_save_LIBS=$LIBS
1222112914 fi
1222212915 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
1222312916 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
12224 if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
12917 if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
1222512918 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
1222612919 else
1222712920 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
1222812921 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
12229 if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
12922 if ${ac_cv_lib_svld_dlopen+:} false; then :
1223012923 $as_echo_n "(cached) " >&6
1223112924 else
1223212925 ac_check_lib_save_LIBS=$LIBS
1226012953 fi
1226112954 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
1226212955 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
12263 if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
12956 if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
1226412957 lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
1226512958 else
1226612959 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
1226712960 $as_echo_n "checking for dld_link in -ldld... " >&6; }
12268 if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
12961 if ${ac_cv_lib_dld_dld_link+:} false; then :
1226912962 $as_echo_n "(cached) " >&6
1227012963 else
1227112964 ac_check_lib_save_LIBS=$LIBS
1229912992 fi
1230012993 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
1230112994 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
12302 if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
12995 if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
1230312996 lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
1230412997 fi
1230512998
1234013033
1234113034 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
1234213035 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
12343 if test "${lt_cv_dlopen_self+set}" = set; then :
13036 if ${lt_cv_dlopen_self+:} false; then :
1234413037 $as_echo_n "(cached) " >&6
1234513038 else
1234613039 if test "$cross_compiling" = yes; then :
1239313086 /* When -fvisbility=hidden is used, assume the code has been annotated
1239413087 correspondingly for the symbols needed. */
1239513088 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
12396 void fnord () __attribute__((visibility("default")));
13089 int fnord () __attribute__((visibility("default")));
1239713090 #endif
1239813091
12399 void fnord () { int i=42; }
13092 int fnord () { return 42; }
1240013093 int main ()
1240113094 {
1240213095 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1244613139 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
1244713140 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
1244813141 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
12449 if test "${lt_cv_dlopen_self_static+set}" = set; then :
13142 if ${lt_cv_dlopen_self_static+:} false; then :
1245013143 $as_echo_n "(cached) " >&6
1245113144 else
1245213145 if test "$cross_compiling" = yes; then :
1249913192 /* When -fvisbility=hidden is used, assume the code has been annotated
1250013193 correspondingly for the symbols needed. */
1250113194 #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
12502 void fnord () __attribute__((visibility("default")));
13195 int fnord () __attribute__((visibility("default")));
1250313196 #endif
1250413197
12505 void fnord () { int i=42; }
13198 int fnord () { return 42; }
1250613199 int main ()
1250713200 {
1250813201 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
1271313406 # check for types.
1271413407 # Using own tests for int64* because autoconf builtin only give 32bit.
1271513408 ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
12716 if test "x$ac_cv_type_int8_t" = x""yes; then :
13409 if test "x$ac_cv_type_int8_t" = xyes; then :
1271713410
1271813411 else
1271913412
1272413417 fi
1272513418
1272613419 ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
12727 if test "x$ac_cv_type_int16_t" = x""yes; then :
13420 if test "x$ac_cv_type_int16_t" = xyes; then :
1272813421
1272913422 else
1273013423
1273513428 fi
1273613429
1273713430 ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
12738 if test "x$ac_cv_type_int32_t" = x""yes; then :
13431 if test "x$ac_cv_type_int32_t" = xyes; then :
1273913432
1274013433 else
1274113434
1274613439 fi
1274713440
1274813441 ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
12749 if test "x$ac_cv_type_int64_t" = x""yes; then :
13442 if test "x$ac_cv_type_int64_t" = xyes; then :
1275013443
1275113444 else
1275213445
1275713450 fi
1275813451
1275913452 ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
12760 if test "x$ac_cv_type_uint8_t" = x""yes; then :
13453 if test "x$ac_cv_type_uint8_t" = xyes; then :
1276113454
1276213455 else
1276313456
1276813461 fi
1276913462
1277013463 ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
12771 if test "x$ac_cv_type_uint16_t" = x""yes; then :
13464 if test "x$ac_cv_type_uint16_t" = xyes; then :
1277213465
1277313466 else
1277413467
1277913472 fi
1278013473
1278113474 ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
12782 if test "x$ac_cv_type_uint32_t" = x""yes; then :
13475 if test "x$ac_cv_type_uint32_t" = xyes; then :
1278313476
1278413477 else
1278513478
1279013483 fi
1279113484
1279213485 ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
12793 if test "x$ac_cv_type_uint64_t" = x""yes; then :
13486 if test "x$ac_cv_type_uint64_t" = xyes; then :
1279413487
1279513488 else
1279613489
1280113494 fi
1280213495
1280313496 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
12804 if test "x$ac_cv_type_size_t" = x""yes; then :
13497 if test "x$ac_cv_type_size_t" = xyes; then :
1280513498
1280613499 else
1280713500
1281213505 fi
1281313506
1281413507 ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
12815 if test "x$ac_cv_type_ssize_t" = x""yes; then :
13508 if test "x$ac_cv_type_ssize_t" = xyes; then :
1281613509
1281713510 else
1281813511
1282413517
1282513518 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
1282613519 $as_echo_n "checking for uid_t in sys/types.h... " >&6; }
12827 if test "${ac_cv_type_uid_t+set}" = set; then :
13520 if ${ac_cv_type_uid_t+:} false; then :
1282813521 $as_echo_n "(cached) " >&6
1282913522 else
1283013523 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1285313546 fi
1285413547
1285513548 ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
12856 if test "x$ac_cv_type_pid_t" = x""yes; then :
13549 if test "x$ac_cv_type_pid_t" = xyes; then :
1285713550
1285813551 else
1285913552
1286413557 fi
1286513558
1286613559 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
12867 if test "x$ac_cv_type_off_t" = x""yes; then :
13560 if test "x$ac_cv_type_off_t" = xyes; then :
1286813561
1286913562 else
1287013563
1288113574 #endif
1288213575
1288313576 "
12884 if test "x$ac_cv_type_u_char" = x""yes; then :
13577 if test "x$ac_cv_type_u_char" = xyes; then :
1288513578
1288613579 else
1288713580
1289613589 #endif
1289713590
1289813591 "
12899 if test "x$ac_cv_type_rlim_t" = x""yes; then :
13592 if test "x$ac_cv_type_rlim_t" = xyes; then :
1290013593
1290113594 else
1290213595
1291513608 #endif
1291613609
1291713610 "
12918 if test "x$ac_cv_type_socklen_t" = x""yes; then :
13611 if test "x$ac_cv_type_socklen_t" = xyes; then :
1291913612
1292013613 else
1292113614
1293313626 #endif
1293413627
1293513628 "
12936 if test "x$ac_cv_type_in_addr_t" = x""yes; then :
13629 if test "x$ac_cv_type_in_addr_t" = xyes; then :
1293713630
1293813631 else
1293913632
1295113644 #endif
1295213645
1295313646 "
12954 if test "x$ac_cv_type_in_port_t" = x""yes; then :
13647 if test "x$ac_cv_type_in_port_t" = xyes; then :
1295513648
1295613649 else
1295713650
1303113724 # check to see if libraries are needed for these functions.
1303213725 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
1303313726 $as_echo_n "checking for library containing inet_pton... " >&6; }
13034 if test "${ac_cv_search_inet_pton+set}" = set; then :
13727 if ${ac_cv_search_inet_pton+:} false; then :
1303513728 $as_echo_n "(cached) " >&6
1303613729 else
1303713730 ac_func_search_save_LIBS=$LIBS
1306513758 fi
1306613759 rm -f core conftest.err conftest.$ac_objext \
1306713760 conftest$ac_exeext
13068 if test "${ac_cv_search_inet_pton+set}" = set; then :
13761 if ${ac_cv_search_inet_pton+:} false; then :
1306913762 break
1307013763 fi
1307113764 done
13072 if test "${ac_cv_search_inet_pton+set}" = set; then :
13765 if ${ac_cv_search_inet_pton+:} false; then :
1307313766
1307413767 else
1307513768 ac_cv_search_inet_pton=no
1308713780
1308813781 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
1308913782 $as_echo_n "checking for library containing socket... " >&6; }
13090 if test "${ac_cv_search_socket+set}" = set; then :
13783 if ${ac_cv_search_socket+:} false; then :
1309113784 $as_echo_n "(cached) " >&6
1309213785 else
1309313786 ac_func_search_save_LIBS=$LIBS
1312113814 fi
1312213815 rm -f core conftest.err conftest.$ac_objext \
1312313816 conftest$ac_exeext
13124 if test "${ac_cv_search_socket+set}" = set; then :
13817 if ${ac_cv_search_socket+:} false; then :
1312513818 break
1312613819 fi
1312713820 done
13128 if test "${ac_cv_search_socket+set}" = set; then :
13821 if ${ac_cv_search_socket+:} false; then :
1312913822
1313013823 else
1313113824 ac_cv_search_socket=no
1314213835 fi
1314313836
1314413837
13838 # check wether strptime also works
13839
1314513840 # check some functions of the OS before linking libs (while still runnable).
1314613841 for ac_header in unistd.h
1314713842 do :
1314813843 ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
13149 if test "x$ac_cv_header_unistd_h" = x""yes; then :
13844 if test "x$ac_cv_header_unistd_h" = xyes; then :
1315013845 cat >>confdefs.h <<_ACEOF
1315113846 #define HAVE_UNISTD_H 1
1315213847 _ACEOF
1315713852
1315813853 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
1315913854 $as_echo_n "checking for working chown... " >&6; }
13160 if test "${ac_cv_func_chown_works+set}" = set; then :
13855 if ${ac_cv_func_chown_works+:} false; then :
1316113856 $as_echo_n "(cached) " >&6
1316213857 else
1316313858 if test "$cross_compiling" = yes; then :
1321113906 for ac_header in vfork.h
1321213907 do :
1321313908 ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
13214 if test "x$ac_cv_header_vfork_h" = x""yes; then :
13909 if test "x$ac_cv_header_vfork_h" = xyes; then :
1321513910 cat >>confdefs.h <<_ACEOF
1321613911 #define HAVE_VFORK_H 1
1321713912 _ACEOF
1323513930 if test "x$ac_cv_func_fork" = xyes; then
1323613931 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
1323713932 $as_echo_n "checking for working fork... " >&6; }
13238 if test "${ac_cv_func_fork_works+set}" = set; then :
13933 if ${ac_cv_func_fork_works+:} false; then :
1323913934 $as_echo_n "(cached) " >&6
1324013935 else
1324113936 if test "$cross_compiling" = yes; then :
1328813983 if test "x$ac_cv_func_vfork" = xyes; then
1328913984 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
1329013985 $as_echo_n "checking for working vfork... " >&6; }
13291 if test "${ac_cv_func_vfork_works+set}" = set; then :
13986 if ${ac_cv_func_vfork_works+:} false; then :
1329213987 $as_echo_n "(cached) " >&6
1329313988 else
1329413989 if test "$cross_compiling" = yes; then :
1342314118
1342414119 { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
1342514120 $as_echo_n "checking return type of signal handlers... " >&6; }
13426 if test "${ac_cv_type_signal+set}" = set; then :
14121 if ${ac_cv_type_signal+:} false; then :
1342714122 $as_echo_n "(cached) " >&6
1342814123 else
1342914124 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
1345614151
1345714152 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
1345814153 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
13459 if test "${ac_cv_sys_largefile_source+set}" = set; then :
14154 if ${ac_cv_sys_largefile_source+:} false; then :
1346014155 $as_echo_n "(cached) " >&6
1346114156 else
1346214157 while :; do
1353214227
1353314228 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
1353414229 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
13535 if test "${ac_cv_sys_largefile_CC+set}" = set; then :
14230 if ${ac_cv_sys_largefile_CC+:} false; then :
1353614231 $as_echo_n "(cached) " >&6
1353714232 else
1353814233 ac_cv_sys_largefile_CC=no
1358314278
1358414279 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
1358514280 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
13586 if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
14281 if ${ac_cv_sys_file_offset_bits+:} false; then :
1358714282 $as_echo_n "(cached) " >&6
1358814283 else
1358914284 while :; do
1365214347 if test $ac_cv_sys_file_offset_bits = unknown; then
1365314348 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
1365414349 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
13655 if test "${ac_cv_sys_large_files+set}" = set; then :
14350 if ${ac_cv_sys_large_files+:} false; then :
1365614351 $as_echo_n "(cached) " >&6
1365714352 else
1365814353 while :; do
1372714422 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC" >&5
1372814423 $as_echo_n "checking whether we need -D_LARGEFILE_SOURCE=1 as a flag for $CC... " >&6; }
1372914424 cache=`$as_echo "-D_LARGEFILE_SOURCE=1" | $as_tr_sh`
13730 if eval "test \"\${cv_prog_cc_flag_needed_$cache+set}\"" = set; then :
14425 if eval \${cv_prog_cc_flag_needed_$cache+:} false; then :
1373114426 $as_echo_n "(cached) " >&6
1373214427 else
1373314428
1398514680 fi
1398614681 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1398714682
14683 for ac_func in strptime
14684 do :
14685 ac_fn_c_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
14686 if test "x$ac_cv_func_strptime" = xyes; then :
14687 cat >>confdefs.h <<_ACEOF
14688 #define HAVE_STRPTIME 1
14689 _ACEOF
14690
14691 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
14692 $as_echo_n "checking whether strptime works... " >&6; }
14693 if test c${cross_compiling} = cno; then
14694 if test "$cross_compiling" = yes; then :
14695 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
14696 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
14697 as_fn_error $? "cannot run test program while cross compiling
14698 See \`config.log' for more details" "$LINENO" 5; }
14699 else
14700 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14701 /* end confdefs.h. */
14702
14703 #define _XOPEN_SOURCE
14704 #include <time.h>
14705 int main(void) { struct tm tm; char *res;
14706 res = strptime("2010-07-15T00:00:00+00:00", "%t%Y%t-%t%m%t-%t%d%tT%t%H%t:%t%M%t:%t%S%t", &tm);
14707 if (!res) return 2;
14708 res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
14709 if (!res) return 1; return 0; }
14710
14711 _ACEOF
14712 if ac_fn_c_try_run "$LINENO"; then :
14713 eval "ac_cv_c_strptime_works=yes"
14714 else
14715 eval "ac_cv_c_strptime_works=no"
14716 fi
14717 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
14718 conftest.$ac_objext conftest.beam conftest.$ac_ext
14719 fi
14720
14721 else
14722 eval "ac_cv_c_strptime_works=maybe"
14723 fi
14724 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
14725 $as_echo "$ac_cv_c_strptime_works" >&6; }
14726 if test $ac_cv_c_strptime_works = no; then
14727 case " $LIBOBJS " in
14728 *" strptime.$ac_objext "* ) ;;
14729 *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
14730 ;;
14731 esac
14732
14733 else
14734
14735 cat >>confdefs.h <<_ACEOF
14736 #define STRPTIME_WORKS 1
14737 _ACEOF
14738
14739 fi
14740
14741 else
14742 case " $LIBOBJS " in
14743 *" strptime.$ac_objext "* ) ;;
14744 *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
14745 ;;
14746 esac
14747
14748 fi
14749 done
14750
14751
14752 # set memory allocation checking if requested
14753 # Check whether --enable-alloc-checks was given.
14754 if test "${enable_alloc_checks+set}" = set; then :
14755 enableval=$enable_alloc_checks;
14756 fi
14757
14758 # Check whether --enable-alloc-lite was given.
14759 if test "${enable_alloc_lite+set}" = set; then :
14760 enableval=$enable_alloc_lite;
14761 fi
14762
14763 # Check whether --enable-alloc-nonregional was given.
14764 if test "${enable_alloc_nonregional+set}" = set; then :
14765 enableval=$enable_alloc_nonregional;
14766 fi
14767
14768 if test x_$enable_alloc_nonregional = x_yes; then
14769
14770 $as_echo "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
14771
14772 fi
14773 if test x_$enable_alloc_checks = x_yes; then
14774
14775 $as_echo "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
14776
14777 else
14778 if test x_$enable_alloc_lite = x_yes; then
14779
14780 $as_echo "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
14781
14782 else
14783
14784 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
14785 $as_echo_n "checking for GNU libc compatible malloc... " >&6; }
14786 if test "$cross_compiling" = yes; then :
14787 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (crosscompile)" >&5
14788 $as_echo "no (crosscompile)" >&6; }
14789 case " $LIBOBJS " in
14790 *" malloc.$ac_objext "* ) ;;
14791 *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
14792 ;;
14793 esac
14794
14795
14796 cat >>confdefs.h <<_ACEOF
14797 #define malloc rpl_malloc_unbound
14798 _ACEOF
14799
14800 else
14801 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
14802 /* end confdefs.h. */
14803 #if defined STDC_HEADERS || defined HAVE_STDLIB_H
14804 #include <stdlib.h>
14805 #else
14806 char *malloc ();
14807 #endif
14808
14809 int
14810 main ()
14811 {
14812 if(malloc(0) != 0) return 1;
14813 ;
14814 return 0;
14815 }
14816
14817 _ACEOF
14818 if ac_fn_c_try_run "$LINENO"; then :
14819 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
14820 $as_echo "no" >&6; }
14821 case " $LIBOBJS " in
14822 *" malloc.$ac_objext "* ) ;;
14823 *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
14824 ;;
14825 esac
14826
14827
14828 cat >>confdefs.h <<_ACEOF
14829 #define malloc rpl_malloc_unbound
14830 _ACEOF
14831
14832 else
14833 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
14834 $as_echo "yes" >&6; }
14835
14836 $as_echo "#define HAVE_MALLOC 1" >>confdefs.h
14837
14838 fi
14839 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
14840 conftest.$ac_objext conftest.beam conftest.$ac_ext
14841 fi
14842
14843
14844 fi
14845 fi
1398814846
1398914847 # check windows threads (we use them, not pthreads, on windows).
1399014848 if test "$on_mingw" = "yes"; then
1399314851 do :
1399414852 ac_fn_c_check_header_compile "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default
1399514853 "
13996 if test "x$ac_cv_header_windows_h" = x""yes; then :
14854 if test "x$ac_cv_header_windows_h" = xyes; then :
1399714855 cat >>confdefs.h <<_ACEOF
1399814856 #define HAVE_WINDOWS_H 1
1399914857 _ACEOF
1417715035 set dummy pthread-config; ac_word=$2
1417815036 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1417915037 $as_echo_n "checking for $ac_word... " >&6; }
14180 if test "${ac_cv_prog_acx_pthread_config+set}" = set; then :
15038 if ${ac_cv_prog_acx_pthread_config+:} false; then :
1418115039 $as_echo_n "(cached) " >&6
1418215040 else
1418315041 if test -n "$acx_pthread_config"; then
1433315191 set dummy $ac_prog; ac_word=$2
1433415192 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1433515193 $as_echo_n "checking for $ac_word... " >&6; }
14336 if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then :
15194 if ${ac_cv_prog_PTHREAD_CC+:} false; then :
1433715195 $as_echo_n "(cached) " >&6
1433815196 else
1433915197 if test -n "$PTHREAD_CC"; then
1439315251 ub_have_pthreads=yes
1439415252 ac_fn_c_check_type "$LINENO" "pthread_spinlock_t" "ac_cv_type_pthread_spinlock_t" "#include <pthread.h>
1439515253 "
14396 if test "x$ac_cv_type_pthread_spinlock_t" = x""yes; then :
15254 if test "x$ac_cv_type_pthread_spinlock_t" = xyes; then :
1439715255
1439815256 cat >>confdefs.h <<_ACEOF
1439915257 #define HAVE_PTHREAD_SPINLOCK_T 1
1440315261 fi
1440415262 ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include <pthread.h>
1440515263 "
14406 if test "x$ac_cv_type_pthread_rwlock_t" = x""yes; then :
15264 if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then :
1440715265
1440815266 cat >>confdefs.h <<_ACEOF
1440915267 #define HAVE_PTHREAD_RWLOCK_T 1
1444415302 else
1444515303 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing thr_create" >&5
1444615304 $as_echo_n "checking for library containing thr_create... " >&6; }
14447 if test "${ac_cv_search_thr_create+set}" = set; then :
15305 if ${ac_cv_search_thr_create+:} false; then :
1444815306 $as_echo_n "(cached) " >&6
1444915307 else
1445015308 ac_func_search_save_LIBS=$LIBS
1447815336 fi
1447915337 rm -f core conftest.err conftest.$ac_objext \
1448015338 conftest$ac_exeext
14481 if test "${ac_cv_search_thr_create+set}" = set; then :
15339 if ${ac_cv_search_thr_create+:} false; then :
1448215340 break
1448315341 fi
1448415342 done
14485 if test "${ac_cv_search_thr_create+set}" = set; then :
15343 if ${ac_cv_search_thr_create+:} false; then :
1448615344
1448715345 else
1448815346 ac_cv_search_thr_create=no
1450515363 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mt" >&5
1450615364 $as_echo_n "checking whether $CC supports -mt... " >&6; }
1450715365 cache=`echo mt | sed 'y%.=/+-%___p_%'`
14508 if eval "test \"\${cv_prog_cc_flag_$cache+set}\"" = set; then :
15366 if eval \${cv_prog_cc_flag_$cache+:} false; then :
1450915367 $as_echo_n "(cached) " >&6
1451015368 else
1451115369
1459215450 set dummy python$PYTHON_VERSION; ac_word=$2
1459315451 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1459415452 $as_echo_n "checking for $ac_word... " >&6; }
14595 if test "${ac_cv_path_PYTHON+set}" = set; then :
15453 if ${ac_cv_path_PYTHON+:} false; then :
1459615454 $as_echo_n "(cached) " >&6
1459715455 else
1459815456 case $PYTHON in
1488915747 set dummy swig; ac_word=$2
1489015748 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1489115749 $as_echo_n "checking for $ac_word... " >&6; }
14892 if test "${ac_cv_path_SWIG+set}" = set; then :
15750 if ${ac_cv_path_SWIG+:} false; then :
1489315751 $as_echo_n "(cached) " >&6
1489415752 else
1489515753 case $SWIG in
1501015868
1501115869 WITH_PYTHONMODULE=yes
1501215870
15871 PYTHONMOD_OBJ="pythonmod.lo pythonmod_utils.lo"
15872
15873 PYTHONMOD_INSTALL=pythonmod-install
15874
15875 PYTHONMOD_UNINSTALL=pythonmod-uninstall
15876
1501315877 fi
1501415878
1501515879 # Declare PyUnbound
1501815882 $as_echo "#define WITH_PYUNBOUND 1" >>confdefs.h
1501915883
1502015884 WITH_PYUNBOUND=yes
15885
15886 PYUNBOUND_OBJ="libunbound_wrap.lo"
15887
15888 PYUNBOUND_TARGET="_unbound.la"
15889
15890 PYUNBOUND_INSTALL=pyunbound-install
15891
15892 PYUNBOUND_UNINSTALL=pyunbound-uninstall
1502115893
1502215894 fi
1502315895 fi
1502815900 ub_with_pythonmod=no
1502915901 fi
1503015902 fi
15903
15904 if test "`uname`" = "NetBSD"; then
15905 NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_'
15906
15907 fi
15908 CONFIG_DATE=`date +%Y%m%d`
15909
1503115910
1503215911 # Checks for libraries.
1503315912
1520216081 BAKLIBS="$LIBS"
1520316082 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
1520416083 $as_echo_n "checking for library containing dlopen... " >&6; }
15205 if test "${ac_cv_search_dlopen+set}" = set; then :
16084 if ${ac_cv_search_dlopen+:} false; then :
1520616085 $as_echo_n "(cached) " >&6
1520716086 else
1520816087 ac_func_search_save_LIBS=$LIBS
1523616115 fi
1523716116 rm -f core conftest.err conftest.$ac_objext \
1523816117 conftest$ac_exeext
15239 if test "${ac_cv_search_dlopen+set}" = set; then :
16118 if ${ac_cv_search_dlopen+:} false; then :
1524016119 break
1524116120 fi
1524216121 done
15243 if test "${ac_cv_search_dlopen+set}" = set; then :
16122 if ${ac_cv_search_dlopen+:} false; then :
1524416123
1524516124 else
1524616125 ac_cv_search_dlopen=no
1526416143 do :
1526516144 ac_fn_c_check_header_compile "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default
1526616145 "
15267 if test "x$ac_cv_header_openssl_ssl_h" = x""yes; then :
16146 if test "x$ac_cv_header_openssl_ssl_h" = xyes; then :
1526816147 cat >>confdefs.h <<_ACEOF
1526916148 #define HAVE_OPENSSL_SSL_H 1
1527016149 _ACEOF
1527716156 do :
1527816157 ac_fn_c_check_header_compile "$LINENO" "openssl/err.h" "ac_cv_header_openssl_err_h" "$ac_includes_default
1527916158 "
15280 if test "x$ac_cv_header_openssl_err_h" = x""yes; then :
16159 if test "x$ac_cv_header_openssl_err_h" = xyes; then :
1528116160 cat >>confdefs.h <<_ACEOF
1528216161 #define HAVE_OPENSSL_ERR_H 1
1528316162 _ACEOF
1529016169 do :
1529116170 ac_fn_c_check_header_compile "$LINENO" "openssl/rand.h" "ac_cv_header_openssl_rand_h" "$ac_includes_default
1529216171 "
15293 if test "x$ac_cv_header_openssl_rand_h" = x""yes; then :
16172 if test "x$ac_cv_header_openssl_rand_h" = xyes; then :
1529416173 cat >>confdefs.h <<_ACEOF
1529516174 #define HAVE_OPENSSL_RAND_H 1
1529616175 _ACEOF
1533816217 LIBS="$BAKLIBS"
1533916218 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
1534016219 $as_echo_n "checking for library containing dlopen... " >&6; }
15341 if test "${ac_cv_search_dlopen+set}" = set; then :
16220 if ${ac_cv_search_dlopen+:} false; then :
1534216221 $as_echo_n "(cached) " >&6
1534316222 else
1534416223 ac_func_search_save_LIBS=$LIBS
1537216251 fi
1537316252 rm -f core conftest.err conftest.$ac_objext \
1537416253 conftest$ac_exeext
15375 if test "${ac_cv_search_dlopen+set}" = set; then :
16254 if ${ac_cv_search_dlopen+:} false; then :
1537616255 break
1537716256 fi
1537816257 done
15379 if test "${ac_cv_search_dlopen+set}" = set; then :
16258 if ${ac_cv_search_dlopen+:} false; then :
1538016259
1538116260 else
1538216261 ac_cv_search_dlopen=no
1540016279 do :
1540116280 ac_fn_c_check_header_compile "$LINENO" "openssl/conf.h" "ac_cv_header_openssl_conf_h" "$ac_includes_default
1540216281 "
15403 if test "x$ac_cv_header_openssl_conf_h" = x""yes; then :
16282 if test "x$ac_cv_header_openssl_conf_h" = xyes; then :
1540416283 cat >>confdefs.h <<_ACEOF
1540516284 #define HAVE_OPENSSL_CONF_H 1
1540616285 _ACEOF
1541316292 do :
1541416293 ac_fn_c_check_header_compile "$LINENO" "openssl/engine.h" "ac_cv_header_openssl_engine_h" "$ac_includes_default
1541516294 "
15416 if test "x$ac_cv_header_openssl_engine_h" = x""yes; then :
16295 if test "x$ac_cv_header_openssl_engine_h" = xyes; then :
1541716296 cat >>confdefs.h <<_ACEOF
1541816297 #define HAVE_OPENSSL_ENGINE_H 1
1541916298 _ACEOF
1545516334 #include <openssl/evp.h>
1545616335
1545716336 "
15458 if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = x""yes; then :
16337 if test "x$ac_cv_have_decl_SSL_COMP_get_compression_methods" = xyes; then :
1545916338 ac_have_decl=1
1546016339 else
1546116340 ac_have_decl=0
1548516364 #include <openssl/evp.h>
1548616365
1548716366 "
15488 if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = x""yes; then :
16367 if test "x$ac_cv_have_decl_sk_SSL_COMP_pop_free" = xyes; then :
1548916368 ac_have_decl=1
1549016369 else
1549116370 ac_have_decl=0
1551016389
1551116390 ;;
1551216391 esac
16392
16393 # check wether gost also works
1551316394
1551416395 # Check whether --enable-gost was given.
1551516396 if test "${enable_gost+set}" = set; then :
1552216403 ;;
1552316404 *)
1552416405 ac_fn_c_check_func "$LINENO" "EVP_PKEY_set_type_str" "ac_cv_func_EVP_PKEY_set_type_str"
15525 if test "x$ac_cv_func_EVP_PKEY_set_type_str" = x""yes; then :
16406 if test "x$ac_cv_func_EVP_PKEY_set_type_str" = xyes; then :
1552616407 :
1552716408 else
1552816409 as_fn_error $? "OpenSSL 1.0.0 is needed for GOST support" "$LINENO" 5
1552916410 fi
1553016411
1553116412 ac_fn_c_check_func "$LINENO" "EC_KEY_new" "ac_cv_func_EC_KEY_new"
15532 if test "x$ac_cv_func_EC_KEY_new" = x""yes; then :
16413 if test "x$ac_cv_func_EC_KEY_new" = xyes; then :
1553316414
1553416415 else
1553516416 as_fn_error $? "OpenSSL does not support ECC, needed for GOST support" "$LINENO" 5
1553616417 fi
1553716418
15538 use_gost="yes"
16419
16420 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if GOST works" >&5
16421 $as_echo_n "checking if GOST works... " >&6; }
16422 if test c${cross_compiling} = cno; then
16423 BAKCFLAGS="$CFLAGS"
16424 if test -n "$ssldir"; then
16425 CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
16426 fi
16427 if test "$cross_compiling" = yes; then :
16428 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
16429 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
16430 as_fn_error $? "cannot run test program while cross compiling
16431 See \`config.log' for more details" "$LINENO" 5; }
16432 else
16433 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16434 /* end confdefs.h. */
16435
16436 #include <string.h>
16437 #include <openssl/ssl.h>
16438 #include <openssl/evp.h>
16439 #include <openssl/engine.h>
16440 #include <openssl/conf.h>
16441 /* routine to load gost from ldns */
16442 int load_gost_id(void)
16443 {
16444 static int gost_id = 0;
16445 const EVP_PKEY_ASN1_METHOD* meth;
16446 ENGINE* e;
16447
16448 if(gost_id) return gost_id;
16449
16450 /* see if configuration loaded gost implementation from other engine*/
16451 meth = EVP_PKEY_asn1_find_str(NULL, "gost2001", -1);
16452 if(meth) {
16453 EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
16454 return gost_id;
16455 }
16456
16457 /* see if engine can be loaded already */
16458 e = ENGINE_by_id("gost");
16459 if(!e) {
16460 /* load it ourself, in case statically linked */
16461 ENGINE_load_builtin_engines();
16462 ENGINE_load_dynamic();
16463 e = ENGINE_by_id("gost");
16464 }
16465 if(!e) {
16466 /* no gost engine in openssl */
16467 return 0;
16468 }
16469 if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {
16470 ENGINE_finish(e);
16471 ENGINE_free(e);
16472 return 0;
16473 }
16474
16475 meth = EVP_PKEY_asn1_find_str(&e, "gost2001", -1);
16476 if(!meth) {
16477 /* algo not found */
16478 ENGINE_finish(e);
16479 ENGINE_free(e);
16480 return 0;
16481 }
16482 EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
16483 return gost_id;
16484 }
16485 int main(void) {
16486 EVP_MD_CTX* ctx;
16487 const EVP_MD* md;
16488 unsigned char digest[64]; /* its a 256-bit digest, so uses 32 bytes */
16489 const char* str = "Hello world";
16490 const unsigned char check[] = {
16491 0x40 , 0xed , 0xf8 , 0x56 , 0x5a , 0xc5 , 0x36 , 0xe1 ,
16492 0x33 , 0x7c , 0x7e , 0x87 , 0x62 , 0x1c , 0x42 , 0xe0 ,
16493 0x17 , 0x1b , 0x5e , 0xce , 0xa8 , 0x46 , 0x65 , 0x4d ,
16494 0x8d , 0x3e , 0x22 , 0x9b , 0xe1 , 0x30 , 0x19 , 0x9d
16495 };
16496 OPENSSL_config(NULL);
16497 (void)load_gost_id();
16498 md = EVP_get_digestbyname("md_gost94");
16499 if(!md) return 1;
16500 memset(digest, 0, sizeof(digest));
16501 ctx = EVP_MD_CTX_create();
16502 if(!ctx) return 2;
16503 if(!EVP_DigestInit_ex(ctx, md, NULL)) return 3;
16504 if(!EVP_DigestUpdate(ctx, str, 10)) return 4;
16505 if(!EVP_DigestFinal_ex(ctx, digest, NULL)) return 5;
16506 /* uncomment to see the hash calculated.
16507 {int i;
16508 for(i=0; i<32; i++)
16509 printf(" %2.2x", (int)digest[i]);
16510 printf("\n");}
16511 */
16512 if(memcmp(digest, check, sizeof(check)) != 0)
16513 return 6;
16514 return 0;
16515 }
16516
16517 _ACEOF
16518 if ac_fn_c_try_run "$LINENO"; then :
16519 eval "ac_cv_c_gost_works=yes"
16520 else
16521 eval "ac_cv_c_gost_works=no"
16522 fi
16523 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
16524 conftest.$ac_objext conftest.beam conftest.$ac_ext
16525 fi
16526
16527 CFLAGS="$BAKCFLAGS"
16528 else
16529 eval "ac_cv_c_gost_works=maybe"
16530 fi
16531 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_gost_works" >&5
16532 $as_echo "$ac_cv_c_gost_works" >&6; }
16533
16534 if test $ac_cv_c_gost_works != no; then
16535 use_gost="yes"
1553916536
1554016537 $as_echo "#define USE_GOST 1" >>confdefs.h
1554116538
16539 fi
1554216540 ;;
1554316541 esac
1554416542
1561016608 # check for library used by libevent after 1.3c
1561116609 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
1561216610 $as_echo_n "checking for library containing clock_gettime... " >&6; }
15613 if test "${ac_cv_search_clock_gettime+set}" = set; then :
16611 if ${ac_cv_search_clock_gettime+:} false; then :
1561416612 $as_echo_n "(cached) " >&6
1561516613 else
1561616614 ac_func_search_save_LIBS=$LIBS
1564416642 fi
1564516643 rm -f core conftest.err conftest.$ac_objext \
1564616644 conftest$ac_exeext
15647 if test "${ac_cv_search_clock_gettime+set}" = set; then :
16645 if ${ac_cv_search_clock_gettime+:} false; then :
1564816646 break
1564916647 fi
1565016648 done
15651 if test "${ac_cv_search_clock_gettime+set}" = set; then :
16649 if ${ac_cv_search_clock_gettime+:} false; then :
1565216650
1565316651 else
1565416652 ac_cv_search_clock_gettime=no
1567016668 do :
1567116669 ac_fn_c_check_header_compile "$LINENO" "event.h" "ac_cv_header_event_h" "$ac_includes_default
1567216670 "
15673 if test "x$ac_cv_header_event_h" = x""yes; then :
16671 if test "x$ac_cv_header_event_h" = xyes; then :
1567416672 cat >>confdefs.h <<_ACEOF
1567516673 #define HAVE_EVENT_H 1
1567616674 _ACEOF
1568316681 #include <event.h>
1568416682
1568516683 "
15686 if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = x""yes; then :
16684 if test "x$ac_cv_have_decl_EV_VERSION_MAJOR" = xyes; then :
1568716685
1568816686 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
1568916687 $as_echo_n "checking for library containing event_set... " >&6; }
15690 if test "${ac_cv_search_event_set+set}" = set; then :
16688 if ${ac_cv_search_event_set+:} false; then :
1569116689 $as_echo_n "(cached) " >&6
1569216690 else
1569316691 ac_func_search_save_LIBS=$LIBS
1572116719 fi
1572216720 rm -f core conftest.err conftest.$ac_objext \
1572316721 conftest$ac_exeext
15724 if test "${ac_cv_search_event_set+set}" = set; then :
16722 if ${ac_cv_search_event_set+:} false; then :
1572516723 break
1572616724 fi
1572716725 done
15728 if test "${ac_cv_search_event_set+set}" = set; then :
16726 if ${ac_cv_search_event_set+:} false; then :
1572916727
1573016728 else
1573116729 ac_cv_search_event_set=no
1574616744
1574716745 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing event_set" >&5
1574816746 $as_echo_n "checking for library containing event_set... " >&6; }
15749 if test "${ac_cv_search_event_set+set}" = set; then :
16747 if ${ac_cv_search_event_set+:} false; then :
1575016748 $as_echo_n "(cached) " >&6
1575116749 else
1575216750 ac_func_search_save_LIBS=$LIBS
1578016778 fi
1578116779 rm -f core conftest.err conftest.$ac_objext \
1578216780 conftest$ac_exeext
15783 if test "${ac_cv_search_event_set+set}" = set; then :
16781 if ${ac_cv_search_event_set+:} false; then :
1578416782 break
1578516783 fi
1578616784 done
15787 if test "${ac_cv_search_event_set+set}" = set; then :
16785 if ${ac_cv_search_event_set+:} false; then :
1578816786
1578916787 else
1579016788 ac_cv_search_event_set=no
1580616804 for ac_func in event_base_free
1580716805 do :
1580816806 ac_fn_c_check_func "$LINENO" "event_base_free" "ac_cv_func_event_base_free"
15809 if test "x$ac_cv_func_event_base_free" = x""yes; then :
16807 if test "x$ac_cv_func_event_base_free" = xyes; then :
1581016808 cat >>confdefs.h <<_ACEOF
1581116809 #define HAVE_EVENT_BASE_FREE 1
1581216810 _ACEOF
1581716815 for ac_func in event_base_once
1581816816 do :
1581916817 ac_fn_c_check_func "$LINENO" "event_base_once" "ac_cv_func_event_base_once"
15820 if test "x$ac_cv_func_event_base_once" = x""yes; then :
16818 if test "x$ac_cv_func_event_base_once" = xyes; then :
1582116819 cat >>confdefs.h <<_ACEOF
1582216820 #define HAVE_EVENT_BASE_ONCE 1
1582316821 _ACEOF
1582816826 for ac_func in event_base_new
1582916827 do :
1583016828 ac_fn_c_check_func "$LINENO" "event_base_new" "ac_cv_func_event_base_new"
15831 if test "x$ac_cv_func_event_base_new" = x""yes; then :
16829 if test "x$ac_cv_func_event_base_new" = xyes; then :
1583216830 cat >>confdefs.h <<_ACEOF
1583316831 #define HAVE_EVENT_BASE_NEW 1
1583416832 _ACEOF
1583916837 for ac_func in event_base_get_method
1584016838 do :
1584116839 ac_fn_c_check_func "$LINENO" "event_base_get_method" "ac_cv_func_event_base_get_method"
15842 if test "x$ac_cv_func_event_base_get_method" = x""yes; then :
16840 if test "x$ac_cv_func_event_base_get_method" = xyes; then :
1584316841 cat >>confdefs.h <<_ACEOF
1584416842 #define HAVE_EVENT_BASE_GET_METHOD 1
1584516843 _ACEOF
1585016848 for ac_func in ev_loop
1585116849 do :
1585216850 ac_fn_c_check_func "$LINENO" "ev_loop" "ac_cv_func_ev_loop"
15853 if test "x$ac_cv_func_ev_loop" = x""yes; then :
16851 if test "x$ac_cv_func_ev_loop" = xyes; then :
1585416852 cat >>confdefs.h <<_ACEOF
1585516853 #define HAVE_EV_LOOP 1
1585616854 _ACEOF
1586116859 for ac_func in ev_default_loop
1586216860 do :
1586316861 ac_fn_c_check_func "$LINENO" "ev_default_loop" "ac_cv_func_ev_default_loop"
15864 if test "x$ac_cv_func_ev_default_loop" = x""yes; then :
16862 if test "x$ac_cv_func_ev_default_loop" = xyes; then :
1586516863 cat >>confdefs.h <<_ACEOF
1586616864 #define HAVE_EV_DEFAULT_LOOP 1
1586716865 _ACEOF
1590916907 do :
1591016908 ac_fn_c_check_header_compile "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default
1591116909 "
15912 if test "x$ac_cv_header_expat_h" = x""yes; then :
16910 if test "x$ac_cv_header_expat_h" = xyes; then :
1591316911 cat >>confdefs.h <<_ACEOF
1591416912 #define HAVE_EXPAT_H 1
1591516913 _ACEOF
1594816946
1594916947 $as_echo "#define ENABLE_LOCK_CHECKS 1" >>confdefs.h
1595016948
15951 CHECKLOCK_SRC="testcode/checklocks.c"
15952
15953 fi
15954
15955 # set memory allocation checking if requested
15956 # Check whether --enable-alloc-checks was given.
15957 if test "${enable_alloc_checks+set}" = set; then :
15958 enableval=$enable_alloc_checks;
15959 fi
15960
15961 # Check whether --enable-alloc-lite was given.
15962 if test "${enable_alloc_lite+set}" = set; then :
15963 enableval=$enable_alloc_lite;
15964 fi
15965
15966 # Check whether --enable-alloc-nonregional was given.
15967 if test "${enable_alloc_nonregional+set}" = set; then :
15968 enableval=$enable_alloc_nonregional;
15969 fi
15970
15971 if test x_$enable_alloc_nonregional = x_yes; then
15972
15973 $as_echo "#define UNBOUND_ALLOC_NONREGIONAL 1" >>confdefs.h
15974
15975 fi
15976 if test x_$enable_alloc_checks = x_yes; then
15977
15978 $as_echo "#define UNBOUND_ALLOC_STATS 1" >>confdefs.h
15979
15980 else
15981 if test x_$enable_alloc_lite = x_yes; then
15982
15983 $as_echo "#define UNBOUND_ALLOC_LITE 1" >>confdefs.h
15984
15985 else
15986
15987 for ac_header in stdlib.h
15988 do :
15989 ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
15990 if test "x$ac_cv_header_stdlib_h" = x""yes; then :
15991 cat >>confdefs.h <<_ACEOF
15992 #define HAVE_STDLIB_H 1
15993 _ACEOF
15994
15995 fi
15996
15997 done
15998
15999 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
16000 $as_echo_n "checking for GNU libc compatible malloc... " >&6; }
16001 if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then :
16002 $as_echo_n "(cached) " >&6
16003 else
16004 if test "$cross_compiling" = yes; then :
16005 ac_cv_func_malloc_0_nonnull=no
16006 else
16007 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16008 /* end confdefs.h. */
16009 #if defined STDC_HEADERS || defined HAVE_STDLIB_H
16010 # include <stdlib.h>
16011 #else
16012 char *malloc ();
16013 #endif
16014
16015 int
16016 main ()
16017 {
16018 return ! malloc (0);
16019 ;
16020 return 0;
16021 }
16022 _ACEOF
16023 if ac_fn_c_try_run "$LINENO"; then :
16024 ac_cv_func_malloc_0_nonnull=yes
16025 else
16026 ac_cv_func_malloc_0_nonnull=no
16027 fi
16028 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
16029 conftest.$ac_objext conftest.beam conftest.$ac_ext
16030 fi
16031
16032 fi
16033 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
16034 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
16035 if test $ac_cv_func_malloc_0_nonnull = yes; then :
16036
16037 $as_echo "#define HAVE_MALLOC 1" >>confdefs.h
16038
16039 else
16040 $as_echo "#define HAVE_MALLOC 0" >>confdefs.h
16041
16042 case " $LIBOBJS " in
16043 *" malloc.$ac_objext "* ) ;;
16044 *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
16045 ;;
16046 esac
16047
16048
16049 $as_echo "#define malloc rpl_malloc" >>confdefs.h
16050
16051 fi
16052
16053
16054 if test "$ac_cv_func_malloc_0_nonnull" = no; then
16055
16056 cat >>confdefs.h <<_ACEOF
16057 #define malloc rpl_malloc_unbound
16058 _ACEOF
16059
16060 fi
16061
16062 fi
16949 CHECKLOCK_OBJ="checklocks.lo"
16950
1606316951 fi
1606416952
1606516953
1608616974 _ACEOF
1608716975 if ac_fn_c_try_link "$LINENO"; then :
1608816976 ac_cv_func_getaddrinfo="yes"
16977 if test "$ac_cv_header_windows_h" = "yes"; then
16978
16979 $as_echo "#define USE_WINSOCK 1" >>confdefs.h
16980
16981 USE_WINSOCK="1"
16982 LIBS="$LIBS -lws2_32"
16983 fi
16984
1608916985 else
1609016986 ORIGLIBS="$LIBS"
1609116987 LIBS="$LIBS -lws2_32"
1614017036
1614117037 $as_echo "#define UB_ON_WINDOWS 1" >>confdefs.h
1614217038
16143 UB_ON_WINDOWS=yes
16144
1614517039 for ac_header in iphlpapi.h
1614617040 do :
1614717041 ac_fn_c_check_header_compile "$LINENO" "iphlpapi.h" "ac_cv_header_iphlpapi_h" "$ac_includes_default
1614817042 #include <windows.h>
1614917043
1615017044 "
16151 if test "x$ac_cv_header_iphlpapi_h" = x""yes; then :
17045 if test "x$ac_cv_header_iphlpapi_h" = xyes; then :
1615217046 cat >>confdefs.h <<_ACEOF
1615317047 #define HAVE_IPHLPAPI_H 1
1615417048 _ACEOF
1616217056 set dummy ${ac_tool_prefix}windres; ac_word=$2
1616317057 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1616417058 $as_echo_n "checking for $ac_word... " >&6; }
16165 if test "${ac_cv_prog_WINDRES+set}" = set; then :
17059 if ${ac_cv_prog_WINDRES+:} false; then :
1616617060 $as_echo_n "(cached) " >&6
1616717061 else
1616817062 if test -n "$WINDRES"; then
1620217096 set dummy windres; ac_word=$2
1620317097 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
1620417098 $as_echo_n "checking for $ac_word... " >&6; }
16205 if test "${ac_cv_prog_ac_ct_WINDRES+set}" = set; then :
17099 if ${ac_cv_prog_ac_ct_WINDRES+:} false; then :
1620617100 $as_echo_n "(cached) " >&6
1620717101 else
1620817102 if test -n "$ac_ct_WINDRES"; then
1625017144 fi
1625117145
1625217146 LIBS="$LIBS -liphlpapi"
17147 WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
17148
17149 WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
17150
17151 WIN_DAEMON_OBJ="win_svc.lo w_inst.lo"
17152
17153 WIN_DAEMON_OBJ_LINK="rsrc_unbound.o"
17154
17155 WIN_HOST_OBJ_LINK="rsrc_unbound_host.o"
17156
17157 WIN_UBANCHOR_OBJ_LINK="rsrc_unbound_anchor.o log.lo locks.lo"
17158
17159 WIN_CONTROL_OBJ_LINK="rsrc_unbound_control.o"
17160
17161 WIN_CHECKCONF_OBJ_LINK="rsrc_unbound_checkconf.o"
17162
1625317163 fi
1625417164 if test $ac_cv_func_getaddrinfo = no; then
1625517165 case " $LIBOBJS " in
1630117211 for ac_func in daemon
1630217212 do :
1630317213 ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
16304 if test "x$ac_cv_func_daemon" = x""yes; then :
17214 if test "x$ac_cv_func_daemon" = xyes; then :
1630517215 cat >>confdefs.h <<_ACEOF
1630617216 #define HAVE_DAEMON 1
1630717217 _ACEOF
1631517225 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if daemon is deprecated" >&5
1631617226 $as_echo_n "checking if daemon is deprecated... " >&6; }
1631717227 cache=`echo daemon | sed 'y%.=/+-%___p_%'`
16318 if eval "test \"\${cv_cc_deprecated_$cache+set}\"" = set; then :
17228 if eval \${cv_cc_deprecated_$cache+:} false; then :
1631917229 $as_echo_n "(cached) " >&6
1632017230 else
1632117231
1635117261
1635217262 fi
1635317263
16354 # check wether strptime also works
16355 for ac_func in strptime
16356 do :
16357 ac_fn_c_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
16358 if test "x$ac_cv_func_strptime" = x""yes; then :
16359 cat >>confdefs.h <<_ACEOF
16360 #define HAVE_STRPTIME 1
16361 _ACEOF
16362
16363 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strptime works" >&5
16364 $as_echo_n "checking whether strptime works... " >&6; }
16365 if test c${cross_compiling} = cno; then
16366 if test "$cross_compiling" = yes; then :
16367 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
16368 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
16369 as_fn_error $? "cannot run test program while cross compiling
16370 See \`config.log' for more details" "$LINENO" 5; }
16371 else
16372 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
16373 /* end confdefs.h. */
16374
16375 #define _XOPEN_SOURCE
16376 #include <time.h>
16377 int main(void) { struct tm tm; char *res;
16378 res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
16379 if (!res) return 1; return 0; }
16380
16381 _ACEOF
16382 if ac_fn_c_try_run "$LINENO"; then :
16383 eval "ac_cv_c_strptime_works=yes"
16384 else
16385 eval "ac_cv_c_strptime_works=no"
16386 fi
16387 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
16388 conftest.$ac_objext conftest.beam conftest.$ac_ext
16389 fi
16390
16391 else
16392 eval "ac_cv_c_strptime_works=maybe"
16393 fi
16394 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_strptime_works" >&5
16395 $as_echo "$ac_cv_c_strptime_works" >&6; }
16396 if test $ac_cv_c_strptime_works = no; then
16397 case " $LIBOBJS " in
16398 *" strptime.$ac_objext "* ) ;;
16399 *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
16400 ;;
16401 esac
16402
16403 else
16404
16405 cat >>confdefs.h <<_ACEOF
16406 #define STRPTIME_WORKS 1
16407 _ACEOF
16408
16409 fi
16410
16411 else
16412 case " $LIBOBJS " in
16413 *" strptime.$ac_objext "* ) ;;
16414 *) LIBOBJS="$LIBOBJS strptime.$ac_objext"
16415 ;;
16416 esac
16417
16418 fi
16419 done
16420
1642117264 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setusercontext" >&5
1642217265 $as_echo_n "checking for library containing setusercontext... " >&6; }
16423 if test "${ac_cv_search_setusercontext+set}" = set; then :
17266 if ${ac_cv_search_setusercontext+:} false; then :
1642417267 $as_echo_n "(cached) " >&6
1642517268 else
1642617269 ac_func_search_save_LIBS=$LIBS
1645417297 fi
1645517298 rm -f core conftest.err conftest.$ac_objext \
1645617299 conftest$ac_exeext
16457 if test "${ac_cv_search_setusercontext+set}" = set; then :
17300 if ${ac_cv_search_setusercontext+:} false; then :
1645817301 break
1645917302 fi
1646017303 done
16461 if test "${ac_cv_search_setusercontext+set}" = set; then :
17304 if ${ac_cv_search_setusercontext+:} false; then :
1646217305
1646317306 else
1646417307 ac_cv_search_setusercontext=no
1648917332 for ac_func in setresuid
1649017333 do :
1649117334 ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid"
16492 if test "x$ac_cv_func_setresuid" = x""yes; then :
17335 if test "x$ac_cv_func_setresuid" = xyes; then :
1649317336 cat >>confdefs.h <<_ACEOF
1649417337 #define HAVE_SETRESUID 1
1649517338 _ACEOF
1649817341 for ac_func in setreuid
1649917342 do :
1650017343 ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid"
16501 if test "x$ac_cv_func_setreuid" = x""yes; then :
17344 if test "x$ac_cv_func_setreuid" = xyes; then :
1650217345 cat >>confdefs.h <<_ACEOF
1650317346 #define HAVE_SETREUID 1
1650417347 _ACEOF
1651217355 for ac_func in setresgid
1651317356 do :
1651417357 ac_fn_c_check_func "$LINENO" "setresgid" "ac_cv_func_setresgid"
16515 if test "x$ac_cv_func_setresgid" = x""yes; then :
17358 if test "x$ac_cv_func_setresgid" = xyes; then :
1651617359 cat >>confdefs.h <<_ACEOF
1651717360 #define HAVE_SETRESGID 1
1651817361 _ACEOF
1652117364 for ac_func in setregid
1652217365 do :
1652317366 ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid"
16524 if test "x$ac_cv_func_setregid" = x""yes; then :
17367 if test "x$ac_cv_func_setregid" = xyes; then :
1652517368 cat >>confdefs.h <<_ACEOF
1652617369 #define HAVE_SETREGID 1
1652717370 _ACEOF
1654017383
1654117384 fi
1654217385 ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton"
16543 if test "x$ac_cv_func_inet_aton" = x""yes; then :
17386 if test "x$ac_cv_func_inet_aton" = xyes; then :
1654417387 $as_echo "#define HAVE_INET_ATON 1" >>confdefs.h
1654517388
1654617389 else
1655417397
1655517398
1655617399 ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
16557 if test "x$ac_cv_func_inet_pton" = x""yes; then :
17400 if test "x$ac_cv_func_inet_pton" = xyes; then :
1655817401 $as_echo "#define HAVE_INET_PTON 1" >>confdefs.h
1655917402
1656017403 else
1656817411
1656917412
1657017413 ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
16571 if test "x$ac_cv_func_inet_ntop" = x""yes; then :
17414 if test "x$ac_cv_func_inet_ntop" = xyes; then :
1657217415 $as_echo "#define HAVE_INET_NTOP 1" >>confdefs.h
1657317416
1657417417 else
1658217425
1658317426
1658417427 ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
16585 if test "x$ac_cv_func_snprintf" = x""yes; then :
17428 if test "x$ac_cv_func_snprintf" = xyes; then :
1658617429 $as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h
1658717430
1658817431 else
1659617439
1659717440
1659817441 ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
16599 if test "x$ac_cv_func_strlcpy" = x""yes; then :
17442 if test "x$ac_cv_func_strlcpy" = xyes; then :
1660017443 $as_echo "#define HAVE_STRLCPY 1" >>confdefs.h
1660117444
1660217445 else
1661017453
1661117454
1661217455 ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
16613 if test "x$ac_cv_func_memmove" = x""yes; then :
17456 if test "x$ac_cv_func_memmove" = xyes; then :
1661417457 $as_echo "#define HAVE_MEMMOVE 1" >>confdefs.h
1661517458
1661617459 else
1662417467
1662517468
1662617469 ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
16627 if test "x$ac_cv_func_gmtime_r" = x""yes; then :
17470 if test "x$ac_cv_func_gmtime_r" = xyes; then :
1662817471 $as_echo "#define HAVE_GMTIME_R 1" >>confdefs.h
1662917472
1663017473 else
1663717480 fi
1663817481
1663917482
17483 LIBOBJ_WITHOUT_CTIME="$LIBOBJS"
17484
1664017485 ac_fn_c_check_func "$LINENO" "ctime_r" "ac_cv_func_ctime_r"
16641 if test "x$ac_cv_func_ctime_r" = x""yes; then :
17486 if test "x$ac_cv_func_ctime_r" = xyes; then :
1664217487 $as_echo "#define HAVE_CTIME_R 1" >>confdefs.h
1664317488
1664417489 else
1665817503 fi
1665917504
1666017505 case "$enable_allsymbols" in
16661 no)
16662 EXPORT_ALL_SYMBOLS=no
17506 yes)
17507 COMMON_OBJ_ALL_SYMBOLS=""
17508 UBSYMS=""
17509 EXTRALINK="-L. -L.libs -lunbound"
17510
17511 $as_echo "#define EXPORT_ALL_SYMBOLS 1" >>confdefs.h
17512
1666317513 ;;
16664 yes)
16665 EXPORT_ALL_SYMBOLS=yes
17514 no|*)
17515 COMMON_OBJ_ALL_SYMBOLS='$(COMMON_OBJ)'
17516 UBSYMS='-export-symbols $(srcdir)/libunbound/ubsyms.def'
17517 EXTRALINK=""
1666617518 ;;
1666717519 esac
17520
17521
17522
17523 if test x_$enable_lock_checks = x_yes; then
17524 UBSYMS="-export-symbols clubsyms.def"
17525 cp ${srcdir}/libunbound/ubsyms.def clubsyms.def
17526 echo lock_protect >> clubsyms.def
17527 echo lock_unprotect >> clubsyms.def
17528 echo lock_get_mem >> clubsyms.def
17529 echo checklock_start >> clubsyms.def
17530 echo checklock_stop >> clubsyms.def
17531 echo checklock_lock >> clubsyms.def
17532 echo checklock_unlock >> clubsyms.def
17533 echo checklock_init >> clubsyms.def
17534 echo checklock_thrcreate >> clubsyms.def
17535 echo checklock_thrjoin >> clubsyms.def
17536 fi
17537
17538 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${MAKE:-make} supports $< with implicit rule in scope" >&5
17539 $as_echo_n "checking if ${MAKE:-make} supports $< with implicit rule in scope... " >&6; }
17540 # on openBSD, the implicit rule make $< work.
17541 # on Solaris, it does not work ($? is changed sources, $^ lists dependencies).
17542 # gmake works.
17543 cat >conftest.make <<EOF
17544 all: conftest.lo
17545
17546 conftest.lo foo.lo bla.lo:
17547 if test -f "\$<"; then touch \$@; fi
17548
17549 .SUFFIXES: .lo
17550 .c.lo:
17551 if test -f "\$<"; then touch \$@; fi
17552
17553 conftest.lo: conftest.dir/conftest.c
17554 EOF
17555 mkdir conftest.dir
17556 touch conftest.dir/conftest.c
17557 rm -f conftest.lo conftest.c
17558 ${MAKE:-make} -f conftest.make >/dev/null
17559 rm -f conftest.make conftest.c conftest.dir/conftest.c
17560 rm -rf conftest.dir
17561 if test ! -f conftest.lo; then
17562 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
17563 $as_echo "no" >&6; }
17564 SOURCEDETERMINE='echo "$^" | awk "-F " "{print \$$1;}" > .source'
17565 SOURCEFILE='`cat .source`'
17566 else
17567 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
17568 $as_echo "yes" >&6; }
17569 SOURCEDETERMINE=':'
17570 SOURCEFILE='$<'
17571 fi
17572 rm -f conftest.lo
17573
1666817574
1666917575
1667017576 # check this after all other compilation checks, since the linking of the lib
1669517601 # check if ldns is good enough
1669617602 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldns_rr_new in -lldns" >&5
1669717603 $as_echo_n "checking for ldns_rr_new in -lldns... " >&6; }
16698 if test "${ac_cv_lib_ldns_ldns_rr_new+set}" = set; then :
17604 if ${ac_cv_lib_ldns_ldns_rr_new+:} false; then :
1669917605 $as_echo_n "(cached) " >&6
1670017606 else
1670117607 ac_check_lib_save_LIBS=$LIBS
1672917635 fi
1673017636 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ldns_ldns_rr_new" >&5
1673117637 $as_echo "$ac_cv_lib_ldns_ldns_rr_new" >&6; }
16732 if test "x$ac_cv_lib_ldns_ldns_rr_new" = x""yes; then :
17638 if test "x$ac_cv_lib_ldns_ldns_rr_new" = xyes; then :
1673317639 cat >>confdefs.h <<_ACEOF
1673417640 #define HAVE_LIBLDNS 1
1673517641 _ACEOF
1674317649 fi
1674417650
1674517651 ac_fn_c_check_func "$LINENO" "ldns_buffer_copy" "ac_cv_func_ldns_buffer_copy"
16746 if test "x$ac_cv_func_ldns_buffer_copy" = x""yes; then :
17652 if test "x$ac_cv_func_ldns_buffer_copy" = xyes; then :
1674717653
1674817654 fi
1674917655
1675017656 ac_fn_c_check_func "$LINENO" "ldns_key_buf2rsa_raw" "ac_cv_func_ldns_key_buf2rsa_raw"
16751 if test "x$ac_cv_func_ldns_key_buf2rsa_raw" = x""yes; then :
17657 if test "x$ac_cv_func_ldns_key_buf2rsa_raw" = xyes; then :
1675217658
1675317659 fi
1675417660
1675517661 ac_fn_c_check_func "$LINENO" "ldns_get_random" "ac_cv_func_ldns_get_random"
16756 if test "x$ac_cv_func_ldns_get_random" = x""yes; then :
17662 if test "x$ac_cv_func_ldns_get_random" = xyes; then :
1675717663
1675817664 fi
1675917665
1676017666 ac_fn_c_check_func "$LINENO" "ldns_b32_ntop_extended_hex" "ac_cv_func_ldns_b32_ntop_extended_hex"
16761 if test "x$ac_cv_func_ldns_b32_ntop_extended_hex" = x""yes; then :
17667 if test "x$ac_cv_func_ldns_b32_ntop_extended_hex" = xyes; then :
1676217668
1676317669 fi
1676417670
1676517671 if test x$use_gost = xyes; then
1676617672 ac_fn_c_check_func "$LINENO" "ldns_key_EVP_load_gost_id" "ac_cv_func_ldns_key_EVP_load_gost_id"
16767 if test "x$ac_cv_func_ldns_key_EVP_load_gost_id" = x""yes; then :
17673 if test "x$ac_cv_func_ldns_key_EVP_load_gost_id" = xyes; then :
1676817674
1676917675 fi
1677017676
1677117677 for ac_func in ldns_key_EVP_unload_gost
1677217678 do :
1677317679 ac_fn_c_check_func "$LINENO" "ldns_key_EVP_unload_gost" "ac_cv_func_ldns_key_EVP_unload_gost"
16774 if test "x$ac_cv_func_ldns_key_EVP_unload_gost" = x""yes; then :
17680 if test "x$ac_cv_func_ldns_key_EVP_unload_gost" = xyes; then :
1677517681 cat >>confdefs.h <<_ACEOF
1677617682 #define HAVE_LDNS_KEY_EVP_UNLOAD_GOST 1
1677717683 _ACEOF
1680617712 #endif
1680717713
1680817714 "
16809 if test "x$ac_cv_header_ldns_ldns_h" = x""yes; then :
17715 if test "x$ac_cv_header_ldns_ldns_h" = xyes; then :
1681017716 cat >>confdefs.h <<_ACEOF
1681117717 #define HAVE_LDNS_LDNS_H 1
1681217718 _ACEOF
1697617882 :end' >>confcache
1697717883 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
1697817884 if test -w "$cache_file"; then
16979 test "x$cache_file" != "x/dev/null" &&
17885 if test "x$cache_file" != "x/dev/null"; then
1698017886 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
1698117887 $as_echo "$as_me: updating cache $cache_file" >&6;}
16982 cat confcache >$cache_file
17888 if test ! -f "$cache_file" || test -h "$cache_file"; then
17889 cat confcache >"$cache_file"
17890 else
17891 case $cache_file in #(
17892 */* | ?:*)
17893 mv -f confcache "$cache_file"$$ &&
17894 mv -f "$cache_file"$$ "$cache_file" ;; #(
17895 *)
17896 mv -f confcache "$cache_file" ;;
17897 esac
17898 fi
17899 fi
1698317900 else
1698417901 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
1698517902 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
1701117928
1701217929
1701317930
17014 : ${CONFIG_STATUS=./config.status}
17931 : "${CONFIG_STATUS=./config.status}"
1701517932 ac_write_fail=0
1701617933 ac_clean_files_save=$ac_clean_files
1701717934 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
1711218029 IFS=" "" $as_nl"
1711318030
1711418031 # Find who we are. Look in the path if we contain no directory separator.
18032 as_myself=
1711518033 case $0 in #((
1711618034 *[\\/]* ) as_myself=$0 ;;
1711718035 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
1741818336 # report actual input values of CONFIG_FILES etc. instead of their
1741918337 # values after options handling.
1742018338 ac_log="
17421 This file was extended by unbound $as_me 1.4.13, which was
17422 generated by GNU Autoconf 2.66. Invocation command line was
18339 This file was extended by unbound $as_me 1.4.14, which was
18340 generated by GNU Autoconf 2.68. Invocation command line was
1742318341
1742418342 CONFIG_FILES = $CONFIG_FILES
1742518343 CONFIG_HEADERS = $CONFIG_HEADERS
1748418402 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1748518403 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1748618404 ac_cs_version="\\
17487 unbound config.status 1.4.13
17488 configured by $0, generated by GNU Autoconf 2.66,
18405 unbound config.status 1.4.14
18406 configured by $0, generated by GNU Autoconf 2.68,
1748918407 with options \\"\$ac_cs_config\\"
1749018408
1749118409 Copyright (C) 2010 Free Software Foundation, Inc.
1750418422 while test $# != 0
1750518423 do
1750618424 case $1 in
17507 --*=*)
18425 --*=?*)
1750818426 ac_option=`expr "X$1" : 'X\([^=]*\)='`
1750918427 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
18428 ac_shift=:
18429 ;;
18430 --*=)
18431 ac_option=`expr "X$1" : 'X\([^=]*\)='`
18432 ac_optarg=
1751018433 ac_shift=:
1751118434 ;;
1751218435 *)
1753018453 $ac_shift
1753118454 case $ac_optarg in
1753218455 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
18456 '') as_fn_error $? "missing file argument" ;;
1753318457 esac
1753418458 as_fn_append CONFIG_FILES " '$ac_optarg'"
1753518459 ac_need_defaults=false;;
1763218556 lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
1763318557 lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
1763418558 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
18559 lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
18560 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
1763518561 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
1763618562 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
1763718563 OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
1763818564 deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
1763918565 file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
18566 file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
18567 want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
18568 DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
18569 sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
1764018570 AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
1764118571 AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
18572 archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
1764218573 STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
1764318574 RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
1764418575 old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
1765318584 lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
1765418585 lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
1765518586 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
18587 nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
18588 lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
1765618589 objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
1765718590 MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
1765818591 lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
18592 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
1765918593 lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
17660 lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
1766118594 lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
1766218595 lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
1766318596 need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
18597 MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
1766418598 DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
1766518599 NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
1766618600 LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
1769318627 hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
1769418628 inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
1769518629 link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
17696 fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
1769718630 always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
1769818631 export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
1769918632 exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
1770018633 include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
1770118634 prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
18635 postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
1770218636 file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
1770318637 variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
1770418638 need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
1775318687 OBJDUMP \
1775418688 deplibs_check_method \
1775518689 file_magic_cmd \
18690 file_magic_glob \
18691 want_nocaseglob \
18692 DLLTOOL \
18693 sharedlib_from_linklib_cmd \
1775618694 AR \
1775718695 AR_FLAGS \
18696 archiver_list_spec \
1775818697 STRIP \
1775918698 RANLIB \
1776018699 CC \
1776418703 lt_cv_sys_global_symbol_to_cdecl \
1776518704 lt_cv_sys_global_symbol_to_c_name_address \
1776618705 lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
18706 nm_file_list_spec \
1776718707 lt_prog_compiler_no_builtin_flag \
18708 lt_prog_compiler_pic \
1776818709 lt_prog_compiler_wl \
17769 lt_prog_compiler_pic \
1777018710 lt_prog_compiler_static \
1777118711 lt_cv_prog_compiler_c_o \
1777218712 need_locks \
18713 MANIFEST_TOOL \
1777318714 DSYMUTIL \
1777418715 NMEDIT \
1777518716 LIPO \
1778518726 hardcode_libdir_flag_spec \
1778618727 hardcode_libdir_flag_spec_ld \
1778718728 hardcode_libdir_separator \
17788 fix_srcfile_path \
1778918729 exclude_expsyms \
1779018730 include_expsyms \
1779118731 file_list_spec \
1782118761 module_expsym_cmds \
1782218762 export_symbols_cmds \
1782318763 prelink_cmds \
18764 postlink_cmds \
1782418765 postinstall_cmds \
1782518766 postuninstall_cmds \
1782618767 finish_cmds \
1789918840 # after its creation but before its name has been assigned to `$tmp'.
1790018841 $debug ||
1790118842 {
17902 tmp=
18843 tmp= ac_tmp=
1790318844 trap 'exit_status=$?
17904 { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
18845 : "${ac_tmp:=$tmp}"
18846 { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
1790518847 ' 0
1790618848 trap 'as_fn_exit 1' 1 2 13 15
1790718849 }
1790918851
1791018852 {
1791118853 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
17912 test -n "$tmp" && test -d "$tmp"
18854 test -d "$tmp"
1791318855 } ||
1791418856 {
1791518857 tmp=./conf$$-$RANDOM
1791618858 (umask 077 && mkdir "$tmp")
1791718859 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
18860 ac_tmp=$tmp
1791818861
1791918862 # Set up the scripts for CONFIG_FILES section.
1792018863 # No need to generate them if there are no CONFIG_FILES.
1793618879 ac_cs_awk_cr=$ac_cr
1793718880 fi
1793818881
17939 echo 'BEGIN {' >"$tmp/subs1.awk" &&
18882 echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
1794018883 _ACEOF
1794118884
1794218885
1796418907 rm -f conf$$subs.sh
1796518908
1796618909 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
17967 cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
18910 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
1796818911 _ACEOF
1796918912 sed -n '
1797018913 h
1801218955 rm -f conf$$subs.awk
1801318956 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1801418957 _ACAWK
18015 cat >>"\$tmp/subs1.awk" <<_ACAWK &&
18958 cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
1801618959 for (key in S) S_is_set[key] = 1
1801718960 FS = ""
1801818961
1804418987 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
1804518988 else
1804618989 cat
18047 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
18990 fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
1804818991 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
1804918992 _ACEOF
1805018993
1807819021 # No need to generate them if there are no CONFIG_HEADERS.
1807919022 # This happens for instance with `./config.status Makefile'.
1808019023 if test -n "$CONFIG_HEADERS"; then
18081 cat >"$tmp/defines.awk" <<\_ACAWK ||
19024 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
1808219025 BEGIN {
1808319026 _ACEOF
1808419027
1809019033 # handling of long lines.
1809119034 ac_delim='%!_!# '
1809219035 for ac_last_try in false false :; do
18093 ac_t=`sed -n "/$ac_delim/p" confdefs.h`
18094 if test -z "$ac_t"; then
19036 ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
19037 if test -z "$ac_tt"; then
1809519038 break
1809619039 elif $ac_last_try; then
1809719040 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
1821119154 for ac_f
1821219155 do
1821319156 case $ac_f in
18214 -) ac_f="$tmp/stdin";;
19157 -) ac_f="$ac_tmp/stdin";;
1821519158 *) # Look for the file first in the build tree, then in the source tree
1821619159 # (if the path is not absolute). The absolute path cannot be DOS-style,
1821719160 # because $ac_f cannot contain `:'.
1824619189 esac
1824719190
1824819191 case $ac_tag in
18249 *:-:* | *:-) cat >"$tmp/stdin" \
19192 *:-:* | *:-) cat >"$ac_tmp/stdin" \
1825019193 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
1825119194 esac
1825219195 ;;
1837219315 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
1837319316 $ac_datarootdir_hack
1837419317 "
18375 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
18376 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
19318 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
19319 >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1837719320
1837819321 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
18379 { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
18380 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
19322 { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
19323 { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
19324 "$ac_tmp/out"`; test -z "$ac_out"; } &&
1838119325 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1838219326 which seems to be undefined. Please make sure it is defined" >&5
1838319327 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
1838419328 which seems to be undefined. Please make sure it is defined" >&2;}
1838519329
18386 rm -f "$tmp/stdin"
19330 rm -f "$ac_tmp/stdin"
1838719331 case $ac_file in
18388 -) cat "$tmp/out" && rm -f "$tmp/out";;
18389 *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
19332 -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
19333 *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
1839019334 esac \
1839119335 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1839219336 ;;
1839719341 if test x"$ac_file" != x-; then
1839819342 {
1839919343 $as_echo "/* $configure_input */" \
18400 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
18401 } >"$tmp/config.h" \
19344 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
19345 } >"$ac_tmp/config.h" \
1840219346 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
18403 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
19347 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
1840419348 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
1840519349 $as_echo "$as_me: $ac_file is unchanged" >&6;}
1840619350 else
1840719351 rm -f "$ac_file"
18408 mv "$tmp/config.h" "$ac_file" \
19352 mv "$ac_tmp/config.h" "$ac_file" \
1840919353 || as_fn_error $? "could not create $ac_file" "$LINENO" 5
1841019354 fi
1841119355 else
1841219356 $as_echo "/* $configure_input */" \
18413 && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
19357 && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
1841419358 || as_fn_error $? "could not create -" "$LINENO" 5
1841519359 fi
1841619360 ;;
1854719491 # turn newlines into spaces.
1854819492 NL2SP=$lt_lt_NL2SP
1854919493
19494 # convert \$build file names to \$host format.
19495 to_host_file_cmd=$lt_cv_to_host_file_cmd
19496
19497 # convert \$build files to toolchain format.
19498 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
19499
1855019500 # An object symbol dumper.
1855119501 OBJDUMP=$lt_OBJDUMP
1855219502
1855319503 # Method to check whether dependent libraries are shared objects.
1855419504 deplibs_check_method=$lt_deplibs_check_method
1855519505
18556 # Command to use when deplibs_check_method == "file_magic".
19506 # Command to use when deplibs_check_method = "file_magic".
1855719507 file_magic_cmd=$lt_file_magic_cmd
19508
19509 # How to find potential files when deplibs_check_method = "file_magic".
19510 file_magic_glob=$lt_file_magic_glob
19511
19512 # Find potential files using nocaseglob when deplibs_check_method = "file_magic".
19513 want_nocaseglob=$lt_want_nocaseglob
19514
19515 # DLL creation program.
19516 DLLTOOL=$lt_DLLTOOL
19517
19518 # Command to associate shared and link libraries.
19519 sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
1855819520
1855919521 # The archiver.
1856019522 AR=$lt_AR
19523
19524 # Flags to create an archive.
1856119525 AR_FLAGS=$lt_AR_FLAGS
19526
19527 # How to feed a file listing to the archiver.
19528 archiver_list_spec=$lt_archiver_list_spec
1856219529
1856319530 # A symbol stripping program.
1856419531 STRIP=$lt_STRIP
1858919556 # Transform the output of nm in a C name address pair when lib prefix is needed.
1859019557 global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
1859119558
19559 # Specify filename containing input files for \$NM.
19560 nm_file_list_spec=$lt_nm_file_list_spec
19561
19562 # The root where to search for dependent libraries,and in which our libraries should be installed.
19563 lt_sysroot=$lt_sysroot
19564
1859219565 # The name of the directory that contains temporary libtool files.
1859319566 objdir=$objdir
1859419567
1859719570
1859819571 # Must we lock files when doing compilation?
1859919572 need_locks=$lt_need_locks
19573
19574 # Manifest tool.
19575 MANIFEST_TOOL=$lt_MANIFEST_TOOL
1860019576
1860119577 # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
1860219578 DSYMUTIL=$lt_DSYMUTIL
1871219688 # Compiler flag to turn off builtin functions.
1871319689 no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
1871419690
19691 # Additional compiler flags for building library objects.
19692 pic_flag=$lt_lt_prog_compiler_pic
19693
1871519694 # How to pass a linker flag through the compiler.
1871619695 wl=$lt_lt_prog_compiler_wl
18717
18718 # Additional compiler flags for building library objects.
18719 pic_flag=$lt_lt_prog_compiler_pic
1872019696
1872119697 # Compiler flag to prevent dynamic linking.
1872219698 link_static_flag=$lt_lt_prog_compiler_static
1880419780 # Whether libtool must link a program against all its dependency libraries.
1880519781 link_all_deplibs=$link_all_deplibs
1880619782
18807 # Fix the shell variable \$srcfile for the compiler.
18808 fix_srcfile_path=$lt_fix_srcfile_path
18809
1881019783 # Set to "yes" if exported symbols are required.
1881119784 always_export_symbols=$always_export_symbols
1881219785
1882119794
1882219795 # Commands necessary for linking programs (against libraries) with templates.
1882319796 prelink_cmds=$lt_prelink_cmds
19797
19798 # Commands necessary for finishing linking programs.
19799 postlink_cmds=$lt_postlink_cmds
1882419800
1882519801 # Specify filename containing input files.
1882619802 file_list_spec=$lt_file_list_spec
1885419830 # if finds mixed CR/LF and LF-only lines. Since sed operates in
1885519831 # text mode, it properly converts lines to CR/LF. This bash problem
1885619832 # is reportedly fixed, but why not run on old versions too?
18857 sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
18858 || (rm -f "$cfgfile"; exit 1)
18859
18860 case $xsi_shell in
18861 yes)
18862 cat << \_LT_EOF >> "$cfgfile"
18863
18864 # func_dirname file append nondir_replacement
18865 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
18866 # otherwise set result to NONDIR_REPLACEMENT.
18867 func_dirname ()
18868 {
18869 case ${1} in
18870 */*) func_dirname_result="${1%/*}${2}" ;;
18871 * ) func_dirname_result="${3}" ;;
18872 esac
18873 }
18874
18875 # func_basename file
18876 func_basename ()
18877 {
18878 func_basename_result="${1##*/}"
18879 }
18880
18881 # func_dirname_and_basename file append nondir_replacement
18882 # perform func_basename and func_dirname in a single function
18883 # call:
18884 # dirname: Compute the dirname of FILE. If nonempty,
18885 # add APPEND to the result, otherwise set result
18886 # to NONDIR_REPLACEMENT.
18887 # value returned in "$func_dirname_result"
18888 # basename: Compute filename of FILE.
18889 # value retuned in "$func_basename_result"
18890 # Implementation must be kept synchronized with func_dirname
18891 # and func_basename. For efficiency, we do not delegate to
18892 # those functions but instead duplicate the functionality here.
18893 func_dirname_and_basename ()
18894 {
18895 case ${1} in
18896 */*) func_dirname_result="${1%/*}${2}" ;;
18897 * ) func_dirname_result="${3}" ;;
18898 esac
18899 func_basename_result="${1##*/}"
18900 }
18901
18902 # func_stripname prefix suffix name
18903 # strip PREFIX and SUFFIX off of NAME.
18904 # PREFIX and SUFFIX must not contain globbing or regex special
18905 # characters, hashes, percent signs, but SUFFIX may contain a leading
18906 # dot (in which case that matches only a dot).
18907 func_stripname ()
18908 {
18909 # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
18910 # positional parameters, so assign one to ordinary parameter first.
18911 func_stripname_result=${3}
18912 func_stripname_result=${func_stripname_result#"${1}"}
18913 func_stripname_result=${func_stripname_result%"${2}"}
18914 }
18915
18916 # func_opt_split
18917 func_opt_split ()
18918 {
18919 func_opt_split_opt=${1%%=*}
18920 func_opt_split_arg=${1#*=}
18921 }
18922
18923 # func_lo2o object
18924 func_lo2o ()
18925 {
18926 case ${1} in
18927 *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
18928 *) func_lo2o_result=${1} ;;
18929 esac
18930 }
18931
18932 # func_xform libobj-or-source
18933 func_xform ()
18934 {
18935 func_xform_result=${1%.*}.lo
18936 }
18937
18938 # func_arith arithmetic-term...
18939 func_arith ()
18940 {
18941 func_arith_result=$(( $* ))
18942 }
18943
18944 # func_len string
18945 # STRING may not start with a hyphen.
18946 func_len ()
18947 {
18948 func_len_result=${#1}
18949 }
18950
18951 _LT_EOF
18952 ;;
18953 *) # Bourne compatible functions.
18954 cat << \_LT_EOF >> "$cfgfile"
18955
18956 # func_dirname file append nondir_replacement
18957 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
18958 # otherwise set result to NONDIR_REPLACEMENT.
18959 func_dirname ()
18960 {
18961 # Extract subdirectory from the argument.
18962 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
18963 if test "X$func_dirname_result" = "X${1}"; then
18964 func_dirname_result="${3}"
18965 else
18966 func_dirname_result="$func_dirname_result${2}"
18967 fi
18968 }
18969
18970 # func_basename file
18971 func_basename ()
18972 {
18973 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
18974 }
18975
18976
18977 # func_stripname prefix suffix name
18978 # strip PREFIX and SUFFIX off of NAME.
18979 # PREFIX and SUFFIX must not contain globbing or regex special
18980 # characters, hashes, percent signs, but SUFFIX may contain a leading
18981 # dot (in which case that matches only a dot).
18982 # func_strip_suffix prefix name
18983 func_stripname ()
18984 {
18985 case ${2} in
18986 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
18987 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
18988 esac
18989 }
18990
18991 # sed scripts:
18992 my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
18993 my_sed_long_arg='1s/^-[^=]*=//'
18994
18995 # func_opt_split
18996 func_opt_split ()
18997 {
18998 func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
18999 func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
19000 }
19001
19002 # func_lo2o object
19003 func_lo2o ()
19004 {
19005 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
19006 }
19007
19008 # func_xform libobj-or-source
19009 func_xform ()
19010 {
19011 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
19012 }
19013
19014 # func_arith arithmetic-term...
19015 func_arith ()
19016 {
19017 func_arith_result=`expr "$@"`
19018 }
19019
19020 # func_len string
19021 # STRING may not start with a hyphen.
19022 func_len ()
19023 {
19024 func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
19025 }
19026
19027 _LT_EOF
19028 esac
19029
19030 case $lt_shell_append in
19031 yes)
19032 cat << \_LT_EOF >> "$cfgfile"
19033
19034 # func_append var value
19035 # Append VALUE to the end of shell variable VAR.
19036 func_append ()
19037 {
19038 eval "$1+=\$2"
19039 }
19040 _LT_EOF
19041 ;;
19042 *)
19043 cat << \_LT_EOF >> "$cfgfile"
19044
19045 # func_append var value
19046 # Append VALUE to the end of shell variable VAR.
19047 func_append ()
19048 {
19049 eval "$1=\$$1\$2"
19050 }
19051
19052 _LT_EOF
19053 ;;
19054 esac
19055
19056
19057 sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
19058 || (rm -f "$cfgfile"; exit 1)
19059
19060 mv -f "$cfgfile" "$ofile" ||
19833 sed '$q' "$ltmain" >> "$cfgfile" \
19834 || (rm -f "$cfgfile"; exit 1)
19835
19836 if test x"$xsi_shell" = xyes; then
19837 sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
19838 func_dirname ()\
19839 {\
19840 \ case ${1} in\
19841 \ */*) func_dirname_result="${1%/*}${2}" ;;\
19842 \ * ) func_dirname_result="${3}" ;;\
19843 \ esac\
19844 } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
19845 && mv -f "$cfgfile.tmp" "$cfgfile" \
19846 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19847 test 0 -eq $? || _lt_function_replace_fail=:
19848
19849
19850 sed -e '/^func_basename ()$/,/^} # func_basename /c\
19851 func_basename ()\
19852 {\
19853 \ func_basename_result="${1##*/}"\
19854 } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
19855 && mv -f "$cfgfile.tmp" "$cfgfile" \
19856 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19857 test 0 -eq $? || _lt_function_replace_fail=:
19858
19859
19860 sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
19861 func_dirname_and_basename ()\
19862 {\
19863 \ case ${1} in\
19864 \ */*) func_dirname_result="${1%/*}${2}" ;;\
19865 \ * ) func_dirname_result="${3}" ;;\
19866 \ esac\
19867 \ func_basename_result="${1##*/}"\
19868 } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
19869 && mv -f "$cfgfile.tmp" "$cfgfile" \
19870 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19871 test 0 -eq $? || _lt_function_replace_fail=:
19872
19873
19874 sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
19875 func_stripname ()\
19876 {\
19877 \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
19878 \ # positional parameters, so assign one to ordinary parameter first.\
19879 \ func_stripname_result=${3}\
19880 \ func_stripname_result=${func_stripname_result#"${1}"}\
19881 \ func_stripname_result=${func_stripname_result%"${2}"}\
19882 } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
19883 && mv -f "$cfgfile.tmp" "$cfgfile" \
19884 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19885 test 0 -eq $? || _lt_function_replace_fail=:
19886
19887
19888 sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
19889 func_split_long_opt ()\
19890 {\
19891 \ func_split_long_opt_name=${1%%=*}\
19892 \ func_split_long_opt_arg=${1#*=}\
19893 } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
19894 && mv -f "$cfgfile.tmp" "$cfgfile" \
19895 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19896 test 0 -eq $? || _lt_function_replace_fail=:
19897
19898
19899 sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
19900 func_split_short_opt ()\
19901 {\
19902 \ func_split_short_opt_arg=${1#??}\
19903 \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
19904 } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
19905 && mv -f "$cfgfile.tmp" "$cfgfile" \
19906 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19907 test 0 -eq $? || _lt_function_replace_fail=:
19908
19909
19910 sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
19911 func_lo2o ()\
19912 {\
19913 \ case ${1} in\
19914 \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
19915 \ *) func_lo2o_result=${1} ;;\
19916 \ esac\
19917 } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
19918 && mv -f "$cfgfile.tmp" "$cfgfile" \
19919 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19920 test 0 -eq $? || _lt_function_replace_fail=:
19921
19922
19923 sed -e '/^func_xform ()$/,/^} # func_xform /c\
19924 func_xform ()\
19925 {\
19926 func_xform_result=${1%.*}.lo\
19927 } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
19928 && mv -f "$cfgfile.tmp" "$cfgfile" \
19929 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19930 test 0 -eq $? || _lt_function_replace_fail=:
19931
19932
19933 sed -e '/^func_arith ()$/,/^} # func_arith /c\
19934 func_arith ()\
19935 {\
19936 func_arith_result=$(( $* ))\
19937 } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
19938 && mv -f "$cfgfile.tmp" "$cfgfile" \
19939 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19940 test 0 -eq $? || _lt_function_replace_fail=:
19941
19942
19943 sed -e '/^func_len ()$/,/^} # func_len /c\
19944 func_len ()\
19945 {\
19946 func_len_result=${#1}\
19947 } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
19948 && mv -f "$cfgfile.tmp" "$cfgfile" \
19949 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19950 test 0 -eq $? || _lt_function_replace_fail=:
19951
19952 fi
19953
19954 if test x"$lt_shell_append" = xyes; then
19955 sed -e '/^func_append ()$/,/^} # func_append /c\
19956 func_append ()\
19957 {\
19958 eval "${1}+=\\${2}"\
19959 } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
19960 && mv -f "$cfgfile.tmp" "$cfgfile" \
19961 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19962 test 0 -eq $? || _lt_function_replace_fail=:
19963
19964
19965 sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
19966 func_append_quoted ()\
19967 {\
19968 \ func_quote_for_eval "${2}"\
19969 \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
19970 } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
19971 && mv -f "$cfgfile.tmp" "$cfgfile" \
19972 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19973 test 0 -eq $? || _lt_function_replace_fail=:
19974
19975
19976 # Save a `func_append' function call where possible by direct use of '+='
19977 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
19978 && mv -f "$cfgfile.tmp" "$cfgfile" \
19979 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19980 test 0 -eq $? || _lt_function_replace_fail=:
19981 else
19982 # Save a `func_append' function call even when '+=' is not available
19983 sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
19984 && mv -f "$cfgfile.tmp" "$cfgfile" \
19985 || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
19986 test 0 -eq $? || _lt_function_replace_fail=:
19987 fi
19988
19989 if test x"$_lt_function_replace_fail" = x":"; then
19990 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
19991 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
19992 fi
19993
19994
19995 mv -f "$cfgfile" "$ofile" ||
1906119996 (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
1906219997 chmod +x "$ofile"
1906319998
55 sinclude(acx_python.m4)
66 sinclude(ac_pkg_swig.m4)
77
8 AC_INIT(unbound, 1.4.13, unbound-bugs@nlnetlabs.nl, unbound)
8 AC_INIT(unbound, 1.4.14, unbound-bugs@nlnetlabs.nl, unbound)
99
1010 LIBUNBOUND_CURRENT=2
11 LIBUNBOUND_REVISION=13
11 LIBUNBOUND_REVISION=14
1212 LIBUNBOUND_AGE=0
1313 # 1.0.0 had 0:12:0
1414 # 1.0.1 had 0:13:0
3737 # 1.4.11 had 2:11:0
3838 # 1.4.12 had 2:12:0
3939 # 1.4.13 had 2:13:0
40 # 1.4.14 had 2:14:0
4041
4142 # Current -- the number of the binary API that we're implementing
4243 # Revision -- which iteration of the implementation of the binary
284285 AC_SEARCH_LIBS([inet_pton], [nsl])
285286 AC_SEARCH_LIBS([socket], [socket])
286287
288 # check wether strptime also works
289 AC_DEFUN([AC_CHECK_STRPTIME_WORKS],
290 [AC_REQUIRE([AC_PROG_CC])
291 AC_MSG_CHECKING(whether strptime works)
292 if test c${cross_compiling} = cno; then
293 AC_RUN_IFELSE([AC_LANG_SOURCE([[
294 #define _XOPEN_SOURCE
295 #include <time.h>
296 int main(void) { struct tm tm; char *res;
297 res = strptime("2010-07-15T00:00:00+00:00", "%t%Y%t-%t%m%t-%t%d%tT%t%H%t:%t%M%t:%t%S%t", &tm);
298 if (!res) return 2;
299 res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
300 if (!res) return 1; return 0; }
301 ]])] , [eval "ac_cv_c_strptime_works=yes"], [eval "ac_cv_c_strptime_works=no"])
302 else
303 eval "ac_cv_c_strptime_works=maybe"
304 fi
305 AC_MSG_RESULT($ac_cv_c_strptime_works)
306 if test $ac_cv_c_strptime_works = no; then
307 AC_LIBOBJ(strptime)
308 else
309 AC_DEFINE_UNQUOTED([STRPTIME_WORKS], 1, [use default strptime.])
310 fi
311 ])dnl
312
287313 # check some functions of the OS before linking libs (while still runnable).
288314 AC_FUNC_CHOWN
289315 AC_FUNC_FORK
292318 ACX_SYS_LARGEFILE
293319 ACX_CHECK_NONBLOCKING_BROKEN
294320 ACX_MKDIR_ONE_ARG
321 AC_CHECK_FUNCS([strptime],[AC_CHECK_STRPTIME_WORKS],[AC_LIBOBJ([strptime])])
322
323 # set memory allocation checking if requested
324 AC_ARG_ENABLE(alloc-checks, AC_HELP_STRING([--enable-alloc-checks],
325 [ enable to memory allocation statistics, for debug purposes ]),
326 , )
327 AC_ARG_ENABLE(alloc-lite, AC_HELP_STRING([--enable-alloc-lite],
328 [ enable for lightweight alloc assertions, for debug purposes ]),
329 , )
330 AC_ARG_ENABLE(alloc-nonregional, AC_HELP_STRING([--enable-alloc-nonregional],
331 [ enable nonregional allocs, slow but exposes regional allocations to other memory purifiers, for debug purposes ]),
332 , )
333 if test x_$enable_alloc_nonregional = x_yes; then
334 AC_DEFINE(UNBOUND_ALLOC_NONREGIONAL, 1, [use malloc not regions, for debug use])
335 fi
336 if test x_$enable_alloc_checks = x_yes; then
337 AC_DEFINE(UNBOUND_ALLOC_STATS, 1, [use statistics for allocs and frees, for debug use])
338 else
339 if test x_$enable_alloc_lite = x_yes; then
340 AC_DEFINE(UNBOUND_ALLOC_LITE, 1, [use to enable lightweight alloc assertions, for debug use])
341 else
342 ACX_FUNC_MALLOC([unbound])
343 fi
344 fi
295345
296346 # check windows threads (we use them, not pthreads, on windows).
297347 if test "$on_mingw" = "yes"; then
416466 AC_DEFINE(WITH_PYTHONMODULE, 1, [Define if you want Python module.])
417467 WITH_PYTHONMODULE=yes
418468 AC_SUBST(WITH_PYTHONMODULE)
469 PYTHONMOD_OBJ="pythonmod.lo pythonmod_utils.lo"
470 AC_SUBST(PYTHONMOD_OBJ)
471 PYTHONMOD_INSTALL=pythonmod-install
472 AC_SUBST(PYTHONMOD_INSTALL)
473 PYTHONMOD_UNINSTALL=pythonmod-uninstall
474 AC_SUBST(PYTHONMOD_UNINSTALL)
419475 fi
420476
421477 # Declare PyUnbound
423479 AC_DEFINE(WITH_PYUNBOUND, 1, [Define if you want PyUnbound.])
424480 WITH_PYUNBOUND=yes
425481 AC_SUBST(WITH_PYUNBOUND)
482 PYUNBOUND_OBJ="libunbound_wrap.lo"
483 AC_SUBST(PYUNBOUND_OBJ)
484 PYUNBOUND_TARGET="_unbound.la"
485 AC_SUBST(PYUNBOUND_TARGET)
486 PYUNBOUND_INSTALL=pyunbound-install
487 AC_SUBST(PYUNBOUND_INSTALL)
488 PYUNBOUND_UNINSTALL=pyunbound-uninstall
489 AC_SUBST(PYUNBOUND_UNINSTALL)
426490 fi
427491 fi
428492 else
431495 ub_with_pythonmod=no
432496 fi
433497 fi
498
499 if test "`uname`" = "NetBSD"; then
500 NETBSD_LINTFLAGS='"-D__RENAME(x)=" -D_NETINET_IN_H_'
501 AC_SUBST(NETBSD_LINTFLAGS)
502 fi
503 CONFIG_DATE=`date +%Y%m%d`
504 AC_SUBST(CONFIG_DATE)
434505
435506 # Checks for libraries.
436507 ACX_WITH_SSL
468539 ;;
469540 esac
470541
542 # check wether gost also works
543 AC_DEFUN([AC_CHECK_GOST_WORKS],
544 [AC_REQUIRE([AC_PROG_CC])
545 AC_MSG_CHECKING([if GOST works])
546 if test c${cross_compiling} = cno; then
547 BAKCFLAGS="$CFLAGS"
548 if test -n "$ssldir"; then
549 CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
550 fi
551 AC_RUN_IFELSE([AC_LANG_SOURCE([[
552 #include <string.h>
553 #include <openssl/ssl.h>
554 #include <openssl/evp.h>
555 #include <openssl/engine.h>
556 #include <openssl/conf.h>
557 /* routine to load gost from ldns */
558 int load_gost_id(void)
559 {
560 static int gost_id = 0;
561 const EVP_PKEY_ASN1_METHOD* meth;
562 ENGINE* e;
563
564 if(gost_id) return gost_id;
565
566 /* see if configuration loaded gost implementation from other engine*/
567 meth = EVP_PKEY_asn1_find_str(NULL, "gost2001", -1);
568 if(meth) {
569 EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
570 return gost_id;
571 }
572
573 /* see if engine can be loaded already */
574 e = ENGINE_by_id("gost");
575 if(!e) {
576 /* load it ourself, in case statically linked */
577 ENGINE_load_builtin_engines();
578 ENGINE_load_dynamic();
579 e = ENGINE_by_id("gost");
580 }
581 if(!e) {
582 /* no gost engine in openssl */
583 return 0;
584 }
585 if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) {
586 ENGINE_finish(e);
587 ENGINE_free(e);
588 return 0;
589 }
590
591 meth = EVP_PKEY_asn1_find_str(&e, "gost2001", -1);
592 if(!meth) {
593 /* algo not found */
594 ENGINE_finish(e);
595 ENGINE_free(e);
596 return 0;
597 }
598 EVP_PKEY_asn1_get0_info(&gost_id, NULL, NULL, NULL, NULL, meth);
599 return gost_id;
600 }
601 int main(void) {
602 EVP_MD_CTX* ctx;
603 const EVP_MD* md;
604 unsigned char digest[64]; /* its a 256-bit digest, so uses 32 bytes */
605 const char* str = "Hello world";
606 const unsigned char check[] = {
607 0x40 , 0xed , 0xf8 , 0x56 , 0x5a , 0xc5 , 0x36 , 0xe1 ,
608 0x33 , 0x7c , 0x7e , 0x87 , 0x62 , 0x1c , 0x42 , 0xe0 ,
609 0x17 , 0x1b , 0x5e , 0xce , 0xa8 , 0x46 , 0x65 , 0x4d ,
610 0x8d , 0x3e , 0x22 , 0x9b , 0xe1 , 0x30 , 0x19 , 0x9d
611 };
612 OPENSSL_config(NULL);
613 (void)load_gost_id();
614 md = EVP_get_digestbyname("md_gost94");
615 if(!md) return 1;
616 memset(digest, 0, sizeof(digest));
617 ctx = EVP_MD_CTX_create();
618 if(!ctx) return 2;
619 if(!EVP_DigestInit_ex(ctx, md, NULL)) return 3;
620 if(!EVP_DigestUpdate(ctx, str, 10)) return 4;
621 if(!EVP_DigestFinal_ex(ctx, digest, NULL)) return 5;
622 /* uncomment to see the hash calculated.
623 {int i;
624 for(i=0; i<32; i++)
625 printf(" %2.2x", (int)digest[i]);
626 printf("\n");}
627 */
628 if(memcmp(digest, check, sizeof(check)) != 0)
629 return 6;
630 return 0;
631 }
632 ]])] , [eval "ac_cv_c_gost_works=yes"], [eval "ac_cv_c_gost_works=no"])
633 CFLAGS="$BAKCFLAGS"
634 else
635 eval "ac_cv_c_gost_works=maybe"
636 fi
637 AC_MSG_RESULT($ac_cv_c_gost_works)
638 ])dnl
639
471640 AC_ARG_ENABLE(gost, AC_HELP_STRING([--disable-gost], [Disable GOST support]))
472641 use_gost="no"
473642 case "$enable_gost" in
476645 *)
477646 AC_CHECK_FUNC(EVP_PKEY_set_type_str, [:],[AC_MSG_ERROR([OpenSSL 1.0.0 is needed for GOST support])])
478647 AC_CHECK_FUNC(EC_KEY_new, [], [AC_MSG_ERROR([OpenSSL does not support ECC, needed for GOST support])])
479 use_gost="yes"
480 AC_DEFINE([USE_GOST], [1], [Define this to enable GOST support.])
648 AC_CHECK_GOST_WORKS
649 if test $ac_cv_c_gost_works != no; then
650 use_gost="yes"
651 AC_DEFINE([USE_GOST], [1], [Define this to enable GOST support.])
652 fi
481653 ;;
482654 esac
483655
605777 , )
606778 if test x_$enable_lock_checks = x_yes; then
607779 AC_DEFINE(ENABLE_LOCK_CHECKS, 1, [Define if you want to use debug lock checking (slow).])
608 CHECKLOCK_SRC="testcode/checklocks.c"
609 AC_SUBST(CHECKLOCK_SRC)
610 fi
611
612 # set memory allocation checking if requested
613 AC_ARG_ENABLE(alloc-checks, AC_HELP_STRING([--enable-alloc-checks],
614 [ enable to memory allocation statistics, for debug purposes ]),
615 , )
616 AC_ARG_ENABLE(alloc-lite, AC_HELP_STRING([--enable-alloc-lite],
617 [ enable for lightweight alloc assertions, for debug purposes ]),
618 , )
619 AC_ARG_ENABLE(alloc-nonregional, AC_HELP_STRING([--enable-alloc-nonregional],
620 [ enable nonregional allocs, slow but exposes regional allocations to other memory purifiers, for debug purposes ]),
621 , )
622 if test x_$enable_alloc_nonregional = x_yes; then
623 AC_DEFINE(UNBOUND_ALLOC_NONREGIONAL, 1, [use malloc not regions, for debug use])
624 fi
625 if test x_$enable_alloc_checks = x_yes; then
626 AC_DEFINE(UNBOUND_ALLOC_STATS, 1, [use statistics for allocs and frees, for debug use])
627 else
628 if test x_$enable_alloc_lite = x_yes; then
629 AC_DEFINE(UNBOUND_ALLOC_LITE, 1, [use to enable lightweight alloc assertions, for debug use])
630 else
631 ACX_FUNC_MALLOC([unbound])
632 fi
780 CHECKLOCK_OBJ="checklocks.lo"
781 AC_SUBST(CHECKLOCK_OBJ)
633782 fi
634783
635784 ACX_CHECK_GETADDRINFO_WITH_INCLUDES
636785 if test "$USE_WINSOCK" = 1; then
637786 AC_DEFINE(UB_ON_WINDOWS, 1, [Use win32 resources and API])
638 UB_ON_WINDOWS=yes
639 AC_SUBST(UB_ON_WINDOWS)
640787 AC_CHECK_HEADERS([iphlpapi.h],,, [AC_INCLUDES_DEFAULT
641788 #include <windows.h>
642789 ])
643790 AC_CHECK_TOOL(WINDRES, windres)
644791 LIBS="$LIBS -liphlpapi"
792 WINAPPS="unbound-service-install.exe unbound-service-remove.exe anchor-update.exe"
793 AC_SUBST(WINAPPS)
794 WIN_DAEMON_SRC="winrc/win_svc.c winrc/w_inst.c"
795 AC_SUBST(WIN_DAEMON_SRC)
796 WIN_DAEMON_OBJ="win_svc.lo w_inst.lo"
797 AC_SUBST(WIN_DAEMON_OBJ)
798 WIN_DAEMON_OBJ_LINK="rsrc_unbound.o"
799 AC_SUBST(WIN_DAEMON_OBJ_LINK)
800 WIN_HOST_OBJ_LINK="rsrc_unbound_host.o"
801 AC_SUBST(WIN_HOST_OBJ_LINK)
802 WIN_UBANCHOR_OBJ_LINK="rsrc_unbound_anchor.o log.lo locks.lo"
803 AC_SUBST(WIN_UBANCHOR_OBJ_LINK)
804 WIN_CONTROL_OBJ_LINK="rsrc_unbound_control.o"
805 AC_SUBST(WIN_CONTROL_OBJ_LINK)
806 WIN_CHECKCONF_OBJ_LINK="rsrc_unbound_checkconf.o"
807 AC_SUBST(WIN_CHECKCONF_OBJ_LINK)
645808 fi
646809 if test $ac_cv_func_getaddrinfo = no; then
647810 AC_LIBOBJ([fake-rfc2553])
657820 ])
658821 fi
659822
660 # check wether strptime also works
661 AC_DEFUN([AC_CHECK_STRPTIME_WORKS],
662 [AC_REQUIRE([AC_PROG_CC])
663 AC_MSG_CHECKING(whether strptime works)
664 if test c${cross_compiling} = cno; then
665 AC_RUN_IFELSE([AC_LANG_SOURCE([[
666 #define _XOPEN_SOURCE
667 #include <time.h>
668 int main(void) { struct tm tm; char *res;
669 res = strptime("20070207111842", "%Y%m%d%H%M%S", &tm);
670 if (!res) return 1; return 0; }
671 ]])] , [eval "ac_cv_c_strptime_works=yes"], [eval "ac_cv_c_strptime_works=no"])
672 else
673 eval "ac_cv_c_strptime_works=maybe"
674 fi
675 AC_MSG_RESULT($ac_cv_c_strptime_works)
676 if test $ac_cv_c_strptime_works = no; then
677 AC_LIBOBJ(strptime)
678 else
679 AC_DEFINE_UNQUOTED([STRPTIME_WORKS], 1, [use default strptime.])
680 fi
681 ])dnl
682 AC_CHECK_FUNCS([strptime],[AC_CHECK_STRPTIME_WORKS],[AC_LIBOBJ([strptime])])
683823 AC_SEARCH_LIBS([setusercontext], [util])
684824 AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev socketpair glob initgroups strftime localtime_r setusercontext _beginthreadex])
685825 AC_CHECK_FUNCS([setresuid],,[AC_CHECK_FUNCS([setreuid])])
696836 AC_REPLACE_FUNCS(strlcpy)
697837 AC_REPLACE_FUNCS(memmove)
698838 AC_REPLACE_FUNCS(gmtime_r)
839 LIBOBJ_WITHOUT_CTIME="$LIBOBJS"
840 AC_SUBST(LIBOBJ_WITHOUT_CTIME)
699841 AC_REPLACE_FUNCS(ctime_r)
700842
701843 AC_ARG_ENABLE(allsymbols, AC_HELP_STRING([--enable-allsymbols], [export all symbols from libunbound and link binaries to it, smaller install size but libunbound export table is polluted by internal symbols]))
702844 case "$enable_allsymbols" in
703 no)
704 EXPORT_ALL_SYMBOLS=no
845 yes)
846 COMMON_OBJ_ALL_SYMBOLS=""
847 UBSYMS=""
848 EXTRALINK="-L. -L.libs -lunbound"
849 AC_DEFINE(EXPORT_ALL_SYMBOLS, 1, [Define this if you enabled-allsymbols from libunbound to link binaries to it for smaller install size, but the libunbound export table is polluted by internal symbols])
705850 ;;
706 yes)
707 EXPORT_ALL_SYMBOLS=yes
851 no|*)
852 COMMON_OBJ_ALL_SYMBOLS='$(COMMON_OBJ)'
853 UBSYMS='-export-symbols $(srcdir)/libunbound/ubsyms.def'
854 EXTRALINK=""
708855 ;;
709856 esac
710 AC_SUBST(EXPORT_ALL_SYMBOLS)
857 AC_SUBST(COMMON_OBJ_ALL_SYMBOLS)
858 AC_SUBST(EXTRALINK)
859 AC_SUBST(UBSYMS)
860 if test x_$enable_lock_checks = x_yes; then
861 UBSYMS="-export-symbols clubsyms.def"
862 cp ${srcdir}/libunbound/ubsyms.def clubsyms.def
863 echo lock_protect >> clubsyms.def
864 echo lock_unprotect >> clubsyms.def
865 echo lock_get_mem >> clubsyms.def
866 echo checklock_start >> clubsyms.def
867 echo checklock_stop >> clubsyms.def
868 echo checklock_lock >> clubsyms.def
869 echo checklock_unlock >> clubsyms.def
870 echo checklock_init >> clubsyms.def
871 echo checklock_thrcreate >> clubsyms.def
872 echo checklock_thrjoin >> clubsyms.def
873 fi
874
875 AC_MSG_CHECKING([if ${MAKE:-make} supports $< with implicit rule in scope])
876 # on openBSD, the implicit rule make $< work.
877 # on Solaris, it does not work ($? is changed sources, $^ lists dependencies).
878 # gmake works.
879 cat >conftest.make <<EOF
880 all: conftest.lo
881
882 conftest.lo foo.lo bla.lo:
883 if test -f "\$<"; then touch \$@; fi
884
885 .SUFFIXES: .lo
886 .c.lo:
887 if test -f "\$<"; then touch \$@; fi
888
889 conftest.lo: conftest.dir/conftest.c
890 EOF
891 mkdir conftest.dir
892 touch conftest.dir/conftest.c
893 rm -f conftest.lo conftest.c
894 ${MAKE:-make} -f conftest.make >/dev/null
895 rm -f conftest.make conftest.c conftest.dir/conftest.c
896 rm -rf conftest.dir
897 if test ! -f conftest.lo; then
898 AC_MSG_RESULT(no)
899 SOURCEDETERMINE='echo "$^" | awk "-F " "{print \$$1;}" > .source'
900 SOURCEFILE='`cat .source`'
901 else
902 AC_MSG_RESULT(yes)
903 SOURCEDETERMINE=':'
904 SOURCEFILE='$<'
905 fi
906 rm -f conftest.lo
907 AC_SUBST(SOURCEDETERMINE)
908 AC_SUBST(SOURCEFILE)
711909
712910 # check this after all other compilation checks, since the linking of the lib
713911 # may break checks after this.
00 #!/bin/sh
11 #
22 # plugin for munin to monitor usage of unbound servers.
3 # To install copy this to /usr/local/share/munin/plugins/unbound_munin_
4 # and use munin-node-configure (--suggest, --shell).
35 #
46 # (C) 2008 W.C.A. Wijngaards. BSD Licensed.
57 #
4446 # unbound_munin_histogram - histogram of query resolving times
4547 #
4648 # Magic markers - optional - used by installation scripts and
47 # munin-config:
48 #
49 #%# family=contrib
49 # munin-config: (originally contrib family but munin-node-configure ignores it)
50 #
51 #%# family=auto
5052 #%# capabilities=autoconf suggest
5153
5254 # POD documentation
174176 exit 1
175177 fi
176178 if test ! -d `dirname $state`; then
177 echo no "($state directory does not exist)"
179 echo no "(`dirname $state` directory does not exist)"
178180 exit 1
179181 fi
180182 echo yes
3939 * to text format.
4040 */
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "daemon/cachedump.h"
4444 #include "daemon/remote.h"
4545 #include "daemon/worker.h"
813813 return;
814814 }
815815 /* lookup in infra cache */
816 delay=0;
816817 entry_ttl = infra_get_host_rto(worker->env.infra_cache,
817 &a->addr, a->addrlen, &ri, &delay, *worker->env.now);
818 &a->addr, a->addrlen, dp->name, dp->namelen,
819 &ri, &delay, *worker->env.now);
818820 if(entry_ttl == -2 && ri.rto >= USEFUL_SERVER_TOP_TIMEOUT) {
819821 if(!ssl_printf(ssl, "expired, rto %d msec.\n", ri.rto))
820822 return;
847849 if(!ssl_printf(ssl, ", probedelay %d", delay))
848850 return;
849851 if(infra_host(worker->env.infra_cache, &a->addr, a->addrlen,
850 *worker->env.now, &edns_vs, &edns_lame_known, &to)) {
852 dp->name, dp->namelen, *worker->env.now, &edns_vs,
853 &edns_lame_known, &to)) {
851854 if(edns_vs == -1) {
852855 if(!ssl_printf(ssl, ", noEDNS%s.",
853856 edns_lame_known?" probed":" assumed"))
5454 #ifdef HAVE_OPENSSL_ENGINE_H
5555 #include <openssl/engine.h>
5656 #endif
57 #include "ldns/ldns.h"
57 #include <ldns/ldns.h>
5858 #include "daemon/daemon.h"
5959 #include "daemon/worker.h"
6060 #include "daemon/remote.h"
527527 free(daemon->chroot);
528528 free(daemon->pidfile);
529529 free(daemon->env);
530 SSL_CTX_free((SSL_CTX*)daemon->listen_sslctx);
531 SSL_CTX_free((SSL_CTX*)daemon->connect_sslctx);
530532 free(daemon);
531533 #ifdef LEX_HAS_YYLEX_DESTROY
532534 /* lex cleanup */
7979 struct listen_port* rc_ports;
8080 /** remote control connections management (for first worker) */
8181 struct daemon_remote* rc;
82 /** ssl context for listening to dnstcp over ssl, and connecting ssl */
83 void* listen_sslctx, *connect_sslctx;
8284 /** num threads allocated */
8385 int num;
8486 /** the worker entries */
4646 #include <openssl/err.h>
4747 #endif
4848 #include <ctype.h>
49 #include "ldns/ldns.h"
49 #include <ldns/ldns.h>
5050 #include "daemon/remote.h"
5151 #include "daemon/worker.h"
5252 #include "daemon/daemon.h"
9090 #define SQ "="
9191 /** if true, inhibits a lot of =0 lines from the stats output */
9292 static const int inhibit_zero = 1;
93
94 /** log ssl crypto err */
95 static void
96 log_crypto_err(const char* str)
97 {
98 /* error:[error code]:[library name]:[function name]:[reason string] */
99 char buf[128];
100 unsigned long e;
101 ERR_error_string_n(ERR_get_error(), buf, sizeof(buf));
102 log_err("%s crypto %s", str, buf);
103 while( (e=ERR_get_error()) ) {
104 ERR_error_string_n(e, buf, sizeof(buf));
105 log_err("and additionally crypto %s", buf);
106 }
107 }
10893
10994 /** subtract timers and the values do not overflow or become negative */
11095 static void
11021087 send_ok(ssl);
11031088 }
11041089
1105 /** flush infra cache */
1106 static void
1107 do_flush_infra(SSL* ssl, struct worker* worker, char* arg)
1108 {
1109 struct sockaddr_storage addr;
1110 socklen_t len;
1111 if(strcmp(arg, "all") == 0) {
1112 slabhash_clear(worker->env.infra_cache->hosts);
1113 send_ok(ssl);
1114 return;
1115 }
1116 if(!ipstrtoaddr(arg, UNBOUND_DNS_PORT, &addr, &len)) {
1117 (void)ssl_printf(ssl, "error parsing ip addr: '%s'\n", arg);
1118 return;
1119 }
1120 infra_remove_host(worker->env.infra_cache, &addr, len);
1121 send_ok(ssl);
1122 }
1123
1124 /** flush requestlist */
1125 static void
1126 do_flush_requestlist(SSL* ssl, struct worker* worker)
1127 {
1128 mesh_delete_all(worker->env.mesh);
1129 send_ok(ssl);
1130 }
1131
11321090 /**
11331091 * Local info for deletion functions
11341092 */
11511109 size_t num_msgs;
11521110 /** number of key entries removed */
11531111 size_t num_keys;
1112 /** length of addr */
1113 socklen_t addrlen;
1114 /** socket address for host deletion */
1115 struct sockaddr_storage addr;
11541116 };
1117
1118 /** callback to delete hosts in infra cache */
1119 static void
1120 infra_del_host(struct lruhash_entry* e, void* arg)
1121 {
1122 /* entry is locked */
1123 struct del_info* inf = (struct del_info*)arg;
1124 struct infra_key* k = (struct infra_key*)e->key;
1125 if(sockaddr_cmp(&inf->addr, inf->addrlen, &k->addr, k->addrlen) == 0) {
1126 struct infra_data* d = (struct infra_data*)e->data;
1127 if(d->ttl >= inf->now) {
1128 d->ttl = inf->expired;
1129 inf->num_keys++;
1130 }
1131 }
1132 }
1133
1134 /** flush infra cache */
1135 static void
1136 do_flush_infra(SSL* ssl, struct worker* worker, char* arg)
1137 {
1138 struct sockaddr_storage addr;
1139 socklen_t len;
1140 struct del_info inf;
1141 if(strcmp(arg, "all") == 0) {
1142 slabhash_clear(worker->env.infra_cache->hosts);
1143 send_ok(ssl);
1144 return;
1145 }
1146 if(!ipstrtoaddr(arg, UNBOUND_DNS_PORT, &addr, &len)) {
1147 (void)ssl_printf(ssl, "error parsing ip addr: '%s'\n", arg);
1148 return;
1149 }
1150 /* delete all entries from cache */
1151 /* what we do is to set them all expired */
1152 inf.worker = worker;
1153 inf.name = 0;
1154 inf.len = 0;
1155 inf.labs = 0;
1156 inf.now = *worker->env.now;
1157 inf.expired = *worker->env.now;
1158 inf.expired -= 3; /* handle 3 seconds skew between threads */
1159 inf.num_rrsets = 0;
1160 inf.num_msgs = 0;
1161 inf.num_keys = 0;
1162 inf.addrlen = len;
1163 memmove(&inf.addr, &addr, len);
1164 slabhash_traverse(worker->env.infra_cache->hosts, 1, &infra_del_host,
1165 &inf);
1166 send_ok(ssl);
1167 }
1168
1169 /** flush requestlist */
1170 static void
1171 do_flush_requestlist(SSL* ssl, struct worker* worker)
1172 {
1173 mesh_delete_all(worker->env.mesh);
1174 send_ok(ssl);
1175 }
11551176
11561177 /** callback to delete rrsets in a zone */
11571178 static void
15261547 SSL* ssl;
15271548 /** the time now */
15281549 uint32_t now;
1529 /** ipstr */
1530 char* ipstr;
15311550 };
15321551
1533 /** callback for every lame element in the infra cache */
1534 static void
1535 dump_infra_lame(struct lruhash_entry* e, void* arg)
1552 /** callback for every host element in the infra cache */
1553 static void
1554 dump_infra_host(struct lruhash_entry* e, void* arg)
15361555 {
15371556 struct infra_arg* a = (struct infra_arg*)arg;
1538 struct infra_lame_key* k = (struct infra_lame_key*)e->key;
1539 struct infra_lame_data* d = (struct infra_lame_data*)e->data;
1540 ldns_rdf* rdf;
1541 size_t pos = 0;
1542 char* nm;
1543 /* skip expired */
1544 if(d->ttl < a->now) {
1545 return;
1546 }
1547 /* use ldns print for domain name */
1548 if(ldns_wire2dname(&rdf, k->zonename, k->namelen, &pos)
1549 != LDNS_STATUS_OK)
1550 return;
1551 nm = ldns_rdf2str(rdf);
1552 ldns_rdf_deep_free(rdf);
1553 if(!ssl_printf(a->ssl, "%s lame %s ttl %d dnssec %d rec %d "
1554 "A %d other %d\n", a->ipstr, nm, (int)(d->ttl - a->now),
1555 d->isdnsseclame, d->rec_lame, d->lame_type_A, d->lame_other)) {
1556 free(nm);
1557 return;
1558 }
1559 free(nm);
1560 }
1561
1562 /** callback for every host element in the infra cache */
1563 static void
1564 dump_infra_host(struct lruhash_entry* e, void* arg)
1565 {
1566 struct infra_arg* a = (struct infra_arg*)arg;
1567 struct infra_host_key* k = (struct infra_host_key*)e->key;
1568 struct infra_host_data* d = (struct infra_host_data*)e->data;
1557 struct infra_key* k = (struct infra_key*)e->key;
1558 struct infra_data* d = (struct infra_data*)e->data;
15691559 char ip_str[1024];
1560 char name[257];
15701561 addr_to_str(&k->addr, k->addrlen, ip_str, sizeof(ip_str));
1571 a->ipstr = ip_str;
1562 dname_str(k->zonename, name);
15721563 /* skip expired stuff (only backed off) */
15731564 if(d->ttl < a->now) {
15741565 if(d->rtt.rto >= USEFUL_SERVER_TOP_TIMEOUT) {
1575 if(!ssl_printf(a->ssl, "%s expired rto %d\n", ip_str,
1576 d->rtt.rto)) return;
1577 }
1578 if(d->lameness)
1579 lruhash_traverse(d->lameness, 0, &dump_infra_lame, arg);
1580 return;
1581 }
1582 if(!ssl_printf(a->ssl, "%s ttl %d ping %d var %d rtt %d rto %d "
1583 "ednsknown %d edns %d delay %d\n",
1584 ip_str, (int)(d->ttl - a->now),
1566 if(!ssl_printf(a->ssl, "%s %s expired rto %d\n", ip_str,
1567 name, d->rtt.rto)) return;
1568 }
1569 return;
1570 }
1571 if(!ssl_printf(a->ssl, "%s %s ttl %d ping %d var %d rtt %d rto %d "
1572 "ednsknown %d edns %d delay %d lame dnssec %d rec %d A %d "
1573 "other %d\n", ip_str, name, (int)(d->ttl - a->now),
15851574 d->rtt.srtt, d->rtt.rttvar, rtt_notimeout(&d->rtt), d->rtt.rto,
15861575 (int)d->edns_lame_known, (int)d->edns_version,
1587 (int)(a->now<d->probedelay?d->probedelay-a->now:0)))
1588 return;
1589 if(d->lameness)
1590 lruhash_traverse(d->lameness, 0, &dump_infra_lame, arg);
1576 (int)(a->now<d->probedelay?d->probedelay-a->now:0),
1577 (int)d->isdnsseclame, (int)d->rec_lame, (int)d->lame_type_A,
1578 (int)d->lame_other))
1579 return;
15911580 }
15921581
15931582 /** do the dump_infra command */
3939 * numbers. These 'statistics' may be of interest to the operator.
4040 */
4141 #include "config.h"
42 #include "ldns/wire2host.h"
42 #include <ldns/wire2host.h>
4343 #include "daemon/stats.h"
4444 #include "daemon/worker.h"
4545 #include "daemon/daemon.h"
4242 #ifndef DAEMON_STATS_H
4343 #define DAEMON_STATS_H
4444 #include "util/timehist.h"
45 #include "ldns/buffer.h"
45 #include <ldns/buffer.h>
4646 struct worker;
4747 struct config_file;
4848 struct comm_point;
5454 #include "services/cache/infra.h"
5555 #include "util/data/msgreply.h"
5656 #include "util/module.h"
57 #include "util/net_help.h"
5758 #include <signal.h>
5859 #include <fcntl.h>
5960 #include <openssl/crypto.h>
445446 /* read ssl keys while superuser and outside chroot */
446447 if(!(daemon->rc = daemon_remote_create(cfg)))
447448 fatal_exit("could not set up remote-control");
449 if(cfg->ssl_service_key && cfg->ssl_service_key[0]) {
450 if(!(daemon->listen_sslctx = listen_sslctx_create(
451 cfg->ssl_service_key, cfg->ssl_service_pem, NULL)))
452 fatal_exit("could not set up listen SSL_CTX");
453 }
454 if(!(daemon->connect_sslctx = connect_sslctx_create(NULL, NULL, NULL)))
455 fatal_exit("could not set up connect SSL_CTX");
448456
449457 #ifdef HAVE_KILL
450458 /* check old pid file before forking */
3939 * pending requests.
4040 */
4141 #include "config.h"
42 #include "ldns/wire2host.h"
42 #include <ldns/wire2host.h>
4343 #include "util/log.h"
4444 #include "util/net_help.h"
4545 #include "util/random.h"
10911091 }
10921092 worker->front = listen_create(worker->base, ports,
10931093 cfg->msg_buffer_size, (int)cfg->incoming_num_tcp,
1094 worker_handle_request, worker);
1094 worker->daemon->listen_sslctx, worker_handle_request, worker);
10951095 if(!worker->front) {
10961096 log_err("could not create listening sockets");
10971097 worker_delete(worker);
11041104 worker->daemon->env->infra_cache, worker->rndstate,
11051105 cfg->use_caps_bits_for_id, worker->ports, worker->numports,
11061106 cfg->unwanted_threshold, &worker_alloc_cleanup, worker,
1107 cfg->do_udp);
1107 cfg->do_udp, worker->daemon->connect_sslctx);
11081108 if(!worker->back) {
11091109 log_err("could not create outgoing sockets");
11101110 worker_delete(worker);
12431243 struct outbound_entry*
12441244 worker_send_query(uint8_t* qname, size_t qnamelen, uint16_t qtype,
12451245 uint16_t qclass, uint16_t flags, int dnssec, int want_dnssec,
1246 struct sockaddr_storage* addr, socklen_t addrlen,
1247 struct module_qstate* q)
1246 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone,
1247 size_t zonelen, struct module_qstate* q)
12481248 {
12491249 struct worker* worker = q->env->worker;
12501250 struct outbound_entry* e = (struct outbound_entry*)regional_alloc(
12541254 e->qstate = q;
12551255 e->qsent = outnet_serviced_query(worker->back, qname,
12561256 qnamelen, qtype, qclass, flags, dnssec, want_dnssec,
1257 q->env->cfg->tcp_upstream, addr, addrlen,
1258 worker_handle_service_reply, e, worker->back->udp_buff,
1259 &outbound_entry_compare);
1257 q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, addr,
1258 addrlen, zone, zonelen, worker_handle_service_reply, e,
1259 worker->back->udp_buff, &outbound_entry_compare);
12601260 if(!e->qsent) {
12611261 return NULL;
12621262 }
174174 * @param want_dnssec: signatures needed.
175175 * @param addr: where to.
176176 * @param addrlen: length of addr.
177 * @param zone: wireformat dname of the zone.
178 * @param zonelen: length of zone name.
177179 * @param q: wich query state to reactivate upon return.
178180 * @return: false on failure (memory or socket related). no query was
179181 * sent.
181183 struct outbound_entry* worker_send_query(uint8_t* qname, size_t qnamelen,
182184 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec,
183185 int want_dnssec, struct sockaddr_storage* addr, socklen_t addrlen,
184 struct module_qstate* q);
186 uint8_t* zone, size_t zonelen, struct module_qstate* q);
185187
186188 /**
187189 * process control messages from the main thread. Frees the control
0 19 December 2011: Wouter
1 - Fix for VU#209659 CVE-2011-4528: Unbound denial of service
2 vulnerabilities from nonstandard redirection and denial of existence
3 http://www.unbound.net/downloads/CVE-2011-4528.txt
4 - robust checks for next-closer NSEC3s.
5 - tag 1.4.14 created.
6
7 15 December 2011: Wouter
8 - remove uninit warning from cachedump code.
9 - Fix parse error on negative SOA RRSIGs if badly ordered in the packet.
10
11 13 December 2011: Wouter
12 - iana portlist updated.
13 - svn tag 1.4.14rc1
14 - fix infra cache comparison.
15 - Fix to constrain signer_name to be a parent of the lookupname.
16
17 5 December 2011: Wouter
18 - Fix getaddrinfowithincludes on windows with fedora16 mingw32-gcc.
19 - Fix warnings with gcc 4.6 in compat/inet_ntop.c.
20 - Fix warning unused in compat/strptime.c.
21 - Fix malloc detection and double defintion.
22
23 2 December 2011: Wouter
24 - configure generated with autoconf 2.68.
25
26 30 November 2011: Wouter
27 - Fix for tcp-upstream and ssl-upstream for if a laptop sleeps, causes
28 SERVFAILs. Also fixed for UDP (but less likely).
29
30 28 November 2011: Wouter
31 - Fix quartile time estimate, it was too low, (thanks Jan Komissar).
32 - iana ports updated.
33
34 11 November 2011: Wouter
35 - Makefile compat with SunOS make, BSD make and GNU make.
36 - iana ports updated.
37
38 10 November 2011: Wouter
39 - Makefile changed for BSD make compatibility.
40
41 9 November 2011: Wouter
42 - added unit test for SSL service and SSL-upstream.
43
44 8 November 2011: Wouter
45 - can configure ssl service to one port number, and not on others.
46 - fixup windows compile with ssl support.
47 - Fix double free in unbound-host, reported by Steve Grubb.
48 - iana portlist updated.
49
50 1 November 2011: Wouter
51 - dns over ssl support as a client, ssl-upstream yes turns it on.
52 It performs an SSL transaction for every DNS query (250 msec).
53 - documentation for new options: ssl-upstream, ssl-service-key and
54 ssl-service.pem.
55 - iana portlist updated.
56 - fix -flto detection on Lion for llvm-gcc.
57
58 31 October 2011: Wouter
59 - dns over ssl support, ssl-service-pem and ssl-service-key files
60 can be given and then TCP queries are serviced wrapped in SSL.
61
62 27 October 2011: Wouter
63 - lame-ttl and lame-size options no longer exist, it is integrated
64 with the host info. They are ignored (with verbose warning) if
65 encountered to keep the config file backwards compatible.
66 - fix iana-update for changing gzip compression of results.
67 - fix export-all-symbols on OSX.
68
69 26 October 2011: Wouter
70 - iana portlist updated.
71 - Infra cache stores information about ping and lameness per IP, zone.
72 This fixes bug #416.
73 - fix iana_update target for gzipped file on iana site.
74
75 24 October 2011: Wouter
76 - Fix resolve of partners.extranet.microsoft.com with a fix for the
77 server selection for choosing out of a (particular) list of bad
78 choices. (bug#415)
79 - Fix make_new_space function so that the incoming query is not
80 overwritten if a jostled out query causes a waiting query to be
81 resumed that then fails and sends an error message. (Thanks to
82 Matthew Lee).
83
84 21 October 2011: Wouter
85 - fix --enable-allsymbols, fptr wlist is disabled on windows with this
86 option enabled because of memory layout exe vs dll.
87
88 19 October 2011: Wouter
89 - fix unbound-anchor for broken strptime on OSX lion, detected
90 in configure.
91 - Detect if GOST really works, openssl1.0 on OSX fails.
92 - Implement ipv6%interface notation for scope_id usage.
93
94 17 October 2011: Wouter
95 - better documentation for inform_super (Thanks Yang Zhe).
96
97 14 October 2011: Wouter
98 - Fix for out-of-memory condition in libunbound (thanks
99 Robert Fleischman).
100
101 13 October 2011: Wouter
102 - Fix --enable-allsymbols, it depended on link specifics of the
103 target platform, or fptr_wlist assertion failures could occur.
104
105 12 October 2011: Wouter
106 - updated contrib/unbound_munin_ to family=auto so that it works with
107 munin-node-configure automatically (if installed as
108 /usr/local/share/munin/plugins/unbound_munin_ ).
109
110 27 September 2011: Wouter
111 - unbound.exe -w windows option for start and stop service.
112
113 23 September 2011: Wouter
114 - TCP-upstream calculates tcp-ping so server selection works if there
115 are alternatives.
116
117 20 September 2011: Wouter
118 - Fix classification of NS set in answer section, where there is a
119 parent-child server, and the answer has the AA flag for dir.slb.com.
120 Thanks to Amanda Constant from Secure64.
121
122 16 September 2011: Wouter
123 - fix bug #408: accept patch from Steve Snyder that comments out
124 unused functions in lookup3.c.
125 - iana portlist updated.
126 - fix EDNS1480 change memleak and TCP fallback.
127 - fix various compiler warnings (reported by Paul Wouters).
128 - max sent count. EDNS1480 only for rtt < 5000. No promiscuous
129 fetch if sentcount > 3, stop query if sentcount > 16. Count is
130 reset when referral or CNAME happens. This makes unbound better
131 at managing large NS sets, they are explored when there is continued
132 interest (in the form of queries).
133
134 15 September 2011: Wouter
135 - release 1.4.13.
136 - trunk contains 1.4.14 in development.
137 - Unbound probes at EDNS1480 if there an EDNS0 timeout.
138
0139 12 September 2011: Wouter
1140 - Reverted dns EDNS backoff fix, it did not help and needs
2141 fragmentation fixes instead.
0 README for Unbound 1.4.13
0 README for Unbound 1.4.14
11 Copyright 2007 NLnet Labs
22 http://unbound.net
33
00 #
11 # Example configuration file.
22 #
3 # See unbound.conf(5) man page, version 1.4.13.
3 # See unbound.conf(5) man page, version 1.4.14.
44 #
55 # this is a comment.
66
122122 # cache. Items are not cached for longer. In seconds.
123123 # cache-max-ttl: 86400
124124
125 # the time to live (TTL) value for cached roundtrip times and
125 # the time to live (TTL) value for cached roundtrip times, lameness and
126126 # EDNS version information for hosts. In seconds.
127127 # infra-host-ttl: 900
128
129 # the time to live (TTL) value for cached lame delegations. In sec.
130 # infra-lame-ttl: 900
131128
132129 # the number of slabs to use for the Infrastructure cache.
133130 # the number of slabs must be a power of 2.
134131 # more slabs reduce lock contention, but fragment memory usage.
135132 # infra-cache-slabs: 4
136133
137 # the maximum number of hosts that are cached (roundtrip times, EDNS).
134 # the maximum number of hosts that are cached (roundtrip, EDNS, lame).
138135 # infra-cache-numhosts: 10000
139
140 # the maximum size of the lame zones cached per host. in bytes.
141 # infra-cache-lame-size: 10k
142136
143137 # Enable IPv4, "yes" or "no".
144138 # do-ip4: yes
458452 # you need to do the reverse notation yourself.
459453 # local-data-ptr: "192.0.2.3 www.example.com"
460454
455 # service clients over SSL (on the TCP sockets), with plain DNS inside
456 # the SSL stream. Give the certificate to use and private key.
457 # default is "" (disabled). requires restart to take effect.
458 # ssl-service-key: "path/to/privatekeyfile.key"
459 # ssl-service-pem: "path/to/publiccertfile.pem"
460 # ssl-port: 443
461
462 # request upstream over SSL (with plain DNS inside the SSL stream).
463 # Default is no. Can be turned on and off with unbound-control.
464 # ssl-upstream: no
465
461466 # Python config section. To enable:
462467 # o use --with-pythonmodule to configure before compiling.
463468 # o list python in the module-config string (above) to enable.
0 .TH "libunbound" "3" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "libunbound" "3" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" libunbound.3 -- unbound library functions manual
33 .\"
4141 .B ub_ctx_zone_remove,
4242 .B ub_ctx_data_add,
4343 .B ub_ctx_data_remove
44 \- Unbound DNS validating resolver 1.4.13 functions.
44 \- Unbound DNS validating resolver 1.4.14 functions.
4545 .SH "SYNOPSIS"
4646 .LP
4747 .B #include <unbound.h>
0 .TH "unbound-anchor" "8" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound-anchor" "8" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound-anchor.8 -- unbound anchor maintenance utility manual
33 .\"
0 .TH "unbound-checkconf" "8" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound-checkconf" "8" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound-checkconf.8 -- unbound configuration checker manual
33 .\"
0 .TH "unbound-control" "8" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound-control" "8" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound-control.8 -- unbound remote control manual
33 .\"
163163 harden\-referral\-path, prefetch, prefetch\-key, log\-queries,
164164 hide\-identity, hide\-version, identity, version, val\-log\-level,
165165 val\-log\-squelch, ignore\-cd\-flag, add\-holddown, del\-holddown,
166 keep\-missing, tcp\-upstream.
166 keep\-missing, tcp\-upstream, ssl\-upstream.
167167 .TP
168168 .B get_option \fIopt
169169 Get the value of the option. Give the option name without a trailing ':'.
0 .TH "unbound\-host" "1" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound\-host" "1" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound-host.1 -- unbound DNS lookup utility
33 .\"
0 .TH "unbound" "8" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound" "8" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound.8 -- unbound manual
33 .\"
99 .SH "NAME"
1010 .LP
1111 .B unbound
12 \- Unbound DNS validating resolver 1.4.13.
12 \- Unbound DNS validating resolver 1.4.14.
1313 .SH "SYNOPSIS"
1414 .LP
1515 .B unbound
0 .TH "unbound.conf" "5" "Sep 15, 2011" "NLnet Labs" "unbound 1.4.13"
0 .TH "unbound.conf" "5" "Dec 19, 2011" "NLnet Labs" "unbound 1.4.14"
11 .\"
22 .\" unbound.conf.5 -- unbound.conf manual
33 .\"
268268 .TP
269269 .B infra\-host\-ttl: \fI<seconds>
270270 Time to live for entries in the host cache. The host cache contains
271 roundtrip timing and EDNS support information. Default is 900.
272 .TP
273 .B infra\-lame\-ttl: \fI<seconds>
274 The time to live when a delegation is discovered to be lame. Default is 900.
271 roundtrip timing, lameness and EDNS support information. Default is 900.
275272 .TP
276273 .B infra\-cache\-slabs: \fI<number>
277274 Number of slabs in the infrastructure cache. Slabs reduce lock contention
279276 .TP
280277 .B infra\-cache\-numhosts: \fI<number>
281278 Number of hosts for which information is cached. Default is 10000.
282 .TP
283 .B infra\-cache\-lame\-size: \fI<number>
284 Number of bytes that the lameness cache per host is allowed to use. Default
285 is 10 kb, which gives maximum storage for a couple score zones, depending on
286 the lame zone name lengths.
287279 .TP
288280 .B do\-ip4: \fI<yes or no>
289281 Enable or disable whether ip4 queries are answered or issued. Default is yes.
302294 .B tcp\-upstream: \fI<yes or no>
303295 Enable or disable whether the upstream queries use TCP only for transport.
304296 Default is no. Useful in tunneling scenarios.
297 .TP
298 .B ssl\-upstream: \fI<yes or no>
299 Enabled or disable whether the upstream queries use SSL only for transport.
300 Default is no. Useful in tunneling scenarios. The SSL contains plain DNS in
301 TCP wireformat. The other server must support this (see \fBssl\-service\-key\fR).
302 .TP
303 .B ssl\-service-key: \fI<file>
304 If enabled, the server provider SSL service on its TCP sockets. The clients
305 have to use ssl\-upstream: yes. The file is the private key for the TLS
306 session. The public certificate is in the ssl\-service\-pem file. Default
307 is "", turned off. Requires a restart (a reload is not enough) if changed,
308 because the private key is read while root permissions are held and before
309 chroot (if any). Normal DNS TCP service is not provided and gives errors,
310 this service is best run with a different \fBport:\fR config or \fI@port\fR
311 suffixes in the \fBinterface\fR config.
312 .TP
313 .B ssl\-service\-pem: \fI<file>
314 The public key certificate pem file for the ssl service. Default is "",
315 turned off.
316 .TP
317 .B ssl\-port: \fI<number>
318 The port number on which to provide TCP SSL service, default 443, only
319 interfaces configured with that port number as @number get the SSL service.
305320 .TP
306321 .B do\-daemonize: \fI<yes or no>
307322 Enable or disable whether the unbound server forks into the background as
10221037 rrset\-cache\-slabs: 1
10231038 infra\-cache\-numhosts: 200
10241039 infra\-cache\-slabs: 1
1025 infra\-cache\-lame\-size: 1k
10261040 key\-cache\-size: 100k
10271041 key\-cache\-slabs: 1
10281042 neg\-cache\-size: 10k
3939 * Keep track of forward zones and config settings.
4040 */
4141 #include "config.h"
42 #include "ldns/rdata.h"
43 #include "ldns/dname.h"
44 #include "ldns/rr.h"
42 #include <ldns/rdata.h>
43 #include <ldns/dname.h>
44 #include <ldns/rr.h>
4545 #include "iterator/iter_fwd.h"
4646 #include "iterator/iter_delegpt.h"
4747 #include "util/regional.h"
3939 * Keep track of stub and root hints, and read those from config.
4040 */
4141 #include "config.h"
42 #include "ldns/dname.h"
43 #include "ldns/rr.h"
42 #include <ldns/dname.h>
43 #include <ldns/rr.h>
4444 #include "iterator/iter_hints.h"
4545 #include "iterator/iter_delegpt.h"
4646 #include "util/regional.h"
4040 */
4141
4242 #include "config.h"
43 #include "ldns/dname.h"
43 #include <ldns/dname.h>
4444 #include "iterator/iter_priv.h"
4545 #include "util/regional.h"
4646 #include "util/log.h"
4242 #ifndef ITERATOR_ITER_PRIV_H
4343 #define ITERATOR_ITER_PRIV_H
4444 #include "util/rbtree.h"
45 #include "ldns/buffer.h"
45 #include <ldns/buffer.h>
4646 struct iter_env;
4747 struct config_file;
4848 struct regional;
3939 * one of the response types.
4040 */
4141 #include "config.h"
42 #include "ldns/packet.h"
42 #include <ldns/packet.h>
4343 #include "iterator/iter_resptype.h"
4444 #include "iterator/iter_delegpt.h"
4545 #include "services/cache/dns.h"
162162 ntohs(s->rk.rrset_class) == request->qclass &&
163163 dname_strict_subdomain_c(s->rk.dname,
164164 origzone)) {
165 if((msg->rep->flags&BIT_AA))
166 return RESPONSE_TYPE_ANSWER;
165167 return RESPONSE_TYPE_REFERRAL;
166168 }
167169
186186 size_t* snamelen)
187187 {
188188 if(rrset->rr_count != 1) {
189 struct rr_parse* sig;
189190 verbose(VERB_ALGO, "Found CNAME rrset with "
190191 "size > 1: %u", (unsigned)rrset->rr_count);
191192 /* use the first CNAME! */
192193 rrset->rr_count = 1;
193194 rrset->size = rrset->rr_first->size;
195 for(sig=rrset->rrsig_first; sig; sig=sig->next)
196 rrset->size += sig->size;
194197 rrset->rr_last = rrset->rr_first;
195198 rrset->rr_first->next = NULL;
196199 }
4141
4242 #ifndef ITERATOR_ITER_SCRUB_H
4343 #define ITERATOR_ITER_SCRUB_H
44 #include "ldns/buffer.h"
44 #include <ldns/buffer.h>
4545 struct msg_parse;
4646 struct query_info;
4747 struct regional;
211211 if(lame)
212212 return -1; /* server is lame */
213213 else if(rtt >= USEFUL_SERVER_TOP_TIMEOUT)
214 /* server is unresponsive */
215 return USEFUL_SERVER_TOP_TIMEOUT;
214 /* server is unresponsive,
215 * we used to return TOP_TIMOUT, but fairly useless,
216 * because if == TOP_TIMEOUT is dropped because
217 * blacklisted later, instead, remove it here, so
218 * other choices (that are not blacklisted) can be
219 * tried */
220 return -1;
216221 /* select remainder from worst to best */
217222 else if(reclame)
218223 return rtt+USEFUL_SERVER_TOP_TIMEOUT*3; /* nonpref */
4242 #ifndef ITERATOR_ITER_UTILS_H
4343 #define ITERATOR_ITER_UTILS_H
4444 #include "iterator/iter_resptype.h"
45 #include "ldns/buffer.h"
45 #include <ldns/buffer.h>
4646 struct iter_env;
4747 struct iter_hints;
4848 struct iter_forwards;
4040 */
4141
4242 #include "config.h"
43 #include "ldns/ldns.h"
43 #include <ldns/ldns.h>
4444 #include "iterator/iterator.h"
4545 #include "iterator/iter_utils.h"
4646 #include "iterator/iter_hints.h"
116116 iq->num_current_queries = 0;
117117 iq->query_restart_count = 0;
118118 iq->referral_count = 0;
119 iq->sent_count = 0;
119120 iq->wait_priming_stub = 0;
120121 iq->refetch_glue = 0;
121122 iq->dnssec_expected = 0;
973974 iq->dp = NULL;
974975 iq->refetch_glue = 0;
975976 iq->query_restart_count++;
977 iq->sent_count = 0;
976978 sock_list_insert(&qstate->reply_origin, NULL, 0, qstate->region);
977979 return next_state(iq, INIT_REQUEST_STATE);
978980 }
14241426 iq->deleg_msg = NULL;
14251427 iq->refetch_glue = 1;
14261428 iq->query_restart_count++;
1429 iq->sent_count = 0;
14271430 return next_state(iq, INIT_REQUEST_STATE);
14281431 }
14291432 }
15361539
15371540 log_query_info(VERB_QUERY, "processQueryTargets:", &qstate->qinfo);
15381541 verbose(VERB_ALGO, "processQueryTargets: targetqueries %d, "
1539 "currentqueries %d", iq->num_target_queries,
1540 iq->num_current_queries);
1542 "currentqueries %d sentcount %d", iq->num_target_queries,
1543 iq->num_current_queries, iq->sent_count);
15411544
15421545 /* Make sure that we haven't run away */
15431546 /* FIXME: is this check even necessary? */
15441547 if(iq->referral_count > MAX_REFERRAL_COUNT) {
15451548 verbose(VERB_QUERY, "request has exceeded the maximum "
15461549 "number of referrrals with %d", iq->referral_count);
1550 return error_response(qstate, id, LDNS_RCODE_SERVFAIL);
1551 }
1552 if(iq->sent_count > MAX_SENT_COUNT) {
1553 verbose(VERB_QUERY, "request has exceeded the maximum "
1554 "number of sends with %d", iq->sent_count);
15471555 return error_response(qstate, id, LDNS_RCODE_SERVFAIL);
15481556 }
15491557
15721580 /* < not <=, because although the array is large enough for <=, the
15731581 * generated query will immediately be discarded due to depth and
15741582 * that servfail is cached, which is not good as opportunism goes. */
1575 if(iq->depth < ie->max_dependency_depth) {
1583 if(iq->depth < ie->max_dependency_depth
1584 && iq->sent_count < TARGET_FETCH_STOP) {
15761585 tf_policy = ie->target_fetch_policy[iq->depth];
15771586 }
15781587
15951604 /* the current caps_server is the number of fallbacks sent.
15961605 * the original query is one that matched too, so we have
15971606 * caps_server+1 number of matching queries now */
1598 if(iq->caps_server+1 >= naddr*3) {
1607 if(iq->caps_server+1 >= naddr*3 ||
1608 iq->caps_server+1 >= MAX_SENT_COUNT) {
15991609 /* we're done, process the response */
16001610 verbose(VERB_ALGO, "0x20 fallback had %d responses "
16011611 "match for %d wanted, done.",
16041614 iter_dec_attempts(iq->dp, 3); /* space for fallback */
16051615 iq->num_current_queries++; /* RespState decrements it*/
16061616 iq->referral_count++; /* make sure we don't loop */
1617 iq->sent_count = 0;
16071618 iq->state = QUERY_RESP_STATE;
16081619 return 1;
16091620 }
17111722 iq->qchase.qname, iq->qchase.qname_len,
17121723 iq->qchase.qtype, iq->qchase.qclass,
17131724 iq->chase_flags | (iq->chase_to_rd?BIT_RD:0), EDNS_DO|BIT_CD,
1714 iq->dnssec_expected, &target->addr, target->addrlen, qstate);
1725 iq->dnssec_expected, &target->addr, target->addrlen,
1726 iq->dp->name, iq->dp->namelen, qstate);
17151727 if(!outq) {
17161728 log_addr(VERB_DETAIL, "error sending query to auth server",
17171729 &target->addr, target->addrlen);
17191731 }
17201732 outbound_list_insert(&iq->outlist, outq);
17211733 iq->num_current_queries++;
1734 iq->sent_count++;
17221735 qstate->ext_state[id] = module_wait_reply;
17231736
17241737 return 0;
18951908 delegpt_log(VERB_ALGO, iq->dp);
18961909 /* Count this as a referral. */
18971910 iq->referral_count++;
1911 iq->sent_count = 0;
18981912 /* see if the next dp is a trust anchor, or a DS was sent
18991913 * along, indicating dnssec is expected for next zone */
19001914 iq->dnssec_expected = iter_indicates_dnssec(qstate->env,
19521966 iq->dp = NULL;
19531967 /* Note the query restart. */
19541968 iq->query_restart_count++;
1969 iq->sent_count = 0;
19551970
19561971 /* stop current outstanding queries.
19571972 * FIXME: should the outstanding queries be waited for and
5555 #define MAX_RESTART_COUNT 8
5656 /** max number of referrals. Makes sure resolver does not run away */
5757 #define MAX_REFERRAL_COUNT 130
58 /** max number of queries-sent-out. Make sure large NS set does not loop */
59 #define MAX_SENT_COUNT 16
60 /** at what query-sent-count to stop target fetch policy */
61 #define TARGET_FETCH_STOP 3
5862 /** how nice is a server without further information, in msec
5963 * Equals rtt initial timeout value.
6064 */
251255 /** the number of times this query as followed a referral. */
252256 int referral_count;
253257
258 /** number of queries fired off */
259 int sent_count;
260
254261 /**
255262 * The query must store NS records from referrals as parentside RRs
256263 * Enabled once it hits resolution problems, to throttle retries.
4343 #include "config.h"
4444 #include <ldns/dname.h>
4545 #include <ldns/wire2host.h>
46 #include <openssl/ssl.h>
4647 #include "libunbound/libworker.h"
4748 #include "libunbound/context.h"
4849 #include "libunbound/unbound.h"
8384 ub_randfree(w->env->rnd);
8485 free(w->env);
8586 }
87 SSL_CTX_free(w->sslctx);
8688 outside_network_delete(w->back);
8789 comm_base_delete(w->base);
8890 free(w);
123125 forwards_delete(w->env->fwds);
124126 w->env->fwds = NULL;
125127 }
128 if(cfg->ssl_upstream) {
129 w->sslctx = connect_sslctx_create(NULL, NULL, NULL);
130 if(!w->sslctx) {
131 libworker_delete(w);
132 return NULL;
133 }
134 }
126135 if(!w->is_bg || w->is_bg_thread) {
127136 lock_basic_unlock(&ctx->cfglock);
128137 }
170179 cfg->do_tcp?cfg->outgoing_num_tcp:0,
171180 w->env->infra_cache, w->env->rnd, cfg->use_caps_bits_for_id,
172181 ports, numports, cfg->unwanted_threshold,
173 &libworker_alloc_cleanup, w, cfg->do_udp);
182 &libworker_alloc_cleanup, w, cfg->do_udp, w->sslctx);
174183 if(!w->is_bg || w->is_bg_thread) {
175184 lock_basic_unlock(&ctx->cfglock);
176185 }
260269 /* setup */
261270 uint32_t m;
262271 struct libworker* w = (struct libworker*)arg;
263 struct ub_ctx* ctx = w->ctx;
272 struct ub_ctx* ctx;
273 if(!w) {
274 log_err("libunbound bg worker init failed, nomem");
275 return NULL;
276 }
277 ctx = w->ctx;
264278 log_thread_set(&w->thread_num);
265279 #ifdef THREADS_DISABLED
266280 /* we are forked */
269283 tube_close_write(ctx->qq_pipe);
270284 tube_close_read(ctx->rr_pipe);
271285 #endif
272 if(!w) {
273 log_err("libunbound bg worker init failed, nomem");
274 return NULL;
275 }
276286 if(!tube_setup_bg_listen(ctx->qq_pipe, w->base,
277287 libworker_handle_control_cmd, w)) {
278288 log_err("libunbound bg worker init failed, no bglisten");
309319 if(ctx->dothread) {
310320 lock_basic_unlock(&ctx->cfglock);
311321 w = libworker_setup(ctx, 1);
322 if(!w) return UB_NOMEM;
312323 w->is_bg_thread = 1;
313324 #ifdef ENABLE_LOCK_CHECKS
314325 w->thread_num = 1; /* for nicer DEBUG checklocks */
315326 #endif
316 if(!w) return UB_NOMEM;
317327 ub_thread_create(&ctx->bg_tid, libworker_dobg, w);
318328 } else {
319329 lock_basic_unlock(&ctx->cfglock);
683693 struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen,
684694 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec,
685695 int want_dnssec, struct sockaddr_storage* addr, socklen_t addrlen,
686 struct module_qstate* q)
696 uint8_t* zone, size_t zonelen, struct module_qstate* q)
687697 {
688698 struct libworker* w = (struct libworker*)q->env->worker;
689699 struct outbound_entry* e = (struct outbound_entry*)regional_alloc(
693703 e->qstate = q;
694704 e->qsent = outnet_serviced_query(w->back, qname,
695705 qnamelen, qtype, qclass, flags, dnssec, want_dnssec,
696 q->env->cfg->tcp_upstream, addr, addrlen,
697 libworker_handle_service_reply, e, w->back->udp_buff,
698 &outbound_entry_compare);
706 q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, addr,
707 addrlen, zone, zonelen, libworker_handle_service_reply, e,
708 w->back->udp_buff, &outbound_entry_compare);
699709 if(!e->qsent) {
700710 return NULL;
701711 }
8080 struct outside_network* back;
8181 /** random() table for this worker. */
8282 struct ub_randstate* rndstate;
83 /** sslcontext for SSL wrapped DNS over TCP queries */
84 void* sslctx;
8385 };
8486
8587 /**
117119 * @param want_dnssec: signatures needed.
118120 * @param addr: where to.
119121 * @param addrlen: length of addr.
122 * @param zone: delegation point name.
123 * @param zonelen: length of zone name wireformat dname.
120124 * @param q: wich query state to reactivate upon return.
121125 * @return: false on failure (memory or socket related). no query was
122126 * sent.
124128 struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen,
125129 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec,
126130 int want_dnssec, struct sockaddr_storage* addr, socklen_t addrlen,
127 struct module_qstate* q);
131 uint8_t* zone, size_t zonelen, struct module_qstate* q);
128132
129133 /** process incoming replies from the network */
130134 int libworker_handle_reply(struct comm_point* c, void* arg, int error,
+1636
-745
ltmain.sh less more
0 # Generated from ltmain.m4sh.
1
2 # libtool (GNU libtool) 2.2.10
0
1 # libtool (GNU libtool) 2.4
32 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
43
54 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
6968 # compiler: $LTCC
7069 # compiler flags: $LTCFLAGS
7170 # linker: $LD (gnu? $with_gnu_ld)
72 # $progname: (GNU libtool) 2.2.10
71 # $progname: (GNU libtool) 2.4
7372 # automake: $automake_version
7473 # autoconf: $autoconf_version
7574 #
7675 # Report bugs to <bug-libtool@gnu.org>.
76 # GNU libtool home page: <http://www.gnu.org/software/libtool/>.
77 # General help using GNU software: <http://www.gnu.org/gethelp/>.
7778
7879 PROGRAM=libtool
7980 PACKAGE=libtool
80 VERSION=2.2.10
81 VERSION=2.4
8182 TIMESTAMP=""
82 package_revision=1.3175
83 package_revision=1.3293
8384
8485 # Be Bourne compatible
8586 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
162163 dirname="s,/[^/]*$,,"
163164 basename="s,^.*/,,"
164165
166 # func_dirname file append nondir_replacement
167 # Compute the dirname of FILE. If nonempty, add APPEND to the result,
168 # otherwise set result to NONDIR_REPLACEMENT.
169 func_dirname ()
170 {
171 func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
172 if test "X$func_dirname_result" = "X${1}"; then
173 func_dirname_result="${3}"
174 else
175 func_dirname_result="$func_dirname_result${2}"
176 fi
177 } # func_dirname may be replaced by extended shell implementation
178
179
180 # func_basename file
181 func_basename ()
182 {
183 func_basename_result=`$ECHO "${1}" | $SED "$basename"`
184 } # func_basename may be replaced by extended shell implementation
185
186
165187 # func_dirname_and_basename file append nondir_replacement
166188 # perform func_basename and func_dirname in a single function
167189 # call:
176198 # those functions but instead duplicate the functionality here.
177199 func_dirname_and_basename ()
178200 {
179 # Extract subdirectory from the argument.
180 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
181 if test "X$func_dirname_result" = "X${1}"; then
182 func_dirname_result="${3}"
183 else
184 func_dirname_result="$func_dirname_result${2}"
185 fi
186 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
187 }
188
189 # Generated shell functions inserted here.
201 # Extract subdirectory from the argument.
202 func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
203 if test "X$func_dirname_result" = "X${1}"; then
204 func_dirname_result="${3}"
205 else
206 func_dirname_result="$func_dirname_result${2}"
207 fi
208 func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
209 } # func_dirname_and_basename may be replaced by extended shell implementation
210
211
212 # func_stripname prefix suffix name
213 # strip PREFIX and SUFFIX off of NAME.
214 # PREFIX and SUFFIX must not contain globbing or regex special
215 # characters, hashes, percent signs, but SUFFIX may contain a leading
216 # dot (in which case that matches only a dot).
217 # func_strip_suffix prefix name
218 func_stripname ()
219 {
220 case ${2} in
221 .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
222 *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
223 esac
224 } # func_stripname may be replaced by extended shell implementation
225
190226
191227 # These SED scripts presuppose an absolute path with a trailing slash.
192228 pathcar='s,^/\([^/]*\).*$,\1,'
369405 # Same as above, but do not quote variable references.
370406 double_quote_subst='s/\(["`\\]\)/\\\1/g'
371407
408 # Sed substitution that turns a string into a regex matching for the
409 # string literally.
410 sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
411
412 # Sed substitution that converts a w32 file name or path
413 # which contains forward slashes, into one that contains
414 # (escaped) backslashes. A very naive implementation.
415 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
416
372417 # Re-`\' parameter expansions in output of double_quote_subst that were
373418 # `\'-ed in input to the same. If an odd number of `\' preceded a '$'
374419 # in input to double_quote_subst, that '$' was protected from expansion.
397442 # name if it has been set yet.
398443 func_echo ()
399444 {
400 $ECHO "$progname${mode+: }$mode: $*"
445 $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
401446 }
402447
403448 # func_verbose arg...
423468 # Echo program name prefixed message to standard error.
424469 func_error ()
425470 {
426 $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
471 $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
427472 }
428473
429474 # func_warning arg...
430475 # Echo program name prefixed warning message to standard error.
431476 func_warning ()
432477 {
433 $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
478 $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
434479
435480 # bash bug again:
436481 :
649694 fi
650695 }
651696
697 # func_tr_sh
698 # Turn $1 into a string suitable for a shell variable name.
699 # Result is stored in $func_tr_sh_result. All characters
700 # not in the set a-zA-Z0-9_ are replaced with '_'. Further,
701 # if $1 begins with a digit, a '_' is prepended as well.
702 func_tr_sh ()
703 {
704 case $1 in
705 [0-9]* | *[!a-zA-Z0-9_]*)
706 func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
707 ;;
708 * )
709 func_tr_sh_result=$1
710 ;;
711 esac
712 }
713
652714
653715 # func_version
654716 # Echo version message to standard output and exit.
655717 func_version ()
656718 {
719 $opt_debug
720
657721 $SED -n '/(C)/!b go
658722 :more
659723 /\./!{
675739 # Echo short help message to standard output and exit.
676740 func_usage ()
677741 {
742 $opt_debug
743
678744 $SED -n '/^# Usage:/,/^# *.*--help/ {
679745 s/^# //
680746 s/^# *$//
691757 # unless 'noexit' is passed as argument.
692758 func_help ()
693759 {
760 $opt_debug
761
694762 $SED -n '/^# Usage:/,/# Report bugs to/ {
763 :print
695764 s/^# //
696765 s/^# *$//
697766 s*\$progname*'$progname'*
704773 s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
705774 s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
706775 p
707 }' < "$progpath"
776 d
777 }
778 /^# .* home page:/b print
779 /^# General help using/b print
780 ' < "$progpath"
708781 ret=$?
709782 if test -z "$1"; then
710783 exit $ret
716789 # exit_cmd.
717790 func_missing_arg ()
718791 {
792 $opt_debug
793
719794 func_error "missing argument for $1."
720795 exit_cmd=exit
721796 }
722797
798
799 # func_split_short_opt shortopt
800 # Set func_split_short_opt_name and func_split_short_opt_arg shell
801 # variables after splitting SHORTOPT after the 2nd character.
802 func_split_short_opt ()
803 {
804 my_sed_short_opt='1s/^\(..\).*$/\1/;q'
805 my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
806
807 func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
808 func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
809 } # func_split_short_opt may be replaced by extended shell implementation
810
811
812 # func_split_long_opt longopt
813 # Set func_split_long_opt_name and func_split_long_opt_arg shell
814 # variables after splitting LONGOPT at the `=' sign.
815 func_split_long_opt ()
816 {
817 my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
818 my_sed_long_arg='1s/^--[^=]*=//'
819
820 func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
821 func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
822 } # func_split_long_opt may be replaced by extended shell implementation
823
723824 exit_cmd=:
724
725825
726826
727827
731831 magic_exe="%%%MAGIC EXE variable%%%"
732832
733833 # Global variables.
734 # $mode is unset
735834 nonopt=
736 execute_dlfiles=
737835 preserve_args=
738836 lo2o="s/\\.lo\$/.${objext}/"
739837 o2lo="s/\\.${objext}\$/.lo/"
740838 extracted_archives=
741839 extracted_serial=0
742840
743 opt_dry_run=false
744 opt_duplicate_deps=false
745 opt_silent=false
746 opt_debug=:
747
748841 # If this variable is set in any of the actions, the command in it
749842 # will be execed at the end. This prevents here-documents from being
750843 # left over by shells.
751844 exec_cmd=
845
846 # func_append var value
847 # Append VALUE to the end of shell variable VAR.
848 func_append ()
849 {
850 eval "${1}=\$${1}\${2}"
851 } # func_append may be replaced by extended shell implementation
852
853 # func_append_quoted var value
854 # Quote VALUE and append to the end of shell variable VAR, separated
855 # by a space.
856 func_append_quoted ()
857 {
858 func_quote_for_eval "${2}"
859 eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
860 } # func_append_quoted may be replaced by extended shell implementation
861
862
863 # func_arith arithmetic-term...
864 func_arith ()
865 {
866 func_arith_result=`expr "${@}"`
867 } # func_arith may be replaced by extended shell implementation
868
869
870 # func_len string
871 # STRING may not start with a hyphen.
872 func_len ()
873 {
874 func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
875 } # func_len may be replaced by extended shell implementation
876
877
878 # func_lo2o object
879 func_lo2o ()
880 {
881 func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
882 } # func_lo2o may be replaced by extended shell implementation
883
884
885 # func_xform libobj-or-source
886 func_xform ()
887 {
888 func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
889 } # func_xform may be replaced by extended shell implementation
890
752891
753892 # func_fatal_configuration arg...
754893 # Echo program name prefixed message to standard error, followed by
837976 fi
838977 ;;
839978 esac
840 }
841
842 # Parse options once, thoroughly. This comes as soon as possible in
843 # the script to make things like `libtool --version' happen quickly.
844 {
845
846 # Shorthand for --mode=foo, only valid as the first argument
847 case $1 in
848 clean|clea|cle|cl)
849 shift; set dummy --mode clean ${1+"$@"}; shift
850 ;;
851 compile|compil|compi|comp|com|co|c)
852 shift; set dummy --mode compile ${1+"$@"}; shift
853 ;;
854 execute|execut|execu|exec|exe|ex|e)
855 shift; set dummy --mode execute ${1+"$@"}; shift
856 ;;
857 finish|finis|fini|fin|fi|f)
858 shift; set dummy --mode finish ${1+"$@"}; shift
859 ;;
860 install|instal|insta|inst|ins|in|i)
861 shift; set dummy --mode install ${1+"$@"}; shift
862 ;;
863 link|lin|li|l)
864 shift; set dummy --mode link ${1+"$@"}; shift
865 ;;
866 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
867 shift; set dummy --mode uninstall ${1+"$@"}; shift
868 ;;
869 esac
870
871 # Parse non-mode specific arguments:
872 while test "$#" -gt 0; do
873 opt="$1"
874 shift
875
876 case $opt in
877 --config) func_config ;;
878
879 --debug) preserve_args="$preserve_args $opt"
880 func_echo "enabling shell trace mode"
881 opt_debug='set -x'
882 $opt_debug
883 ;;
884
885 -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break
886 execute_dlfiles="$execute_dlfiles $1"
887 shift
888 ;;
889
890 --dry-run | -n) opt_dry_run=: ;;
891 --features) func_features ;;
892 --finish) mode="finish" ;;
893
894 --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
895 case $1 in
896 # Valid mode arguments:
897 clean) ;;
898 compile) ;;
899 execute) ;;
900 finish) ;;
901 install) ;;
902 link) ;;
903 relink) ;;
904 uninstall) ;;
905
906 # Catch anything else as an error
907 *) func_error "invalid argument for $opt"
908 exit_cmd=exit
909 break
910 ;;
911 esac
912
913 mode="$1"
914 shift
915 ;;
916
917 --preserve-dup-deps)
918 opt_duplicate_deps=: ;;
919
920 --quiet|--silent) preserve_args="$preserve_args $opt"
921 opt_silent=:
922 opt_verbose=false
923 ;;
924
925 --no-quiet|--no-silent)
926 preserve_args="$preserve_args $opt"
927 opt_silent=false
928 ;;
929
930 --verbose| -v) preserve_args="$preserve_args $opt"
931 opt_silent=false
932 opt_verbose=:
933 ;;
934
935 --no-verbose) preserve_args="$preserve_args $opt"
936 opt_verbose=false
937 ;;
938
939 --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
940 preserve_args="$preserve_args $opt $1"
941 func_enable_tag "$1" # tagname is set here
942 shift
943 ;;
944
945 # Separate optargs to long options:
946 -dlopen=*|--mode=*|--tag=*)
947 func_opt_split "$opt"
948 set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
949 shift
950 ;;
951
952 -\?|-h) func_usage ;;
953 --help) opt_help=: ;;
954 --help-all) opt_help=': help-all' ;;
955 --version) func_version ;;
956
957 -*) func_fatal_help "unrecognized option \`$opt'" ;;
958
959 *) nonopt="$opt"
960 break
961 ;;
962 esac
963 done
964
965
966 case $host in
967 *cygwin* | *mingw* | *pw32* | *cegcc*)
968 # don't eliminate duplications in $postdeps and $predeps
969 opt_duplicate_compiler_generated_deps=:
970 ;;
971 *)
972 opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
973 ;;
974 esac
975
976 # Having warned about all mis-specified options, bail out if
977 # anything was wrong.
978 $exit_cmd $EXIT_FAILURE
979979 }
980980
981981 # func_check_version_match
10141014 }
10151015
10161016
1017 # Shorthand for --mode=foo, only valid as the first argument
1018 case $1 in
1019 clean|clea|cle|cl)
1020 shift; set dummy --mode clean ${1+"$@"}; shift
1021 ;;
1022 compile|compil|compi|comp|com|co|c)
1023 shift; set dummy --mode compile ${1+"$@"}; shift
1024 ;;
1025 execute|execut|execu|exec|exe|ex|e)
1026 shift; set dummy --mode execute ${1+"$@"}; shift
1027 ;;
1028 finish|finis|fini|fin|fi|f)
1029 shift; set dummy --mode finish ${1+"$@"}; shift
1030 ;;
1031 install|instal|insta|inst|ins|in|i)
1032 shift; set dummy --mode install ${1+"$@"}; shift
1033 ;;
1034 link|lin|li|l)
1035 shift; set dummy --mode link ${1+"$@"}; shift
1036 ;;
1037 uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
1038 shift; set dummy --mode uninstall ${1+"$@"}; shift
1039 ;;
1040 esac
1041
1042
1043
1044 # Option defaults:
1045 opt_debug=:
1046 opt_dry_run=false
1047 opt_config=false
1048 opt_preserve_dup_deps=false
1049 opt_features=false
1050 opt_finish=false
1051 opt_help=false
1052 opt_help_all=false
1053 opt_silent=:
1054 opt_verbose=:
1055 opt_silent=false
1056 opt_verbose=false
1057
1058
1059 # Parse options once, thoroughly. This comes as soon as possible in the
1060 # script to make things like `--version' happen as quickly as we can.
1061 {
1062 # this just eases exit handling
1063 while test $# -gt 0; do
1064 opt="$1"
1065 shift
1066 case $opt in
1067 --debug|-x) opt_debug='set -x'
1068 func_echo "enabling shell trace mode"
1069 $opt_debug
1070 ;;
1071 --dry-run|--dryrun|-n)
1072 opt_dry_run=:
1073 ;;
1074 --config)
1075 opt_config=:
1076 func_config
1077 ;;
1078 --dlopen|-dlopen)
1079 optarg="$1"
1080 opt_dlopen="${opt_dlopen+$opt_dlopen
1081 }$optarg"
1082 shift
1083 ;;
1084 --preserve-dup-deps)
1085 opt_preserve_dup_deps=:
1086 ;;
1087 --features)
1088 opt_features=:
1089 func_features
1090 ;;
1091 --finish)
1092 opt_finish=:
1093 set dummy --mode finish ${1+"$@"}; shift
1094 ;;
1095 --help)
1096 opt_help=:
1097 ;;
1098 --help-all)
1099 opt_help_all=:
1100 opt_help=': help-all'
1101 ;;
1102 --mode)
1103 test $# = 0 && func_missing_arg $opt && break
1104 optarg="$1"
1105 opt_mode="$optarg"
1106 case $optarg in
1107 # Valid mode arguments:
1108 clean|compile|execute|finish|install|link|relink|uninstall) ;;
1109
1110 # Catch anything else as an error
1111 *) func_error "invalid argument for $opt"
1112 exit_cmd=exit
1113 break
1114 ;;
1115 esac
1116 shift
1117 ;;
1118 --no-silent|--no-quiet)
1119 opt_silent=false
1120 func_append preserve_args " $opt"
1121 ;;
1122 --no-verbose)
1123 opt_verbose=false
1124 func_append preserve_args " $opt"
1125 ;;
1126 --silent|--quiet)
1127 opt_silent=:
1128 func_append preserve_args " $opt"
1129 opt_verbose=false
1130 ;;
1131 --verbose|-v)
1132 opt_verbose=:
1133 func_append preserve_args " $opt"
1134 opt_silent=false
1135 ;;
1136 --tag)
1137 test $# = 0 && func_missing_arg $opt && break
1138 optarg="$1"
1139 opt_tag="$optarg"
1140 func_append preserve_args " $opt $optarg"
1141 func_enable_tag "$optarg"
1142 shift
1143 ;;
1144
1145 -\?|-h) func_usage ;;
1146 --help) func_help ;;
1147 --version) func_version ;;
1148
1149 # Separate optargs to long options:
1150 --*=*)
1151 func_split_long_opt "$opt"
1152 set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
1153 shift
1154 ;;
1155
1156 # Separate non-argument short options:
1157 -\?*|-h*|-n*|-v*)
1158 func_split_short_opt "$opt"
1159 set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
1160 shift
1161 ;;
1162
1163 --) break ;;
1164 -*) func_fatal_help "unrecognized option \`$opt'" ;;
1165 *) set dummy "$opt" ${1+"$@"}; shift; break ;;
1166 esac
1167 done
1168
1169 # Validate options:
1170
1171 # save first non-option argument
1172 if test "$#" -gt 0; then
1173 nonopt="$opt"
1174 shift
1175 fi
1176
1177 # preserve --debug
1178 test "$opt_debug" = : || func_append preserve_args " --debug"
1179
1180 case $host in
1181 *cygwin* | *mingw* | *pw32* | *cegcc*)
1182 # don't eliminate duplications in $postdeps and $predeps
1183 opt_duplicate_compiler_generated_deps=:
1184 ;;
1185 *)
1186 opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
1187 ;;
1188 esac
1189
1190 $opt_help || {
1191 # Sanity checks first:
1192 func_check_version_match
1193
1194 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1195 func_fatal_configuration "not configured to build any kind of library"
1196 fi
1197
1198 # Darwin sucks
1199 eval std_shrext=\"$shrext_cmds\"
1200
1201 # Only execute mode is allowed to have -dlopen flags.
1202 if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
1203 func_error "unrecognized option \`-dlopen'"
1204 $ECHO "$help" 1>&2
1205 exit $EXIT_FAILURE
1206 fi
1207
1208 # Change the help message to a mode-specific one.
1209 generic_help="$help"
1210 help="Try \`$progname --help --mode=$opt_mode' for more information."
1211 }
1212
1213
1214 # Bail if the options were screwed
1215 $exit_cmd $EXIT_FAILURE
1216 }
1217
1218
1219
1220
10171221 ## ----------- ##
10181222 ## Main. ##
10191223 ## ----------- ##
1020
1021 $opt_help || {
1022 # Sanity checks first:
1023 func_check_version_match
1024
1025 if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1026 func_fatal_configuration "not configured to build any kind of library"
1027 fi
1028
1029 test -z "$mode" && func_fatal_error "error: you must specify a MODE."
1030
1031
1032 # Darwin sucks
1033 eval std_shrext=\"$shrext_cmds\"
1034
1035
1036 # Only execute mode is allowed to have -dlopen flags.
1037 if test -n "$execute_dlfiles" && test "$mode" != execute; then
1038 func_error "unrecognized option \`-dlopen'"
1039 $ECHO "$help" 1>&2
1040 exit $EXIT_FAILURE
1041 fi
1042
1043 # Change the help message to a mode-specific one.
1044 generic_help="$help"
1045 help="Try \`$progname --help --mode=$mode' for more information."
1046 }
1047
10481224
10491225 # func_lalib_p file
10501226 # True iff FILE is a libtool `.la' library or `.lo' object file.
11091285 # temporary ltwrapper_script.
11101286 func_ltwrapper_scriptname ()
11111287 {
1112 func_ltwrapper_scriptname_result=""
1113 if func_ltwrapper_executable_p "$1"; then
1114 func_dirname_and_basename "$1" "" "."
1115 func_stripname '' '.exe' "$func_basename_result"
1116 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
1117 fi
1288 func_dirname_and_basename "$1" "" "."
1289 func_stripname '' '.exe' "$func_basename_result"
1290 func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
11181291 }
11191292
11201293 # func_ltwrapper_p file
11601333 }
11611334
11621335
1336 # func_resolve_sysroot PATH
1337 # Replace a leading = in PATH with a sysroot. Store the result into
1338 # func_resolve_sysroot_result
1339 func_resolve_sysroot ()
1340 {
1341 func_resolve_sysroot_result=$1
1342 case $func_resolve_sysroot_result in
1343 =*)
1344 func_stripname '=' '' "$func_resolve_sysroot_result"
1345 func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
1346 ;;
1347 esac
1348 }
1349
1350 # func_replace_sysroot PATH
1351 # If PATH begins with the sysroot, replace it with = and
1352 # store the result into func_replace_sysroot_result.
1353 func_replace_sysroot ()
1354 {
1355 case "$lt_sysroot:$1" in
1356 ?*:"$lt_sysroot"*)
1357 func_stripname "$lt_sysroot" '' "$1"
1358 func_replace_sysroot_result="=$func_stripname_result"
1359 ;;
1360 *)
1361 # Including no sysroot.
1362 func_replace_sysroot_result=$1
1363 ;;
1364 esac
1365 }
1366
11631367 # func_infer_tag arg
11641368 # Infer tagged configuration to use if any are available and
11651369 # if one wasn't chosen via the "--tag" command line option.
11721376 if test -n "$available_tags" && test -z "$tagname"; then
11731377 CC_quoted=
11741378 for arg in $CC; do
1175 func_quote_for_eval "$arg"
1176 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1379 func_append_quoted CC_quoted "$arg"
11771380 done
11781381 CC_expanded=`func_echo_all $CC`
11791382 CC_quoted_expanded=`func_echo_all $CC_quoted`
11921395 CC_quoted=
11931396 for arg in $CC; do
11941397 # Double-quote args containing other shell metacharacters.
1195 func_quote_for_eval "$arg"
1196 CC_quoted="$CC_quoted $func_quote_for_eval_result"
1398 func_append_quoted CC_quoted "$arg"
11971399 done
11981400 CC_expanded=`func_echo_all $CC`
11991401 CC_quoted_expanded=`func_echo_all $CC_quoted`
12621464 }
12631465 }
12641466
1467
1468 ##################################################
1469 # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
1470 ##################################################
1471
1472 # func_convert_core_file_wine_to_w32 ARG
1473 # Helper function used by file name conversion functions when $build is *nix,
1474 # and $host is mingw, cygwin, or some other w32 environment. Relies on a
1475 # correctly configured wine environment available, with the winepath program
1476 # in $build's $PATH.
1477 #
1478 # ARG is the $build file name to be converted to w32 format.
1479 # Result is available in $func_convert_core_file_wine_to_w32_result, and will
1480 # be empty on error (or when ARG is empty)
1481 func_convert_core_file_wine_to_w32 ()
1482 {
1483 $opt_debug
1484 func_convert_core_file_wine_to_w32_result="$1"
1485 if test -n "$1"; then
1486 # Unfortunately, winepath does not exit with a non-zero error code, so we
1487 # are forced to check the contents of stdout. On the other hand, if the
1488 # command is not found, the shell will set an exit code of 127 and print
1489 # *an error message* to stdout. So we must check for both error code of
1490 # zero AND non-empty stdout, which explains the odd construction:
1491 func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
1492 if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
1493 func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
1494 $SED -e "$lt_sed_naive_backslashify"`
1495 else
1496 func_convert_core_file_wine_to_w32_result=
1497 fi
1498 fi
1499 }
1500 # end: func_convert_core_file_wine_to_w32
1501
1502
1503 # func_convert_core_path_wine_to_w32 ARG
1504 # Helper function used by path conversion functions when $build is *nix, and
1505 # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
1506 # configured wine environment available, with the winepath program in $build's
1507 # $PATH. Assumes ARG has no leading or trailing path separator characters.
1508 #
1509 # ARG is path to be converted from $build format to win32.
1510 # Result is available in $func_convert_core_path_wine_to_w32_result.
1511 # Unconvertible file (directory) names in ARG are skipped; if no directory names
1512 # are convertible, then the result may be empty.
1513 func_convert_core_path_wine_to_w32 ()
1514 {
1515 $opt_debug
1516 # unfortunately, winepath doesn't convert paths, only file names
1517 func_convert_core_path_wine_to_w32_result=""
1518 if test -n "$1"; then
1519 oldIFS=$IFS
1520 IFS=:
1521 for func_convert_core_path_wine_to_w32_f in $1; do
1522 IFS=$oldIFS
1523 func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
1524 if test -n "$func_convert_core_file_wine_to_w32_result" ; then
1525 if test -z "$func_convert_core_path_wine_to_w32_result"; then
1526 func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
1527 else
1528 func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
1529 fi
1530 fi
1531 done
1532 IFS=$oldIFS
1533 fi
1534 }
1535 # end: func_convert_core_path_wine_to_w32
1536
1537
1538 # func_cygpath ARGS...
1539 # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
1540 # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
1541 # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
1542 # (2), returns the Cygwin file name or path in func_cygpath_result (input
1543 # file name or path is assumed to be in w32 format, as previously converted
1544 # from $build's *nix or MSYS format). In case (3), returns the w32 file name
1545 # or path in func_cygpath_result (input file name or path is assumed to be in
1546 # Cygwin format). Returns an empty string on error.
1547 #
1548 # ARGS are passed to cygpath, with the last one being the file name or path to
1549 # be converted.
1550 #
1551 # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
1552 # environment variable; do not put it in $PATH.
1553 func_cygpath ()
1554 {
1555 $opt_debug
1556 if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
1557 func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
1558 if test "$?" -ne 0; then
1559 # on failure, ensure result is empty
1560 func_cygpath_result=
1561 fi
1562 else
1563 func_cygpath_result=
1564 func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
1565 fi
1566 }
1567 #end: func_cygpath
1568
1569
1570 # func_convert_core_msys_to_w32 ARG
1571 # Convert file name or path ARG from MSYS format to w32 format. Return
1572 # result in func_convert_core_msys_to_w32_result.
1573 func_convert_core_msys_to_w32 ()
1574 {
1575 $opt_debug
1576 # awkward: cmd appends spaces to result
1577 func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
1578 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
1579 }
1580 #end: func_convert_core_msys_to_w32
1581
1582
1583 # func_convert_file_check ARG1 ARG2
1584 # Verify that ARG1 (a file name in $build format) was converted to $host
1585 # format in ARG2. Otherwise, emit an error message, but continue (resetting
1586 # func_to_host_file_result to ARG1).
1587 func_convert_file_check ()
1588 {
1589 $opt_debug
1590 if test -z "$2" && test -n "$1" ; then
1591 func_error "Could not determine host file name corresponding to"
1592 func_error " \`$1'"
1593 func_error "Continuing, but uninstalled executables may not work."
1594 # Fallback:
1595 func_to_host_file_result="$1"
1596 fi
1597 }
1598 # end func_convert_file_check
1599
1600
1601 # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
1602 # Verify that FROM_PATH (a path in $build format) was converted to $host
1603 # format in TO_PATH. Otherwise, emit an error message, but continue, resetting
1604 # func_to_host_file_result to a simplistic fallback value (see below).
1605 func_convert_path_check ()
1606 {
1607 $opt_debug
1608 if test -z "$4" && test -n "$3"; then
1609 func_error "Could not determine the host path corresponding to"
1610 func_error " \`$3'"
1611 func_error "Continuing, but uninstalled executables may not work."
1612 # Fallback. This is a deliberately simplistic "conversion" and
1613 # should not be "improved". See libtool.info.
1614 if test "x$1" != "x$2"; then
1615 lt_replace_pathsep_chars="s|$1|$2|g"
1616 func_to_host_path_result=`echo "$3" |
1617 $SED -e "$lt_replace_pathsep_chars"`
1618 else
1619 func_to_host_path_result="$3"
1620 fi
1621 fi
1622 }
1623 # end func_convert_path_check
1624
1625
1626 # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
1627 # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
1628 # and appending REPL if ORIG matches BACKPAT.
1629 func_convert_path_front_back_pathsep ()
1630 {
1631 $opt_debug
1632 case $4 in
1633 $1 ) func_to_host_path_result="$3$func_to_host_path_result"
1634 ;;
1635 esac
1636 case $4 in
1637 $2 ) func_append func_to_host_path_result "$3"
1638 ;;
1639 esac
1640 }
1641 # end func_convert_path_front_back_pathsep
1642
1643
1644 ##################################################
1645 # $build to $host FILE NAME CONVERSION FUNCTIONS #
1646 ##################################################
1647 # invoked via `$to_host_file_cmd ARG'
1648 #
1649 # In each case, ARG is the path to be converted from $build to $host format.
1650 # Result will be available in $func_to_host_file_result.
1651
1652
1653 # func_to_host_file ARG
1654 # Converts the file name ARG from $build format to $host format. Return result
1655 # in func_to_host_file_result.
1656 func_to_host_file ()
1657 {
1658 $opt_debug
1659 $to_host_file_cmd "$1"
1660 }
1661 # end func_to_host_file
1662
1663
1664 # func_to_tool_file ARG LAZY
1665 # converts the file name ARG from $build format to toolchain format. Return
1666 # result in func_to_tool_file_result. If the conversion in use is listed
1667 # in (the comma separated) LAZY, no conversion takes place.
1668 func_to_tool_file ()
1669 {
1670 $opt_debug
1671 case ,$2, in
1672 *,"$to_tool_file_cmd",*)
1673 func_to_tool_file_result=$1
1674 ;;
1675 *)
1676 $to_tool_file_cmd "$1"
1677 func_to_tool_file_result=$func_to_host_file_result
1678 ;;
1679 esac
1680 }
1681 # end func_to_tool_file
1682
1683
1684 # func_convert_file_noop ARG
1685 # Copy ARG to func_to_host_file_result.
1686 func_convert_file_noop ()
1687 {
1688 func_to_host_file_result="$1"
1689 }
1690 # end func_convert_file_noop
1691
1692
1693 # func_convert_file_msys_to_w32 ARG
1694 # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
1695 # conversion to w32 is not available inside the cwrapper. Returns result in
1696 # func_to_host_file_result.
1697 func_convert_file_msys_to_w32 ()
1698 {
1699 $opt_debug
1700 func_to_host_file_result="$1"
1701 if test -n "$1"; then
1702 func_convert_core_msys_to_w32 "$1"
1703 func_to_host_file_result="$func_convert_core_msys_to_w32_result"
1704 fi
1705 func_convert_file_check "$1" "$func_to_host_file_result"
1706 }
1707 # end func_convert_file_msys_to_w32
1708
1709
1710 # func_convert_file_cygwin_to_w32 ARG
1711 # Convert file name ARG from Cygwin to w32 format. Returns result in
1712 # func_to_host_file_result.
1713 func_convert_file_cygwin_to_w32 ()
1714 {
1715 $opt_debug
1716 func_to_host_file_result="$1"
1717 if test -n "$1"; then
1718 # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
1719 # LT_CYGPATH in this case.
1720 func_to_host_file_result=`cygpath -m "$1"`
1721 fi
1722 func_convert_file_check "$1" "$func_to_host_file_result"
1723 }
1724 # end func_convert_file_cygwin_to_w32
1725
1726
1727 # func_convert_file_nix_to_w32 ARG
1728 # Convert file name ARG from *nix to w32 format. Requires a wine environment
1729 # and a working winepath. Returns result in func_to_host_file_result.
1730 func_convert_file_nix_to_w32 ()
1731 {
1732 $opt_debug
1733 func_to_host_file_result="$1"
1734 if test -n "$1"; then
1735 func_convert_core_file_wine_to_w32 "$1"
1736 func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
1737 fi
1738 func_convert_file_check "$1" "$func_to_host_file_result"
1739 }
1740 # end func_convert_file_nix_to_w32
1741
1742
1743 # func_convert_file_msys_to_cygwin ARG
1744 # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1745 # Returns result in func_to_host_file_result.
1746 func_convert_file_msys_to_cygwin ()
1747 {
1748 $opt_debug
1749 func_to_host_file_result="$1"
1750 if test -n "$1"; then
1751 func_convert_core_msys_to_w32 "$1"
1752 func_cygpath -u "$func_convert_core_msys_to_w32_result"
1753 func_to_host_file_result="$func_cygpath_result"
1754 fi
1755 func_convert_file_check "$1" "$func_to_host_file_result"
1756 }
1757 # end func_convert_file_msys_to_cygwin
1758
1759
1760 # func_convert_file_nix_to_cygwin ARG
1761 # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
1762 # in a wine environment, working winepath, and LT_CYGPATH set. Returns result
1763 # in func_to_host_file_result.
1764 func_convert_file_nix_to_cygwin ()
1765 {
1766 $opt_debug
1767 func_to_host_file_result="$1"
1768 if test -n "$1"; then
1769 # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
1770 func_convert_core_file_wine_to_w32 "$1"
1771 func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
1772 func_to_host_file_result="$func_cygpath_result"
1773 fi
1774 func_convert_file_check "$1" "$func_to_host_file_result"
1775 }
1776 # end func_convert_file_nix_to_cygwin
1777
1778
1779 #############################################
1780 # $build to $host PATH CONVERSION FUNCTIONS #
1781 #############################################
1782 # invoked via `$to_host_path_cmd ARG'
1783 #
1784 # In each case, ARG is the path to be converted from $build to $host format.
1785 # The result will be available in $func_to_host_path_result.
1786 #
1787 # Path separators are also converted from $build format to $host format. If
1788 # ARG begins or ends with a path separator character, it is preserved (but
1789 # converted to $host format) on output.
1790 #
1791 # All path conversion functions are named using the following convention:
1792 # file name conversion function : func_convert_file_X_to_Y ()
1793 # path conversion function : func_convert_path_X_to_Y ()
1794 # where, for any given $build/$host combination the 'X_to_Y' value is the
1795 # same. If conversion functions are added for new $build/$host combinations,
1796 # the two new functions must follow this pattern, or func_init_to_host_path_cmd
1797 # will break.
1798
1799
1800 # func_init_to_host_path_cmd
1801 # Ensures that function "pointer" variable $to_host_path_cmd is set to the
1802 # appropriate value, based on the value of $to_host_file_cmd.
1803 to_host_path_cmd=
1804 func_init_to_host_path_cmd ()
1805 {
1806 $opt_debug
1807 if test -z "$to_host_path_cmd"; then
1808 func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
1809 to_host_path_cmd="func_convert_path_${func_stripname_result}"
1810 fi
1811 }
1812
1813
1814 # func_to_host_path ARG
1815 # Converts the path ARG from $build format to $host format. Return result
1816 # in func_to_host_path_result.
1817 func_to_host_path ()
1818 {
1819 $opt_debug
1820 func_init_to_host_path_cmd
1821 $to_host_path_cmd "$1"
1822 }
1823 # end func_to_host_path
1824
1825
1826 # func_convert_path_noop ARG
1827 # Copy ARG to func_to_host_path_result.
1828 func_convert_path_noop ()
1829 {
1830 func_to_host_path_result="$1"
1831 }
1832 # end func_convert_path_noop
1833
1834
1835 # func_convert_path_msys_to_w32 ARG
1836 # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
1837 # conversion to w32 is not available inside the cwrapper. Returns result in
1838 # func_to_host_path_result.
1839 func_convert_path_msys_to_w32 ()
1840 {
1841 $opt_debug
1842 func_to_host_path_result="$1"
1843 if test -n "$1"; then
1844 # Remove leading and trailing path separator characters from ARG. MSYS
1845 # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
1846 # and winepath ignores them completely.
1847 func_stripname : : "$1"
1848 func_to_host_path_tmp1=$func_stripname_result
1849 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1850 func_to_host_path_result="$func_convert_core_msys_to_w32_result"
1851 func_convert_path_check : ";" \
1852 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1853 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1854 fi
1855 }
1856 # end func_convert_path_msys_to_w32
1857
1858
1859 # func_convert_path_cygwin_to_w32 ARG
1860 # Convert path ARG from Cygwin to w32 format. Returns result in
1861 # func_to_host_file_result.
1862 func_convert_path_cygwin_to_w32 ()
1863 {
1864 $opt_debug
1865 func_to_host_path_result="$1"
1866 if test -n "$1"; then
1867 # See func_convert_path_msys_to_w32:
1868 func_stripname : : "$1"
1869 func_to_host_path_tmp1=$func_stripname_result
1870 func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
1871 func_convert_path_check : ";" \
1872 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1873 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1874 fi
1875 }
1876 # end func_convert_path_cygwin_to_w32
1877
1878
1879 # func_convert_path_nix_to_w32 ARG
1880 # Convert path ARG from *nix to w32 format. Requires a wine environment and
1881 # a working winepath. Returns result in func_to_host_file_result.
1882 func_convert_path_nix_to_w32 ()
1883 {
1884 $opt_debug
1885 func_to_host_path_result="$1"
1886 if test -n "$1"; then
1887 # See func_convert_path_msys_to_w32:
1888 func_stripname : : "$1"
1889 func_to_host_path_tmp1=$func_stripname_result
1890 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1891 func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
1892 func_convert_path_check : ";" \
1893 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1894 func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
1895 fi
1896 }
1897 # end func_convert_path_nix_to_w32
1898
1899
1900 # func_convert_path_msys_to_cygwin ARG
1901 # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
1902 # Returns result in func_to_host_file_result.
1903 func_convert_path_msys_to_cygwin ()
1904 {
1905 $opt_debug
1906 func_to_host_path_result="$1"
1907 if test -n "$1"; then
1908 # See func_convert_path_msys_to_w32:
1909 func_stripname : : "$1"
1910 func_to_host_path_tmp1=$func_stripname_result
1911 func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
1912 func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
1913 func_to_host_path_result="$func_cygpath_result"
1914 func_convert_path_check : : \
1915 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1916 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1917 fi
1918 }
1919 # end func_convert_path_msys_to_cygwin
1920
1921
1922 # func_convert_path_nix_to_cygwin ARG
1923 # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
1924 # a wine environment, working winepath, and LT_CYGPATH set. Returns result in
1925 # func_to_host_file_result.
1926 func_convert_path_nix_to_cygwin ()
1927 {
1928 $opt_debug
1929 func_to_host_path_result="$1"
1930 if test -n "$1"; then
1931 # Remove leading and trailing path separator characters from
1932 # ARG. msys behavior is inconsistent here, cygpath turns them
1933 # into '.;' and ';.', and winepath ignores them completely.
1934 func_stripname : : "$1"
1935 func_to_host_path_tmp1=$func_stripname_result
1936 func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
1937 func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
1938 func_to_host_path_result="$func_cygpath_result"
1939 func_convert_path_check : : \
1940 "$func_to_host_path_tmp1" "$func_to_host_path_result"
1941 func_convert_path_front_back_pathsep ":*" "*:" : "$1"
1942 fi
1943 }
1944 # end func_convert_path_nix_to_cygwin
1945
1946
12651947 # func_mode_compile arg...
12661948 func_mode_compile ()
12671949 {
13021984 ;;
13031985
13041986 -pie | -fpie | -fPIE)
1305 pie_flag="$pie_flag $arg"
1987 func_append pie_flag " $arg"
13061988 continue
13071989 ;;
13081990
13091991 -shared | -static | -prefer-pic | -prefer-non-pic)
1310 later="$later $arg"
1992 func_append later " $arg"
13111993 continue
13121994 ;;
13131995
13282010 save_ifs="$IFS"; IFS=','
13292011 for arg in $args; do
13302012 IFS="$save_ifs"
1331 func_quote_for_eval "$arg"
1332 lastarg="$lastarg $func_quote_for_eval_result"
2013 func_append_quoted lastarg "$arg"
13332014 done
13342015 IFS="$save_ifs"
13352016 func_stripname ' ' '' "$lastarg"
13362017 lastarg=$func_stripname_result
13372018
13382019 # Add the arguments to base_compile.
1339 base_compile="$base_compile $lastarg"
2020 func_append base_compile " $lastarg"
13402021 continue
13412022 ;;
13422023
13522033 esac # case $arg_mode
13532034
13542035 # Aesthetically quote the previous argument.
1355 func_quote_for_eval "$lastarg"
1356 base_compile="$base_compile $func_quote_for_eval_result"
2036 func_append_quoted base_compile "$lastarg"
13572037 done # for arg
13582038
13592039 case $arg_mode in
14842164 $opt_dry_run || $RM $removelist
14852165 exit $EXIT_FAILURE
14862166 fi
1487 removelist="$removelist $output_obj"
2167 func_append removelist " $output_obj"
14882168 $ECHO "$srcfile" > "$lockfile"
14892169 fi
14902170
14912171 $opt_dry_run || $RM $removelist
1492 removelist="$removelist $lockfile"
2172 func_append removelist " $lockfile"
14932173 trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
14942174
1495 if test -n "$fix_srcfile_path"; then
1496 eval srcfile=\"$fix_srcfile_path\"
1497 fi
2175 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
2176 srcfile=$func_to_tool_file_result
14982177 func_quote_for_eval "$srcfile"
14992178 qsrcfile=$func_quote_for_eval_result
15002179
15142193
15152194 if test -z "$output_obj"; then
15162195 # Place PIC objects in $objdir
1517 command="$command -o $lobj"
2196 func_append command " -o $lobj"
15182197 fi
15192198
15202199 func_show_eval_locale "$command" \
15612240 command="$base_compile $qsrcfile $pic_flag"
15622241 fi
15632242 if test "$compiler_c_o" = yes; then
1564 command="$command -o $obj"
2243 func_append command " -o $obj"
15652244 fi
15662245
15672246 # Suppress compiler output if we already did a PIC compilation.
1568 command="$command$suppress_output"
2247 func_append command "$suppress_output"
15692248 func_show_eval_locale "$command" \
15702249 '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
15712250
16102289 }
16112290
16122291 $opt_help || {
1613 test "$mode" = compile && func_mode_compile ${1+"$@"}
2292 test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
16142293 }
16152294
16162295 func_mode_help ()
16172296 {
16182297 # We need to display help for each of the modes.
1619 case $mode in
2298 case $opt_mode in
16202299 "")
16212300 # Generic help is extracted from the usage comments
16222301 # at the start of this file.
17922471 ;;
17932472
17942473 *)
1795 func_fatal_help "invalid operation mode \`$mode'"
2474 func_fatal_help "invalid operation mode \`$opt_mode'"
17962475 ;;
17972476 esac
17982477
18072486 else
18082487 {
18092488 func_help noexit
1810 for mode in compile link execute install finish uninstall clean; do
2489 for opt_mode in compile link execute install finish uninstall clean; do
18112490 func_mode_help
18122491 done
18132492 } | sed -n '1p; 2,$s/^Usage:/ or: /p'
18142493 {
18152494 func_help noexit
1816 for mode in compile link execute install finish uninstall clean; do
2495 for opt_mode in compile link execute install finish uninstall clean; do
18172496 echo
18182497 func_mode_help
18192498 done
18422521 func_fatal_help "you must specify a COMMAND"
18432522
18442523 # Handle -dlopen flags immediately.
1845 for file in $execute_dlfiles; do
2524 for file in $opt_dlopen; do
18462525 test -f "$file" \
18472526 || func_fatal_help "\`$file' is not a file"
18482527
18492528 dir=
18502529 case $file in
18512530 *.la)
2531 func_resolve_sysroot "$file"
2532 file=$func_resolve_sysroot_result
2533
18522534 # Check to see that this really is a libtool archive.
18532535 func_lalib_unsafe_p "$file" \
18542536 || func_fatal_help "\`$lib' is not a valid libtool archive"
18702552 dir="$func_dirname_result"
18712553
18722554 if test -f "$dir/$objdir/$dlname"; then
1873 dir="$dir/$objdir"
2555 func_append dir "/$objdir"
18742556 else
18752557 if test ! -f "$dir/$dlname"; then
18762558 func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
19272609 ;;
19282610 esac
19292611 # Quote arguments (to preserve shell metacharacters).
1930 func_quote_for_eval "$file"
1931 args="$args $func_quote_for_eval_result"
2612 func_append_quoted args "$file"
19322613 done
19332614
19342615 if test "X$opt_dry_run" = Xfalse; then
19602641 fi
19612642 }
19622643
1963 test "$mode" = execute && func_mode_execute ${1+"$@"}
2644 test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
19642645
19652646
19662647 # func_mode_finish arg...
19672648 func_mode_finish ()
19682649 {
19692650 $opt_debug
1970 libdirs="$nonopt"
2651 libs=
2652 libdirs=
19712653 admincmds=
19722654
2655 for opt in "$nonopt" ${1+"$@"}
2656 do
2657 if test -d "$opt"; then
2658 func_append libdirs " $opt"
2659
2660 elif test -f "$opt"; then
2661 if func_lalib_unsafe_p "$opt"; then
2662 func_append libs " $opt"
2663 else
2664 func_warning "\`$opt' is not a valid libtool archive"
2665 fi
2666
2667 else
2668 func_fatal_error "invalid argument \`$opt'"
2669 fi
2670 done
2671
2672 if test -n "$libs"; then
2673 if test -n "$lt_sysroot"; then
2674 sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
2675 sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
2676 else
2677 sysroot_cmd=
2678 fi
2679
2680 # Remove sysroot references
2681 if $opt_dry_run; then
2682 for lib in $libs; do
2683 echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
2684 done
2685 else
2686 tmpdir=`func_mktempdir`
2687 for lib in $libs; do
2688 sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
2689 > $tmpdir/tmp-la
2690 mv -f $tmpdir/tmp-la $lib
2691 done
2692 ${RM}r "$tmpdir"
2693 fi
2694 fi
2695
19732696 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
1974 for dir
1975 do
1976 libdirs="$libdirs $dir"
1977 done
1978
19792697 for libdir in $libdirs; do
19802698 if test -n "$finish_cmds"; then
19812699 # Do each command in the finish commands.
19852703 if test -n "$finish_eval"; then
19862704 # Do the single finish_eval.
19872705 eval cmds=\"$finish_eval\"
1988 $opt_dry_run || eval "$cmds" || admincmds="$admincmds
2706 $opt_dry_run || eval "$cmds" || func_append admincmds "
19892707 $cmds"
19902708 fi
19912709 done
19942712 # Exit here if they wanted silent mode.
19952713 $opt_silent && exit $EXIT_SUCCESS
19962714
1997 echo "----------------------------------------------------------------------"
1998 echo "Libraries have been installed in:"
1999 for libdir in $libdirs; do
2000 $ECHO " $libdir"
2001 done
2002 echo
2003 echo "If you ever happen to want to link against installed libraries"
2004 echo "in a given directory, LIBDIR, you must either use libtool, and"
2005 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2006 echo "flag during linking and do at least one of the following:"
2007 if test -n "$shlibpath_var"; then
2008 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2009 echo " during execution"
2715 if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
2716 echo "----------------------------------------------------------------------"
2717 echo "Libraries have been installed in:"
2718 for libdir in $libdirs; do
2719 $ECHO " $libdir"
2720 done
2721 echo
2722 echo "If you ever happen to want to link against installed libraries"
2723 echo "in a given directory, LIBDIR, you must either use libtool, and"
2724 echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
2725 echo "flag during linking and do at least one of the following:"
2726 if test -n "$shlibpath_var"; then
2727 echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
2728 echo " during execution"
2729 fi
2730 if test -n "$runpath_var"; then
2731 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2732 echo " during linking"
2733 fi
2734 if test -n "$hardcode_libdir_flag_spec"; then
2735 libdir=LIBDIR
2736 eval flag=\"$hardcode_libdir_flag_spec\"
2737
2738 $ECHO " - use the \`$flag' linker flag"
2739 fi
2740 if test -n "$admincmds"; then
2741 $ECHO " - have your system administrator run these commands:$admincmds"
2742 fi
2743 if test -f /etc/ld.so.conf; then
2744 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2745 fi
2746 echo
2747
2748 echo "See any operating system documentation about shared libraries for"
2749 case $host in
2750 solaris2.[6789]|solaris2.1[0-9])
2751 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2752 echo "pages."
2753 ;;
2754 *)
2755 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2756 ;;
2757 esac
2758 echo "----------------------------------------------------------------------"
20102759 fi
2011 if test -n "$runpath_var"; then
2012 echo " - add LIBDIR to the \`$runpath_var' environment variable"
2013 echo " during linking"
2014 fi
2015 if test -n "$hardcode_libdir_flag_spec"; then
2016 libdir=LIBDIR
2017 eval flag=\"$hardcode_libdir_flag_spec\"
2018
2019 $ECHO " - use the \`$flag' linker flag"
2020 fi
2021 if test -n "$admincmds"; then
2022 $ECHO " - have your system administrator run these commands:$admincmds"
2023 fi
2024 if test -f /etc/ld.so.conf; then
2025 echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
2026 fi
2027 echo
2028
2029 echo "See any operating system documentation about shared libraries for"
2030 case $host in
2031 solaris2.[6789]|solaris2.1[0-9])
2032 echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
2033 echo "pages."
2034 ;;
2035 *)
2036 echo "more information, such as the ld(1) and ld.so(8) manual pages."
2037 ;;
2038 esac
2039 echo "----------------------------------------------------------------------"
20402760 exit $EXIT_SUCCESS
20412761 }
20422762
2043 test "$mode" = finish && func_mode_finish ${1+"$@"}
2763 test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
20442764
20452765
20462766 # func_mode_install arg...
20652785 # The real first argument should be the name of the installation program.
20662786 # Aesthetically quote it.
20672787 func_quote_for_eval "$arg"
2068 install_prog="$install_prog$func_quote_for_eval_result"
2788 func_append install_prog "$func_quote_for_eval_result"
20692789 install_shared_prog=$install_prog
20702790 case " $install_prog " in
20712791 *[\\\ /]cp\ *) install_cp=: ;;
20852805 do
20862806 arg2=
20872807 if test -n "$dest"; then
2088 files="$files $dest"
2808 func_append files " $dest"
20892809 dest=$arg
20902810 continue
20912811 fi
21232843
21242844 # Aesthetically quote the argument.
21252845 func_quote_for_eval "$arg"
2126 install_prog="$install_prog $func_quote_for_eval_result"
2846 func_append install_prog " $func_quote_for_eval_result"
21272847 if test -n "$arg2"; then
21282848 func_quote_for_eval "$arg2"
21292849 fi
2130 install_shared_prog="$install_shared_prog $func_quote_for_eval_result"
2850 func_append install_shared_prog " $func_quote_for_eval_result"
21312851 done
21322852
21332853 test -z "$install_prog" && \
21392859 if test -n "$install_override_mode" && $no_mode; then
21402860 if $install_cp; then :; else
21412861 func_quote_for_eval "$install_override_mode"
2142 install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result"
2862 func_append install_shared_prog " -m $func_quote_for_eval_result"
21432863 fi
21442864 fi
21452865
21972917 case $file in
21982918 *.$libext)
21992919 # Do the static libraries later.
2200 staticlibs="$staticlibs $file"
2920 func_append staticlibs " $file"
22012921 ;;
22022922
22032923 *.la)
2924 func_resolve_sysroot "$file"
2925 file=$func_resolve_sysroot_result
2926
22042927 # Check to see that this really is a libtool archive.
22052928 func_lalib_unsafe_p "$file" \
22062929 || func_fatal_help "\`$file' is not a valid libtool archive"
22142937 if test "X$destdir" = "X$libdir"; then
22152938 case "$current_libdirs " in
22162939 *" $libdir "*) ;;
2217 *) current_libdirs="$current_libdirs $libdir" ;;
2940 *) func_append current_libdirs " $libdir" ;;
22182941 esac
22192942 else
22202943 # Note the libdir as a future libdir.
22212944 case "$future_libdirs " in
22222945 *" $libdir "*) ;;
2223 *) future_libdirs="$future_libdirs $libdir" ;;
2946 *) func_append future_libdirs " $libdir" ;;
22242947 esac
22252948 fi
22262949
22272950 func_dirname "$file" "/" ""
22282951 dir="$func_dirname_result"
2229 dir="$dir$objdir"
2952 func_append dir "$objdir"
22302953
22312954 if test -n "$relink_command"; then
22322955 # Determine the prefix the user has applied to our future dir.
23033026 func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
23043027
23053028 # Maybe install the static library, too.
2306 test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
3029 test -n "$old_library" && func_append staticlibs " $dir/$old_library"
23073030 ;;
23083031
23093032 *.lo)
25003223 fi
25013224 }
25023225
2503 test "$mode" = install && func_mode_install ${1+"$@"}
3226 test "$opt_mode" = install && func_mode_install ${1+"$@"}
25043227
25053228
25063229 # func_generate_dlsyms outputname originator pic_p
25473270 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
25483271 #endif
25493272
3273 /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
3274 #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
3275 /* DATA imports from DLLs on WIN32 con't be const, because runtime
3276 relocations are performed -- see ld's documentation on pseudo-relocs. */
3277 # define LT_DLSYM_CONST
3278 #elif defined(__osf__)
3279 /* This system does not cope well with relocations in const data. */
3280 # define LT_DLSYM_CONST
3281 #else
3282 # define LT_DLSYM_CONST const
3283 #endif
3284
25503285 /* External symbol declarations for the compiler. */\
25513286 "
25523287
25583293 # Add our own program objects to the symbol list.
25593294 progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
25603295 for progfile in $progfiles; do
2561 func_verbose "extracting global C symbols from \`$progfile'"
2562 $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
3296 func_to_tool_file "$progfile" func_convert_file_msys_to_w32
3297 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
3298 $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
25633299 done
25643300
25653301 if test -n "$exclude_expsyms"; then
26083344 func_verbose "extracting global C symbols from \`$dlprefile'"
26093345 func_basename "$dlprefile"
26103346 name="$func_basename_result"
2611 $opt_dry_run || {
2612 eval '$ECHO ": $name " >> "$nlist"'
2613 eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
2614 }
3347 case $host in
3348 *cygwin* | *mingw* | *cegcc* )
3349 # if an import library, we need to obtain dlname
3350 if func_win32_import_lib_p "$dlprefile"; then
3351 func_tr_sh "$dlprefile"
3352 eval "curr_lafile=\$libfile_$func_tr_sh_result"
3353 dlprefile_dlbasename=""
3354 if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
3355 # Use subshell, to avoid clobbering current variable values
3356 dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
3357 if test -n "$dlprefile_dlname" ; then
3358 func_basename "$dlprefile_dlname"
3359 dlprefile_dlbasename="$func_basename_result"
3360 else
3361 # no lafile. user explicitly requested -dlpreopen <import library>.
3362 $sharedlib_from_linklib_cmd "$dlprefile"
3363 dlprefile_dlbasename=$sharedlib_from_linklib_result
3364 fi
3365 fi
3366 $opt_dry_run || {
3367 if test -n "$dlprefile_dlbasename" ; then
3368 eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
3369 else
3370 func_warning "Could not compute DLL name from $name"
3371 eval '$ECHO ": $name " >> "$nlist"'
3372 fi
3373 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3374 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
3375 $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
3376 }
3377 else # not an import lib
3378 $opt_dry_run || {
3379 eval '$ECHO ": $name " >> "$nlist"'
3380 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3381 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3382 }
3383 fi
3384 ;;
3385 *)
3386 $opt_dry_run || {
3387 eval '$ECHO ": $name " >> "$nlist"'
3388 func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
3389 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
3390 }
3391 ;;
3392 esac
26153393 done
26163394
26173395 $opt_dry_run || {
26493427 const char *name;
26503428 void *address;
26513429 } lt_dlsymlist;
2652 "
2653 case $host in
2654 *cygwin* | *mingw* | *cegcc* )
2655 echo >> "$output_objdir/$my_dlsyms" "\
2656 /* DATA imports from DLLs on WIN32 con't be const, because
2657 runtime relocations are performed -- see ld's documentation
2658 on pseudo-relocs. */"
2659 lt_dlsym_const= ;;
2660 *osf5*)
2661 echo >> "$output_objdir/$my_dlsyms" "\
2662 /* This system does not cope well with relocations in const data */"
2663 lt_dlsym_const= ;;
2664 *)
2665 lt_dlsym_const=const ;;
2666 esac
2667
2668 echo >> "$output_objdir/$my_dlsyms" "\
2669 extern $lt_dlsym_const lt_dlsymlist
3430 extern LT_DLSYM_CONST lt_dlsymlist
26703431 lt_${my_prefix}_LTX_preloaded_symbols[];
2671 $lt_dlsym_const lt_dlsymlist
3432 LT_DLSYM_CONST lt_dlsymlist
26723433 lt_${my_prefix}_LTX_preloaded_symbols[] =
26733434 {\
26743435 { \"$my_originator\", (void *) 0 },"
27243485 for arg in $LTCFLAGS; do
27253486 case $arg in
27263487 -pie | -fpie | -fPIE) ;;
2727 *) symtab_cflags="$symtab_cflags $arg" ;;
3488 *) func_append symtab_cflags " $arg" ;;
27283489 esac
27293490 done
27303491
27873548 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
27883549 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
27893550 $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
2790 win32_nmres=`eval $NM -f posix -A $1 |
3551 func_to_tool_file "$1" func_convert_file_msys_to_w32
3552 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
27913553 $SED -n -e '
27923554 1,100{
27933555 / I /{
28163578 $ECHO "$win32_libid_type"
28173579 }
28183580
3581 # func_cygming_dll_for_implib ARG
3582 #
3583 # Platform-specific function to extract the
3584 # name of the DLL associated with the specified
3585 # import library ARG.
3586 # Invoked by eval'ing the libtool variable
3587 # $sharedlib_from_linklib_cmd
3588 # Result is available in the variable
3589 # $sharedlib_from_linklib_result
3590 func_cygming_dll_for_implib ()
3591 {
3592 $opt_debug
3593 sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
3594 }
3595
3596 # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
3597 #
3598 # The is the core of a fallback implementation of a
3599 # platform-specific function to extract the name of the
3600 # DLL associated with the specified import library LIBNAME.
3601 #
3602 # SECTION_NAME is either .idata$6 or .idata$7, depending
3603 # on the platform and compiler that created the implib.
3604 #
3605 # Echos the name of the DLL associated with the
3606 # specified import library.
3607 func_cygming_dll_for_implib_fallback_core ()
3608 {
3609 $opt_debug
3610 match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
3611 $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
3612 $SED '/^Contents of section '"$match_literal"':/{
3613 # Place marker at beginning of archive member dllname section
3614 s/.*/====MARK====/
3615 p
3616 d
3617 }
3618 # These lines can sometimes be longer than 43 characters, but
3619 # are always uninteresting
3620 /:[ ]*file format pe[i]\{,1\}-/d
3621 /^In archive [^:]*:/d
3622 # Ensure marker is printed
3623 /^====MARK====/p
3624 # Remove all lines with less than 43 characters
3625 /^.\{43\}/!d
3626 # From remaining lines, remove first 43 characters
3627 s/^.\{43\}//' |
3628 $SED -n '
3629 # Join marker and all lines until next marker into a single line
3630 /^====MARK====/ b para
3631 H
3632 $ b para
3633 b
3634 :para
3635 x
3636 s/\n//g
3637 # Remove the marker
3638 s/^====MARK====//
3639 # Remove trailing dots and whitespace
3640 s/[\. \t]*$//
3641 # Print
3642 /./p' |
3643 # we now have a list, one entry per line, of the stringified
3644 # contents of the appropriate section of all members of the
3645 # archive which possess that section. Heuristic: eliminate
3646 # all those which have a first or second character that is
3647 # a '.' (that is, objdump's representation of an unprintable
3648 # character.) This should work for all archives with less than
3649 # 0x302f exports -- but will fail for DLLs whose name actually
3650 # begins with a literal '.' or a single character followed by
3651 # a '.'.
3652 #
3653 # Of those that remain, print the first one.
3654 $SED -e '/^\./d;/^.\./d;q'
3655 }
3656
3657 # func_cygming_gnu_implib_p ARG
3658 # This predicate returns with zero status (TRUE) if
3659 # ARG is a GNU/binutils-style import library. Returns
3660 # with nonzero status (FALSE) otherwise.
3661 func_cygming_gnu_implib_p ()
3662 {
3663 $opt_debug
3664 func_to_tool_file "$1" func_convert_file_msys_to_w32
3665 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
3666 test -n "$func_cygming_gnu_implib_tmp"
3667 }
3668
3669 # func_cygming_ms_implib_p ARG
3670 # This predicate returns with zero status (TRUE) if
3671 # ARG is an MS-style import library. Returns
3672 # with nonzero status (FALSE) otherwise.
3673 func_cygming_ms_implib_p ()
3674 {
3675 $opt_debug
3676 func_to_tool_file "$1" func_convert_file_msys_to_w32
3677 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
3678 test -n "$func_cygming_ms_implib_tmp"
3679 }
3680
3681 # func_cygming_dll_for_implib_fallback ARG
3682 # Platform-specific function to extract the
3683 # name of the DLL associated with the specified
3684 # import library ARG.
3685 #
3686 # This fallback implementation is for use when $DLLTOOL
3687 # does not support the --identify-strict option.
3688 # Invoked by eval'ing the libtool variable
3689 # $sharedlib_from_linklib_cmd
3690 # Result is available in the variable
3691 # $sharedlib_from_linklib_result
3692 func_cygming_dll_for_implib_fallback ()
3693 {
3694 $opt_debug
3695 if func_cygming_gnu_implib_p "$1" ; then
3696 # binutils import library
3697 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
3698 elif func_cygming_ms_implib_p "$1" ; then
3699 # ms-generated import library
3700 sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
3701 else
3702 # unknown
3703 sharedlib_from_linklib_result=""
3704 fi
3705 }
28193706
28203707
28213708 # func_extract_an_archive dir oldlib
31944081
31954082 if test -f \"\$progdir/\$program\"; then"
31964083
4084 # fixup the dll searchpath if we need to.
4085 #
4086 # Fix the DLL searchpath if we need to. Do this before prepending
4087 # to shlibpath, because on Windows, both are PATH and uninstalled
4088 # libraries must come first.
4089 if test -n "$dllsearchpath"; then
4090 $ECHO "\
4091 # Add the dll search path components to the executable PATH
4092 PATH=$dllsearchpath:\$PATH
4093 "
4094 fi
4095
31974096 # Export our shlibpath_var if we have one.
31984097 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
31994098 $ECHO "\
32054104 $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
32064105
32074106 export $shlibpath_var
3208 "
3209 fi
3210
3211 # fixup the dll searchpath if we need to.
3212 if test -n "$dllsearchpath"; then
3213 $ECHO "\
3214 # Add the dll search path components to the executable PATH
3215 PATH=$dllsearchpath:\$PATH
32164107 "
32174108 fi
32184109
32324123 "
32334124 }
32344125
3235
3236 # func_to_host_path arg
3237 #
3238 # Convert paths to host format when used with build tools.
3239 # Intended for use with "native" mingw (where libtool itself
3240 # is running under the msys shell), or in the following cross-
3241 # build environments:
3242 # $build $host
3243 # mingw (msys) mingw [e.g. native]
3244 # cygwin mingw
3245 # *nix + wine mingw
3246 # where wine is equipped with the `winepath' executable.
3247 # In the native mingw case, the (msys) shell automatically
3248 # converts paths for any non-msys applications it launches,
3249 # but that facility isn't available from inside the cwrapper.
3250 # Similar accommodations are necessary for $host mingw and
3251 # $build cygwin. Calling this function does no harm for other
3252 # $host/$build combinations not listed above.
3253 #
3254 # ARG is the path (on $build) that should be converted to
3255 # the proper representation for $host. The result is stored
3256 # in $func_to_host_path_result.
3257 func_to_host_path ()
3258 {
3259 func_to_host_path_result="$1"
3260 if test -n "$1"; then
3261 case $host in
3262 *mingw* )
3263 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3264 case $build in
3265 *mingw* ) # actually, msys
3266 # awkward: cmd appends spaces to result
3267 func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null |
3268 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3269 ;;
3270 *cygwin* )
3271 func_to_host_path_result=`cygpath -w "$1" |
3272 $SED -e "$lt_sed_naive_backslashify"`
3273 ;;
3274 * )
3275 # Unfortunately, winepath does not exit with a non-zero
3276 # error code, so we are forced to check the contents of
3277 # stdout. On the other hand, if the command is not
3278 # found, the shell will set an exit code of 127 and print
3279 # *an error message* to stdout. So we must check for both
3280 # error code of zero AND non-empty stdout, which explains
3281 # the odd construction:
3282 func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
3283 if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
3284 func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" |
3285 $SED -e "$lt_sed_naive_backslashify"`
3286 else
3287 # Allow warning below.
3288 func_to_host_path_result=
3289 fi
3290 ;;
3291 esac
3292 if test -z "$func_to_host_path_result" ; then
3293 func_error "Could not determine host path corresponding to"
3294 func_error " \`$1'"
3295 func_error "Continuing, but uninstalled executables may not work."
3296 # Fallback:
3297 func_to_host_path_result="$1"
3298 fi
3299 ;;
3300 esac
3301 fi
3302 }
3303 # end: func_to_host_path
3304
3305 # func_to_host_pathlist arg
3306 #
3307 # Convert pathlists to host format when used with build tools.
3308 # See func_to_host_path(), above. This function supports the
3309 # following $build/$host combinations (but does no harm for
3310 # combinations not listed here):
3311 # $build $host
3312 # mingw (msys) mingw [e.g. native]
3313 # cygwin mingw
3314 # *nix + wine mingw
3315 #
3316 # Path separators are also converted from $build format to
3317 # $host format. If ARG begins or ends with a path separator
3318 # character, it is preserved (but converted to $host format)
3319 # on output.
3320 #
3321 # ARG is a pathlist (on $build) that should be converted to
3322 # the proper representation on $host. The result is stored
3323 # in $func_to_host_pathlist_result.
3324 func_to_host_pathlist ()
3325 {
3326 func_to_host_pathlist_result="$1"
3327 if test -n "$1"; then
3328 case $host in
3329 *mingw* )
3330 lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
3331 # Remove leading and trailing path separator characters from
3332 # ARG. msys behavior is inconsistent here, cygpath turns them
3333 # into '.;' and ';.', and winepath ignores them completely.
3334 func_stripname : : "$1"
3335 func_to_host_pathlist_tmp1=$func_stripname_result
3336 case $build in
3337 *mingw* ) # Actually, msys.
3338 # Awkward: cmd appends spaces to result.
3339 func_to_host_pathlist_result=`
3340 ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null |
3341 $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
3342 ;;
3343 *cygwin* )
3344 func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" |
3345 $SED -e "$lt_sed_naive_backslashify"`
3346 ;;
3347 * )
3348 # unfortunately, winepath doesn't convert pathlists
3349 func_to_host_pathlist_result=""
3350 func_to_host_pathlist_oldIFS=$IFS
3351 IFS=:
3352 for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
3353 IFS=$func_to_host_pathlist_oldIFS
3354 if test -n "$func_to_host_pathlist_f" ; then
3355 func_to_host_path "$func_to_host_pathlist_f"
3356 if test -n "$func_to_host_path_result" ; then
3357 if test -z "$func_to_host_pathlist_result" ; then
3358 func_to_host_pathlist_result="$func_to_host_path_result"
3359 else
3360 func_append func_to_host_pathlist_result ";$func_to_host_path_result"
3361 fi
3362 fi
3363 fi
3364 done
3365 IFS=$func_to_host_pathlist_oldIFS
3366 ;;
3367 esac
3368 if test -z "$func_to_host_pathlist_result"; then
3369 func_error "Could not determine the host path(s) corresponding to"
3370 func_error " \`$1'"
3371 func_error "Continuing, but uninstalled executables may not work."
3372 # Fallback. This may break if $1 contains DOS-style drive
3373 # specifications. The fix is not to complicate the expression
3374 # below, but for the user to provide a working wine installation
3375 # with winepath so that path translation in the cross-to-mingw
3376 # case works properly.
3377 lt_replace_pathsep_nix_to_dos="s|:|;|g"
3378 func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
3379 $SED -e "$lt_replace_pathsep_nix_to_dos"`
3380 fi
3381 # Now, add the leading and trailing path separators back
3382 case "$1" in
3383 :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
3384 ;;
3385 esac
3386 case "$1" in
3387 *: ) func_append func_to_host_pathlist_result ";"
3388 ;;
3389 esac
3390 ;;
3391 esac
3392 fi
3393 }
3394 # end: func_to_host_pathlist
33954126
33964127 # func_emit_cwrapperexe_src
33974128 # emit the source code for a wrapper executable on stdout
35624293 EOF
35634294
35644295 cat <<EOF
3565 const char * MAGIC_EXE = "$magic_exe";
4296 volatile const char * MAGIC_EXE = "$magic_exe";
35664297 const char * LIB_PATH_VARNAME = "$shlibpath_var";
35674298 EOF
35684299
35694300 if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
3570 func_to_host_pathlist "$temp_rpath"
4301 func_to_host_path "$temp_rpath"
35714302 cat <<EOF
3572 const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
4303 const char * LIB_PATH_VALUE = "$func_to_host_path_result";
35734304 EOF
35744305 else
35754306 cat <<"EOF"
35784309 fi
35794310
35804311 if test -n "$dllsearchpath"; then
3581 func_to_host_pathlist "$dllsearchpath:"
4312 func_to_host_path "$dllsearchpath:"
35824313 cat <<EOF
35834314 const char * EXE_PATH_VARNAME = "PATH";
3584 const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
4315 const char * EXE_PATH_VALUE = "$func_to_host_path_result";
35854316 EOF
35864317 else
35874318 cat <<"EOF"
37644495
37654496 lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
37664497 lt_setenv ("DUALCASE", "1"); /* for MSK sh */
4498 /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
4499 be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
4500 because on Windows, both *_VARNAMEs are PATH but uninstalled
4501 libraries must come first. */
4502 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
37674503 lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
3768 lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
37694504
37704505 lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
37714506 nonnull (lt_argv_zero));
45145249 ;;
45155250 *)
45165251 if test "$prev" = dlfiles; then
4517 dlfiles="$dlfiles $arg"
5252 func_append dlfiles " $arg"
45185253 else
4519 dlprefiles="$dlprefiles $arg"
5254 func_append dlprefiles " $arg"
45205255 fi
45215256 prev=
45225257 continue
45405275 *-*-darwin*)
45415276 case "$deplibs " in
45425277 *" $qarg.ltframework "*) ;;
4543 *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
5278 *) func_append deplibs " $qarg.ltframework" # this is fixed later
45445279 ;;
45455280 esac
45465281 ;;
45595294 moreargs=
45605295 for fil in `cat "$save_arg"`
45615296 do
4562 # moreargs="$moreargs $fil"
5297 # func_append moreargs " $fil"
45635298 arg=$fil
45645299 # A libtool-controlled object.
45655300
45885323
45895324 if test "$prev" = dlfiles; then
45905325 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
4591 dlfiles="$dlfiles $pic_object"
5326 func_append dlfiles " $pic_object"
45925327 prev=
45935328 continue
45945329 else
46005335 # CHECK ME: I think I busted this. -Ossama
46015336 if test "$prev" = dlprefiles; then
46025337 # Preload the old-style object.
4603 dlprefiles="$dlprefiles $pic_object"
5338 func_append dlprefiles " $pic_object"
46045339 prev=
46055340 fi
46065341
46705405 if test "$prev" = rpath; then
46715406 case "$rpath " in
46725407 *" $arg "*) ;;
4673 *) rpath="$rpath $arg" ;;
5408 *) func_append rpath " $arg" ;;
46745409 esac
46755410 else
46765411 case "$xrpath " in
46775412 *" $arg "*) ;;
4678 *) xrpath="$xrpath $arg" ;;
5413 *) func_append xrpath " $arg" ;;
46795414 esac
46805415 fi
46815416 prev=
46875422 continue
46885423 ;;
46895424 weak)
4690 weak_libs="$weak_libs $arg"
5425 func_append weak_libs " $arg"
46915426 prev=
46925427 continue
46935428 ;;
46945429 xcclinker)
4695 linker_flags="$linker_flags $qarg"
4696 compiler_flags="$compiler_flags $qarg"
5430 func_append linker_flags " $qarg"
5431 func_append compiler_flags " $qarg"
46975432 prev=
46985433 func_append compile_command " $qarg"
46995434 func_append finalize_command " $qarg"
47005435 continue
47015436 ;;
47025437 xcompiler)
4703 compiler_flags="$compiler_flags $qarg"
5438 func_append compiler_flags " $qarg"
47045439 prev=
47055440 func_append compile_command " $qarg"
47065441 func_append finalize_command " $qarg"
47075442 continue
47085443 ;;
47095444 xlinker)
4710 linker_flags="$linker_flags $qarg"
4711 compiler_flags="$compiler_flags $wl$qarg"
5445 func_append linker_flags " $qarg"
5446 func_append compiler_flags " $wl$qarg"
47125447 prev=
47135448 func_append compile_command " $wl$qarg"
47145449 func_append finalize_command " $wl$qarg"
47995534 ;;
48005535
48015536 -L*)
4802 func_stripname '-L' '' "$arg"
4803 dir=$func_stripname_result
4804 if test -z "$dir"; then
5537 func_stripname "-L" '' "$arg"
5538 if test -z "$func_stripname_result"; then
48055539 if test "$#" -gt 0; then
48065540 func_fatal_error "require no space between \`-L' and \`$1'"
48075541 else
48085542 func_fatal_error "need path for \`-L' option"
48095543 fi
48105544 fi
5545 func_resolve_sysroot "$func_stripname_result"
5546 dir=$func_resolve_sysroot_result
48115547 # We need an absolute path.
48125548 case $dir in
48135549 [\\/]* | [A-Za-z]:[\\/]*) ;;
48195555 ;;
48205556 esac
48215557 case "$deplibs " in
4822 *" -L$dir "*) ;;
5558 *" -L$dir "* | *" $arg "*)
5559 # Will only happen for absolute or sysroot arguments
5560 ;;
48235561 *)
4824 deplibs="$deplibs -L$dir"
4825 lib_search_path="$lib_search_path $dir"
5562 # Preserve sysroot, but never include relative directories
5563 case $dir in
5564 [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
5565 *) func_append deplibs " -L$dir" ;;
5566 esac
5567 func_append lib_search_path " $dir"
48265568 ;;
48275569 esac
48285570 case $host in
48315573 case :$dllsearchpath: in
48325574 *":$dir:"*) ;;
48335575 ::) dllsearchpath=$dir;;
4834 *) dllsearchpath="$dllsearchpath:$dir";;
5576 *) func_append dllsearchpath ":$dir";;
48355577 esac
48365578 case :$dllsearchpath: in
48375579 *":$testbindir:"*) ;;
48385580 ::) dllsearchpath=$testbindir;;
4839 *) dllsearchpath="$dllsearchpath:$testbindir";;
5581 *) func_append dllsearchpath ":$testbindir";;
48405582 esac
48415583 ;;
48425584 esac
48605602 ;;
48615603 *-*-rhapsody* | *-*-darwin1.[012])
48625604 # Rhapsody C and math libraries are in the System framework
4863 deplibs="$deplibs System.ltframework"
5605 func_append deplibs " System.ltframework"
48645606 continue
48655607 ;;
48665608 *-*-sco3.2v5* | *-*-sco5v6*)
48805622 ;;
48815623 esac
48825624 fi
4883 deplibs="$deplibs $arg"
5625 func_append deplibs " $arg"
48845626 continue
48855627 ;;
48865628
48925634 # Tru64 UNIX uses -model [arg] to determine the layout of C++
48935635 # classes, name mangling, and exception handling.
48945636 # Darwin uses the -arch flag to determine output architecture.
4895 -model|-arch|-isysroot)
4896 compiler_flags="$compiler_flags $arg"
5637 -model|-arch|-isysroot|--sysroot)
5638 func_append compiler_flags " $arg"
48975639 func_append compile_command " $arg"
48985640 func_append finalize_command " $arg"
48995641 prev=xcompiler
49015643 ;;
49025644
49035645 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
4904 compiler_flags="$compiler_flags $arg"
5646 func_append compiler_flags " $arg"
49055647 func_append compile_command " $arg"
49065648 func_append finalize_command " $arg"
49075649 case "$new_inherited_linker_flags " in
49085650 *" $arg "*) ;;
4909 * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
5651 * ) func_append new_inherited_linker_flags " $arg" ;;
49105652 esac
49115653 continue
49125654 ;;
49735715 # We need an absolute path.
49745716 case $dir in
49755717 [\\/]* | [A-Za-z]:[\\/]*) ;;
5718 =*)
5719 func_stripname '=' '' "$dir"
5720 dir=$lt_sysroot$func_stripname_result
5721 ;;
49765722 *)
49775723 func_fatal_error "only absolute run-paths are allowed"
49785724 ;;
49795725 esac
49805726 case "$xrpath " in
49815727 *" $dir "*) ;;
4982 *) xrpath="$xrpath $dir" ;;
5728 *) func_append xrpath " $dir" ;;
49835729 esac
49845730 continue
49855731 ;;
50325778 for flag in $args; do
50335779 IFS="$save_ifs"
50345780 func_quote_for_eval "$flag"
5035 arg="$arg $func_quote_for_eval_result"
5036 compiler_flags="$compiler_flags $func_quote_for_eval_result"
5781 func_append arg " $func_quote_for_eval_result"
5782 func_append compiler_flags " $func_quote_for_eval_result"
50375783 done
50385784 IFS="$save_ifs"
50395785 func_stripname ' ' '' "$arg"
50485794 for flag in $args; do
50495795 IFS="$save_ifs"
50505796 func_quote_for_eval "$flag"
5051 arg="$arg $wl$func_quote_for_eval_result"
5052 compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
5053 linker_flags="$linker_flags $func_quote_for_eval_result"
5797 func_append arg " $wl$func_quote_for_eval_result"
5798 func_append compiler_flags " $wl$func_quote_for_eval_result"
5799 func_append linker_flags " $func_quote_for_eval_result"
50545800 done
50555801 IFS="$save_ifs"
50565802 func_stripname ' ' '' "$arg"
50895835 # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
50905836 # @file GCC response files
50915837 # -tp=* Portland pgcc target processor selection
5838 # --sysroot=* for sysroot support
5839 # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
50925840 -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
5093 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*)
5841 -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
5842 -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
50945843 func_quote_for_eval "$arg"
50955844 arg="$func_quote_for_eval_result"
50965845 func_append compile_command " $arg"
50975846 func_append finalize_command " $arg"
5098 compiler_flags="$compiler_flags $arg"
5847 func_append compiler_flags " $arg"
50995848 continue
51005849 ;;
51015850
51075856
51085857 *.$objext)
51095858 # A standard object.
5110 objs="$objs $arg"
5859 func_append objs " $arg"
51115860 ;;
51125861
51135862 *.lo)
51385887
51395888 if test "$prev" = dlfiles; then
51405889 if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
5141 dlfiles="$dlfiles $pic_object"
5890 func_append dlfiles " $pic_object"
51425891 prev=
51435892 continue
51445893 else
51505899 # CHECK ME: I think I busted this. -Ossama
51515900 if test "$prev" = dlprefiles; then
51525901 # Preload the old-style object.
5153 dlprefiles="$dlprefiles $pic_object"
5902 func_append dlprefiles " $pic_object"
51545903 prev=
51555904 fi
51565905
51955944
51965945 *.$libext)
51975946 # An archive.
5198 deplibs="$deplibs $arg"
5199 old_deplibs="$old_deplibs $arg"
5947 func_append deplibs " $arg"
5948 func_append old_deplibs " $arg"
52005949 continue
52015950 ;;
52025951
52035952 *.la)
52045953 # A libtool-controlled library.
52055954
5955 func_resolve_sysroot "$arg"
52065956 if test "$prev" = dlfiles; then
52075957 # This library was specified with -dlopen.
5208 dlfiles="$dlfiles $arg"
5958 func_append dlfiles " $func_resolve_sysroot_result"
52095959 prev=
52105960 elif test "$prev" = dlprefiles; then
52115961 # The library was specified with -dlpreopen.
5212 dlprefiles="$dlprefiles $arg"
5962 func_append dlprefiles " $func_resolve_sysroot_result"
52135963 prev=
52145964 else
5215 deplibs="$deplibs $arg"
5965 func_append deplibs " $func_resolve_sysroot_result"
52165966 fi
52175967 continue
52185968 ;;
52596009
52606010 func_dirname "$output" "/" ""
52616011 output_objdir="$func_dirname_result$objdir"
6012 func_to_tool_file "$output_objdir/"
6013 tool_output_objdir=$func_to_tool_file_result
52626014 # Create the object directory.
52636015 func_mkdir_p "$output_objdir"
52646016
52796031 # Find all interdependent deplibs by searching for libraries
52806032 # that are linked more than once (e.g. -la -lb -la)
52816033 for deplib in $deplibs; do
5282 if $opt_duplicate_deps ; then
6034 if $opt_preserve_dup_deps ; then
52836035 case "$libs " in
5284 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6036 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
52856037 esac
52866038 fi
5287 libs="$libs $deplib"
6039 func_append libs " $deplib"
52886040 done
52896041
52906042 if test "$linkmode" = lib; then
52976049 if $opt_duplicate_compiler_generated_deps; then
52986050 for pre_post_dep in $predeps $postdeps; do
52996051 case "$pre_post_deps " in
5300 *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
6052 *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
53016053 esac
5302 pre_post_deps="$pre_post_deps $pre_post_dep"
6054 func_append pre_post_deps " $pre_post_dep"
53036055 done
53046056 fi
53056057 pre_post_deps=
53666118 for lib in $dlprefiles; do
53676119 # Ignore non-libtool-libs
53686120 dependency_libs=
6121 func_resolve_sysroot "$lib"
53696122 case $lib in
5370 *.la) func_source "$lib" ;;
6123 *.la) func_source "$func_resolve_sysroot_result" ;;
53716124 esac
53726125
53736126 # Collect preopened libtool deplibs, except any this library
53776130 deplib_base=$func_basename_result
53786131 case " $weak_libs " in
53796132 *" $deplib_base "*) ;;
5380 *) deplibs="$deplibs $deplib" ;;
6133 *) func_append deplibs " $deplib" ;;
53816134 esac
53826135 done
53836136 done
53986151 compile_deplibs="$deplib $compile_deplibs"
53996152 finalize_deplibs="$deplib $finalize_deplibs"
54006153 else
5401 compiler_flags="$compiler_flags $deplib"
6154 func_append compiler_flags " $deplib"
54026155 if test "$linkmode" = lib ; then
54036156 case "$new_inherited_linker_flags " in
54046157 *" $deplib "*) ;;
5405 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6158 * ) func_append new_inherited_linker_flags " $deplib" ;;
54066159 esac
54076160 fi
54086161 fi
54876240 if test "$linkmode" = lib ; then
54886241 case "$new_inherited_linker_flags " in
54896242 *" $deplib "*) ;;
5490 * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
6243 * ) func_append new_inherited_linker_flags " $deplib" ;;
54916244 esac
54926245 fi
54936246 fi
55006253 test "$pass" = conv && continue
55016254 newdependency_libs="$deplib $newdependency_libs"
55026255 func_stripname '-L' '' "$deplib"
5503 newlib_search_path="$newlib_search_path $func_stripname_result"
6256 func_resolve_sysroot "$func_stripname_result"
6257 func_append newlib_search_path " $func_resolve_sysroot_result"
55046258 ;;
55056259 prog)
55066260 if test "$pass" = conv; then
55146268 finalize_deplibs="$deplib $finalize_deplibs"
55156269 fi
55166270 func_stripname '-L' '' "$deplib"
5517 newlib_search_path="$newlib_search_path $func_stripname_result"
6271 func_resolve_sysroot "$func_stripname_result"
6272 func_append newlib_search_path " $func_resolve_sysroot_result"
55186273 ;;
55196274 *)
55206275 func_warning "\`-L' is ignored for archives/objects"
55256280 -R*)
55266281 if test "$pass" = link; then
55276282 func_stripname '-R' '' "$deplib"
5528 dir=$func_stripname_result
6283 func_resolve_sysroot "$func_stripname_result"
6284 dir=$func_resolve_sysroot_result
55296285 # Make sure the xrpath contains only unique directories.
55306286 case "$xrpath " in
55316287 *" $dir "*) ;;
5532 *) xrpath="$xrpath $dir" ;;
6288 *) func_append xrpath " $dir" ;;
55336289 esac
55346290 fi
55356291 deplibs="$deplib $deplibs"
55366292 continue
55376293 ;;
5538 *.la) lib="$deplib" ;;
6294 *.la)
6295 func_resolve_sysroot "$deplib"
6296 lib=$func_resolve_sysroot_result
6297 ;;
55396298 *.$libext)
55406299 if test "$pass" = conv; then
55416300 deplibs="$deplib $deplibs"
55986357 if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
55996358 # If there is no dlopen support or we're linking statically,
56006359 # we need to preload.
5601 newdlprefiles="$newdlprefiles $deplib"
6360 func_append newdlprefiles " $deplib"
56026361 compile_deplibs="$deplib $compile_deplibs"
56036362 finalize_deplibs="$deplib $finalize_deplibs"
56046363 else
5605 newdlfiles="$newdlfiles $deplib"
6364 func_append newdlfiles " $deplib"
56066365 fi
56076366 fi
56086367 continue
56486407 for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
56496408 case " $new_inherited_linker_flags " in
56506409 *" $tmp_inherited_linker_flag "*) ;;
5651 *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
6410 *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
56526411 esac
56536412 done
56546413 fi
56566415 if test "$linkmode,$pass" = "lib,link" ||
56576416 test "$linkmode,$pass" = "prog,scan" ||
56586417 { test "$linkmode" != prog && test "$linkmode" != lib; }; then
5659 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
5660 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
6418 test -n "$dlopen" && func_append dlfiles " $dlopen"
6419 test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
56616420 fi
56626421
56636422 if test "$pass" = conv; then
56686427 func_fatal_error "cannot find name of link library for \`$lib'"
56696428 fi
56706429 # It is a libtool convenience library, so add in its objects.
5671 convenience="$convenience $ladir/$objdir/$old_library"
5672 old_convenience="$old_convenience $ladir/$objdir/$old_library"
6430 func_append convenience " $ladir/$objdir/$old_library"
6431 func_append old_convenience " $ladir/$objdir/$old_library"
56736432 elif test "$linkmode" != prog && test "$linkmode" != lib; then
56746433 func_fatal_error "\`$lib' is not a convenience library"
56756434 fi
56766435 tmp_libs=
56776436 for deplib in $dependency_libs; do
56786437 deplibs="$deplib $deplibs"
5679 if $opt_duplicate_deps ; then
6438 if $opt_preserve_dup_deps ; then
56806439 case "$tmp_libs " in
5681 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6440 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
56826441 esac
56836442 fi
5684 tmp_libs="$tmp_libs $deplib"
6443 func_append tmp_libs " $deplib"
56856444 done
56866445 continue
56876446 fi # $pass = conv
56896448
56906449 # Get the name of the library we link against.
56916450 linklib=
5692 for l in $old_library $library_names; do
5693 linklib="$l"
5694 done
6451 if test -n "$old_library" &&
6452 { test "$prefer_static_libs" = yes ||
6453 test "$prefer_static_libs,$installed" = "built,no"; }; then
6454 linklib=$old_library
6455 else
6456 for l in $old_library $library_names; do
6457 linklib="$l"
6458 done
6459 fi
56956460 if test -z "$linklib"; then
56966461 func_fatal_error "cannot find name of link library for \`$lib'"
56976462 fi
57086473 # statically, we need to preload. We also need to preload any
57096474 # dependent libraries so libltdl's deplib preloader doesn't
57106475 # bomb out in the load deplibs phase.
5711 dlprefiles="$dlprefiles $lib $dependency_libs"
6476 func_append dlprefiles " $lib $dependency_libs"
57126477 else
5713 newdlfiles="$newdlfiles $lib"
6478 func_append newdlfiles " $lib"
57146479 fi
57156480 continue
57166481 fi # $pass = dlopen
57326497
57336498 # Find the relevant object directory and library name.
57346499 if test "X$installed" = Xyes; then
5735 if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
6500 if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
57366501 func_warning "library \`$lib' was moved."
57376502 dir="$ladir"
57386503 absdir="$abs_ladir"
57396504 libdir="$abs_ladir"
57406505 else
5741 dir="$libdir"
5742 absdir="$libdir"
6506 dir="$lt_sysroot$libdir"
6507 absdir="$lt_sysroot$libdir"
57436508 fi
57446509 test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
57456510 else
57476512 dir="$ladir"
57486513 absdir="$abs_ladir"
57496514 # Remove this search path later
5750 notinst_path="$notinst_path $abs_ladir"
6515 func_append notinst_path " $abs_ladir"
57516516 else
57526517 dir="$ladir/$objdir"
57536518 absdir="$abs_ladir/$objdir"
57546519 # Remove this search path later
5755 notinst_path="$notinst_path $abs_ladir"
6520 func_append notinst_path " $abs_ladir"
57566521 fi
57576522 fi # $installed = yes
57586523 func_stripname 'lib' '.la' "$laname"
57636528 if test -z "$libdir" && test "$linkmode" = prog; then
57646529 func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
57656530 fi
5766 # Prefer using a static library (so that no silly _DYNAMIC symbols
5767 # are required to link).
5768 if test -n "$old_library"; then
5769 newdlprefiles="$newdlprefiles $dir/$old_library"
5770 # Keep a list of preopened convenience libraries to check
5771 # that they are being used correctly in the link pass.
5772 test -z "$libdir" && \
5773 dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
5774 # Otherwise, use the dlname, so that lt_dlopen finds it.
5775 elif test -n "$dlname"; then
5776 newdlprefiles="$newdlprefiles $dir/$dlname"
5777 else
5778 newdlprefiles="$newdlprefiles $dir/$linklib"
5779 fi
6531 case "$host" in
6532 # special handling for platforms with PE-DLLs.
6533 *cygwin* | *mingw* | *cegcc* )
6534 # Linker will automatically link against shared library if both
6535 # static and shared are present. Therefore, ensure we extract
6536 # symbols from the import library if a shared library is present
6537 # (otherwise, the dlopen module name will be incorrect). We do
6538 # this by putting the import library name into $newdlprefiles.
6539 # We recover the dlopen module name by 'saving' the la file
6540 # name in a special purpose variable, and (later) extracting the
6541 # dlname from the la file.
6542 if test -n "$dlname"; then
6543 func_tr_sh "$dir/$linklib"
6544 eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
6545 func_append newdlprefiles " $dir/$linklib"
6546 else
6547 func_append newdlprefiles " $dir/$old_library"
6548 # Keep a list of preopened convenience libraries to check
6549 # that they are being used correctly in the link pass.
6550 test -z "$libdir" && \
6551 func_append dlpreconveniencelibs " $dir/$old_library"
6552 fi
6553 ;;
6554 * )
6555 # Prefer using a static library (so that no silly _DYNAMIC symbols
6556 # are required to link).
6557 if test -n "$old_library"; then
6558 func_append newdlprefiles " $dir/$old_library"
6559 # Keep a list of preopened convenience libraries to check
6560 # that they are being used correctly in the link pass.
6561 test -z "$libdir" && \
6562 func_append dlpreconveniencelibs " $dir/$old_library"
6563 # Otherwise, use the dlname, so that lt_dlopen finds it.
6564 elif test -n "$dlname"; then
6565 func_append newdlprefiles " $dir/$dlname"
6566 else
6567 func_append newdlprefiles " $dir/$linklib"
6568 fi
6569 ;;
6570 esac
57806571 fi # $pass = dlpreopen
57816572
57826573 if test -z "$libdir"; then
57946585
57956586
57966587 if test "$linkmode" = prog && test "$pass" != link; then
5797 newlib_search_path="$newlib_search_path $ladir"
6588 func_append newlib_search_path " $ladir"
57986589 deplibs="$lib $deplibs"
57996590
58006591 linkalldeplibs=no
58076598 for deplib in $dependency_libs; do
58086599 case $deplib in
58096600 -L*) func_stripname '-L' '' "$deplib"
5810 newlib_search_path="$newlib_search_path $func_stripname_result"
6601 func_resolve_sysroot "$func_stripname_result"
6602 func_append newlib_search_path " $func_resolve_sysroot_result"
58116603 ;;
58126604 esac
58136605 # Need to link against all dependency_libs?
58186610 # or/and link against static libraries
58196611 newdependency_libs="$deplib $newdependency_libs"
58206612 fi
5821 if $opt_duplicate_deps ; then
6613 if $opt_preserve_dup_deps ; then
58226614 case "$tmp_libs " in
5823 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
6615 *" $deplib "*) func_append specialdeplibs " $deplib" ;;
58246616 esac
58256617 fi
5826 tmp_libs="$tmp_libs $deplib"
6618 func_append tmp_libs " $deplib"
58276619 done # for deplib
58286620 continue
58296621 fi # $linkmode = prog...
58386630 # Make sure the rpath contains only unique directories.
58396631 case "$temp_rpath:" in
58406632 *"$absdir:"*) ;;
5841 *) temp_rpath="$temp_rpath$absdir:" ;;
6633 *) func_append temp_rpath "$absdir:" ;;
58426634 esac
58436635 fi
58446636
58506642 *)
58516643 case "$compile_rpath " in
58526644 *" $absdir "*) ;;
5853 *) compile_rpath="$compile_rpath $absdir"
6645 *) func_append compile_rpath " $absdir" ;;
58546646 esac
58556647 ;;
58566648 esac
58596651 *)
58606652 case "$finalize_rpath " in
58616653 *" $libdir "*) ;;
5862 *) finalize_rpath="$finalize_rpath $libdir"
6654 *) func_append finalize_rpath " $libdir" ;;
58636655 esac
58646656 ;;
58656657 esac
58846676 case $host in
58856677 *cygwin* | *mingw* | *cegcc*)
58866678 # No point in relinking DLLs because paths are not encoded
5887 notinst_deplibs="$notinst_deplibs $lib"
6679 func_append notinst_deplibs " $lib"
58886680 need_relink=no
58896681 ;;
58906682 *)
58916683 if test "$installed" = no; then
5892 notinst_deplibs="$notinst_deplibs $lib"
6684 func_append notinst_deplibs " $lib"
58936685 need_relink=yes
58946686 fi
58956687 ;;
59246716 *)
59256717 case "$compile_rpath " in
59266718 *" $absdir "*) ;;
5927 *) compile_rpath="$compile_rpath $absdir"
6719 *) func_append compile_rpath " $absdir" ;;
59286720 esac
59296721 ;;
59306722 esac
59336725 *)
59346726 case "$finalize_rpath " in
59356727 *" $libdir "*) ;;
5936 *) finalize_rpath="$finalize_rpath $libdir"
6728 *) func_append finalize_rpath " $libdir" ;;
59376729 esac
59386730 ;;
59396731 esac
59876779 linklib=$newlib
59886780 fi # test -n "$old_archive_from_expsyms_cmds"
59896781
5990 if test "$linkmode" = prog || test "$mode" != relink; then
6782 if test "$linkmode" = prog || test "$opt_mode" != relink; then
59916783 add_shlibpath=
59926784 add_dir=
59936785 add=
60436835 if test -n "$inst_prefix_dir"; then
60446836 case $libdir in
60456837 [\\/]*)
6046 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6838 func_append add_dir " -L$inst_prefix_dir$libdir"
60476839 ;;
60486840 esac
60496841 fi
60656857 if test -n "$add_shlibpath"; then
60666858 case :$compile_shlibpath: in
60676859 *":$add_shlibpath:"*) ;;
6068 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
6860 *) func_append compile_shlibpath "$add_shlibpath:" ;;
60696861 esac
60706862 fi
60716863 if test "$linkmode" = prog; then
60796871 test "$hardcode_shlibpath_var" = yes; then
60806872 case :$finalize_shlibpath: in
60816873 *":$libdir:"*) ;;
6082 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6874 *) func_append finalize_shlibpath "$libdir:" ;;
60836875 esac
60846876 fi
60856877 fi
60866878 fi
60876879
6088 if test "$linkmode" = prog || test "$mode" = relink; then
6880 if test "$linkmode" = prog || test "$opt_mode" = relink; then
60896881 add_shlibpath=
60906882 add_dir=
60916883 add=
60996891 elif test "$hardcode_shlibpath_var" = yes; then
61006892 case :$finalize_shlibpath: in
61016893 *":$libdir:"*) ;;
6102 *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
6894 *) func_append finalize_shlibpath "$libdir:" ;;
61036895 esac
61046896 add="-l$name"
61056897 elif test "$hardcode_automatic" = yes; then
61166908 if test -n "$inst_prefix_dir"; then
61176909 case $libdir in
61186910 [\\/]*)
6119 add_dir="$add_dir -L$inst_prefix_dir$libdir"
6911 func_append add_dir " -L$inst_prefix_dir$libdir"
61206912 ;;
61216913 esac
61226914 fi
61936985 temp_xrpath=$func_stripname_result
61946986 case " $xrpath " in
61956987 *" $temp_xrpath "*) ;;
6196 *) xrpath="$xrpath $temp_xrpath";;
6988 *) func_append xrpath " $temp_xrpath";;
61976989 esac;;
6198 *) temp_deplibs="$temp_deplibs $libdir";;
6990 *) func_append temp_deplibs " $libdir";;
61996991 esac
62006992 done
62016993 dependency_libs="$temp_deplibs"
62026994 fi
62036995
6204 newlib_search_path="$newlib_search_path $absdir"
6996 func_append newlib_search_path " $absdir"
62056997 # Link against this library
62066998 test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
62076999 # ... and its dependency_libs
62087000 tmp_libs=
62097001 for deplib in $dependency_libs; do
62107002 newdependency_libs="$deplib $newdependency_libs"
6211 if $opt_duplicate_deps ; then
7003 case $deplib in
7004 -L*) func_stripname '-L' '' "$deplib"
7005 func_resolve_sysroot "$func_stripname_result";;
7006 *) func_resolve_sysroot "$deplib" ;;
7007 esac
7008 if $opt_preserve_dup_deps ; then
62127009 case "$tmp_libs " in
6213 *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
7010 *" $func_resolve_sysroot_result "*)
7011 func_append specialdeplibs " $func_resolve_sysroot_result" ;;
62147012 esac
62157013 fi
6216 tmp_libs="$tmp_libs $deplib"
7014 func_append tmp_libs " $func_resolve_sysroot_result"
62177015 done
62187016
62197017 if test "$link_all_deplibs" != no; then
62237021 case $deplib in
62247022 -L*) path="$deplib" ;;
62257023 *.la)
7024 func_resolve_sysroot "$deplib"
7025 deplib=$func_resolve_sysroot_result
62267026 func_dirname "$deplib" "" "."
6227 dir="$func_dirname_result"
7027 dir=$func_dirname_result
62287028 # We need an absolute path.
62297029 case $dir in
62307030 [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
62517051 if test -z "$darwin_install_name"; then
62527052 darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
62537053 fi
6254 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
6255 linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
7054 func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
7055 func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
62567056 path=
62577057 fi
62587058 fi
63027102 for dir in $newlib_search_path; do
63037103 case "$lib_search_path " in
63047104 *" $dir "*) ;;
6305 *) lib_search_path="$lib_search_path $dir" ;;
7105 *) func_append lib_search_path " $dir" ;;
63067106 esac
63077107 done
63087108 newlib_search_path=
63607160 -L*)
63617161 case " $tmp_libs " in
63627162 *" $deplib "*) ;;
6363 *) tmp_libs="$tmp_libs $deplib" ;;
7163 *) func_append tmp_libs " $deplib" ;;
63647164 esac
63657165 ;;
6366 *) tmp_libs="$tmp_libs $deplib" ;;
7166 *) func_append tmp_libs " $deplib" ;;
63677167 esac
63687168 done
63697169 eval $var=\"$tmp_libs\"
63797179 ;;
63807180 esac
63817181 if test -n "$i" ; then
6382 tmp_libs="$tmp_libs $i"
7182 func_append tmp_libs " $i"
63837183 fi
63847184 done
63857185 dependency_libs=$tmp_libs
64207220 # Now set the variables for building old libraries.
64217221 build_libtool_libs=no
64227222 oldlibs="$output"
6423 objs="$objs$old_deplibs"
7223 func_append objs "$old_deplibs"
64247224 ;;
64257225
64267226 lib)
64567256 echo
64577257 $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
64587258 $ECHO "*** objects $objs is not portable!"
6459 libobjs="$libobjs $objs"
7259 func_append libobjs " $objs"
64607260 fi
64617261 fi
64627262
66547454 done
66557455
66567456 # Make executables depend on our current version.
6657 verstring="$verstring:${current}.0"
7457 func_append verstring ":${current}.0"
66587458 ;;
66597459
66607460 qnx)
67227522 fi
67237523
67247524 func_generate_dlsyms "$libname" "$libname" "yes"
6725 libobjs="$libobjs $symfileobj"
7525 func_append libobjs " $symfileobj"
67267526 test "X$libobjs" = "X " && libobjs=
67277527
6728 if test "$mode" != relink; then
7528 if test "$opt_mode" != relink; then
67297529 # Remove our outputs, but don't remove object files since they
67307530 # may have been created when compiling PIC objects.
67317531 removelist=
67417541 continue
67427542 fi
67437543 fi
6744 removelist="$removelist $p"
7544 func_append removelist " $p"
67457545 ;;
67467546 *) ;;
67477547 esac
67527552
67537553 # Now set the variables for building old libraries.
67547554 if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
6755 oldlibs="$oldlibs $output_objdir/$libname.$libext"
7555 func_append oldlibs " $output_objdir/$libname.$libext"
67567556
67577557 # Transform .lo files to .o files.
67587558 oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
67697569 # If the user specified any rpath flags, then add them.
67707570 temp_xrpath=
67717571 for libdir in $xrpath; do
6772 temp_xrpath="$temp_xrpath -R$libdir"
7572 func_replace_sysroot "$libdir"
7573 func_append temp_xrpath " -R$func_replace_sysroot_result"
67737574 case "$finalize_rpath " in
67747575 *" $libdir "*) ;;
6775 *) finalize_rpath="$finalize_rpath $libdir" ;;
7576 *) func_append finalize_rpath " $libdir" ;;
67767577 esac
67777578 done
67787579 if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
67867587 for lib in $old_dlfiles; do
67877588 case " $dlprefiles $dlfiles " in
67887589 *" $lib "*) ;;
6789 *) dlfiles="$dlfiles $lib" ;;
7590 *) func_append dlfiles " $lib" ;;
67907591 esac
67917592 done
67927593
67967597 for lib in $old_dlprefiles; do
67977598 case "$dlprefiles " in
67987599 *" $lib "*) ;;
6799 *) dlprefiles="$dlprefiles $lib" ;;
7600 *) func_append dlprefiles " $lib" ;;
68007601 esac
68017602 done
68027603
68087609 ;;
68097610 *-*-rhapsody* | *-*-darwin1.[012])
68107611 # Rhapsody C library is in the System framework
6811 deplibs="$deplibs System.ltframework"
7612 func_append deplibs " System.ltframework"
68127613 ;;
68137614 *-*-netbsd*)
68147615 # Don't link with libc until the a.out ld.so is fixed.
68257626 *)
68267627 # Add libc to deplibs on all other systems if necessary.
68277628 if test "$build_libtool_need_lc" = "yes"; then
6828 deplibs="$deplibs -lc"
7629 func_append deplibs " -lc"
68297630 fi
68307631 ;;
68317632 esac
68747675 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
68757676 case " $predeps $postdeps " in
68767677 *" $i "*)
6877 newdeplibs="$newdeplibs $i"
7678 func_append newdeplibs " $i"
68787679 i=""
68797680 ;;
68807681 esac
68857686 set dummy $deplib_matches; shift
68867687 deplib_match=$1
68877688 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6888 newdeplibs="$newdeplibs $i"
7689 func_append newdeplibs " $i"
68897690 else
68907691 droppeddeps=yes
68917692 echo
68997700 fi
69007701 ;;
69017702 *)
6902 newdeplibs="$newdeplibs $i"
7703 func_append newdeplibs " $i"
69037704 ;;
69047705 esac
69057706 done
69177718 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
69187719 case " $predeps $postdeps " in
69197720 *" $i "*)
6920 newdeplibs="$newdeplibs $i"
7721 func_append newdeplibs " $i"
69217722 i=""
69227723 ;;
69237724 esac
69287729 set dummy $deplib_matches; shift
69297730 deplib_match=$1
69307731 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
6931 newdeplibs="$newdeplibs $i"
7732 func_append newdeplibs " $i"
69327733 else
69337734 droppeddeps=yes
69347735 echo
69507751 fi
69517752 ;;
69527753 *)
6953 newdeplibs="$newdeplibs $i"
7754 func_append newdeplibs " $i"
69547755 ;;
69557756 esac
69567757 done
69677768 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
69687769 case " $predeps $postdeps " in
69697770 *" $a_deplib "*)
6970 newdeplibs="$newdeplibs $a_deplib"
7771 func_append newdeplibs " $a_deplib"
69717772 a_deplib=""
69727773 ;;
69737774 esac
69747775 fi
69757776 if test -n "$a_deplib" ; then
69767777 libname=`eval "\\$ECHO \"$libname_spec\""`
7778 if test -n "$file_magic_glob"; then
7779 libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
7780 else
7781 libnameglob=$libname
7782 fi
7783 test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
69777784 for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
6978 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
7785 if test "$want_nocaseglob" = yes; then
7786 shopt -s nocaseglob
7787 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7788 $nocaseglob
7789 else
7790 potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
7791 fi
69797792 for potent_lib in $potential_libs; do
69807793 # Follow soft links.
69817794 if ls -lLd "$potent_lib" 2>/dev/null |
69987811 if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
69997812 $SED -e 10q |
70007813 $EGREP "$file_magic_regex" > /dev/null; then
7001 newdeplibs="$newdeplibs $a_deplib"
7814 func_append newdeplibs " $a_deplib"
70027815 a_deplib=""
70037816 break 2
70047817 fi
70237836 ;;
70247837 *)
70257838 # Add a -L argument.
7026 newdeplibs="$newdeplibs $a_deplib"
7839 func_append newdeplibs " $a_deplib"
70277840 ;;
70287841 esac
70297842 done # Gone through all deplibs.
70397852 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
70407853 case " $predeps $postdeps " in
70417854 *" $a_deplib "*)
7042 newdeplibs="$newdeplibs $a_deplib"
7855 func_append newdeplibs " $a_deplib"
70437856 a_deplib=""
70447857 ;;
70457858 esac
70527865 potlib="$potent_lib" # see symlink-check above in file_magic test
70537866 if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
70547867 $EGREP "$match_pattern_regex" > /dev/null; then
7055 newdeplibs="$newdeplibs $a_deplib"
7868 func_append newdeplibs " $a_deplib"
70567869 a_deplib=""
70577870 break 2
70587871 fi
70777890 ;;
70787891 *)
70797892 # Add a -L argument.
7080 newdeplibs="$newdeplibs $a_deplib"
7893 func_append newdeplibs " $a_deplib"
70817894 ;;
70827895 esac
70837896 done # Gone through all deplibs.
71817994 *)
71827995 case " $deplibs " in
71837996 *" -L$path/$objdir "*)
7184 new_libs="$new_libs -L$path/$objdir" ;;
7997 func_append new_libs " -L$path/$objdir" ;;
71857998 esac
71867999 ;;
71878000 esac
71918004 -L*)
71928005 case " $new_libs " in
71938006 *" $deplib "*) ;;
7194 *) new_libs="$new_libs $deplib" ;;
8007 *) func_append new_libs " $deplib" ;;
71958008 esac
71968009 ;;
7197 *) new_libs="$new_libs $deplib" ;;
8010 *) func_append new_libs " $deplib" ;;
71988011 esac
71998012 done
72008013 deplibs="$new_libs"
72118024 hardcode_libdirs=
72128025 dep_rpath=
72138026 rpath="$finalize_rpath"
7214 test "$mode" != relink && rpath="$compile_rpath$rpath"
8027 test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
72158028 for libdir in $rpath; do
72168029 if test -n "$hardcode_libdir_flag_spec"; then
72178030 if test -n "$hardcode_libdir_separator"; then
8031 func_replace_sysroot "$libdir"
8032 libdir=$func_replace_sysroot_result
72188033 if test -z "$hardcode_libdirs"; then
72198034 hardcode_libdirs="$libdir"
72208035 else
72238038 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
72248039 ;;
72258040 *)
7226 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8041 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
72278042 ;;
72288043 esac
72298044 fi
72308045 else
72318046 eval flag=\"$hardcode_libdir_flag_spec\"
7232 dep_rpath="$dep_rpath $flag"
8047 func_append dep_rpath " $flag"
72338048 fi
72348049 elif test -n "$runpath_var"; then
72358050 case "$perm_rpath " in
72368051 *" $libdir "*) ;;
7237 *) perm_rpath="$perm_rpath $libdir" ;;
8052 *) func_apped perm_rpath " $libdir" ;;
72388053 esac
72398054 fi
72408055 done
72528067 # We should set the runpath_var.
72538068 rpath=
72548069 for dir in $perm_rpath; do
7255 rpath="$rpath$dir:"
8070 func_append rpath "$dir:"
72568071 done
72578072 eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
72588073 fi
72608075 fi
72618076
72628077 shlibpath="$finalize_shlibpath"
7263 test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
8078 test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
72648079 if test -n "$shlibpath"; then
72658080 eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
72668081 fi
72868101 linknames=
72878102 for link
72888103 do
7289 linknames="$linknames $link"
8104 func_append linknames " $link"
72908105 done
72918106
72928107 # Use standard objects if they are pic
72978112 if test -n "$export_symbols" && test -n "$include_expsyms"; then
72988113 $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
72998114 export_symbols="$output_objdir/$libname.uexp"
7300 delfiles="$delfiles $export_symbols"
8115 func_append delfiles " $export_symbols"
73018116 fi
73028117
73038118 orig_export_symbols=
73288143 $opt_dry_run || $RM $export_symbols
73298144 cmds=$export_symbols_cmds
73308145 save_ifs="$IFS"; IFS='~'
7331 for cmd in $cmds; do
8146 for cmd1 in $cmds; do
73328147 IFS="$save_ifs"
7333 eval cmd=\"$cmd\"
7334 func_len " $cmd"
7335 len=$func_len_result
7336 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
8148 # Take the normal branch if the nm_file_list_spec branch
8149 # doesn't work or if tool conversion is not needed.
8150 case $nm_file_list_spec~$to_tool_file_cmd in
8151 *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
8152 try_normal_branch=yes
8153 eval cmd=\"$cmd1\"
8154 func_len " $cmd"
8155 len=$func_len_result
8156 ;;
8157 *)
8158 try_normal_branch=no
8159 ;;
8160 esac
8161 if test "$try_normal_branch" = yes \
8162 && { test "$len" -lt "$max_cmd_len" \
8163 || test "$max_cmd_len" -le -1; }
8164 then
73378165 func_show_eval "$cmd" 'exit $?'
8166 skipped_export=false
8167 elif test -n "$nm_file_list_spec"; then
8168 func_basename "$output"
8169 output_la=$func_basename_result
8170 save_libobjs=$libobjs
8171 save_output=$output
8172 output=${output_objdir}/${output_la}.nm
8173 func_to_tool_file "$output"
8174 libobjs=$nm_file_list_spec$func_to_tool_file_result
8175 func_append delfiles " $output"
8176 func_verbose "creating $NM input file list: $output"
8177 for obj in $save_libobjs; do
8178 func_to_tool_file "$obj"
8179 $ECHO "$func_to_tool_file_result"
8180 done > "$output"
8181 eval cmd=\"$cmd1\"
8182 func_show_eval "$cmd" 'exit $?'
8183 output=$save_output
8184 libobjs=$save_libobjs
73388185 skipped_export=false
73398186 else
73408187 # The command line is too long to execute in one step.
73688215 # global variables. join(1) would be nice here, but unfortunately
73698216 # isn't a blessed tool.
73708217 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7371 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8218 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
73728219 export_symbols=$output_objdir/$libname.def
73738220 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
73748221 fi
73788225 case " $convenience " in
73798226 *" $test_deplib "*) ;;
73808227 *)
7381 tmp_deplibs="$tmp_deplibs $test_deplib"
8228 func_append tmp_deplibs " $test_deplib"
73828229 ;;
73838230 esac
73848231 done
73988245 test "X$libobjs" = "X " && libobjs=
73998246 else
74008247 gentop="$output_objdir/${outputname}x"
7401 generated="$generated $gentop"
8248 func_append generated " $gentop"
74028249
74038250 func_extract_archives $gentop $convenience
7404 libobjs="$libobjs $func_extract_archives_result"
8251 func_append libobjs " $func_extract_archives_result"
74058252 test "X$libobjs" = "X " && libobjs=
74068253 fi
74078254 fi
74088255
74098256 if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
74108257 eval flag=\"$thread_safe_flag_spec\"
7411 linker_flags="$linker_flags $flag"
8258 func_append linker_flags " $flag"
74128259 fi
74138260
74148261 # Make a backup of the uninstalled library when relinking
7415 if test "$mode" = relink; then
8262 if test "$opt_mode" = relink; then
74168263 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
74178264 fi
74188265
74748321 echo 'INPUT (' > $output
74758322 for obj in $save_libobjs
74768323 do
7477 $ECHO "$obj" >> $output
8324 func_to_tool_file "$obj"
8325 $ECHO "$func_to_tool_file_result" >> $output
74788326 done
74798327 echo ')' >> $output
7480 delfiles="$delfiles $output"
8328 func_append delfiles " $output"
8329 func_to_tool_file "$output"
8330 output=$func_to_tool_file_result
74818331 elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
74828332 output=${output_objdir}/${output_la}.lnk
74838333 func_verbose "creating linker input file list: $output"
74918341 fi
74928342 for obj
74938343 do
7494 $ECHO "$obj" >> $output
8344 func_to_tool_file "$obj"
8345 $ECHO "$func_to_tool_file_result" >> $output
74958346 done
7496 delfiles="$delfiles $output"
7497 output=$firstobj\"$file_list_spec$output\"
8347 func_append delfiles " $output"
8348 func_to_tool_file "$output"
8349 output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
74988350 else
74998351 if test -n "$save_libobjs"; then
75008352 func_verbose "creating reloadable object files..."
75458397 if test -n "$last_robj"; then
75468398 eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
75478399 fi
7548 delfiles="$delfiles $output"
8400 func_append delfiles " $output"
75498401
75508402 else
75518403 output=
75798431 lt_exit=$?
75808432
75818433 # Restore the uninstalled library and exit
7582 if test "$mode" = relink; then
8434 if test "$opt_mode" = relink; then
75838435 ( cd "$output_objdir" && \
75848436 $RM "${realname}T" && \
75858437 $MV "${realname}U" "$realname" )
76128464 # global variables. join(1) would be nice here, but unfortunately
76138465 # isn't a blessed tool.
76148466 $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
7615 delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
8467 func_append delfiles " $export_symbols $output_objdir/$libname.filter"
76168468 export_symbols=$output_objdir/$libname.def
76178469 $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
76188470 fi
76538505 # Add any objects from preloaded convenience libraries
76548506 if test -n "$dlprefiles"; then
76558507 gentop="$output_objdir/${outputname}x"
7656 generated="$generated $gentop"
8508 func_append generated " $gentop"
76578509
76588510 func_extract_archives $gentop $dlprefiles
7659 libobjs="$libobjs $func_extract_archives_result"
8511 func_append libobjs " $func_extract_archives_result"
76608512 test "X$libobjs" = "X " && libobjs=
76618513 fi
76628514
76728524 lt_exit=$?
76738525
76748526 # Restore the uninstalled library and exit
7675 if test "$mode" = relink; then
8527 if test "$opt_mode" = relink; then
76768528 ( cd "$output_objdir" && \
76778529 $RM "${realname}T" && \
76788530 $MV "${realname}U" "$realname" )
76848536 IFS="$save_ifs"
76858537
76868538 # Restore the uninstalled library and exit
7687 if test "$mode" = relink; then
8539 if test "$opt_mode" = relink; then
76888540 $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
76898541
76908542 if test -n "$convenience"; then
77688620 reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
77698621 else
77708622 gentop="$output_objdir/${obj}x"
7771 generated="$generated $gentop"
8623 func_append generated " $gentop"
77728624
77738625 func_extract_archives $gentop $convenience
77748626 reload_conv_objs="$reload_objs $func_extract_archives_result"
77758627 fi
77768628 fi
8629
8630 # If we're not building shared, we need to use non_pic_objs
8631 test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
77778632
77788633 # Create the old-style object.
77798634 reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
78488703 if test "$tagname" = CXX ; then
78498704 case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
78508705 10.[0123])
7851 compile_command="$compile_command ${wl}-bind_at_load"
7852 finalize_command="$finalize_command ${wl}-bind_at_load"
8706 func_append compile_command " ${wl}-bind_at_load"
8707 func_append finalize_command " ${wl}-bind_at_load"
78538708 ;;
78548709 esac
78558710 fi
78698724 *)
78708725 case " $compile_deplibs " in
78718726 *" -L$path/$objdir "*)
7872 new_libs="$new_libs -L$path/$objdir" ;;
8727 func_append new_libs " -L$path/$objdir" ;;
78738728 esac
78748729 ;;
78758730 esac
78798734 -L*)
78808735 case " $new_libs " in
78818736 *" $deplib "*) ;;
7882 *) new_libs="$new_libs $deplib" ;;
8737 *) func_append new_libs " $deplib" ;;
78838738 esac
78848739 ;;
7885 *) new_libs="$new_libs $deplib" ;;
8740 *) func_append new_libs " $deplib" ;;
78868741 esac
78878742 done
78888743 compile_deplibs="$new_libs"
78898744
78908745
7891 compile_command="$compile_command $compile_deplibs"
7892 finalize_command="$finalize_command $finalize_deplibs"
8746 func_append compile_command " $compile_deplibs"
8747 func_append finalize_command " $finalize_deplibs"
78938748
78948749 if test -n "$rpath$xrpath"; then
78958750 # If the user specified any rpath flags, then add them.
78978752 # This is the magic to use -rpath.
78988753 case "$finalize_rpath " in
78998754 *" $libdir "*) ;;
7900 *) finalize_rpath="$finalize_rpath $libdir" ;;
8755 *) func_append finalize_rpath " $libdir" ;;
79018756 esac
79028757 done
79038758 fi
79168771 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
79178772 ;;
79188773 *)
7919 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8774 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
79208775 ;;
79218776 esac
79228777 fi
79238778 else
79248779 eval flag=\"$hardcode_libdir_flag_spec\"
7925 rpath="$rpath $flag"
8780 func_append rpath " $flag"
79268781 fi
79278782 elif test -n "$runpath_var"; then
79288783 case "$perm_rpath " in
79298784 *" $libdir "*) ;;
7930 *) perm_rpath="$perm_rpath $libdir" ;;
8785 *) func_append perm_rpath " $libdir" ;;
79318786 esac
79328787 fi
79338788 case $host in
79368791 case :$dllsearchpath: in
79378792 *":$libdir:"*) ;;
79388793 ::) dllsearchpath=$libdir;;
7939 *) dllsearchpath="$dllsearchpath:$libdir";;
8794 *) func_append dllsearchpath ":$libdir";;
79408795 esac
79418796 case :$dllsearchpath: in
79428797 *":$testbindir:"*) ;;
79438798 ::) dllsearchpath=$testbindir;;
7944 *) dllsearchpath="$dllsearchpath:$testbindir";;
8799 *) func_append dllsearchpath ":$testbindir";;
79458800 esac
79468801 ;;
79478802 esac
79678822 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
79688823 ;;
79698824 *)
7970 hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
8825 func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
79718826 ;;
79728827 esac
79738828 fi
79748829 else
79758830 eval flag=\"$hardcode_libdir_flag_spec\"
7976 rpath="$rpath $flag"
8831 func_append rpath " $flag"
79778832 fi
79788833 elif test -n "$runpath_var"; then
79798834 case "$finalize_perm_rpath " in
79808835 *" $libdir "*) ;;
7981 *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
8836 *) func_append finalize_perm_rpath " $libdir" ;;
79828837 esac
79838838 fi
79848839 done
80298884 exit_status=0
80308885 func_show_eval "$link_command" 'exit_status=$?'
80318886
8887 if test -n "$postlink_cmds"; then
8888 func_to_tool_file "$output"
8889 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8890 func_execute_cmds "$postlink_cmds" 'exit $?'
8891 fi
8892
80328893 # Delete the generated files.
80338894 if test -f "$output_objdir/${outputname}S.${objext}"; then
80348895 func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
80518912 # We should set the runpath_var.
80528913 rpath=
80538914 for dir in $perm_rpath; do
8054 rpath="$rpath$dir:"
8915 func_append rpath "$dir:"
80558916 done
80568917 compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
80578918 fi
80598920 # We should set the runpath_var.
80608921 rpath=
80618922 for dir in $finalize_perm_rpath; do
8062 rpath="$rpath$dir:"
8923 func_append rpath "$dir:"
80638924 done
80648925 finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
80658926 fi
80748935 $opt_dry_run || $RM $output
80758936 # Link the executable and exit
80768937 func_show_eval "$link_command" 'exit $?'
8938
8939 if test -n "$postlink_cmds"; then
8940 func_to_tool_file "$output"
8941 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8942 func_execute_cmds "$postlink_cmds" 'exit $?'
8943 fi
8944
80778945 exit $EXIT_SUCCESS
80788946 fi
80798947
81068974 $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
81078975
81088976 func_show_eval "$link_command" 'exit $?'
8977
8978 if test -n "$postlink_cmds"; then
8979 func_to_tool_file "$output_objdir/$outputname"
8980 postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
8981 func_execute_cmds "$postlink_cmds" 'exit $?'
8982 fi
81098983
81108984 # Now create the wrapper script.
81118985 func_verbose "creating $output"
82049078 else
82059079 oldobjs="$old_deplibs $non_pic_objects"
82069080 if test "$preload" = yes && test -f "$symfileobj"; then
8207 oldobjs="$oldobjs $symfileobj"
9081 func_append oldobjs " $symfileobj"
82089082 fi
82099083 fi
82109084 addlibs="$old_convenience"
82129086
82139087 if test -n "$addlibs"; then
82149088 gentop="$output_objdir/${outputname}x"
8215 generated="$generated $gentop"
9089 func_append generated " $gentop"
82169090
82179091 func_extract_archives $gentop $addlibs
8218 oldobjs="$oldobjs $func_extract_archives_result"
9092 func_append oldobjs " $func_extract_archives_result"
82199093 fi
82209094
82219095 # Do each command in the archive commands.
82269100 # Add any objects from preloaded convenience libraries
82279101 if test -n "$dlprefiles"; then
82289102 gentop="$output_objdir/${outputname}x"
8229 generated="$generated $gentop"
9103 func_append generated " $gentop"
82309104
82319105 func_extract_archives $gentop $dlprefiles
8232 oldobjs="$oldobjs $func_extract_archives_result"
9106 func_append oldobjs " $func_extract_archives_result"
82339107 fi
82349108
82359109 # POSIX demands no paths to be encoded in archives. We have
82479121 else
82489122 echo "copying selected object files to avoid basename conflicts..."
82499123 gentop="$output_objdir/${outputname}x"
8250 generated="$generated $gentop"
9124 func_append generated " $gentop"
82519125 func_mkdir_p "$gentop"
82529126 save_oldobjs=$oldobjs
82539127 oldobjs=
82719145 esac
82729146 done
82739147 func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
8274 oldobjs="$oldobjs $gentop/$newobj"
9148 func_append oldobjs " $gentop/$newobj"
82759149 ;;
8276 *) oldobjs="$oldobjs $obj" ;;
9150 *) func_append oldobjs " $obj" ;;
82779151 esac
82789152 done
82799153 fi
82829156 func_len " $cmds"
82839157 len=$func_len_result
82849158 if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
9159 cmds=$old_archive_cmds
9160 elif test -n "$archiver_list_spec"; then
9161 func_verbose "using command file archive linking..."
9162 for obj in $oldobjs
9163 do
9164 func_to_tool_file "$obj"
9165 $ECHO "$func_to_tool_file_result"
9166 done > $output_objdir/$libname.libcmd
9167 func_to_tool_file "$output_objdir/$libname.libcmd"
9168 oldobjs=" $archiver_list_spec$func_to_tool_file_result"
82859169 cmds=$old_archive_cmds
82869170 else
82879171 # the command line is too long to link in one step, link in parts
83799263 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
83809264 test -z "$libdir" && \
83819265 func_fatal_error "\`$deplib' is not a valid libtool archive"
8382 newdependency_libs="$newdependency_libs $libdir/$name"
9266 func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
83839267 ;;
8384 *) newdependency_libs="$newdependency_libs $deplib" ;;
9268 -L*)
9269 func_stripname -L '' "$deplib"
9270 func_replace_sysroot "$func_stripname_result"
9271 func_append newdependency_libs " -L$func_replace_sysroot_result"
9272 ;;
9273 -R*)
9274 func_stripname -R '' "$deplib"
9275 func_replace_sysroot "$func_stripname_result"
9276 func_append newdependency_libs " -R$func_replace_sysroot_result"
9277 ;;
9278 *) func_append newdependency_libs " $deplib" ;;
83859279 esac
83869280 done
83879281 dependency_libs="$newdependency_libs"
83959289 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
83969290 test -z "$libdir" && \
83979291 func_fatal_error "\`$lib' is not a valid libtool archive"
8398 newdlfiles="$newdlfiles $libdir/$name"
9292 func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
83999293 ;;
8400 *) newdlfiles="$newdlfiles $lib" ;;
9294 *) func_append newdlfiles " $lib" ;;
84019295 esac
84029296 done
84039297 dlfiles="$newdlfiles"
84149308 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
84159309 test -z "$libdir" && \
84169310 func_fatal_error "\`$lib' is not a valid libtool archive"
8417 newdlprefiles="$newdlprefiles $libdir/$name"
9311 func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
84189312 ;;
84199313 esac
84209314 done
84269320 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
84279321 *) abs=`pwd`"/$lib" ;;
84289322 esac
8429 newdlfiles="$newdlfiles $abs"
9323 func_append newdlfiles " $abs"
84309324 done
84319325 dlfiles="$newdlfiles"
84329326 newdlprefiles=
84359329 [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
84369330 *) abs=`pwd`"/$lib" ;;
84379331 esac
8438 newdlprefiles="$newdlprefiles $abs"
9332 func_append newdlprefiles " $abs"
84399333 done
84409334 dlprefiles="$newdlprefiles"
84419335 fi
85209414 exit $EXIT_SUCCESS
85219415 }
85229416
8523 { test "$mode" = link || test "$mode" = relink; } &&
9417 { test "$opt_mode" = link || test "$opt_mode" = relink; } &&
85249418 func_mode_link ${1+"$@"}
85259419
85269420
85409434 for arg
85419435 do
85429436 case $arg in
8543 -f) RM="$RM $arg"; rmforce=yes ;;
8544 -*) RM="$RM $arg" ;;
8545 *) files="$files $arg" ;;
9437 -f) func_append RM " $arg"; rmforce=yes ;;
9438 -*) func_append RM " $arg" ;;
9439 *) func_append files " $arg" ;;
85469440 esac
85479441 done
85489442
85519445
85529446 rmdirs=
85539447
8554 origobjdir="$objdir"
85559448 for file in $files; do
85569449 func_dirname "$file" "" "."
85579450 dir="$func_dirname_result"
85589451 if test "X$dir" = X.; then
8559 objdir="$origobjdir"
9452 odir="$objdir"
85609453 else
8561 objdir="$dir/$origobjdir"
9454 odir="$dir/$objdir"
85629455 fi
85639456 func_basename "$file"
85649457 name="$func_basename_result"
8565 test "$mode" = uninstall && objdir="$dir"
8566
8567 # Remember objdir for removal later, being careful to avoid duplicates
8568 if test "$mode" = clean; then
9458 test "$opt_mode" = uninstall && odir="$dir"
9459
9460 # Remember odir for removal later, being careful to avoid duplicates
9461 if test "$opt_mode" = clean; then
85699462 case " $rmdirs " in
8570 *" $objdir "*) ;;
8571 *) rmdirs="$rmdirs $objdir" ;;
9463 *" $odir "*) ;;
9464 *) func_append rmdirs " $odir" ;;
85729465 esac
85739466 fi
85749467
85949487
85959488 # Delete the libtool libraries and symlinks.
85969489 for n in $library_names; do
8597 rmfiles="$rmfiles $objdir/$n"
9490 func_append rmfiles " $odir/$n"
85989491 done
8599 test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8600
8601 case "$mode" in
9492 test -n "$old_library" && func_append rmfiles " $odir/$old_library"
9493
9494 case "$opt_mode" in
86029495 clean)
8603 case " $library_names " in
8604 # " " in the beginning catches empty $dlname
9496 case " $library_names " in
86059497 *" $dlname "*) ;;
8606 *) rmfiles="$rmfiles $objdir/$dlname" ;;
9498 *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
86079499 esac
8608 test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
9500 test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
86099501 ;;
86109502 uninstall)
86119503 if test -n "$library_names"; then
86339525 # Add PIC object to the list of files to remove.
86349526 if test -n "$pic_object" &&
86359527 test "$pic_object" != none; then
8636 rmfiles="$rmfiles $dir/$pic_object"
9528 func_append rmfiles " $dir/$pic_object"
86379529 fi
86389530
86399531 # Add non-PIC object to the list of files to remove.
86409532 if test -n "$non_pic_object" &&
86419533 test "$non_pic_object" != none; then
8642 rmfiles="$rmfiles $dir/$non_pic_object"
9534 func_append rmfiles " $dir/$non_pic_object"
86439535 fi
86449536 fi
86459537 ;;
86469538
86479539 *)
8648 if test "$mode" = clean ; then
9540 if test "$opt_mode" = clean ; then
86499541 noexename=$name
86509542 case $file in
86519543 *.exe)
86559547 noexename=$func_stripname_result
86569548 # $file with .exe has already been added to rmfiles,
86579549 # add $file without .exe
8658 rmfiles="$rmfiles $file"
9550 func_append rmfiles " $file"
86599551 ;;
86609552 esac
86619553 # Do a test to see if this is a libtool program.
86649556 func_ltwrapper_scriptname "$file"
86659557 relink_command=
86669558 func_source $func_ltwrapper_scriptname_result
8667 rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
9559 func_append rmfiles " $func_ltwrapper_scriptname_result"
86689560 else
86699561 relink_command=
86709562 func_source $dir/$noexename
86729564
86739565 # note $name still contains .exe if it was in $file originally
86749566 # as does the version of $file that was added into $rmfiles
8675 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
9567 func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
86769568 if test "$fast_install" = yes && test -n "$relink_command"; then
8677 rmfiles="$rmfiles $objdir/lt-$name"
9569 func_append rmfiles " $odir/lt-$name"
86789570 fi
86799571 if test "X$noexename" != "X$name" ; then
8680 rmfiles="$rmfiles $objdir/lt-${noexename}.c"
9572 func_append rmfiles " $odir/lt-${noexename}.c"
86819573 fi
86829574 fi
86839575 fi
86859577 esac
86869578 func_show_eval "$RM $rmfiles" 'exit_status=1'
86879579 done
8688 objdir="$origobjdir"
86899580
86909581 # Try to remove the ${objdir}s in the directories where we deleted files
86919582 for dir in $rmdirs; do
86979588 exit $exit_status
86989589 }
86999590
8700 { test "$mode" = uninstall || test "$mode" = clean; } &&
9591 { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
87019592 func_mode_uninstall ${1+"$@"}
87029593
8703 test -z "$mode" && {
9594 test -z "$opt_mode" && {
87049595 help="$generic_help"
87059596 func_fatal_help "you must specify a MODE"
87069597 }
87079598
87089599 test -z "$exec_cmd" && \
8709 func_fatal_help "invalid operation mode \`$mode'"
9600 func_fatal_help "invalid operation mode \`$opt_mode'"
87109601
87119602 if test -n "$exec_cmd"; then
87129603 eval exec "$exec_cmd"
605605 size_t rrset_cache_size;
606606 size_t rrset_cache_slabs;
607607 int host_ttl;
608 int lame_ttl;
609608 size_t infra_cache_slabs;
610609 size_t infra_cache_numhosts;
611 size_t infra_cache_lame_size;
612610 char* target_fetch_policy;
613611 int if_automatic;
614612 int num_ifs;
4343 #endif
4444
4545 #include "config.h"
46 #include "ldns/ldns.h"
46 #include <ldns/ldns.h>
4747
4848 #undef _POSIX_C_SOURCE
4949 #undef _XOPEN_SOURCE
3838 * This file contains the infrastructure cache.
3939 */
4040 #include "config.h"
41 #include "ldns/rr.h"
41 #include <ldns/rr.h>
4242 #include "services/cache/infra.h"
4343 #include "util/storage/slabhash.h"
4444 #include "util/storage/lookup3.h"
5252 #define PROBE_MAXRTO 12000 /* in msec */
5353
5454 size_t
55 infra_host_sizefunc(void* k, void* ATTR_UNUSED(d))
56 {
57 struct infra_host_key* key = (struct infra_host_key*)k;
58 return sizeof(*key) + sizeof(struct infra_host_data)
55 infra_sizefunc(void* k, void* ATTR_UNUSED(d))
56 {
57 struct infra_key* key = (struct infra_key*)k;
58 return sizeof(*key) + sizeof(struct infra_data) + key->namelen
5959 + lock_get_mem(&key->entry.lock);
6060 }
6161
6262 int
63 infra_host_compfunc(void* key1, void* key2)
64 {
65 struct infra_host_key* k1 = (struct infra_host_key*)key1;
66 struct infra_host_key* k2 = (struct infra_host_key*)key2;
67 return sockaddr_cmp(&k1->addr, k1->addrlen, &k2->addr, k2->addrlen);
63 infra_compfunc(void* key1, void* key2)
64 {
65 struct infra_key* k1 = (struct infra_key*)key1;
66 struct infra_key* k2 = (struct infra_key*)key2;
67 int r = sockaddr_cmp(&k1->addr, k1->addrlen, &k2->addr, k2->addrlen);
68 if(r != 0)
69 return r;
70 if(k1->namelen != k2->namelen) {
71 if(k1->namelen < k2->namelen)
72 return -1;
73 return 1;
74 }
75 return query_dname_compare(k1->zonename, k2->zonename);
6876 }
6977
7078 void
71 infra_host_delkeyfunc(void* k, void* ATTR_UNUSED(arg))
72 {
73 struct infra_host_key* key = (struct infra_host_key*)k;
79 infra_delkeyfunc(void* k, void* ATTR_UNUSED(arg))
80 {
81 struct infra_key* key = (struct infra_key*)k;
7482 if(!key)
7583 return;
7684 lock_rw_destroy(&key->entry.lock);
85 free(key->zonename);
7786 free(key);
7887 }
7988
8089 void
81 infra_host_deldatafunc(void* d, void* ATTR_UNUSED(arg))
82 {
83 struct infra_host_data* data = (struct infra_host_data*)d;
84 lruhash_delete(data->lameness);
90 infra_deldatafunc(void* d, void* ATTR_UNUSED(arg))
91 {
92 struct infra_data* data = (struct infra_data*)d;
8593 free(data);
8694 }
8795
9098 {
9199 struct infra_cache* infra = (struct infra_cache*)calloc(1,
92100 sizeof(struct infra_cache));
93 /* the size of the lameness tables are not counted */
94 size_t maxmem = cfg->infra_cache_numhosts *
95 (sizeof(struct infra_host_key)+sizeof(struct infra_host_data));
101 size_t maxmem = cfg->infra_cache_numhosts * (sizeof(struct infra_key)+
102 sizeof(struct infra_data)+INFRA_BYTES_NAME);
96103 infra->hosts = slabhash_create(cfg->infra_cache_slabs,
97 INFRA_HOST_STARTSIZE, maxmem, &infra_host_sizefunc,
98 &infra_host_compfunc, &infra_host_delkeyfunc,
99 &infra_host_deldatafunc, NULL);
104 INFRA_HOST_STARTSIZE, maxmem, &infra_sizefunc, &infra_compfunc,
105 &infra_delkeyfunc, &infra_deldatafunc, NULL);
100106 if(!infra->hosts) {
101107 free(infra);
102108 return NULL;
103109 }
104110 infra->host_ttl = cfg->host_ttl;
105 infra->lame_ttl = cfg->lame_ttl;
106 infra->max_lame_size = cfg->infra_cache_lame_size;
107 infra->jostle = cfg->jostle_time;
108111 return infra;
109112 }
110113
124127 if(!infra)
125128 return infra_create(cfg);
126129 infra->host_ttl = cfg->host_ttl;
127 infra->lame_ttl = cfg->lame_ttl;
128 infra->max_lame_size = cfg->infra_cache_lame_size;
129 infra->jostle = cfg->jostle_time;
130 maxmem = cfg->infra_cache_numhosts *
131 (sizeof(struct infra_host_key)+sizeof(struct infra_host_data));
130 maxmem = cfg->infra_cache_numhosts * (sizeof(struct infra_key)+
131 sizeof(struct infra_data)+INFRA_BYTES_NAME);
132132 if(maxmem != slabhash_get_size(infra->hosts) ||
133133 cfg->infra_cache_slabs != infra->hosts->size) {
134134 infra_delete(infra);
157157 return h;
158158 }
159159
160 void
161 infra_remove_host(struct infra_cache* infra,
162 struct sockaddr_storage* addr, socklen_t addrlen)
163 {
164 struct infra_host_key k;
160 /** calculate infra hash for a key */
161 static hashvalue_t
162 hash_infra(struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* name)
163 {
164 return dname_query_hash(name, hash_addr(addr, addrlen));
165 }
166
167 /** lookup version that does not check host ttl (you check it) */
168 struct lruhash_entry*
169 infra_lookup_nottl(struct infra_cache* infra, struct sockaddr_storage* addr,
170 socklen_t addrlen, uint8_t* name, size_t namelen, int wr)
171 {
172 struct infra_key k;
165173 k.addrlen = addrlen;
166174 memcpy(&k.addr, addr, addrlen);
167 k.entry.hash = hash_addr(addr, addrlen);
168 k.entry.key = (void*)&k;
169 k.entry.data = NULL;
170 slabhash_remove(infra->hosts, k.entry.hash, &k);
171 }
172
173 /** lookup version that does not check host ttl (you check it) */
174 static struct lruhash_entry*
175 infra_lookup_host_nottl(struct infra_cache* infra,
176 struct sockaddr_storage* addr, socklen_t addrlen, int wr)
177 {
178 struct infra_host_key k;
179 k.addrlen = addrlen;
180 memcpy(&k.addr, addr, addrlen);
181 k.entry.hash = hash_addr(addr, addrlen);
175 k.namelen = namelen;
176 k.zonename = name;
177 k.entry.hash = hash_infra(addr, addrlen, name);
182178 k.entry.key = (void*)&k;
183179 k.entry.data = NULL;
184180 return slabhash_lookup(infra->hosts, k.entry.hash, &k, wr);
185181 }
186182
187 struct infra_host_data*
188 infra_lookup_host(struct infra_cache* infra,
189 struct sockaddr_storage* addr, socklen_t addrlen, int wr,
190 uint32_t timenow, struct infra_host_key** key)
191 {
192 struct infra_host_data* data;
193 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
194 addrlen, wr);
195 *key = NULL;
196 if(!e)
197 return NULL;
198 /* check TTL */
199 data = (struct infra_host_data*)e->data;
200 if(data->ttl < timenow) {
201 lock_rw_unlock(&e->lock);
202 return NULL;
203 }
204 *key = (struct infra_host_key*)e->key;
205 return data;
206 }
207
208 /** init the host elements (not lame elems) */
183 /** init the data elements */
209184 static void
210 host_entry_init(struct infra_cache* infra, struct lruhash_entry* e,
185 data_entry_init(struct infra_cache* infra, struct lruhash_entry* e,
211186 uint32_t timenow)
212187 {
213 struct infra_host_data* data = (struct infra_host_data*)e->data;
188 struct infra_data* data = (struct infra_data*)e->data;
214189 data->ttl = timenow + infra->host_ttl;
215190 rtt_init(&data->rtt);
216191 data->edns_version = 0;
217192 data->edns_lame_known = 0;
218193 data->probedelay = 0;
194 data->isdnsseclame = 0;
195 data->rec_lame = 0;
196 data->lame_type_A = 0;
197 data->lame_other = 0;
219198 }
220199
221200 /**
223202 * @param infra: infra structure with config parameters.
224203 * @param addr: host address.
225204 * @param addrlen: length of addr.
205 * @param name: name of zone
206 * @param namelen: length of name.
226207 * @param tm: time now.
227208 * @return: the new entry or NULL on malloc failure.
228209 */
229210 static struct lruhash_entry*
230 new_host_entry(struct infra_cache* infra, struct sockaddr_storage* addr,
231 socklen_t addrlen, uint32_t tm)
232 {
233 struct infra_host_data* data;
234 struct infra_host_key* key = (struct infra_host_key*)malloc(
235 sizeof(struct infra_host_key));
211 new_entry(struct infra_cache* infra, struct sockaddr_storage* addr,
212 socklen_t addrlen, uint8_t* name, size_t namelen, uint32_t tm)
213 {
214 struct infra_data* data;
215 struct infra_key* key = (struct infra_key*)malloc(sizeof(*key));
236216 if(!key)
237217 return NULL;
238 data = (struct infra_host_data*)malloc(
239 sizeof(struct infra_host_data));
218 data = (struct infra_data*)malloc(sizeof(struct infra_data));
240219 if(!data) {
241220 free(key);
242221 return NULL;
243222 }
223 key->zonename = memdup(name, namelen);
224 if(!key->zonename) {
225 free(key);
226 free(data);
227 return NULL;
228 }
229 key->namelen = namelen;
244230 lock_rw_init(&key->entry.lock);
245 key->entry.hash = hash_addr(addr, addrlen);
231 key->entry.hash = hash_infra(addr, addrlen, name);
246232 key->entry.key = (void*)key;
247233 key->entry.data = (void*)data;
248234 key->addrlen = addrlen;
249235 memcpy(&key->addr, addr, addrlen);
250 data->lameness = NULL;
251 host_entry_init(infra, &key->entry, tm);
236 data_entry_init(infra, &key->entry, tm);
252237 return &key->entry;
253238 }
254239
255240 int
256241 infra_host(struct infra_cache* infra, struct sockaddr_storage* addr,
257 socklen_t addrlen, uint32_t timenow, int* edns_vs,
258 uint8_t* edns_lame_known, int* to)
259 {
260 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
261 addrlen, 0);
262 struct infra_host_data* data;
242 socklen_t addrlen, uint8_t* nm, size_t nmlen, uint32_t timenow,
243 int* edns_vs, uint8_t* edns_lame_known, int* to)
244 {
245 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
246 nm, nmlen, 0);
247 struct infra_data* data;
263248 int wr = 0;
264 if(e && ((struct infra_host_data*)e->data)->ttl < timenow) {
249 if(e && ((struct infra_data*)e->data)->ttl < timenow) {
265250 /* it expired, try to reuse existing entry */
266 int old = ((struct infra_host_data*)e->data)->rtt.rto;
251 int old = ((struct infra_data*)e->data)->rtt.rto;
267252 lock_rw_unlock(&e->lock);
268 e = infra_lookup_host_nottl(infra, addr, addrlen, 1);
253 e = infra_lookup_nottl(infra, addr, addrlen, nm, nmlen, 1);
269254 if(e) {
270255 /* if its still there we have a writelock, init */
271256 /* re-initialise */
272257 /* do not touch lameness, it may be valid still */
273 host_entry_init(infra, e, timenow);
258 data_entry_init(infra, e, timenow);
274259 wr = 1;
275260 /* TOP_TIMEOUT remains on reuse */
276261 if(old >= USEFUL_SERVER_TOP_TIMEOUT)
277 ((struct infra_host_data*)e->data)->rtt.rto
262 ((struct infra_data*)e->data)->rtt.rto
278263 = USEFUL_SERVER_TOP_TIMEOUT;
279264 }
280265 }
281266 if(!e) {
282267 /* insert new entry */
283 if(!(e = new_host_entry(infra, addr, addrlen, timenow)))
268 if(!(e = new_entry(infra, addr, addrlen, nm, nmlen, timenow)))
284269 return 0;
285 data = (struct infra_host_data*)e->data;
286 *to = rtt_timeout(&data->rtt);
270 data = (struct infra_data*)e->data;
287271 *edns_vs = data->edns_version;
288272 *edns_lame_known = data->edns_lame_known;
273 *to = rtt_timeout(&data->rtt);
289274 slabhash_insert(infra->hosts, e->hash, e, data, NULL);
290275 return 1;
291276 }
292277 /* use existing entry */
293 data = (struct infra_host_data*)e->data;
294 *to = rtt_timeout(&data->rtt);
278 data = (struct infra_data*)e->data;
295279 *edns_vs = data->edns_version;
296280 *edns_lame_known = data->edns_lame_known;
281 *to = rtt_timeout(&data->rtt);
297282 if(*to >= PROBE_MAXRTO && rtt_notimeout(&data->rtt)*4 <= *to) {
298283 /* delay other queries, this is the probe query */
299284 if(!wr) {
300285 lock_rw_unlock(&e->lock);
301 e = infra_lookup_host_nottl(infra, addr, addrlen, 1);
286 e = infra_lookup_nottl(infra, addr,addrlen,nm,nmlen, 1);
302287 if(!e) { /* flushed from cache real fast, no use to
303288 allocate just for the probedelay */
304289 return 1;
305290 }
306 data = (struct infra_host_data*)e->data;
291 data = (struct infra_data*)e->data;
307292 }
308293 /* add 999 to round up the timeout value from msec to sec,
309294 * then add a whole second so it is certain that this probe
314299 return 1;
315300 }
316301
317 /** hash lameness key */
318 static hashvalue_t
319 hash_lameness(uint8_t* name)
320 {
321 return dname_query_hash(name, 0xab);
322 }
323
324302 int
325 infra_lookup_lame(struct infra_host_data* host,
326 uint8_t* name, size_t namelen, uint32_t timenow,
327 int* dlame, int* rlame, int* alame, int* olame)
328 {
329 struct lruhash_entry* e;
330 struct infra_lame_key k;
331 struct infra_lame_data *d;
332 if(!host->lameness)
333 return 0;
334 k.entry.hash = hash_lameness(name);
335 k.zonename = name;
336 k.namelen = namelen;
337 k.entry.key = (void*)&k;
338 k.entry.data = NULL;
339 e = lruhash_lookup(host->lameness, k.entry.hash, &k, 0);
340 if(!e)
341 return 0;
342 d = (struct infra_lame_data*)e->data;
343 if(d->ttl < timenow) {
344 lock_rw_unlock(&e->lock);
345 return 0;
346 }
347 *dlame = d->isdnsseclame;
348 *rlame = d->rec_lame;
349 *alame = d->lame_type_A;
350 *olame = d->lame_other;
351 lock_rw_unlock(&e->lock);
352 return *dlame || *rlame || *alame || *olame;
353 }
354
355 size_t
356 infra_lame_sizefunc(void* k, void* ATTR_UNUSED(d))
357 {
358 struct infra_lame_key* key = (struct infra_lame_key*)k;
359 return sizeof(*key) + sizeof(struct infra_lame_data)
360 + key->namelen + lock_get_mem(&key->entry.lock);
361 }
362
363 int
364 infra_lame_compfunc(void* key1, void* key2)
365 {
366 struct infra_lame_key* k1 = (struct infra_lame_key*)key1;
367 struct infra_lame_key* k2 = (struct infra_lame_key*)key2;
368 if(k1->namelen != k2->namelen) {
369 if(k1->namelen < k2->namelen)
370 return -1;
371 return 1;
372 }
373 return query_dname_compare(k1->zonename, k2->zonename);
374 }
375
376 void
377 infra_lame_delkeyfunc(void* k, void* ATTR_UNUSED(arg))
378 {
379 struct infra_lame_key* key = (struct infra_lame_key*)k;
380 if(!key)
381 return;
382 lock_rw_destroy(&key->entry.lock);
383 free(key->zonename);
384 free(key);
385 }
386
387 void
388 infra_lame_deldatafunc(void* d, void* ATTR_UNUSED(arg))
389 {
390 if(!d)
391 return;
392 free(d);
393 }
394
395 int
396 infra_set_lame(struct infra_cache* infra,
397 struct sockaddr_storage* addr, socklen_t addrlen,
398 uint8_t* name, size_t namelen, uint32_t timenow, int dnsseclame,
399 int reclame, uint16_t qtype)
400 {
401 struct infra_host_data* data;
303 infra_set_lame(struct infra_cache* infra, struct sockaddr_storage* addr,
304 socklen_t addrlen, uint8_t* nm, size_t nmlen, uint32_t timenow,
305 int dnsseclame, int reclame, uint16_t qtype)
306 {
307 struct infra_data* data;
402308 struct lruhash_entry* e;
403309 int needtoinsert = 0;
404 struct infra_lame_key* k;
405 struct infra_lame_data* d;
406 /* allocate at start, easier cleanup (no locks held) */
407 k = (struct infra_lame_key*)malloc(sizeof(*k));
408 if(!k) {
409 log_err("set_lame: malloc failure");
410 return 0;
411 }
412 d = (struct infra_lame_data*)malloc(sizeof(*d));
413 if(!d) {
414 free(k);
415 log_err("set_lame: malloc failure");
416 return 0;
417 }
418 k->zonename = memdup(name, namelen);
419 if(!k->zonename) {
420 free(d);
421 free(k);
422 log_err("set_lame: malloc failure");
423 return 0;
424 }
425 lock_rw_init(&k->entry.lock);
426 k->entry.hash = hash_lameness(name);
427 k->entry.key = (void*)k;
428 k->entry.data = (void*)d;
429 d->ttl = timenow + infra->lame_ttl;
430 d->isdnsseclame = dnsseclame;
431 d->rec_lame = reclame;
432 d->lame_type_A = (!dnsseclame && !reclame && qtype == LDNS_RR_TYPE_A);
433 d->lame_other = (!dnsseclame && !reclame && qtype != LDNS_RR_TYPE_A);
434 k->namelen = namelen;
435 e = infra_lookup_host_nottl(infra, addr, addrlen, 1);
310 e = infra_lookup_nottl(infra, addr, addrlen, nm, nmlen, 1);
436311 if(!e) {
437312 /* insert it */
438 if(!(e = new_host_entry(infra, addr, addrlen, timenow))) {
439 free(k->zonename);
440 free(k);
441 free(d);
313 if(!(e = new_entry(infra, addr, addrlen, nm, nmlen, timenow))) {
442314 log_err("set_lame: malloc failure");
443315 return 0;
444316 }
445317 needtoinsert = 1;
318 } else if( ((struct infra_data*)e->data)->ttl < timenow) {
319 /* expired, reuse existing entry */
320 data_entry_init(infra, e, timenow);
446321 }
447322 /* got an entry, now set the zone lame */
448 data = (struct infra_host_data*)e->data;
449 if(!data->lameness) {
450 /* create hash table if not there already */
451 data->lameness = lruhash_create(INFRA_LAME_STARTSIZE,
452 infra->max_lame_size, infra_lame_sizefunc,
453 infra_lame_compfunc, infra_lame_delkeyfunc,
454 infra_lame_deldatafunc, NULL);
455 if(!data->lameness) {
456 log_err("set_lame: malloc failure");
457 if(needtoinsert) slabhash_insert(infra->hosts,
458 e->hash, e, e->data, NULL);
459 else { lock_rw_unlock(&e->lock); }
460 free(k->zonename);
461 free(k);
462 free(d);
463 return 0;
464 }
465 } else {
466 /* lookup existing lameness entry (if any) and merge data */
467 int dlame, rlame, alame, olame;
468 if(infra_lookup_lame(data, name, namelen, timenow,
469 &dlame, &rlame, &alame, &olame)) {
470 /* merge data into new structure */
471 if(dlame) d->isdnsseclame = 1;
472 if(rlame) d->rec_lame = 1;
473 if(alame) d->lame_type_A = 1;
474 if(olame) d->lame_other = 1;
475 }
476 }
477
478 /* inserts new entry, or updates TTL of older entry */
479 lruhash_insert(data->lameness, k->entry.hash, &k->entry, d, NULL);
480
323 data = (struct infra_data*)e->data;
324 /* merge data (if any) */
325 if(dnsseclame)
326 data->isdnsseclame = 1;
327 if(reclame)
328 data->rec_lame = 1;
329 if(!dnsseclame && !reclame && qtype == LDNS_RR_TYPE_A)
330 data->lame_type_A = 1;
331 if(!dnsseclame && !reclame && qtype != LDNS_RR_TYPE_A)
332 data->lame_other = 1;
333 /* done */
481334 if(needtoinsert)
482335 slabhash_insert(infra->hosts, e->hash, e, e->data, NULL);
483336 else { lock_rw_unlock(&e->lock); }
486339
487340 void
488341 infra_update_tcp_works(struct infra_cache* infra,
489 struct sockaddr_storage* addr, socklen_t addrlen)
490 {
491 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
492 addrlen, 1);
493 struct infra_host_data* data;
342 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* nm,
343 size_t nmlen)
344 {
345 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
346 nm, nmlen, 1);
347 struct infra_data* data;
494348 if(!e)
495349 return; /* doesn't exist */
496 data = (struct infra_host_data*)e->data;
350 data = (struct infra_data*)e->data;
497351 if(data->rtt.rto >= RTT_MAX_TIMEOUT)
498352 /* do not disqualify this server altogether, it is better
499353 * than nothing */
502356 }
503357
504358 int
505 infra_rtt_update(struct infra_cache* infra,
506 struct sockaddr_storage* addr, socklen_t addrlen,
507 int roundtrip, int orig_rtt, uint32_t timenow)
508 {
509 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
510 addrlen, 1);
511 struct infra_host_data* data;
359 infra_rtt_update(struct infra_cache* infra, struct sockaddr_storage* addr,
360 socklen_t addrlen, uint8_t* nm, size_t nmlen, int roundtrip,
361 int orig_rtt, uint32_t timenow)
362 {
363 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
364 nm, nmlen, 1);
365 struct infra_data* data;
512366 int needtoinsert = 0;
513367 int rto = 1;
514368 if(!e) {
515 if(!(e = new_host_entry(infra, addr, addrlen, timenow)))
369 if(!(e = new_entry(infra, addr, addrlen, nm, nmlen, timenow)))
516370 return 0;
517371 needtoinsert = 1;
518 } else if(((struct infra_host_data*)e->data)->ttl < timenow) {
519 host_entry_init(infra, e, timenow);
520 }
372 } else if(((struct infra_data*)e->data)->ttl < timenow) {
373 data_entry_init(infra, e, timenow);
374 }
521375 /* have an entry, update the rtt */
522 data = (struct infra_host_data*)e->data;
376 data = (struct infra_data*)e->data;
523377 if(roundtrip == -1) {
524378 rtt_lost(&data->rtt, orig_rtt);
525379 } else {
536390 }
537391
538392 int infra_get_host_rto(struct infra_cache* infra,
539 struct sockaddr_storage* addr, socklen_t addrlen,
540 struct rtt_info* rtt, int* delay, uint32_t timenow)
541 {
542 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
543 addrlen, 0);
544 struct infra_host_data* data;
393 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* nm,
394 size_t nmlen, struct rtt_info* rtt, int* delay, uint32_t timenow)
395 {
396 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
397 nm, nmlen, 0);
398 struct infra_data* data;
545399 int ttl = -2;
546400 if(!e) return -1;
547 data = (struct infra_host_data*)e->data;
401 data = (struct infra_data*)e->data;
548402 if(data->ttl >= timenow) {
549403 ttl = (int)(data->ttl - timenow);
550404 memmove(rtt, &data->rtt, sizeof(*rtt));
557411 }
558412
559413 int
560 infra_edns_update(struct infra_cache* infra,
561 struct sockaddr_storage* addr, socklen_t addrlen,
562 int edns_version, uint32_t timenow)
563 {
564 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
565 addrlen, 1);
566 struct infra_host_data* data;
414 infra_edns_update(struct infra_cache* infra, struct sockaddr_storage* addr,
415 socklen_t addrlen, uint8_t* nm, size_t nmlen, int edns_version,
416 uint32_t timenow)
417 {
418 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
419 nm, nmlen, 1);
420 struct infra_data* data;
567421 int needtoinsert = 0;
568422 if(!e) {
569 if(!(e = new_host_entry(infra, addr, addrlen, timenow)))
423 if(!(e = new_entry(infra, addr, addrlen, nm, nmlen, timenow)))
570424 return 0;
571425 needtoinsert = 1;
572 } else if(((struct infra_host_data*)e->data)->ttl < timenow) {
573 host_entry_init(infra, e, timenow);
574 }
426 } else if(((struct infra_data*)e->data)->ttl < timenow) {
427 data_entry_init(infra, e, timenow);
428 }
575429 /* have an entry, update the rtt, and the ttl */
576 data = (struct infra_host_data*)e->data;
430 data = (struct infra_data*)e->data;
577431 /* do not update if noEDNS and stored is yesEDNS */
578432 if(!(edns_version == -1 && (data->edns_version != -1 &&
579433 data->edns_lame_known))) {
587441 return 1;
588442 }
589443
590 int
444 int
591445 infra_get_lame_rtt(struct infra_cache* infra,
592446 struct sockaddr_storage* addr, socklen_t addrlen,
593447 uint8_t* name, size_t namelen, uint16_t qtype,
594448 int* lame, int* dnsseclame, int* reclame, int* rtt, uint32_t timenow)
595449 {
596 struct infra_host_data* host;
597 struct lruhash_entry* e = infra_lookup_host_nottl(infra, addr,
598 addrlen, 0);
599 int dlm, rlm, alm, olm;
450 struct infra_data* host;
451 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
452 name, namelen, 0);
600453 if(!e)
601454 return 0;
602 host = (struct infra_host_data*)e->data;
455 host = (struct infra_data*)e->data;
603456 *rtt = rtt_unclamped(&host->rtt);
604457 if(host->rtt.rto >= PROBE_MAXRTO && timenow < host->probedelay
605458 && rtt_notimeout(&host->rtt)*4 <= host->rtt.rto)
606459 /* single probe for this domain, and we are not probing */
607460 *rtt = USEFUL_SERVER_TOP_TIMEOUT;
608 /* check lameness first, if so, ttl on host does not matter anymore */
609 if(infra_lookup_lame(host, name, namelen, timenow,
610 &dlm, &rlm, &alm, &olm)) {
611 if(alm && qtype == LDNS_RR_TYPE_A) {
612 lock_rw_unlock(&e->lock);
613 *lame = 1;
614 *dnsseclame = 0;
615 *reclame = 0;
616 return 1;
617 } else if(olm && qtype != LDNS_RR_TYPE_A) {
618 lock_rw_unlock(&e->lock);
619 *lame = 1;
620 *dnsseclame = 0;
621 *reclame = 0;
622 return 1;
623 } else if(dlm) {
624 lock_rw_unlock(&e->lock);
625 *lame = 0;
626 *dnsseclame = 1;
627 *reclame = 0;
628 return 1;
629 } else if(rlm) {
630 lock_rw_unlock(&e->lock);
631 *lame = 0;
632 *dnsseclame = 0;
633 *reclame = 1;
634 return 1;
635 }
636 /* no lameness for this type of query */
637 }
638 *lame = 0;
639 *dnsseclame = 0;
640 *reclame = 0;
641461 if(timenow > host->ttl) {
642462 /* expired entry */
643463 /* see if this can be a re-probe of an unresponsive server */
651471 lock_rw_unlock(&e->lock);
652472 return 0;
653473 }
474 /* check lameness first */
475 if(host->lame_type_A && qtype == LDNS_RR_TYPE_A) {
476 lock_rw_unlock(&e->lock);
477 *lame = 1;
478 *dnsseclame = 0;
479 *reclame = 0;
480 return 1;
481 } else if(host->lame_other && qtype != LDNS_RR_TYPE_A) {
482 lock_rw_unlock(&e->lock);
483 *lame = 1;
484 *dnsseclame = 0;
485 *reclame = 0;
486 return 1;
487 } else if(host->isdnsseclame) {
488 lock_rw_unlock(&e->lock);
489 *lame = 0;
490 *dnsseclame = 1;
491 *reclame = 0;
492 return 1;
493 } else if(host->rec_lame) {
494 lock_rw_unlock(&e->lock);
495 *lame = 0;
496 *dnsseclame = 0;
497 *reclame = 1;
498 return 1;
499 }
500 /* no lameness for this type of query */
654501 lock_rw_unlock(&e->lock);
502 *lame = 0;
503 *dnsseclame = 0;
504 *reclame = 0;
655505 return 1;
656 }
657
658 /** helper memory count for a host lame cache */
659 static size_t
660 count_host_lame(struct lruhash_entry* e)
661 {
662 struct infra_host_data* host_data = (struct infra_host_data*)e->data;
663 if(!host_data->lameness)
664 return 0;
665 return lruhash_get_mem(host_data->lameness);
666506 }
667507
668508 size_t
669509 infra_get_mem(struct infra_cache* infra)
670510 {
671 size_t i, bin;
672 size_t s = sizeof(*infra) +
673 slabhash_get_mem(infra->hosts);
674 struct lruhash_entry* e;
675 for(i=0; i<infra->hosts->size; i++) {
676 lock_quick_lock(&infra->hosts->array[i]->lock);
677 for(bin=0; bin<infra->hosts->array[i]->size; bin++) {
678 lock_quick_lock(&infra->hosts->array[i]->
679 array[bin].lock);
680 /* count data size in bin items. */
681 for(e = infra->hosts->array[i]->array[bin].
682 overflow_list; e; e = e->overflow_next) {
683 lock_rw_rdlock(&e->lock);
684 s += count_host_lame(e);
685 lock_rw_unlock(&e->lock);
686 }
687 lock_quick_unlock(&infra->hosts->array[i]->
688 array[bin].lock);
689 }
690 lock_quick_unlock(&infra->hosts->array[i]->lock);
691 }
692 return s;
693 }
511 return sizeof(*infra) + slabhash_get_mem(infra->hosts);
512 }
4646 struct config_file;
4747
4848 /**
49 * Host information kept for every server.
50 */
51 struct infra_host_key {
49 * Host information kept for every server, per zone.
50 */
51 struct infra_key {
5252 /** the host address. */
5353 struct sockaddr_storage addr;
5454 /** length of addr. */
5555 socklen_t addrlen;
56 /** hash table entry, data of type infra_host_data. */
56 /** zone name in wireformat */
57 uint8_t* zonename;
58 /** length of zonename */
59 size_t namelen;
60 /** hash table entry, data of type infra_data. */
5761 struct lruhash_entry entry;
5862 };
5963
6064 /**
6165 * Host information encompasses host capabilities and retransmission timeouts.
62 */
63 struct infra_host_data {
66 * And lameness information (notAuthoritative, noEDNS, Recursive)
67 */
68 struct infra_data {
6469 /** TTL value for this entry. absolute time. */
6570 uint32_t ttl;
71
6672 /** time in seconds (absolute) when probing re-commences, 0 disabled */
6773 uint32_t probedelay;
6874 /** round trip times for timeout calculation */
6975 struct rtt_info rtt;
70 /** Names of the zones that are lame. NULL=no lame zones. */
71 struct lruhash* lameness;
76
7277 /** edns version that the host supports, -1 means no EDNS */
7378 int edns_version;
7479 /** if the EDNS lameness is already known or not.
7580 * EDNS lame is when EDNS queries or replies are dropped,
7681 * and cause a timeout */
7782 uint8_t edns_lame_known;
78 };
79
80 /**
81 * Lameness information, per host, per zone.
82 */
83 struct infra_lame_key {
84 /** key is zone name in wireformat */
85 uint8_t* zonename;
86 /** length of zonename */
87 size_t namelen;
88 /** lruhash entry */
89 struct lruhash_entry entry;
90 };
91
92 /**
93 * Lameness information. Expires.
94 * This host is lame because it is in the cache.
95 */
96 struct infra_lame_data {
97 /** TTL of this entry. absolute time. */
98 uint32_t ttl;
83
9984 /** is the host lame (does not serve the zone authoritatively),
10085 * or is the host dnssec lame (does not serve DNSSEC data) */
101 int isdnsseclame;
86 uint8_t isdnsseclame;
10287 /** is the host recursion lame (not AA, but RA) */
103 int rec_lame;
88 uint8_t rec_lame;
10489 /** the host is lame (not authoritative) for A records */
105 int lame_type_A;
90 uint8_t lame_type_A;
10691 /** the host is lame (not authoritative) for other query types */
107 int lame_other;
92 uint8_t lame_other;
10893 };
10994
11095 /**
115100 struct slabhash* hosts;
116101 /** TTL value for host information, in seconds */
117102 int host_ttl;
118 /** TTL for Lameness information, in seconds */
119 int lame_ttl;
120 /** infra lame cache max memory per host, in bytes */
121 size_t max_lame_size;
122 /** jostle timeout in msec */
123 size_t jostle;
124103 };
125104
126105 /** infra host cache default hash lookup size */
127106 #define INFRA_HOST_STARTSIZE 32
128 /** infra lame cache default hash lookup size */
129 #define INFRA_LAME_STARTSIZE 2
107 /** bytes per zonename reserved in the hostcache, dnamelen(zonename.com.) */
108 #define INFRA_BYTES_NAME 14
130109
131110 /**
132111 * Create infra cache.
140119 * @param infra: infrastructure cache to delete.
141120 */
142121 void infra_delete(struct infra_cache* infra);
143
144 /** explicitly delete an infra host element */
145 void infra_remove_host(struct infra_cache* infra,
146 struct sockaddr_storage* addr, socklen_t addrlen);
147122
148123 /**
149124 * Adjust infra cache to use updated configuration settings.
157132 struct config_file* cfg);
158133
159134 /**
160 * Lookup host data
161 * @param infra: infrastructure cache.
162 * @param addr: host address.
163 * @param addrlen: length of addr.
164 * @param wr: set to true to get a writelock on the entry.
165 * @param timenow: what time it is now.
166 * @param key: the key for the host, returned so caller can unlock when done.
167 * @return: host data or NULL if not found or expired.
168 */
169 struct infra_host_data* infra_lookup_host(struct infra_cache* infra,
170 struct sockaddr_storage* addr, socklen_t addrlen, int wr,
171 uint32_t timenow, struct infra_host_key** key);
135 * Plain find infra data function (used by the the other functions)
136 * @param infra: infrastructure cache.
137 * @param addr: host address.
138 * @param addrlen: length of addr.
139 * @param name: domain name of zone.
140 * @param namelen: length of domain name.
141 * @param wr: if true, writelock, else readlock.
142 * @return the entry, could be expired (this is not checked) or NULL.
143 */
144 struct lruhash_entry* infra_lookup_nottl(struct infra_cache* infra,
145 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* name,
146 size_t namelen, int wr);
172147
173148 /**
174149 * Find host information to send a packet. Creates new entry if not found.
179154 * @param infra: infrastructure cache.
180155 * @param addr: host address.
181156 * @param addrlen: length of addr.
157 * @param name: domain name of zone.
158 * @param namelen: length of domain name.
182159 * @param timenow: what time it is now.
183160 * @param edns_vs: edns version it supports, is returned.
184161 * @param edns_lame_known: if EDNS lame (EDNS is dropped in transit) has
187164 * @return: 0 on error.
188165 */
189166 int infra_host(struct infra_cache* infra, struct sockaddr_storage* addr,
190 socklen_t addrlen, uint32_t timenow, int* edns_vs,
191 uint8_t* edns_lame_known, int* to);
192
193 /**
194 * Check for lameness of this server for a particular zone.
195 * You must have a lock on the host structure.
196 * @param host: infrastructure cache data for the host. Caller holds lock.
197 * @param name: domain name of zone apex.
198 * @param namelen: length of domain name.
199 * @param timenow: what time it is now.
200 * @param dlame: if the function returns true, is set true if dnssec lame.
201 * @param rlame: if the function returns true, is set true if recursion lame.
202 * @param alame: if the function returns true, is set true if qtype A lame.
203 * @param olame: if the function returns true, is set true if qtype other lame.
204 * @return: 0 if not lame or unknown or timed out, 1 if lame
205 */
206 int infra_lookup_lame(struct infra_host_data* host,
207 uint8_t* name, size_t namelen, uint32_t timenow,
208 int* dlame, int* rlame, int* alame, int* olame);
167 socklen_t addrlen, uint8_t* name, size_t namelen,
168 uint32_t timenow, int* edns_vs, uint8_t* edns_lame_known, int* to);
209169
210170 /**
211171 * Set a host to be lame for the given zone.
232192 * @param infra: infrastructure cache.
233193 * @param addr: host address.
234194 * @param addrlen: length of addr.
195 * @param name: zone name
196 * @param namelen: zone name length
235197 * @param roundtrip: estimate of roundtrip time in milliseconds or -1 for
236198 * timeout.
237199 * @param orig_rtt: original rtt for the query that timed out (roundtrip==-1).
239201 * @param timenow: what time it is now.
240202 * @return: 0 on error. new rto otherwise.
241203 */
242 int infra_rtt_update(struct infra_cache* infra,
204 int infra_rtt_update(struct infra_cache* infra, struct sockaddr_storage* addr,
205 socklen_t addrlen, uint8_t* name, size_t namelen,
206 int roundtrip, int orig_rtt, uint32_t timenow);
207
208 /**
209 * Update information for the host, store that a TCP transaction works.
210 * @param infra: infrastructure cache.
211 * @param addr: host address.
212 * @param addrlen: length of addr.
213 * @param name: name of zone
214 * @param namelen: length of name
215 */
216 void infra_update_tcp_works(struct infra_cache* infra,
243217 struct sockaddr_storage* addr, socklen_t addrlen,
244 int roundtrip, int orig_rtt, uint32_t timenow);
245
246 /**
247 * Update information for the host, store that a TCP transaction works.
248 * @param infra: infrastructure cache.
249 * @param addr: host address.
250 * @param addrlen: length of addr.
251 */
252 void infra_update_tcp_works(struct infra_cache* infra,
253 struct sockaddr_storage* addr, socklen_t addrlen);
218 uint8_t* name, size_t namelen);
254219
255220 /**
256221 * Update edns information for the host.
257222 * @param infra: infrastructure cache.
258223 * @param addr: host address.
259224 * @param addrlen: length of addr.
225 * @param name: name of zone
226 * @param namelen: length of name
260227 * @param edns_version: the version that it publishes.
261228 * If it is known to support EDNS then no-EDNS is not stored over it.
262229 * @param timenow: what time it is now.
264231 */
265232 int infra_edns_update(struct infra_cache* infra,
266233 struct sockaddr_storage* addr, socklen_t addrlen,
267 int edns_version, uint32_t timenow);
234 uint8_t* name, size_t namelen, int edns_version, uint32_t timenow);
268235
269236 /**
270237 * Get Lameness information and average RTT if host is in the cache.
294261 * @param infra: infra cache.
295262 * @param addr: host address.
296263 * @param addrlen: length of addr.
264 * @param name: zone name
265 * @param namelen: zone name length
297266 * @param rtt: the rtt_info is copied into here (caller alloced return struct).
298267 * @param delay: probe delay (if any).
299268 * @param timenow: what time it is now.
301270 * TTL -2: found but expired.
302271 */
303272 int infra_get_host_rto(struct infra_cache* infra,
304 struct sockaddr_storage* addr, socklen_t addrlen,
305 struct rtt_info* rtt, int* delay, uint32_t timenow);
273 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* name,
274 size_t namelen, struct rtt_info* rtt, int* delay, uint32_t timenow);
306275
307276 /**
308277 * Get memory used by the infra cache.
313282
314283 /** calculate size for the hashtable, does not count size of lameness,
315284 * so the hashtable is a fixed number of items */
316 size_t infra_host_sizefunc(void* k, void* d);
285 size_t infra_sizefunc(void* k, void* d);
317286
318287 /** compare two addresses, returns -1, 0, or +1 */
319 int infra_host_compfunc(void* key1, void* key2);
288 int infra_compfunc(void* key1, void* key2);
320289
321290 /** delete key, and destroy the lock */
322 void infra_host_delkeyfunc(void* k, void* arg);
291 void infra_delkeyfunc(void* k, void* arg);
323292
324293 /** delete data and destroy the lameness hashtable */
325 void infra_host_deldatafunc(void* d, void* arg);
326
327 /** calculate size, which is fixed, zonename does not count so that
328 * a fixed number of items is stored */
329 size_t infra_lame_sizefunc(void* k, void* d);
330
331 /** compare zone names, returns -1, 0, +1 */
332 int infra_lame_compfunc(void* key1, void* key2);
333
334 /** free key, lock and zonename */
335 void infra_lame_delkeyfunc(void* k, void* arg);
336
337 /** free the lameness data */
338 void infra_lame_deldatafunc(void* d, void* arg);
294 void infra_deldatafunc(void* d, void* arg);
339295
340296 #endif /* SERVICES_CACHE_INFRA_H */
631631 * @param list: list of open ports, appended to, changed to point to list head.
632632 * @param rcv: receive buffer size for UDP
633633 * @param snd: send buffer size for UDP
634 * @param ssl_port: ssl service port number
634635 * @return: returns false on error.
635636 */
636637 static int
637638 ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
638639 struct addrinfo *hints, const char* port, struct listen_port** list,
639 size_t rcv, size_t snd)
640 size_t rcv, size_t snd, int ssl_port)
640641 {
641642 int s, noip6=0;
642643 if(!do_udp && !do_tcp)
681682 }
682683 }
683684 if(do_tcp) {
685 int is_ssl = ((strchr(ifname, '@') &&
686 atoi(strchr(ifname, '@')+1) == ssl_port) ||
687 (!strchr(ifname, '@') && atoi(port) == ssl_port));
684688 if((s = make_sock_port(SOCK_STREAM, ifname, port, hints, 1,
685689 &noip6, 0, 0)) == -1) {
686690 if(noip6) {
689693 }
690694 return 0;
691695 }
692 if(!port_insert(list, s, listen_type_tcp)) {
696 if(is_ssl)
697 verbose(VERB_ALGO, "setup TCP for SSL service");
698 if(!port_insert(list, s, is_ssl?listen_type_ssl:
699 listen_type_tcp)) {
693700 #ifndef USE_WINSOCK
694701 close(s);
695702 #else
722729
723730 struct listen_dnsport*
724731 listen_create(struct comm_base* base, struct listen_port* ports,
725 size_t bufsize, int tcp_accept_count,
732 size_t bufsize, int tcp_accept_count, void* sslctx,
726733 comm_point_callback_t* cb, void *cb_arg)
727734 {
728735 struct listen_dnsport* front = (struct listen_dnsport*)
735742 free(front);
736743 return NULL;
737744 }
738
745
739746 /* create comm points as needed */
740747 while(ports) {
741748 struct comm_point* cp = NULL;
745752 else if(ports->ftype == listen_type_tcp)
746753 cp = comm_point_create_tcp(base, ports->fd,
747754 tcp_accept_count, bufsize, cb, cb_arg);
748 else if(ports->ftype == listen_type_udpancil)
755 else if(ports->ftype == listen_type_ssl) {
756 cp = comm_point_create_tcp(base, ports->fd,
757 tcp_accept_count, bufsize, cb, cb_arg);
758 cp->ssl = sslctx;
759 } else if(ports->ftype == listen_type_udpancil)
749760 cp = comm_point_create_udp_ancil(base, ports->fd,
750761 front->udp_buff, cb, cb_arg);
751762 if(!cp) {
829840 if(!ports_create_if(do_auto?"::0":"::1",
830841 do_auto, cfg->do_udp, do_tcp,
831842 &hints, portbuf, &list,
832 cfg->so_rcvbuf, cfg->so_sndbuf)) {
843 cfg->so_rcvbuf, cfg->so_sndbuf,
844 cfg->ssl_port)) {
833845 listening_ports_free(list);
834846 return NULL;
835847 }
839851 if(!ports_create_if(do_auto?"0.0.0.0":"127.0.0.1",
840852 do_auto, cfg->do_udp, do_tcp,
841853 &hints, portbuf, &list,
842 cfg->so_rcvbuf, cfg->so_sndbuf)) {
854 cfg->so_rcvbuf, cfg->so_sndbuf,
855 cfg->ssl_port)) {
843856 listening_ports_free(list);
844857 return NULL;
845858 }
851864 hints.ai_family = AF_INET6;
852865 if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
853866 do_tcp, &hints, portbuf, &list,
854 cfg->so_rcvbuf, cfg->so_sndbuf)) {
867 cfg->so_rcvbuf, cfg->so_sndbuf,
868 cfg->ssl_port)) {
855869 listening_ports_free(list);
856870 return NULL;
857871 }
861875 hints.ai_family = AF_INET;
862876 if(!ports_create_if(cfg->ifs[i], 0, cfg->do_udp,
863877 do_tcp, &hints, portbuf, &list,
864 cfg->so_rcvbuf, cfg->so_sndbuf)) {
878 cfg->so_rcvbuf, cfg->so_sndbuf,
879 cfg->ssl_port)) {
865880 listening_ports_free(list);
866881 return NULL;
867882 }
8181 /** tcp type */
8282 listen_type_tcp,
8383 /** udp ipv6 (v4mapped) for use with ancillary data */
84 listen_type_udpancil
84 listen_type_udpancil,
85 /** ssl over tcp type */
86 listen_type_ssl
8587 };
8688
8789 /**
120122 * @param bufsize: size of datagram buffer.
121123 * @param tcp_accept_count: max number of simultaneous TCP connections
122124 * from clients.
125 * @param sslctx: nonNULL if ssl context.
123126 * @param cb: callback function when a request arrives. It is passed
124127 * the packet and user argument. Return true to send a reply.
125128 * @param cb_arg: user data argument for callback function.
127130 */
128131 struct listen_dnsport* listen_create(struct comm_base* base,
129132 struct listen_port* ports, size_t bufsize, int tcp_accept_count,
130 comm_point_callback_t* cb, void* cb_arg);
133 void* sslctx, comm_point_callback_t* cb, void* cb_arg);
131134
132135 /**
133136 * delete the listening structure
3838 * This file contains functions to enable local zone authority service.
3939 */
4040 #include "config.h"
41 #include "ldns/dname.h"
42 #include "ldns/host2wire.h"
41 #include <ldns/dname.h>
42 #include <ldns/host2wire.h>
4343 #include "services/localzone.h"
4444 #include "util/regional.h"
4545 #include "util/config_file.h"
4242 * send back to clients.
4343 */
4444 #include "config.h"
45 #include "ldns/wire2host.h"
45 #include <ldns/wire2host.h>
4646 #include "services/mesh.h"
4747 #include "services/outbound_list.h"
4848 #include "services/cache/dns.h"
161161 return NULL;
162162 }
163163 mesh->histogram = timehist_setup();
164 if(!mesh->histogram) {
164 mesh->qbuf_bak = ldns_buffer_new(env->cfg->msg_buffer_size);
165 if(!mesh->histogram || !mesh->qbuf_bak) {
165166 free(mesh);
166167 log_err("mesh area alloc: out of memory");
167168 return NULL;
208209 while(mesh->all.count)
209210 mesh_delete_helper(mesh->all.root);
210211 timehist_delete(mesh->histogram);
212 ldns_buffer_free(mesh->qbuf_bak);
211213 free(mesh);
212214 }
213215
231233 mesh->jostle_last = NULL;
232234 }
233235
234 int mesh_make_new_space(struct mesh_area* mesh)
236 int mesh_make_new_space(struct mesh_area* mesh, ldns_buffer* qbuf)
235237 {
236238 struct mesh_state* m = mesh->jostle_first;
237239 /* free space is available */
249251 "make space for a new one",
250252 m->s.qinfo.qname, m->s.qinfo.qtype,
251253 m->s.qinfo.qclass);
254 /* backup the query */
255 if(qbuf) ldns_buffer_copy(mesh->qbuf_bak, qbuf);
252256 /* notify supers */
253257 if(m->super_set.count > 0) {
254258 verbose(VERB_ALGO, "notify supers of failure");
258262 }
259263 mesh->stats_jostled ++;
260264 mesh_state_delete(&m->s);
265 /* restore the query - note that the qinfo ptr to
266 * the querybuffer is then correct again. */
267 if(qbuf) ldns_buffer_copy(qbuf, mesh->qbuf_bak);
261268 return 1;
262269 }
263270 }
279286 int added = 0;
280287 /* does this create a new reply state? */
281288 if(!s || s->list_select == mesh_no_list) {
282 if(!mesh_make_new_space(mesh)) {
289 if(!mesh_make_new_space(mesh, rep->c->buffer)) {
283290 verbose(VERB_ALGO, "Too many queries. dropping "
284291 "incoming query.");
285292 comm_point_drop_reply(rep);
300307 }
301308 /* see if it already exists, if not, create one */
302309 if(!s) {
310 #ifdef UNBOUND_DEBUG
303311 struct rbnode_t* n;
312 #endif
304313 s = mesh_state_create(mesh->env, qinfo, qflags&BIT_RD, 0);
305314 if(!s) {
306315 log_err("mesh_state_create: out of memory; SERVFAIL");
309318 comm_point_send_reply(rep);
310319 return;
311320 }
312 n = rbtree_insert(&mesh->all, &s->node);
321 #ifdef UNBOUND_DEBUG
322 n =
323 #endif
324 rbtree_insert(&mesh->all, &s->node);
313325 log_assert(n != NULL);
314326 /* set detached (it is now) */
315327 mesh->num_detached_states++;
368380
369381 /* see if it already exists, if not, create one */
370382 if(!s) {
383 #ifdef UNBOUND_DEBUG
371384 struct rbnode_t* n;
385 #endif
372386 s = mesh_state_create(mesh->env, qinfo, qflags&BIT_RD, 0);
373387 if(!s) {
374388 return 0;
375389 }
376 n = rbtree_insert(&mesh->all, &s->node);
390 #ifdef UNBOUND_DEBUG
391 n =
392 #endif
393 rbtree_insert(&mesh->all, &s->node);
377394 log_assert(n != NULL);
378395 /* set detached (it is now) */
379396 mesh->num_detached_states++;
407424 uint16_t qflags, uint32_t leeway)
408425 {
409426 struct mesh_state* s = mesh_area_find(mesh, qinfo, qflags&BIT_RD, 0);
427 #ifdef UNBOUND_DEBUG
410428 struct rbnode_t* n;
429 #endif
411430 /* already exists, and for a different purpose perhaps.
412431 * if mesh_no_list, keep it that way. */
413432 if(s) {
418437 s->s.prefetch_leeway = leeway;
419438 return;
420439 }
421 if(!mesh_make_new_space(mesh)) {
440 if(!mesh_make_new_space(mesh, NULL)) {
422441 verbose(VERB_ALGO, "Too many queries. dropped prefetch.");
423442 mesh->stats_dropped ++;
424443 return;
428447 log_err("prefetch mesh_state_create: out of memory");
429448 return;
430449 }
431 n = rbtree_insert(&mesh->all, &s->node);
450 #ifdef UNBOUND_DEBUG
451 n =
452 #endif
453 rbtree_insert(&mesh->all, &s->node);
432454 log_assert(n != NULL);
433455 /* set detached (it is now) */
434456 mesh->num_detached_states++;
626648 {
627649 struct mesh_area* mesh = qstate->env->mesh;
628650 struct mesh_state_ref* ref, lookup;
651 #ifdef UNBOUND_DEBUG
629652 struct rbnode_t* n;
653 #endif
630654 lookup.node.key = &lookup;
631655 lookup.s = qstate->mesh_info;
632656 RBTREE_FOR(ref, struct mesh_state_ref*, &qstate->mesh_info->sub_set) {
633 n = rbtree_delete(&ref->s->super_set, &lookup);
657 #ifdef UNBOUND_DEBUG
658 n =
659 #endif
660 rbtree_delete(&ref->s->super_set, &lookup);
634661 log_assert(n != NULL); /* must have been present */
635662 if(!ref->s->reply_list && !ref->s->cb_list
636663 && ref->s->super_set.count == 0) {
653680 return 0;
654681 }
655682 if(!sub) {
683 #ifdef UNBOUND_DEBUG
656684 struct rbnode_t* n;
685 #endif
657686 /* create a new one */
658687 sub = mesh_state_create(qstate->env, qinfo, qflags, prime);
659688 if(!sub) {
660689 log_err("mesh_attach_sub: out of memory");
661690 return 0;
662691 }
663 n = rbtree_insert(&mesh->all, &sub->node);
692 #ifdef UNBOUND_DEBUG
693 n =
694 #endif
695 rbtree_insert(&mesh->all, &sub->node);
664696 log_assert(n != NULL);
665697 /* set detached (it is now) */
666698 mesh->num_detached_states++;
667699 /* set new query state to run */
668 n = rbtree_insert(&mesh->run, &sub->run_node);
700 #ifdef UNBOUND_DEBUG
701 n =
702 #endif
703 rbtree_insert(&mesh->run, &sub->run_node);
669704 log_assert(n != NULL);
670705 *newq = &sub->s;
671706 } else
683718
684719 int mesh_state_attachment(struct mesh_state* super, struct mesh_state* sub)
685720 {
721 #ifdef UNBOUND_DEBUG
686722 struct rbnode_t* n;
723 #endif
687724 struct mesh_state_ref* subref; /* points to sub, inserted in super */
688725 struct mesh_state_ref* superref; /* points to super, inserted in sub */
689726 if( !(subref = regional_alloc(super->s.region,
697734 superref->s = super;
698735 subref->node.key = subref;
699736 subref->s = sub;
700 n = rbtree_insert(&sub->super_set, &superref->node);
737 #ifdef UNBOUND_DEBUG
738 n =
739 #endif
740 rbtree_insert(&sub->super_set, &superref->node);
701741 log_assert(n != NULL);
702 n = rbtree_insert(&super->sub_set, &subref->node);
742 #ifdef UNBOUND_DEBUG
743 n =
744 #endif
745 rbtree_insert(&super->sub_set, &subref->node);
703746 log_assert(n != NULL);
704747 return 1;
705748 }
11001143 {
11011144 struct mesh_state* m;
11021145 size_t s = sizeof(*mesh) + sizeof(struct timehist) +
1103 sizeof(struct th_buck)*mesh->histogram->num;
1146 sizeof(struct th_buck)*mesh->histogram->num +
1147 sizeof(ldns_buffer) + ldns_buffer_capacity(mesh->qbuf_bak);
11041148 RBTREE_FOR(m, struct mesh_state*, &mesh->all) {
11051149 /* all, including m itself allocated in qstate region */
11061150 s += regional_get_mem(m->s.region);
122122 /** (extended stats) rcode nodata in replies */
123123 size_t ans_nodata;
124124
125 /** backup of query if other operations recurse and need the
126 * network buffers */
127 ldns_buffer* qbuf_bak;
128
125129 /** double linked list of the run-to-completion query states.
126130 * These are query states with a reply */
127131 struct mesh_state* forever_first;
376380 * results from this query state. These can then be changed for error
377381 * or results.
378382 * Called when a module is module_finished or returns module_error.
379 * The super query states become runnable with event module_event_pass.
383 * The super query states become runnable with event module_event_pass,
384 * it calls the current module for the super with the inform_super event.
380385 *
381386 * @param mesh: mesh area to add newly runnable modules to.
382387 * @param mstate: the state that has results, used to find mesh state.
533538 /**
534539 * Make space for another recursion state for a reply in the mesh
535540 * @param mesh: mesh area
541 * @param qbuf: query buffer to save if recursion is invoked to make space.
542 * This buffer is necessary, because the following sequence in calls
543 * can result in an overwrite of the incoming query:
544 * delete_other_mesh_query - iter_clean - serviced_delete - waiting
545 * udp query is sent - on error callback - callback sends SERVFAIL reply
546 * over the same network channel, and shared UDP buffer is overwritten.
547 * You can pass NULL if there is no buffer that must be backed up.
536548 * @return false if no space is available.
537549 */
538 int mesh_make_new_space(struct mesh_area* mesh);
550 int mesh_make_new_space(struct mesh_area* mesh, ldns_buffer* qbuf);
539551
540552 /**
541553 * Insert mesh state into a double linked list. Inserted at end.
4444 # include <sys/types.h>
4545 #endif
4646 #include <sys/time.h>
47 #include "ldns/wire2host.h"
47 #include <ldns/wire2host.h>
4848 #include "services/outside_network.h"
4949 #include "services/listen_dnsport.h"
5050 #include "services/cache/infra.h"
5757 #include "util/net_help.h"
5858 #include "util/random.h"
5959 #include "util/fptr_wlist.h"
60 #include <openssl/ssl.h>
6061
6162 #ifdef HAVE_NETDB_H
6263 #include <netdb.h>
236237 return 0;
237238 }
238239 }
240 if(w->outnet->sslctx && w->ssl_upstream) {
241 pend->c->ssl = outgoing_ssl_fd(w->outnet->sslctx, s);
242 if(!pend->c->ssl) {
243 pend->c->fd = s;
244 comm_point_close(pend->c);
245 return 0;
246 }
247 #ifdef USE_WINSOCK
248 comm_point_tcp_win_bio_cb(pend->c, pend->c->ssl);
249 #endif
250 pend->c->ssl_shake_state = comm_ssl_shake_write;
251 }
239252 w->pkt = NULL;
240253 w->next_waiting = (void*)pend;
241254 pend->id = LDNS_ID_WIRE(pkt);
279292 decomission_pending_tcp(struct outside_network* outnet,
280293 struct pending_tcp* pend)
281294 {
295 if(pend->c->ssl) {
296 SSL_shutdown(pend->c->ssl);
297 SSL_free(pend->c->ssl);
298 pend->c->ssl = NULL;
299 }
282300 comm_point_close(pend->c);
283301 pend->next_free = outnet->tcp_free;
284302 outnet->tcp_free = pend;
534552 int do_ip6, size_t num_tcp, struct infra_cache* infra,
535553 struct ub_randstate* rnd, int use_caps_for_id, int* availports,
536554 int numavailports, size_t unwanted_threshold,
537 void (*unwanted_action)(void*), void* unwanted_param, int do_udp)
555 void (*unwanted_action)(void*), void* unwanted_param, int do_udp,
556 void* sslctx)
538557 {
539558 struct outside_network* outnet = (struct outside_network*)
540559 calloc(1, sizeof(struct outside_network));
548567 outnet->num_tcp = num_tcp;
549568 outnet->infra = infra;
550569 outnet->rnd = rnd;
570 outnet->sslctx = sslctx;
551571 outnet->svcd_overhead = 0;
552572 outnet->want_to_quit = 0;
553573 outnet->unwanted_threshold = unwanted_threshold;
668688 struct serviced_query* sq = (struct serviced_query*)node;
669689 struct service_callback* p = sq->cblist, *np;
670690 free(sq->qbuf);
691 free(sq->zone);
671692 while(p) {
672693 np = p->next;
673694 free(p);
10531074 struct waiting_tcp*
10541075 pending_tcp_query(struct outside_network* outnet, ldns_buffer* packet,
10551076 struct sockaddr_storage* addr, socklen_t addrlen, int timeout,
1056 comm_point_callback_t* callback, void* callback_arg)
1077 comm_point_callback_t* callback, void* callback_arg, int ssl_upstream)
10571078 {
10581079 struct pending_tcp* pend = outnet->tcp_free;
10591080 struct waiting_tcp* w;
10781099 w->outnet = outnet;
10791100 w->cb = callback;
10801101 w->cb_arg = callback_arg;
1102 w->ssl_upstream = ssl_upstream;
10811103 #ifndef S_SPLINT_S
10821104 tv.tv_sec = timeout;
10831105 tv.tv_usec = 0;
11411163 /** Create new serviced entry */
11421164 static struct serviced_query*
11431165 serviced_create(struct outside_network* outnet, ldns_buffer* buff, int dnssec,
1144 int want_dnssec, struct sockaddr_storage* addr, socklen_t addrlen)
1166 int want_dnssec, int tcp_upstream, int ssl_upstream,
1167 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone,
1168 size_t zonelen)
11451169 {
11461170 struct serviced_query* sq = (struct serviced_query*)malloc(sizeof(*sq));
1171 #ifdef UNBOUND_DEBUG
11471172 rbnode_t* ins;
1173 #endif
11481174 if(!sq)
11491175 return NULL;
11501176 sq->node.key = sq;
11541180 return NULL;
11551181 }
11561182 sq->qbuflen = ldns_buffer_limit(buff);
1183 sq->zone = memdup(zone, zonelen);
1184 if(!sq->zone) {
1185 free(sq->qbuf);
1186 free(sq);
1187 return NULL;
1188 }
1189 sq->zonelen = zonelen;
11571190 sq->dnssec = dnssec;
11581191 sq->want_dnssec = want_dnssec;
1192 sq->tcp_upstream = tcp_upstream;
1193 sq->ssl_upstream = ssl_upstream;
11591194 memcpy(&sq->addr, addr, addrlen);
11601195 sq->addrlen = addrlen;
11611196 sq->outnet = outnet;
11641199 sq->status = serviced_initial;
11651200 sq->retry = 0;
11661201 sq->to_be_deleted = 0;
1167 ins = rbtree_insert(outnet->serviced, &sq->node);
1202 #ifdef UNBOUND_DEBUG
1203 ins =
1204 #endif
1205 rbtree_insert(outnet->serviced, &sq->node);
11681206 log_assert(ins != NULL); /* must not be already present */
11691207 return sq;
11701208 }
11981236 if(sq->status == serviced_query_UDP_EDNS ||
11991237 sq->status == serviced_query_UDP ||
12001238 sq->status == serviced_query_PROBE_EDNS ||
1239 sq->status == serviced_query_UDP_EDNS_FRAG ||
12011240 sq->status == serviced_query_UDP_EDNS_fallback) {
12021241 struct pending* p = (struct pending*)sq->pending;
12031242 if(p->pc)
12791318 edns.edns_present = 1;
12801319 edns.ext_rcode = 0;
12811320 edns.edns_version = EDNS_ADVERTISED_VERSION;
1282 edns.udp_size = EDNS_ADVERTISED_SIZE;
1321 if(sq->status == serviced_query_UDP_EDNS_FRAG) {
1322 if(addr_is_ip6(&sq->addr, sq->addrlen)) {
1323 if(EDNS_FRAG_SIZE_IP6 < EDNS_ADVERTISED_SIZE)
1324 edns.udp_size = EDNS_FRAG_SIZE_IP6;
1325 else edns.udp_size = EDNS_ADVERTISED_SIZE;
1326 } else {
1327 if(EDNS_FRAG_SIZE_IP4 < EDNS_ADVERTISED_SIZE)
1328 edns.udp_size = EDNS_FRAG_SIZE_IP4;
1329 else edns.udp_size = EDNS_ADVERTISED_SIZE;
1330 }
1331 } else {
1332 edns.udp_size = EDNS_ADVERTISED_SIZE;
1333 }
12831334 edns.bits = 0;
12841335 if(sq->dnssec & EDNS_DO)
12851336 edns.bits = EDNS_DO;
13031354 uint8_t edns_lame_known;
13041355 uint32_t now = *sq->outnet->now_secs;
13051356
1306 if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen, now, &vs,
1307 &edns_lame_known, &rtt))
1357 if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen, sq->zone,
1358 sq->zonelen, now, &vs, &edns_lame_known, &rtt))
13081359 return 0;
13091360 sq->last_rtt = rtt;
13101361 verbose(VERB_ALGO, "EDNS lookup known=%d vs=%d", edns_lame_known, vs);
13231374 sq->status = serviced_query_UDP;
13241375 }
13251376 }
1326 serviced_encode(sq, buff, sq->status == serviced_query_UDP_EDNS);
1377 serviced_encode(sq, buff, (sq->status == serviced_query_UDP_EDNS) ||
1378 (sq->status == serviced_query_UDP_EDNS_FRAG));
13271379 sq->last_sent_time = *sq->outnet->now_tv;
13281380 sq->edns_lame_known = (int)edns_lame_known;
13291381 verbose(VERB_ALGO, "serviced query UDP timeout=%d msec", rtt);
13861438 int dobackup = (sq->cblist && sq->cblist->next); /* >1 cb*/
13871439 uint8_t *backup_p = NULL;
13881440 size_t backlen = 0;
1389 rbnode_t* rem;
1441 #ifdef UNBOUND_DEBUG
1442 rbnode_t* rem =
1443 #endif
13901444 /* remove from tree, and schedule for deletion, so that callbacks
13911445 * can safely deregister themselves and even create new serviced
13921446 * queries that are identical to this one. */
1393 rem = rbtree_delete(sq->outnet->serviced, sq);
1447 rbtree_delete(sq->outnet->serviced, sq);
13941448 log_assert(rem); /* should have been present */
13951449 sq->to_be_deleted = 1;
13961450 verbose(VERB_ALGO, "svcd callbacks start");
14711525 &sq->addr, sq->addrlen);
14721526 if(error==NETEVENT_NOERROR)
14731527 infra_update_tcp_works(sq->outnet->infra, &sq->addr,
1474 sq->addrlen);
1528 sq->addrlen, sq->zone, sq->zonelen);
14751529 if(error==NETEVENT_NOERROR && sq->status == serviced_query_TCP_EDNS &&
14761530 (LDNS_RCODE_WIRE(ldns_buffer_begin(c->buffer)) ==
14771531 LDNS_RCODE_FORMERR || LDNS_RCODE_WIRE(ldns_buffer_begin(
14921546 /* only store noEDNS in cache if domain is noDNSSEC */
14931547 if(!sq->want_dnssec)
14941548 if(!infra_edns_update(sq->outnet->infra, &sq->addr,
1495 sq->addrlen, -1, *sq->outnet->now_secs))
1549 sq->addrlen, sq->zone, sq->zonelen, -1,
1550 *sq->outnet->now_secs))
14961551 log_err("Out of memory caching no edns for host");
14971552 sq->status = serviced_query_TCP;
1553 }
1554 if(sq->tcp_upstream || sq->ssl_upstream) {
1555 struct timeval now = *sq->outnet->now_tv;
1556 if(now.tv_sec > sq->last_sent_time.tv_sec ||
1557 (now.tv_sec == sq->last_sent_time.tv_sec &&
1558 now.tv_usec > sq->last_sent_time.tv_usec)) {
1559 /* convert from microseconds to milliseconds */
1560 int roundtime = ((int)now.tv_sec - (int)sq->last_sent_time.tv_sec)*1000
1561 + ((int)now.tv_usec - (int)sq->last_sent_time.tv_usec)/1000;
1562 verbose(VERB_ALGO, "measured TCP-time at %d msec", roundtime);
1563 log_assert(roundtime >= 0);
1564 /* only store if less then AUTH_TIMEOUT seconds, it could be
1565 * huge due to system-hibernated and we woke up */
1566 if(roundtime < TCP_AUTH_QUERY_TIMEOUT*1000) {
1567 if(!infra_rtt_update(sq->outnet->infra, &sq->addr,
1568 sq->addrlen, sq->zone, sq->zonelen, roundtime,
1569 sq->last_rtt, (uint32_t)now.tv_sec))
1570 log_err("out of memory noting rtt.");
1571 }
1572 }
14981573 }
14991574 /* insert address into reply info */
15001575 if(!rep) {
15151590 verbose(VERB_ALGO, "initiate TCP query %s",
15161591 sq->status==serviced_query_TCP_EDNS?"EDNS":"");
15171592 serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS);
1593 sq->last_sent_time = *sq->outnet->now_tv;
15181594 sq->pending = pending_tcp_query(outnet, buff, &sq->addr,
15191595 sq->addrlen, TCP_AUTH_QUERY_TIMEOUT, serviced_tcp_callback,
1520 sq);
1596 sq, sq->ssl_upstream);
15211597 if(!sq->pending) {
15221598 /* delete from tree so that a retry by above layer does not
15231599 * clash with this entry */
15321608 {
15331609 int vs, rtt;
15341610 uint8_t edns_lame_known;
1535 if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen,
1536 *sq->outnet->now_secs, &vs, &edns_lame_known, &rtt))
1611 if(!infra_host(sq->outnet->infra, &sq->addr, sq->addrlen, sq->zone,
1612 sq->zonelen, *sq->outnet->now_secs, &vs, &edns_lame_known,
1613 &rtt))
15371614 return 0;
15381615 if(vs != -1)
15391616 sq->status = serviced_query_TCP_EDNS;
15401617 else sq->status = serviced_query_TCP;
15411618 serviced_encode(sq, buff, sq->status == serviced_query_TCP_EDNS);
1619 sq->last_sent_time = *sq->outnet->now_tv;
15421620 sq->pending = pending_tcp_query(sq->outnet, buff, &sq->addr,
15431621 sq->addrlen, TCP_AUTH_QUERY_TIMEOUT, serviced_tcp_callback,
1544 sq);
1622 sq, sq->ssl_upstream);
15451623 return sq->pending != NULL;
15461624 }
15471625
15631641 * by EDNS. */
15641642 sq->status = serviced_query_UDP_EDNS;
15651643 }
1644 if(sq->status == serviced_query_UDP_EDNS && sq->last_rtt < 5000) {
1645 /* fallback to 1480/1280 */
1646 sq->status = serviced_query_UDP_EDNS_FRAG;
1647 log_name_addr(VERB_ALGO, "try edns1xx0", sq->qbuf+10,
1648 &sq->addr, sq->addrlen);
1649 if(!serviced_udp_send(sq, c->buffer)) {
1650 serviced_callbacks(sq, NETEVENT_CLOSED, c, rep);
1651 }
1652 return 0;
1653 }
1654 if(sq->status == serviced_query_UDP_EDNS_FRAG) {
1655 /* fragmentation size did not fix it */
1656 sq->status = serviced_query_UDP_EDNS;
1657 }
15661658 sq->retry++;
15671659 if(!(rto=infra_rtt_update(outnet->infra, &sq->addr, sq->addrlen,
1568 -1, sq->last_rtt, (uint32_t)now.tv_sec)))
1660 sq->zone, sq->zonelen, -1, sq->last_rtt,
1661 (uint32_t)now.tv_sec)))
15691662 log_err("out of memory in UDP exponential backoff");
15701663 if(sq->retry < OUTBOUND_UDP_RETRY) {
15711664 log_name_addr(VERB_ALGO, "retry query", sq->qbuf+10,
15881681 return 0;
15891682 }
15901683 if(!fallback_tcp) {
1591 if(sq->status == serviced_query_UDP_EDNS
1684 if( (sq->status == serviced_query_UDP_EDNS
1685 ||sq->status == serviced_query_UDP_EDNS_FRAG)
15921686 && (LDNS_RCODE_WIRE(ldns_buffer_begin(c->buffer))
15931687 == LDNS_RCODE_FORMERR || LDNS_RCODE_WIRE(
15941688 ldns_buffer_begin(c->buffer)) == LDNS_RCODE_NOTIMPL)) {
16081702 /* only store noEDNS in cache if domain is noDNSSEC */
16091703 if(!sq->want_dnssec)
16101704 if(!infra_edns_update(outnet->infra, &sq->addr, sq->addrlen,
1611 -1, (uint32_t)now.tv_sec)) {
1705 sq->zone, sq->zonelen, -1, (uint32_t)now.tv_sec)) {
16121706 log_err("Out of memory caching no edns for host");
16131707 }
16141708 sq->status = serviced_query_UDP;
16181712 log_addr(VERB_ALGO, "serviced query: EDNS works for",
16191713 &sq->addr, sq->addrlen);
16201714 if(!infra_edns_update(outnet->infra, &sq->addr, sq->addrlen,
1621 0, (uint32_t)now.tv_sec)) {
1715 sq->zone, sq->zonelen, 0, (uint32_t)now.tv_sec)) {
16221716 log_err("Out of memory caching edns works");
16231717 }
16241718 sq->edns_lame_known = 1;
16351729 log_addr(VERB_ALGO, "serviced query: EDNS fails for",
16361730 &sq->addr, sq->addrlen);
16371731 if(!infra_edns_update(outnet->infra, &sq->addr, sq->addrlen,
1638 -1, (uint32_t)now.tv_sec)) {
1732 sq->zone, sq->zonelen, -1, (uint32_t)now.tv_sec)) {
16391733 log_err("Out of memory caching no edns for host");
16401734 }
16411735 } else {
16531747 + ((int)now.tv_usec - (int)sq->last_sent_time.tv_usec)/1000;
16541748 verbose(VERB_ALGO, "measured roundtrip at %d msec", roundtime);
16551749 log_assert(roundtime >= 0);
1656 if(!infra_rtt_update(outnet->infra, &sq->addr, sq->addrlen,
1657 roundtime, sq->last_rtt, (uint32_t)now.tv_sec))
1750 /* in case the system hibernated, do not enter a huge value,
1751 * above this value gives trouble with server selection */
1752 if(roundtime < 60000) {
1753 if(!infra_rtt_update(outnet->infra, &sq->addr, sq->addrlen,
1754 sq->zone, sq->zonelen, roundtime, sq->last_rtt,
1755 (uint32_t)now.tv_sec))
16581756 log_err("out of memory noting rtt.");
1757 }
16591758 }
16601759 } /* end of if_!fallback_tcp */
16611760 /* perform TC flag check and TCP fallback after updating our
16641763 /* fallback to TCP */
16651764 /* this discards partial UDP contents */
16661765 if(sq->status == serviced_query_UDP_EDNS ||
1766 sq->status == serviced_query_UDP_EDNS_FRAG ||
16671767 sq->status == serviced_query_UDP_EDNS_fallback)
16681768 /* if we have unfinished EDNS_fallback, start again */
16691769 sq->status = serviced_query_TCP_EDNS;
16931793 outnet_serviced_query(struct outside_network* outnet,
16941794 uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
16951795 uint16_t flags, int dnssec, int want_dnssec, int tcp_upstream,
1696 struct sockaddr_storage* addr, socklen_t addrlen,
1697 comm_point_callback_t* callback, void* callback_arg,
1698 ldns_buffer* buff, int (*arg_compare)(void*,void*))
1796 int ssl_upstream, struct sockaddr_storage* addr, socklen_t addrlen,
1797 uint8_t* zone, size_t zonelen, comm_point_callback_t* callback,
1798 void* callback_arg, ldns_buffer* buff, int (*arg_compare)(void*,void*))
16991799 {
17001800 struct serviced_query* sq;
17011801 struct service_callback* cb;
17121812 if(!sq) {
17131813 /* make new serviced query entry */
17141814 sq = serviced_create(outnet, buff, dnssec, want_dnssec,
1715 addr, addrlen);
1815 tcp_upstream, ssl_upstream, addr, addrlen, zone,
1816 zonelen);
17161817 if(!sq) {
17171818 free(cb);
17181819 return NULL;
17191820 }
17201821 /* perform first network action */
1721 if(outnet->do_udp && !tcp_upstream) {
1822 if(outnet->do_udp && !(tcp_upstream || ssl_upstream)) {
17221823 if(!serviced_udp_send(sq, buff)) {
17231824 (void)rbtree_delete(outnet->serviced, sq);
17241825 free(sq->qbuf);
17671868 callback_list_remove(sq, cb_arg);
17681869 /* if callbacks() routine scheduled deletion, let it do that */
17691870 if(!sq->cblist && !sq->to_be_deleted) {
1770 rbnode_t* rem;
1771 rem = rbtree_delete(sq->outnet->serviced, sq);
1871 #ifdef UNBOUND_DEBUG
1872 rbnode_t* rem =
1873 #endif
1874 rbtree_delete(sq->outnet->serviced, sq);
17721875 log_assert(rem); /* should be present */
17731876 serviced_delete(sq);
17741877 }
18651968 if(sq->status == serviced_query_UDP_EDNS ||
18661969 sq->status == serviced_query_UDP ||
18671970 sq->status == serviced_query_PROBE_EDNS ||
1971 sq->status == serviced_query_UDP_EDNS_FRAG ||
18681972 sq->status == serviced_query_UDP_EDNS_fallback) {
18691973 s += sizeof(struct pending);
18701974 s += comm_timer_get_mem(NULL);
117117 struct infra_cache* infra;
118118 /** where to get random numbers */
119119 struct ub_randstate* rnd;
120 /** ssl context to create ssl wrapped TCP with DNS connections */
121 void* sslctx;
120122
121123 /**
122124 * Array of tcp pending used for outgoing TCP connections.
259261 comm_point_callback_t* cb;
260262 /** callback user argument */
261263 void* cb_arg;
264 /** if it uses ssl upstream */
265 int ssl_upstream;
262266 };
263267
264268 /**
272276 /** user argument for callback function */
273277 void* cb_arg;
274278 };
279
280 /** fallback size for fragmentation for EDNS in IPv4 */
281 #define EDNS_FRAG_SIZE_IP4 1480
282 /** fallback size for EDNS in IPv6, fits one fragment with ip6-tunnel-ids */
283 #define EDNS_FRAG_SIZE_IP6 1260
275284
276285 /**
277286 * Query service record.
292301 int dnssec;
293302 /** We want signatures, or else the answer is likely useless */
294303 int want_dnssec;
304 /** tcp upstream used, use tcp, or ssl_upstream for SSL */
305 int tcp_upstream, ssl_upstream;
295306 /** where to send it */
296307 struct sockaddr_storage addr;
297308 /** length of addr field in use. */
298309 socklen_t addrlen;
310 /** zone name, uncompressed domain name in wireformat */
311 uint8_t* zone;
312 /** length of zone name */
313 size_t zonelen;
299314 /** current status */
300315 enum serviced_query_status {
301316 /** initial status */
313328 /** probe to test noEDNS0 (EDNS gives FORMERRorNOTIMP) */
314329 serviced_query_UDP_EDNS_fallback,
315330 /** probe to test TCP noEDNS0 (EDNS gives FORMERRorNOTIMP) */
316 serviced_query_TCP_EDNS_fallback
331 serviced_query_TCP_EDNS_fallback,
332 /** send UDP query with EDNS1480 (or 1280) */
333 serviced_query_UDP_EDNS_FRAG
317334 }
318335 /** variable with current status */
319336 status;
355372 * @param unwanted_action: the action to take.
356373 * @param unwanted_param: user parameter to action.
357374 * @param do_udp: if udp is done.
375 * @param sslctx: context to create outgoing connections with (if enabled).
358376 * @return: the new structure (with no pending answers) or NULL on error.
359377 */
360378 struct outside_network* outside_network_create(struct comm_base* base,
362380 int do_ip4, int do_ip6, size_t num_tcp, struct infra_cache* infra,
363381 struct ub_randstate* rnd, int use_caps_for_id, int* availports,
364382 int numavailports, size_t unwanted_threshold,
365 void (*unwanted_action)(void*), void* unwanted_param, int do_udp);
383 void (*unwanted_action)(void*), void* unwanted_param, int do_udp,
384 void* sslctx);
366385
367386 /**
368387 * Delete outside_network structure.
405424 * without any query been sent to the server yet.
406425 * @param callback: function to call on error, timeout or reply.
407426 * @param callback_arg: user argument for callback function.
427 * @param ssl_upstream: if the tcp connection must use SSL.
408428 * @return: false on error for malloc or socket. Else the pending TCP object.
409429 */
410430 struct waiting_tcp* pending_tcp_query(struct outside_network* outnet,
411431 ldns_buffer* packet, struct sockaddr_storage* addr,
412432 socklen_t addrlen, int timeout, comm_point_callback_t* callback,
413 void* callback_arg);
433 void* callback_arg, int ssl_upstream);
414434
415435 /**
416436 * Delete pending answer.
435455 * @param want_dnssec: signatures are needed, without EDNS the answer is
436456 * likely to be useless.
437457 * @param tcp_upstream: use TCP for upstream queries.
458 * @param ssl_upstream: use SSL for upstream queries.
438459 * @param callback: callback function.
439460 * @param callback_arg: user argument to callback function.
440461 * @param addr: to which server to send the query.
441462 * @param addrlen: length of addr.
463 * @param zone: name of the zone of the delegation point. wireformat dname.
464 This is the delegation point name for which the server is deemed
465 authoritative.
466 * @param zonelen: length of zone.
442467 * @param buff: scratch buffer to create query contents in. Empty on exit.
443468 * @param arg_compare: function to compare callback args, return true if
444469 * identical. It is given the callback_arg and args that are listed.
448473 struct serviced_query* outnet_serviced_query(struct outside_network* outnet,
449474 uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
450475 uint16_t flags, int dnssec, int want_dnssec, int tcp_upstream,
451 struct sockaddr_storage* addr, socklen_t addrlen,
452 comm_point_callback_t* callback, void* callback_arg,
453 ldns_buffer* buff, int (*arg_compare)(void*,void*));
476 int ssl_upstream, struct sockaddr_storage* addr, socklen_t addrlen,
477 uint8_t* zone, size_t zonelen, comm_point_callback_t* callback,
478 void* callback_arg, ldns_buffer* buff,
479 int (*arg_compare)(void*,void*));
454480
455481 /**
456482 * Remove service query callback.
15821582 (void)BIO_seek(data.ds, 0);
15831583 len = BIO_get_mem_data(data.ds, &pp);
15841584 printf("got DS bio %d: '", len);
1585 (void)fwrite(pp, (size_t)len, 1, stdout);
1585 if(!fwrite(pp, (size_t)len, 1, stdout))
1586 /* compilers do not allow us to ignore fwrite .. */
1587 fprintf(stderr, "error writing to stdout\n");
15861588 printf("'\n");
15871589 }
15881590 BIO_free(data.czone);
254254 ldns_rr_set_owner(rr, NULL);
255255 status = ldns_wire2rdf(rr, rd, len+2, &pos);
256256 if(status != LDNS_STATUS_OK) {
257
258257 free(rd);
258 ldns_rr_free(rr);
259259 printf("error_printing_data");
260 return;
260261 }
261262 for(i=0; i<ldns_rr_rd_count(rr); i++) {
262263 printf(" ");
5050 #include "util/data/msgparse.h"
5151 #include "util/data/msgreply.h"
5252 #include "util/data/msgencode.h"
53 #include "util/data/dname.h"
5354 #include "util/config_file.h"
5455 #include "services/listen_dnsport.h"
5556 #include "services/outside_network.h"
547548 do_infra_rtt(struct replay_runtime* runtime)
548549 {
549550 struct replay_moment* now = runtime->now;
550 int rto = infra_rtt_update(runtime->infra, &now->addr,
551 now->addrlen, atoi(now->string), -1, runtime->now_secs);
551 int rto;
552 ldns_rdf* dp = ldns_dname_new_frm_str(now->variable);
553 if(!dp) fatal_exit("cannot parse %s", now->variable);
554 rto = infra_rtt_update(runtime->infra, &now->addr,
555 now->addrlen, ldns_rdf_data(dp), ldns_rdf_size(dp),
556 atoi(now->string), -1, runtime->now_secs);
552557 log_addr(0, "INFRA_RTT for", &now->addr, now->addrlen);
553 log_info("INFRA_RTT(roundtrip %d): rto of %d", atoi(now->string), rto);
558 log_info("INFRA_RTT(%s roundtrip %d): rto of %d", now->variable,
559 atoi(now->string), rto);
554560 if(rto == 0) fatal_exit("infra_rtt_update failed");
561 ldns_rdf_deep_free(dp);
555562 }
556563
557564 /**
700707 struct listen_dnsport*
701708 listen_create(struct comm_base* base, struct listen_port* ATTR_UNUSED(ports),
702709 size_t bufsize, int ATTR_UNUSED(tcp_accept_count),
703 comm_point_callback_t* cb, void* cb_arg)
710 void* ATTR_UNUSED(sslctx), comm_point_callback_t* cb, void* cb_arg)
704711 {
705712 struct replay_runtime* runtime = (struct replay_runtime*)base;
706713 struct listen_dnsport* l= calloc(1, sizeof(struct listen_dnsport));
869876 int ATTR_UNUSED(use_caps_for_id), int* ATTR_UNUSED(availports),
870877 int ATTR_UNUSED(numavailports), size_t ATTR_UNUSED(unwanted_threshold),
871878 void (*unwanted_action)(void*), void* ATTR_UNUSED(unwanted_param),
872 int ATTR_UNUSED(do_udp))
879 int ATTR_UNUSED(do_udp), void* ATTR_UNUSED(sslctx))
873880 {
874881 struct replay_runtime* runtime = (struct replay_runtime*)base;
875882 struct outside_network* outnet = calloc(1,
954961 struct waiting_tcp*
955962 pending_tcp_query(struct outside_network* outnet, ldns_buffer* packet,
956963 struct sockaddr_storage* addr, socklen_t addrlen, int timeout,
957 comm_point_callback_t* callback, void* callback_arg)
964 comm_point_callback_t* callback, void* callback_arg,
965 int ATTR_UNUSED(ssl_upstream))
958966 {
959967 struct replay_runtime* runtime = (struct replay_runtime*)outnet->base;
960968 struct fake_pending* pend = (struct fake_pending*)calloc(1,
10061014 struct serviced_query* outnet_serviced_query(struct outside_network* outnet,
10071015 uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
10081016 uint16_t flags, int dnssec, int ATTR_UNUSED(want_dnssec),
1009 int ATTR_UNUSED(tcp_upstream), struct sockaddr_storage* addr,
1010 socklen_t addrlen, comm_point_callback_t* callback, void* callback_arg,
1011 ldns_buffer* ATTR_UNUSED(buff), int (*arg_compare)(void*,void*))
1017 int ATTR_UNUSED(tcp_upstream), int ATTR_UNUSED(ssl_upstream),
1018 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone,
1019 size_t ATTR_UNUSED(zonelen), comm_point_callback_t* callback,
1020 void* callback_arg, ldns_buffer* ATTR_UNUSED(buff),
1021 int (*arg_compare)(void*,void*))
10121022 {
10131023 struct replay_runtime* runtime = (struct replay_runtime*)outnet->base;
10141024 struct fake_pending* pend = (struct fake_pending*)calloc(1,
10151025 sizeof(struct fake_pending));
1026 char z[256];
10161027 ldns_status status;
10171028 (void)arg_compare;
10181029 log_assert(pend);
10191030 log_nametypeclass(VERB_OPS, "pending serviced query",
10201031 qname, qtype, qclass);
1021 verbose(VERB_OPS, "pending serviced query flags%s%s%s%s",
1022 (flags&BIT_RD)?" RD":"", (flags&BIT_CD)?" CD":"",
1032 dname_str(zone, z);
1033 verbose(VERB_OPS, "pending serviced query zone %s flags%s%s%s%s",
1034 z, (flags&BIT_RD)?" RD":"", (flags&BIT_CD)?" CD":"",
10231035 (flags&~(BIT_RD|BIT_CD))?" MORE":"", (dnssec)?" DO":"");
10241036
10251037 /* create packet with EDNS */
7171 #ifdef HAVE_GETOPT_H
7272 #include <getopt.h>
7373 #endif
74 #include "ldns/ldns.h"
74 #include <ldns/ldns.h>
7575 #include <signal.h>
7676 #include "libunbound/unbound.h"
7777 #ifdef HAVE_SYS_STAT_H
4242 #ifdef HAVE_GETOPT_H
4343 #include <getopt.h>
4444 #endif
45 #include "ldns/ldns.h"
45 #include <ldns/ldns.h>
4646 #include <signal.h>
4747 #include "util/log.h"
4848 #include "util/locks.h"
3939 */
4040
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "util/log.h"
4444 #include "util/data/dname.h"
4545 #include "util/data/msgparse.h"
3939
4040 #ifndef TESTCODE_READHEX_H
4141 #define TESTCODE_READHEX_H
42 #include "ldns/buffer.h"
42 #include <ldns/buffer.h>
4343
4444 /**
4545 * Helper to convert hex string to packet buffer.
330330 mom->evt_type = repevt_assign;
331331 read_assign_step(remain, mom);
332332 } else if(parse_keyword(&remain, "INFRA_RTT")) {
333 char *s;
333 char *s, *m;
334334 mom->evt_type = repevt_infra_rtt;
335335 while(isspace((int)*remain))
336336 remain++;
337337 s = remain;
338338 remain = strchr(s, ' ');
339 if(!remain) fatal_exit("expected two args for INFRA_RTT");
339 if(!remain) fatal_exit("expected three args for INFRA_RTT");
340340 remain[0] = 0;
341341 remain++;
342342 while(isspace((int)*remain))
343343 remain++;
344 m = strchr(remain, ' ');
345 if(!m) fatal_exit("expected three args for INFRA_RTT");
346 m[0] = 0;
347 m++;
348 while(isspace((int)*m))
349 m++;
344350 if(!extstrtoaddr(s, &mom->addr, &mom->addrlen))
345351 fatal_exit("bad infra_rtt address %s", s);
346 if(strlen(remain)>0 && remain[strlen(remain)-1]=='\n')
347 remain[strlen(remain)-1] = 0;
348 mom->string = strdup(remain);
352 if(strlen(m)>0 && m[strlen(m)-1]=='\n')
353 m[strlen(m)-1] = 0;
354 mom->variable = strdup(remain);
355 mom->string = strdup(m);
349356 if(!mom->string) fatal_exit("out of memory");
357 if(!mom->variable) fatal_exit("out of memory");
350358 } else {
351359 log_err("%d: unknown event type %s", *lineno, remain);
352360 free(mom);
7474 * the step waits for traffic to stop.
7575 * o CHECK_AUTOTRUST [id] - followed by FILE_BEGIN [to match] FILE_END.
7676 * The file contents is macro expanded before match.
77 * o INFRA_RTT [ip] [rtt] - update infra cache entry with rtt.
77 * o INFRA_RTT [ip] [dp] [rtt] - update infra cache entry with rtt.
7878 * o ERROR
7979 * ; following entry starts on the next line, ENTRY_BEGIN.
8080 * ; more STEP items
3939 * construct input to test the validator with.
4040 */
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "util/log.h"
4444 #include "util/config_file.h"
4545 #include "util/net_help.h"
4242 #ifdef HAVE_GETOPT_H
4343 #include <getopt.h>
4444 #endif
45 #include "ldns/ldns.h"
45 #include <ldns/ldns.h>
4646 #include <signal.h>
4747 #include "util/locks.h"
4848 #include "util/log.h"
4949 #include "util/net_help.h"
5050 #include "util/data/msgencode.h"
51 #include "util/data/msgparse.h"
5152 #include "util/data/msgreply.h"
5253 #include "util/data/dname.h"
54 #include <openssl/err.h>
5355
5456 #ifndef PF_INET6
5557 /** define in case streamtcp is compiled on legacy systems */
6466 printf("-f server what ipaddr@portnr to send the queries to\n");
6567 printf("-u use UDP. No retries are attempted.\n");
6668 printf("-n do not wait for an answer.\n");
69 printf("-s use ssl\n");
6770 printf("-h this help text\n");
6871 exit(1);
6972 }
104107
105108 /** write a query over the TCP fd */
106109 static void
107 write_q(int fd, int udp, ldns_buffer* buf, int id,
110 write_q(int fd, int udp, SSL* ssl, ldns_buffer* buf, uint16_t id,
108111 const char* strname, const char* strtype, const char* strclass)
109112 {
110113 struct query_info qinfo;
127130
128131 /* make query */
129132 qinfo_query_encode(buf, &qinfo);
130 ldns_buffer_write_u16_at(buf, 0, (uint16_t)id);
133 ldns_buffer_write_u16_at(buf, 0, id);
131134 ldns_buffer_write_u16_at(buf, 2, BIT_RD);
135
136 if(1) {
137 /* add EDNS DO */
138 struct edns_data edns;
139 memset(&edns, 0, sizeof(edns));
140 edns.edns_present = 1;
141 edns.bits = EDNS_DO;
142 edns.udp_size = 4096;
143 attach_edns_record(buf, &edns);
144 }
132145
133146 /* send it */
134147 if(!udp) {
135148 len = (uint16_t)ldns_buffer_limit(buf);
136149 len = htons(len);
137 if(send(fd, (void*)&len, sizeof(len), 0)<(ssize_t)sizeof(len)){
138 #ifndef USE_WINSOCK
139 perror("send() len failed");
140 #else
141 printf("send len: %s\n",
142 wsa_strerror(WSAGetLastError()));
143 #endif
150 if(ssl) {
151 if(SSL_write(ssl, (void*)&len, (int)sizeof(len)) <= 0) {
152 log_crypto_err("cannot SSL_write");
153 exit(1);
154 }
155 } else {
156 if(send(fd, (void*)&len, sizeof(len), 0) <
157 (ssize_t)sizeof(len)){
158 #ifndef USE_WINSOCK
159 perror("send() len failed");
160 #else
161 printf("send len: %s\n",
162 wsa_strerror(WSAGetLastError()));
163 #endif
164 exit(1);
165 }
166 }
167 }
168 if(ssl) {
169 if(SSL_write(ssl, (void*)ldns_buffer_begin(buf),
170 (int)ldns_buffer_limit(buf)) <= 0) {
171 log_crypto_err("cannot SSL_write");
144172 exit(1);
145173 }
146 }
147 if(send(fd, (void*)ldns_buffer_begin(buf), ldns_buffer_limit(buf), 0) <
148 (ssize_t)ldns_buffer_limit(buf)) {
149 #ifndef USE_WINSOCK
150 perror("send() data failed");
151 #else
152 printf("send data: %s\n", wsa_strerror(WSAGetLastError()));
153 #endif
154 exit(1);
174 } else {
175 if(send(fd, (void*)ldns_buffer_begin(buf),
176 ldns_buffer_limit(buf), 0) <
177 (ssize_t)ldns_buffer_limit(buf)) {
178 #ifndef USE_WINSOCK
179 perror("send() data failed");
180 #else
181 printf("send data: %s\n", wsa_strerror(WSAGetLastError()));
182 #endif
183 exit(1);
184 }
155185 }
156186
157187 free(qinfo.qname);
159189
160190 /** receive DNS datagram over TCP and print it */
161191 static void
162 recv_one(int fd, int udp, ldns_buffer* buf)
192 recv_one(int fd, int udp, SSL* ssl, ldns_buffer* buf)
163193 {
164194 uint16_t len;
165195 ldns_pkt* pkt;
166196 ldns_status status;
167197 if(!udp) {
168 if(recv(fd, (void*)&len, sizeof(len), 0)<(ssize_t)sizeof(len)){
169 #ifndef USE_WINSOCK
170 perror("read() len failed");
171 #else
172 printf("read len: %s\n",
173 wsa_strerror(WSAGetLastError()));
174 #endif
175 exit(1);
198 if(ssl) {
199 if(SSL_read(ssl, (void*)&len, (int)sizeof(len)) <= 0) {
200 log_crypto_err("could not SSL_read");
201 exit(1);
202 }
203 } else {
204 if(recv(fd, (void*)&len, sizeof(len), 0) <
205 (ssize_t)sizeof(len)) {
206 #ifndef USE_WINSOCK
207 perror("read() len failed");
208 #else
209 printf("read len: %s\n",
210 wsa_strerror(WSAGetLastError()));
211 #endif
212 exit(1);
213 }
176214 }
177215 len = ntohs(len);
178216 ldns_buffer_clear(buf);
179217 ldns_buffer_set_limit(buf, len);
180 if(recv(fd, (void*)ldns_buffer_begin(buf), len, 0) <
181 (ssize_t)len) {
182 #ifndef USE_WINSOCK
183 perror("read() data failed");
184 #else
185 printf("read data: %s\n",
186 wsa_strerror(WSAGetLastError()));
187 #endif
188 exit(1);
218 if(ssl) {
219 int r = SSL_read(ssl, (void*)ldns_buffer_begin(buf),
220 (int)len);
221 if(r <= 0) {
222 log_crypto_err("could not SSL_read");
223 exit(1);
224 }
225 if(r != (int)len)
226 fatal_exit("ssl_read %d of %d", r, len);
227 } else {
228 if(recv(fd, (void*)ldns_buffer_begin(buf), len, 0) <
229 (ssize_t)len) {
230 #ifndef USE_WINSOCK
231 perror("read() data failed");
232 #else
233 printf("read data: %s\n",
234 wsa_strerror(WSAGetLastError()));
235 #endif
236 exit(1);
237 }
189238 }
190239 } else {
191240 ssize_t l;
219268
220269 /** send the TCP queries and print answers */
221270 static void
222 send_em(const char* svr, int udp, int noanswer, int num, char** qs)
271 send_em(const char* svr, int udp, int usessl, int noanswer, int num, char** qs)
223272 {
224273 ldns_buffer* buf = ldns_buffer_new(65553);
225274 int fd = open_svr(svr, udp);
226275 int i;
276 SSL_CTX* ctx = NULL;
277 SSL* ssl = NULL;
227278 if(!buf) fatal_exit("out of memory");
279 if(usessl) {
280 ctx = connect_sslctx_create(NULL, NULL, NULL);
281 if(!ctx) fatal_exit("cannot create ssl ctx");
282 ssl = outgoing_ssl_fd(ctx, fd);
283 if(!ssl) fatal_exit("cannot create ssl");
284 while(1) {
285 int r;
286 ERR_clear_error();
287 if( (r=SSL_do_handshake(ssl)) == 1)
288 break;
289 r = SSL_get_error(ssl, r);
290 if(r != SSL_ERROR_WANT_READ &&
291 r != SSL_ERROR_WANT_WRITE) {
292 log_crypto_err("could not ssl_handshake");
293 exit(1);
294 }
295 }
296 if(1) {
297 X509* x = SSL_get_peer_certificate(ssl);
298 if(!x) printf("SSL: no peer certificate\n");
299 else {
300 X509_print_fp(stdout, x);
301 X509_free(x);
302 }
303 }
304 }
228305 for(i=0; i<num; i+=3) {
229306 printf("\nNext query is %s %s %s\n", qs[i], qs[i+1], qs[i+2]);
230 write_q(fd, udp, buf, i, qs[i], qs[i+1], qs[i+2]);
307 write_q(fd, udp, ssl, buf, ldns_get_random(), qs[i],
308 qs[i+1], qs[i+2]);
231309 /* print at least one result */
232310 if(!noanswer)
233 recv_one(fd, udp, buf);
234 }
235
311 recv_one(fd, udp, ssl, buf);
312 }
313
314 if(usessl) {
315 SSL_shutdown(ssl);
316 SSL_free(ssl);
317 SSL_CTX_free(ctx);
318 }
236319 #ifndef USE_WINSOCK
237320 close(fd);
238321 #else
267350 const char* svr = "127.0.0.1";
268351 int udp = 0;
269352 int noanswer = 0;
353 int usessl = 0;
270354
271355 #ifdef USE_WINSOCK
272356 WSADATA wsa_data;
291375 if(argc == 1) {
292376 usage(argv);
293377 }
294 while( (c=getopt(argc, argv, "f:hnu")) != -1) {
378 while( (c=getopt(argc, argv, "f:hnsu")) != -1) {
295379 switch(c) {
296380 case 'f':
297381 svr = optarg;
302386 case 'u':
303387 udp = 1;
304388 break;
389 case 's':
390 usessl = 1;
391 break;
305392 case 'h':
306393 case '?':
307394 default:
315402 printf("queries must be multiples of name,type,class\n");
316403 return 1;
317404 }
318 send_em(svr, udp, noanswer, argc, argv);
405 if(usessl) {
406 ERR_load_SSL_strings();
407 OpenSSL_add_all_algorithms();
408 SSL_library_init();
409 }
410 send_em(svr, udp, usessl, noanswer, argc, argv);
319411 checklock_stop();
320412 #ifdef USE_WINSOCK
321413 WSACleanup();
3838 */
3939
4040 #include "config.h"
41 #include "ldns/rr.h"
41 #include <ldns/rr.h>
4242 #include "util/log.h"
4343 #include "util/data/dname.h"
4444 #include "testcode/unitmain.h"
3838 */
3939
4040 #include "config.h"
41 #include "ldns/dname.h"
42 #include "ldns/host2wire.h"
41 #include <ldns/dname.h>
42 #include <ldns/host2wire.h>
4343 #include "util/log.h"
4444 #include "testcode/unitmain.h"
4545 #include "util/data/dname.h"
5454 #ifdef HAVE_OPENSSL_ENGINE_H
5555 #include <openssl/engine.h>
5656 #endif
57 #include "ldns/ldns.h"
57 #include <ldns/ldns.h>
5858 #include "util/log.h"
5959 #include "testcode/unitmain.h"
6060
400400
401401 #include "services/cache/infra.h"
402402 #include "util/config_file.h"
403
404 /* lookup and get key and data structs easily */
405 static struct infra_data* infra_lookup_host(struct infra_cache* infra,
406 struct sockaddr_storage* addr, socklen_t addrlen, uint8_t* zone,
407 size_t zonelen, int wr, uint32_t now, struct infra_key** k)
408 {
409 struct infra_data* d;
410 struct lruhash_entry* e = infra_lookup_nottl(infra, addr, addrlen,
411 zone, zonelen, wr);
412 if(!e) return NULL;
413 d = (struct infra_data*)e->data;
414 if(d->ttl < now) {
415 lock_rw_unlock(&e->lock);
416 return NULL;
417 }
418 *k = (struct infra_key*)e->key;
419 return d;
420 }
421
403422 /** test host cache */
404423 static void
405424 infra_test(void)
413432 uint32_t now = 0;
414433 uint8_t edns_lame;
415434 int vs, to;
416 struct infra_host_key* k;
417 struct infra_host_data* d;
435 struct infra_key* k;
436 struct infra_data* d;
418437 int init = 376;
419 int dlame, rlame, alame, olame;
420438
421439 unit_show_feature("infra cache");
422440 unit_assert(ipstrtoaddr("127.0.0.1", 53, &one, &onelen));
423441
424442 slab = infra_create(cfg);
425 unit_assert( infra_host(slab, (struct sockaddr_storage*)&one,
426 (socklen_t)sizeof(int), now, &vs, &edns_lame, &to) );
443 unit_assert( infra_host(slab, &one, onelen, zone, zonelen, now,
444 &vs, &edns_lame, &to) );
427445 unit_assert( vs == 0 && to == init && edns_lame == 0 );
428446
429 unit_assert( infra_rtt_update(slab, &one, onelen, -1, init, now) );
430 unit_assert( infra_host(slab, &one, onelen,
447 unit_assert( infra_rtt_update(slab, &one, onelen, zone, zonelen, -1, init, now) );
448 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
431449 now, &vs, &edns_lame, &to) );
432450 unit_assert( vs == 0 && to == init*2 && edns_lame == 0 );
433451
434 unit_assert( infra_edns_update(slab, &one, onelen, -1, now) );
435 unit_assert( infra_host(slab, &one, onelen,
452 unit_assert( infra_edns_update(slab, &one, onelen, zone, zonelen, -1, now) );
453 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
436454 now, &vs, &edns_lame, &to) );
437455 unit_assert( vs == -1 && to == init*2 && edns_lame == 1);
438456
439457 now += cfg->host_ttl + 10;
440 unit_assert( infra_host(slab, &one, onelen,
458 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
441459 now, &vs, &edns_lame, &to) );
442460 unit_assert( vs == 0 && to == init && edns_lame == 0 );
443461
444 unit_assert( infra_set_lame(slab, &one, onelen,
462 unit_assert( infra_set_lame(slab, &one, onelen,
445463 zone, zonelen, now, 0, 0, LDNS_RR_TYPE_A) );
446 unit_assert( (d=infra_lookup_host(slab, &one, onelen, 0, now, &k)) );
464 unit_assert( (d=infra_lookup_host(slab, &one, onelen, zone, zonelen, 0, now, &k)) );
447465 unit_assert( d->ttl == now+cfg->host_ttl );
448466 unit_assert( d->edns_version == 0 );
449 unit_assert( infra_lookup_lame(d, zone, zonelen, now,
450 &dlame, &rlame, &alame, &olame) );
451 unit_assert(!dlame && !rlame && alame && !olame);
452 unit_assert( !infra_lookup_lame(d, zone, zonelen,
453 now+cfg->lame_ttl+10, &dlame, &rlame, &alame, &olame) );
454 unit_assert( !infra_lookup_lame(d, (uint8_t*)"\000", 1, now,
455 &dlame, &rlame, &alame, &olame) );
467 unit_assert(!d->isdnsseclame && !d->rec_lame && d->lame_type_A &&
468 !d->lame_other);
456469 lock_rw_unlock(&k->entry.lock);
457470
458471 /* test merge of data */
459 unit_assert( infra_set_lame(slab, &one, onelen,
472 unit_assert( infra_set_lame(slab, &one, onelen,
460473 zone, zonelen, now, 0, 0, LDNS_RR_TYPE_AAAA) );
461 unit_assert( (d=infra_lookup_host(slab, &one, onelen, 0, now, &k)) );
462 unit_assert( infra_lookup_lame(d, zone, zonelen, now,
463 &dlame, &rlame, &alame, &olame) );
464 unit_assert(!dlame && !rlame && alame && olame);
474 unit_assert( (d=infra_lookup_host(slab, &one, onelen, zone, zonelen, 0, now, &k)) );
475 unit_assert(!d->isdnsseclame && !d->rec_lame && d->lame_type_A &&
476 d->lame_other);
465477 lock_rw_unlock(&k->entry.lock);
466478
467479 /* test that noEDNS cannot overwrite known-yesEDNS */
468480 now += cfg->host_ttl + 10;
469 unit_assert( infra_host(slab, &one, onelen,
481 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
470482 now, &vs, &edns_lame, &to) );
471483 unit_assert( vs == 0 && to == init && edns_lame == 0 );
472484
473 unit_assert( infra_edns_update(slab, &one, onelen, 0, now) );
474 unit_assert( infra_host(slab, &one, onelen,
485 unit_assert( infra_edns_update(slab, &one, onelen, zone, zonelen, 0, now) );
486 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
475487 now, &vs, &edns_lame, &to) );
476488 unit_assert( vs == 0 && to == init && edns_lame == 1 );
477489
478 unit_assert( infra_edns_update(slab, &one, onelen, -1, now) );
479 unit_assert( infra_host(slab, &one, onelen,
490 unit_assert( infra_edns_update(slab, &one, onelen, zone, zonelen, -1, now) );
491 unit_assert( infra_host(slab, &one, onelen, zone, zonelen,
480492 now, &vs, &edns_lame, &to) );
481493 unit_assert( vs == 0 && to == init && edns_lame == 1 );
482494
3838 */
3939
4040 #include "config.h"
41 #include "ldns/ldns.h"
41 #include <ldns/ldns.h>
4242 #include "util/log.h"
4343 #include "testcode/unitmain.h"
4444 #include "util/data/msgparse.h"
5858 static int matches_nolocation = 0;
5959 /** see if RRSIGs are properly matched to RRsets. */
6060 static int check_rrsigs = 0;
61 /** do not check buffer sameness */
62 static int check_nosameness = 0;
6163
6264 /** match two rr lists */
6365 static int
430432 if(vbmp) printf("inlen %u outlen %u\n",
431433 (unsigned)ldns_buffer_limit(pkt),
432434 (unsigned)ldns_buffer_limit(out));
433 test_buffers(pkt, out);
435 if(!check_nosameness)
436 test_buffers(pkt, out);
434437 if(check_rrsigs)
435438 check_the_rrsigs(&qi, rep);
436439
606609 testfromdrillfile(pkt, &alloc, out, "testdata/test_packets.8");
607610 check_formerr_gone = 0;
608611
612 check_rrsigs = 1;
613 check_nosameness = 1;
614 testfromdrillfile(pkt, &alloc, out, "testdata/test_packets.9");
615 check_nosameness = 0;
616 check_rrsigs = 0;
617
609618 /* cleanup */
610619 alloc_clear(&alloc);
611620 alloc_clear(&super_a);
237237 ; store bad timing for one server to influence server selection
238238 ; 1.2.3.44 (ns.example.net) gets 900 msec.
239239 ; so the 376 ns.example.com is preferred.
240 STEP 1 INFRA_RTT 1.2.3.44 900
240 STEP 1 INFRA_RTT 1.2.3.44 example.net. 900
241241
242242 STEP 10 QUERY
243243 ENTRY_BEGIN
Binary diff not shown
0 ; Test that RRSIG(SOA) is matched with the SOA record.
1 ; Test that FORMERR no longer happens.
2 ; This is output from the PowerDNS online signer.
3 ;
4 ;-- next packet --
5 E2C084000001000000040
6 0010E686F74656C6C73616E746961676F02736500000F0001C00C0006000100000E10002C036E733
7 30662696E65726FC01B087265676973747279C0334EDFD75C0000A8C000000E1000093A8000000E1
8 02075616D326963717673707635356136746A306C6C32336B71376E766D666E6136C00C003200010
9 0001C2000240100000101AB14D7425114B28CE784C3A3D9B8FC5D920A8D7B5570000762000000000
10 290C00C002E000100001C2000A50006080200001C204EE938804ED6C38085F80E686F74656C6C736
11 16E746961676F02736500442DF70F92FCFDF5F5D3560194FCDE01B91CE6AC00910CDDA550F985C84
12 F4FA1FD8DFD
13 957F4382C276FD26E5A
14 3C10C494DCB6D0132F930595A0901D4E0616679EA426F7D45A683CA7236F8532C1E3B3B82EF6B0C0
15 2E43999F8B8FF0B001968E10AFAEFA7774FC003ED0E43DDEA776596AFD91DADECA5AD505107F97AC
16 467264EC05B002E000100001C2000A50032080300001C204EE938804ED6C38085F80E686F74656C6
17 C73616E746961676F027365000D4700DE3055046F2CC0529307903D40FEFC7ECFF29BB5B6B7427EB
18 11B06669605B1ADFC070DAF801FB3EB59446F6C7BE5D4BC7C725BFEF2F5F416BCC8A090692F5CE76
19 85923DD102677C9224E69FF10167EF8C0EC18070E986E9F0266C7CBB3270A9CD6C562157EC1074B6
20 F48553DD58BBE
21 12A63202C9A1DB7DA5F8560849580000295800000080000000
22
176176 void* arg);
177177
178178 #ifdef UNBOUND_ALLOC_LITE
179 # include "ldns/packet.h"
180 # include "openssl/ssl.h"
179 # include <ldns/packet.h>
180 # include <openssl/ssl.h>
181181 # define malloc(s) unbound_stat_malloc_lite(s, __FILE__, __LINE__, __func__)
182182 # define calloc(n,s) unbound_stat_calloc_lite(n, s, __FILE__, __LINE__, __func__)
183183 # define free(p) unbound_stat_free_lite(p, __FILE__, __LINE__, __func__)
4040
4141 #include "config.h"
4242 #include <ctype.h>
43 #include "ldns/ldns.h"
43 #include <ldns/ldns.h>
4444 #include "util/log.h"
4545
4646 #include "util/configyyrename.h"
8787 cfg->do_udp = 1;
8888 cfg->do_tcp = 1;
8989 cfg->tcp_upstream = 0;
90 cfg->ssl_service_key = NULL;
91 cfg->ssl_service_pem = NULL;
92 cfg->ssl_port = 443;
93 cfg->ssl_upstream = 0;
9094 cfg->use_syslog = 1;
9195 cfg->log_time_ascii = 0;
9296 cfg->log_queries = 0;
116120 cfg->rrset_cache_size = 4 * 1024 * 1024;
117121 cfg->rrset_cache_slabs = 4;
118122 cfg->host_ttl = 900;
119 cfg->lame_ttl = 900;
120123 cfg->bogus_ttl = 60;
121124 cfg->min_ttl = 0;
122125 cfg->max_ttl = 3600 * 24;
124127 cfg->prefetch_key = 0;
125128 cfg->infra_cache_slabs = 4;
126129 cfg->infra_cache_numhosts = 10000;
127 cfg->infra_cache_lame_size = 10240; /* easily 40 or more entries */
128130 if(!(cfg->outgoing_avail_ports = (int*)calloc(65536, sizeof(int))))
129131 goto error_exit;
130132 init_outgoing_availports(cfg->outgoing_avail_ports, 65536);
327329 else S_YNO("do-udp:", do_udp)
328330 else S_YNO("do-tcp:", do_tcp)
329331 else S_YNO("tcp-upstream:", tcp_upstream)
332 else S_YNO("ssl-upstream:", ssl_upstream)
333 else S_STR("ssl-service-key:", ssl_service_key)
334 else S_STR("ssl-service-pem:", ssl_service_pem)
335 else S_NUMBER_NONZERO("ssl-port:", ssl_port)
330336 else S_YNO("interface-automatic:", if_automatic)
331337 else S_YNO("do-daemonize:", do_daemonize)
332338 else S_NUMBER_NONZERO("port:", port)
347353 else S_YNO("prefetch-key:", prefetch_key)
348354 else S_NUMBER_OR_ZERO("cache-max-ttl:", max_ttl)
349355 else S_NUMBER_OR_ZERO("infra-host-ttl:", host_ttl)
350 else S_NUMBER_OR_ZERO("infra-lame-ttl:", lame_ttl)
351356 else S_POW2("infra-cache-slabs:", infra_cache_slabs)
352357 else S_SIZET_NONZERO("infra-cache-numhosts:", infra_cache_numhosts)
353 else S_MEMSIZE("infra-cache-lame-size:", infra_cache_lame_size)
354358 else S_STR("chroot:", chrootdir)
355359 else S_STR("username:", username)
356360 else S_STR("directory:", directory)
570574 else O_YNO(opt, "prefetch", prefetch)
571575 else O_DEC(opt, "cache-max-ttl", max_ttl)
572576 else O_DEC(opt, "infra-host-ttl", host_ttl)
573 else O_DEC(opt, "infra-lame-ttl", lame_ttl)
574577 else O_DEC(opt, "infra-cache-slabs", infra_cache_slabs)
575578 else O_MEM(opt, "infra-cache-numhosts", infra_cache_numhosts)
576 else O_MEM(opt, "infra-cache-lame-size", infra_cache_lame_size)
577579 else O_YNO(opt, "do-ip4", do_ip4)
578580 else O_YNO(opt, "do-ip6", do_ip6)
579581 else O_YNO(opt, "do-udp", do_udp)
580582 else O_YNO(opt, "do-tcp", do_tcp)
581583 else O_YNO(opt, "tcp-upstream", tcp_upstream)
584 else O_YNO(opt, "ssl-upstream", ssl_upstream)
585 else O_STR(opt, "ssl-service-key", ssl_service_key)
586 else O_STR(opt, "ssl-service-pem", ssl_service_pem)
587 else O_DEC(opt, "ssl-port", ssl_port)
582588 else O_YNO(opt, "do-daemonize", do_daemonize)
583589 else O_STR(opt, "chroot", chrootdir)
584590 else O_STR(opt, "username", username)
733739 free(cfg->logfile);
734740 free(cfg->pidfile);
735741 free(cfg->target_fetch_policy);
742 free(cfg->ssl_service_key);
743 free(cfg->ssl_service_pem);
736744 if(cfg->ifs) {
737745 int i;
738746 for(i=0; i<cfg->num_ifs; i++)
7878 /** tcp upstream queries (no UDP upstream queries) */
7979 int tcp_upstream;
8080
81 /** private key file for dnstcp-ssl service (enabled if not NULL) */
82 char* ssl_service_key;
83 /** public key file for dnstcp-ssl service */
84 char* ssl_service_pem;
85 /** port on which to provide ssl service */
86 int ssl_port;
87 /** if outgoing tcp connections use SSL */
88 int ssl_upstream;
89
8190 /** outgoing port range number of ports (per thread) */
8291 int outgoing_num_ports;
8392 /** number of outgoing tcp buffers per (per thread) */
105114 size_t rrset_cache_slabs;
106115 /** host cache ttl in seconds */
107116 int host_ttl;
108 /** host is lame for a zone ttl, in seconds */
109 int lame_ttl;
110117 /** number of slabs in the infra host cache */
111118 size_t infra_cache_slabs;
112119 /** max number of hosts in the infra cache */
113120 size_t infra_cache_numhosts;
114 /** max size of lame zones per host in the infra cache */
115 size_t infra_cache_lame_size;
116121
117122 /** the target fetch policy for the iterator */
118123 char* target_fetch_policy;
361361 *yy_cp = '\0'; \
362362 (yy_c_buf_p) = yy_cp;
363363
364 #define YY_NUM_RULES 134
365 #define YY_END_OF_BUFFER 135
364 #define YY_NUM_RULES 138
365 #define YY_END_OF_BUFFER 139
366366 /* This struct is not used in this scanner,
367367 but its presence is necessary. */
368368 struct yy_trans_info
370370 flex_int32_t yy_verify;
371371 flex_int32_t yy_nxt;
372372 };
373 static yyconst flex_int16_t yy_accept[1270] =
373 static yyconst flex_int16_t yy_accept[1303] =
374374 { 0,
375 1, 1, 116, 116, 120, 120, 124, 124, 128, 128,
376 1, 1, 135, 132, 1, 114, 114, 133, 2, 132,
377 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
378 132, 132, 132, 132, 132, 132, 132, 132, 133, 116,
379 117, 117, 118, 133, 120, 121, 121, 122, 133, 127,
380 124, 125, 125, 126, 133, 128, 129, 129, 130, 133,
381 131, 115, 2, 119, 131, 133, 132, 0, 1, 2,
382 2, 2, 2, 132, 132, 132, 132, 132, 132, 132,
383 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
384 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
385
386 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
387 132, 132, 132, 132, 132, 132, 132, 116, 0, 120,
388 0, 127, 0, 124, 128, 0, 131, 0, 2, 2,
389 131, 132, 132, 132, 132, 132, 132, 132, 132, 132,
390 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
391 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
392 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
393 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
394 132, 132, 131, 132, 132, 132, 132, 132, 132, 132,
395 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
396
397 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
398 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
399 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
400 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
401 132, 132, 132, 131, 132, 132, 132, 132, 132, 132,
402 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
403 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
404 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
405 58, 132, 132, 132, 132, 132, 6, 132, 132, 132,
406 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
407
408 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
409 132, 132, 132, 132, 131, 132, 132, 132, 132, 132,
410 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
411 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
412 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
413 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
414 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
415 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
416 132, 132, 132, 132, 132, 132, 132, 132, 132, 131,
417 132, 132, 132, 132, 23, 132, 132, 132, 132, 132,
418
419 12, 13, 132, 15, 14, 132, 132, 132, 132, 132,
420 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
421 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
422 132, 132, 132, 132, 132, 132, 132, 132, 132, 112,
423 132, 132, 132, 132, 3, 132, 132, 132, 132, 132,
424 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
425 132, 132, 132, 132, 132, 132, 132, 132, 132, 131,
426 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
427 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
428 132, 132, 132, 132, 132, 123, 132, 132, 132, 132,
429
430 132, 132, 132, 132, 132, 132, 132, 132, 26, 132,
431 132, 132, 132, 132, 132, 132, 27, 132, 132, 132,
432 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
433 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
434 132, 132, 132, 132, 132, 132, 132, 132, 71, 123,
435 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
436 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
437 132, 132, 132, 132, 132, 132, 132, 132, 132, 70,
438 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
439 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
440
441 132, 56, 132, 132, 132, 132, 132, 132, 132, 132,
442 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
443 132, 132, 132, 132, 24, 132, 132, 132, 132, 132,
444 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
445 132, 132, 132, 132, 25, 132, 132, 132, 132, 132,
446 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
447 132, 132, 132, 132, 132, 132, 132, 132, 18, 132,
448 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
449 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
450 132, 132, 132, 132, 132, 21, 22, 132, 59, 60,
451
452 132, 57, 132, 132, 132, 132, 132, 132, 132, 132,
453 132, 132, 132, 132, 132, 132, 5, 132, 132, 132,
454 132, 132, 132, 132, 132, 132, 132, 132, 132, 73,
455 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
456 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
457 132, 132, 132, 132, 132, 132, 98, 97, 132, 132,
458 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
459 132, 132, 132, 132, 132, 28, 132, 132, 132, 132,
460 61, 132, 132, 132, 132, 132, 132, 94, 132, 132,
461 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
462
463 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
464 132, 132, 132, 132, 132, 132, 132, 47, 132, 132,
465 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
466 132, 132, 132, 132, 96, 132, 132, 132, 132, 132,
467 132, 132, 4, 132, 132, 132, 132, 132, 132, 132,
468 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
469 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
470 132, 91, 132, 132, 132, 132, 132, 132, 132, 106,
471 92, 132, 17, 132, 132, 132, 132, 63, 64, 62,
472 132, 132, 132, 132, 132, 132, 69, 132, 132, 132,
473
474 132, 132, 132, 132, 132, 132, 93, 132, 132, 132,
475 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
476 132, 55, 132, 132, 132, 132, 132, 132, 132, 132,
477 132, 132, 16, 132, 78, 132, 132, 132, 132, 132,
478 132, 132, 132, 132, 132, 132, 132, 35, 36, 132,
479 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
480 132, 132, 132, 132, 68, 132, 132, 132, 132, 132,
481 132, 132, 132, 132, 132, 132, 132, 132, 72, 132,
482 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
483 111, 132, 132, 132, 132, 132, 132, 132, 132, 132,
484
485 132, 132, 132, 82, 132, 86, 132, 132, 132, 132,
486 67, 132, 132, 104, 132, 132, 132, 132, 132, 132,
487 132, 132, 132, 132, 132, 132, 132, 85, 132, 132,
488 132, 132, 37, 38, 132, 43, 87, 132, 99, 95,
489 132, 31, 132, 89, 132, 132, 132, 132, 132, 7,
490 132, 54, 103, 132, 132, 132, 132, 132, 132, 132,
491 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
492 132, 132, 132, 132, 74, 132, 132, 113, 132, 132,
493 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
494 88, 30, 32, 132, 132, 132, 132, 132, 53, 132,
495
496 132, 132, 107, 132, 132, 132, 132, 132, 132, 51,
497 132, 132, 132, 132, 132, 132, 132, 132, 132, 109,
498 132, 132, 29, 132, 132, 132, 132, 132, 132, 11,
499 132, 132, 132, 132, 132, 132, 10, 132, 132, 33,
500 132, 108, 132, 132, 132, 132, 132, 132, 132, 132,
501 132, 132, 81, 80, 132, 110, 105, 132, 132, 132,
502 132, 132, 132, 132, 132, 132, 132, 39, 132, 132,
503 132, 132, 132, 34, 132, 132, 132, 75, 77, 132,
504 132, 132, 79, 132, 132, 132, 132, 132, 132, 132,
505 132, 132, 132, 132, 132, 132, 132, 19, 132, 132,
506
507 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
508 102, 132, 132, 132, 132, 132, 132, 132, 20, 132,
509 9, 132, 132, 100, 44, 132, 132, 132, 84, 132,
510 65, 132, 132, 132, 46, 50, 45, 132, 40, 132,
511 8, 132, 132, 83, 132, 132, 132, 49, 132, 41,
512 132, 101, 132, 132, 76, 66, 48, 42, 132, 132,
513 132, 132, 52, 132, 132, 132, 132, 90, 0
375 1, 1, 120, 120, 124, 124, 128, 128, 132, 132,
376 1, 1, 139, 136, 1, 118, 118, 137, 2, 136,
377 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
378 136, 136, 136, 136, 136, 136, 136, 136, 137, 120,
379 121, 121, 122, 137, 124, 125, 125, 126, 137, 131,
380 128, 129, 129, 130, 137, 132, 133, 133, 134, 137,
381 135, 119, 2, 123, 135, 137, 136, 0, 1, 2,
382 2, 2, 2, 136, 136, 136, 136, 136, 136, 136,
383 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
384 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
385
386 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
387 136, 136, 136, 136, 136, 136, 136, 136, 120, 0,
388 124, 0, 131, 0, 128, 132, 0, 135, 0, 2,
389 2, 135, 136, 136, 136, 136, 136, 136, 136, 136,
390 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
391 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
392 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
393 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
394 136, 136, 136, 136, 135, 136, 136, 136, 136, 136,
395 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
396
397 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
398 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
399 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
400 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
401 136, 136, 136, 136, 136, 136, 135, 136, 136, 136,
402 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
403 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
404 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
405 136, 136, 136, 62, 136, 136, 136, 136, 136, 6,
406 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
407
408 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
409 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
410 135, 136, 136, 136, 136, 136, 136, 136, 136, 136,
411 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
412 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
413 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
414 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
415 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
416 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
417 136, 136, 136, 136, 136, 136, 136, 136, 135, 136,
418
419 136, 136, 136, 27, 136, 136, 136, 136, 136, 12,
420 13, 136, 15, 14, 136, 136, 136, 136, 136, 136,
421 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
422 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
423 136, 136, 136, 136, 136, 136, 136, 136, 116, 136,
424 136, 136, 136, 3, 136, 136, 136, 136, 136, 136,
425 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
426 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
427 136, 135, 136, 136, 136, 136, 136, 136, 136, 136,
428 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
429
430 136, 136, 136, 136, 136, 136, 136, 127, 136, 136,
431 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
432 30, 136, 136, 136, 136, 136, 136, 136, 31, 136,
433 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
434 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
435 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
436 136, 136, 136, 75, 127, 136, 136, 136, 136, 136,
437 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
438 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
439 136, 136, 136, 136, 74, 136, 136, 136, 136, 136,
440
441 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
442 136, 136, 136, 136, 136, 136, 60, 136, 136, 136,
443 136, 136, 136, 136, 136, 136, 136, 20, 136, 136,
444 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
445 136, 136, 28, 136, 136, 136, 136, 136, 136, 136,
446 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
447 136, 136, 29, 136, 136, 136, 136, 136, 136, 136,
448 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
449 136, 136, 136, 136, 136, 136, 22, 136, 136, 136,
450 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
451
452 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
453 136, 136, 136, 25, 26, 136, 136, 136, 63, 64,
454 136, 61, 136, 136, 136, 136, 136, 136, 136, 136,
455 136, 136, 136, 136, 136, 136, 5, 136, 136, 136,
456 136, 136, 136, 136, 136, 136, 136, 136, 136, 77,
457 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
458 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
459 136, 136, 136, 136, 136, 136, 102, 101, 136, 136,
460 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
461 136, 136, 136, 136, 136, 32, 136, 136, 136, 136,
462
463 136, 136, 65, 136, 136, 136, 136, 136, 136, 98,
464 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
465 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
466 136, 136, 136, 136, 136, 136, 136, 136, 136, 51,
467 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
468 136, 136, 136, 136, 136, 136, 100, 136, 136, 136,
469 136, 136, 136, 136, 4, 136, 136, 136, 136, 136,
470 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
471 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
472 136, 136, 136, 136, 136, 95, 136, 136, 136, 136,
473
474 136, 136, 136, 110, 96, 136, 21, 136, 136, 136,
475 136, 67, 68, 66, 136, 136, 136, 136, 136, 136,
476 73, 136, 136, 136, 136, 136, 136, 136, 136, 136,
477 97, 136, 136, 136, 136, 136, 136, 136, 136, 136,
478 136, 136, 136, 136, 136, 59, 136, 136, 136, 136,
479 136, 136, 136, 136, 136, 17, 136, 136, 136, 16,
480 136, 82, 136, 136, 136, 136, 136, 136, 136, 136,
481 136, 136, 136, 136, 39, 40, 136, 136, 136, 136,
482 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
483 136, 72, 136, 136, 136, 136, 136, 136, 136, 136,
484
485 136, 136, 136, 136, 136, 76, 136, 136, 136, 136,
486 136, 136, 136, 136, 136, 136, 136, 115, 136, 136,
487 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
488 136, 136, 86, 136, 90, 136, 136, 136, 136, 71,
489 136, 136, 108, 136, 136, 136, 136, 136, 136, 136,
490 136, 136, 136, 136, 136, 136, 89, 136, 136, 136,
491 136, 41, 42, 136, 47, 91, 136, 103, 99, 136,
492 35, 136, 93, 136, 136, 136, 136, 136, 7, 136,
493 58, 107, 136, 136, 136, 136, 136, 136, 136, 136,
494 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
495
496 136, 136, 136, 136, 136, 78, 136, 136, 117, 136,
497 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
498 136, 92, 34, 36, 136, 136, 136, 136, 136, 57,
499 136, 136, 136, 111, 18, 19, 136, 136, 136, 136,
500 136, 136, 55, 136, 136, 136, 136, 136, 136, 136,
501 136, 136, 113, 136, 136, 33, 136, 136, 136, 136,
502 136, 136, 11, 136, 136, 136, 136, 136, 136, 10,
503 136, 136, 37, 136, 112, 136, 136, 136, 136, 136,
504 136, 136, 136, 136, 136, 85, 84, 136, 114, 109,
505 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
506
507 43, 136, 136, 136, 136, 136, 38, 136, 136, 136,
508 79, 81, 136, 136, 136, 83, 136, 136, 136, 136,
509 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
510 23, 136, 136, 136, 136, 136, 136, 136, 136, 136,
511 136, 136, 136, 106, 136, 136, 136, 136, 136, 136,
512 136, 24, 136, 9, 136, 136, 104, 48, 136, 136,
513 136, 88, 136, 69, 136, 136, 136, 50, 54, 49,
514 136, 44, 136, 8, 136, 136, 87, 136, 136, 136,
515 53, 136, 45, 136, 105, 136, 136, 80, 70, 52,
516 46, 136, 136, 136, 136, 56, 136, 136, 136, 136,
517
518 94, 0
514519 } ;
515520
516521 static yyconst flex_int32_t yy_ec[256] =
556561 1, 1, 1, 1, 1
557562 } ;
558563
559 static yyconst flex_int16_t yy_base[1284] =
564 static yyconst flex_int16_t yy_base[1317] =
560565 { 0,
561566 0, 0, 63, 66, 69, 71, 77, 83, 88, 91,
562 129, 135, 364, 281, 95, 3685, 3685, 3685, 107, 110,
567 129, 135, 489, 442, 95, 3745, 3745, 3745, 107, 110,
563568 142, 140, 108, 50, 159, 147, 121, 148, 158, 174,
564 191, 176, 190, 216, 225, 226, 195, 232, 116, 276,
565 3685, 3685, 3685, 94, 247, 3685, 3685, 3685, 96, 223,
566 259, 3685, 3685, 3685, 273, 211, 3685, 3685, 3685, 102,
567 186, 3685, 283, 3685, 184, 287, 179, 291, 111, 0,
568 295, 0, 0, 180, 224, 242, 267, 274, 279, 284,
569 280, 277, 304, 288, 285, 291, 303, 310, 308, 319,
570 336, 297, 322, 331, 324, 343, 332, 346, 344, 348,
571
572 358, 349, 373, 359, 374, 366, 369, 372, 137, 391,
573 380, 386, 376, 393, 399, 409, 405, 177, 154, 175,
574 199, 163, 445, 176, 115, 254, 90, 452, 459, 0,
575 430, 429, 395, 426, 438, 440, 442, 431, 458, 432,
576 487, 465, 451, 467, 448, 473, 478, 488, 461, 494,
577 493, 490, 492, 497, 520, 524, 531, 505, 534, 536,
578 535, 546, 538, 542, 523, 549, 522, 551, 539, 540,
579 552, 558, 570, 563, 572, 584, 550, 573, 593, 599,
580 597, 603, 586, 577, 600, 606, 604, 613, 611, 626,
581 636, 640, 642, 621, 630, 644, 646, 649, 655, 638,
582
583 653, 657, 663, 666, 660, 667, 670, 674, 673, 680,
584 699, 693, 694, 697, 689, 700, 701, 708, 719, 720,
585 721, 702, 732, 729, 741, 728, 725, 754, 731, 748,
586 757, 752, 756, 758, 768, 750, 762, 772, 785, 776,
587 830, 779, 787, 770, 783, 792, 781, 778, 800, 809,
588 810, 821, 812, 811, 856, 838, 834, 847, 848, 864,
589 874, 852, 853, 873, 872, 879, 883, 877, 892, 890,
590 893, 889, 906, 916, 894, 909, 912, 921, 910, 927,
591 3685, 929, 911, 933, 935, 934, 3685, 920, 943, 938,
592 945, 956, 939, 951, 953, 970, 957, 984, 961, 966,
593
594 990, 967, 988, 979, 997, 1003, 993, 1006, 980, 1001,
595 1008, 1020, 1015, 1024, 1032, 1042, 1031, 1026, 1028, 1046,
596 1037, 1040, 1045, 1051, 1061, 1057, 1062, 1069, 1075, 1077,
597 1084, 1064, 1078, 1082, 1094, 1088, 1090, 1073, 1098, 1101,
598 1089, 1115, 1107, 1102, 1105, 1121, 1132, 1133, 1113, 1134,
599 1135, 1137, 1141, 1146, 1142, 1154, 1153, 1150, 1175, 1152,
600 1156, 1179, 1177, 1184, 1192, 1188, 1189, 1173, 1194, 1180,
601 1183, 1181, 1207, 1205, 1208, 1222, 1225, 1211, 1210, 1218,
602 1232, 1228, 1234, 1235, 1237, 1245, 1243, 1238, 1257, 1268,
603 1272, 1274, 1255, 1279, 3685, 1216, 1277, 1265, 1285, 1282,
604
605 3685, 3685, 1269, 3685, 3685, 1302, 1308, 1290, 1252, 1340,
606 1313, 1298, 1301, 1319, 1323, 1327, 1329, 1321, 1338, 1348,
607 1335, 1341, 1356, 1369, 1357, 1362, 1368, 1376, 1374, 1375,
608 1382, 1384, 1387, 1383, 1386, 1394, 1398, 1402, 1397, 3685,
609 1409, 1404, 1421, 1423, 3685, 1414, 1417, 1419, 1433, 1432,
610 1431, 1442, 1441, 1443, 1452, 1427, 1453, 1454, 1459, 1467,
611 1455, 1474, 1481, 1482, 1469, 1478, 1492, 1477, 1489, 1495,
612 1496, 1502, 1488, 1486, 1503, 1542, 1521, 1514, 1513, 1522,
613 1529, 1532, 1537, 1530, 1560, 1549, 1548, 1555, 1564, 1566,
614 1575, 1570, 1577, 1579, 1595, 3685, 1594, 1597, 1582, 1590,
615
616 1602, 1605, 1589, 1610, 1592, 1604, 1611, 1609, 3685, 1625,
617 1628, 1638, 1639, 1637, 1647, 1629, 3685, 1653, 1650, 1655,
618 1642, 1641, 1656, 1667, 1671, 1673, 1681, 1686, 1674, 1670,
619 1678, 1688, 1697, 1677, 1704, 1685, 1713, 1714, 1706, 1711,
620 1708, 1712, 1716, 615, 1718, 1723, 1725, 1722, 3685, 76,
621 1737, 1715, 1738, 1729, 1741, 1755, 1748, 1752, 1756, 1754,
622 1757, 1746, 1749, 1768, 1765, 1771, 1775, 1781, 1782, 1776,
623 1795, 1789, 1787, 1784, 1794, 1809, 1804, 1803, 1811, 3685,
624 1828, 1821, 1817, 1814, 1824, 1849, 1813, 1845, 1847, 1856,
625 1853, 1855, 1862, 1850, 1841, 1869, 1870, 1866, 1874, 1886,
626
627 1881, 3685, 1884, 1852, 1885, 1893, 1887, 1891, 1898, 1896,
628 1909, 1910, 1905, 1917, 1928, 1930, 1938, 1919, 1936, 1932,
629 1937, 1927, 1943, 1946, 3685, 1951, 1954, 1947, 1960, 1962,
630 1956, 1950, 1958, 1964, 1959, 1994, 1972, 1973, 1977, 1996,
631 1981, 1978, 1988, 1987, 3685, 2016, 1991, 2007, 2008, 2009,
632 2011, 2022, 2020, 2015, 2030, 2032, 2036, 2043, 2055, 2028,
633 2052, 2047, 2042, 2044, 2059, 2071, 2080, 2082, 3685, 2076,
634 2070, 2066, 2094, 2095, 2077, 2086, 2093, 2104, 2087, 2097,
635 2098, 2100, 2088, 2107, 2103, 2134, 2131, 2133, 2125, 2130,
636 2120, 2141, 2143, 2122, 2154, 3685, 3685, 2155, 3685, 3685,
637
638 2153, 3685, 2156, 2170, 2157, 2149, 2168, 2162, 2178, 2165,
639 2186, 2166, 2179, 2192, 2175, 2198, 3685, 2189, 2195, 2210,
640 2200, 2204, 2206, 2216, 2223, 2183, 2212, 2215, 2234, 3685,
641 2230, 2219, 2238, 2252, 2248, 2236, 2246, 2253, 2237, 2264,
642 2270, 2267, 2256, 2257, 2262, 2276, 2280, 2273, 2299, 2278,
643 2288, 2285, 2287, 2303, 2309, 2295, 3685, 3685, 2316, 2317,
644 2314, 2305, 2319, 2325, 2343, 2327, 2322, 2340, 2338, 2345,
645 2335, 2339, 2362, 2348, 2350, 3685, 2344, 2377, 2370, 2379,
646 3685, 2366, 2365, 2367, 2380, 2384, 2390, 3685, 2393, 2392,
647 2397, 2405, 2409, 2389, 2395, 2406, 2428, 2416, 2419, 2422,
648
649 2442, 2427, 2426, 2441, 2450, 2451, 2443, 2456, 2446, 2438,
650 2445, 2440, 2462, 2463, 2475, 2480, 2478, 3685, 2484, 2467,
651 2486, 2468, 2488, 2491, 2500, 2487, 2477, 2483, 2489, 2496,
652 2498, 2495, 2528, 2511, 3685, 2523, 2527, 2526, 2513, 2536,
653 2515, 2530, 3685, 2538, 2549, 2540, 2544, 2547, 2564, 2563,
654 2555, 2562, 2561, 2573, 2574, 2565, 2567, 2588, 2585, 2597,
655 2599, 2591, 2602, 2593, 2607, 2604, 2592, 2613, 2600, 2618,
656 2609, 3685, 2620, 2625, 2628, 2627, 2630, 2631, 2632, 3685,
657 3685, 2634, 3685, 2655, 2624, 2644, 2654, 3685, 3685, 3685,
658 2651, 2643, 2649, 2671, 2673, 2674, 3685, 2670, 2659, 2683,
659
660 2664, 2676, 2693, 2695, 2681, 2689, 3685, 2708, 2712, 2699,
661 2710, 2718, 2698, 2716, 2725, 2723, 2726, 2711, 2722, 2734,
662 2752, 3685, 2740, 2733, 2762, 2751, 2756, 2755, 2754, 2758,
663 2750, 2760, 3685, 2767, 3685, 2769, 2774, 2779, 2780, 2795,
664 2805, 2789, 2806, 2807, 2796, 2811, 2813, 3685, 3685, 2815,
665 2814, 2816, 2818, 2820, 2823, 2831, 2844, 2802, 2834, 2832,
666 2841, 2842, 2850, 2843, 3685, 2865, 2869, 2854, 2861, 2877,
667 2866, 2875, 2871, 2879, 2882, 2876, 2885, 2886, 3685, 2892,
668 2900, 2888, 2908, 2896, 2904, 2913, 2917, 2920, 2902, 2925,
669 3685, 2926, 2912, 2927, 2924, 2937, 2929, 2941, 2934, 2948,
670
671 2953, 2963, 2954, 3685, 2947, 3685, 2961, 2965, 2975, 2977,
672 3685, 2964, 2960, 3685, 2980, 2990, 2982, 2992, 2997, 2998,
673 3003, 2991, 3010, 3001, 3007, 3005, 3009, 3685, 3004, 3024,
674 3018, 3031, 3685, 3685, 3039, 3685, 3685, 3016, 3685, 3685,
675 3044, 3685, 3046, 3685, 3053, 3049, 3036, 3032, 3056, 3685,
676 3055, 3685, 3685, 3057, 3063, 3059, 3068, 3058, 3051, 3060,
677 3081, 3082, 3078, 3074, 3091, 3076, 3084, 3097, 3088, 3092,
678 3089, 3108, 3109, 3117, 3685, 3105, 3121, 3685, 3126, 3119,
679 3115, 3120, 3125, 3129, 3132, 3154, 3162, 3146, 3141, 3144,
680 3685, 3685, 3685, 3147, 3163, 3169, 3165, 3157, 3685, 3176,
681
682 3158, 3179, 3685, 3181, 3173, 3174, 3192, 3193, 3178, 3685,
683 3184, 3207, 3209, 3200, 3216, 3217, 3222, 3221, 3223, 3685,
684 3224, 3218, 3685, 3225, 3219, 3226, 3231, 3236, 3238, 3685,
685 3241, 3242, 3254, 3257, 3262, 3267, 3685, 3264, 3258, 3685,
686 3275, 3685, 3256, 3277, 3279, 3280, 3286, 3274, 3281, 3283,
687 3290, 3307, 3685, 3685, 3306, 3685, 3685, 3296, 3308, 3299,
688 3313, 3304, 3319, 3301, 3303, 3323, 3317, 3685, 3322, 3309,
689 3353, 3351, 3348, 3685, 3349, 3350, 3336, 3685, 3685, 3360,
690 3366, 3359, 3685, 3364, 3363, 3352, 3382, 3373, 3374, 3386,
691 3384, 3396, 3400, 3380, 3389, 3412, 3409, 3685, 3415, 3398,
692
693 3395, 3419, 3420, 3407, 3416, 3429, 3421, 3425, 3438, 3431,
694 3685, 3440, 3446, 3457, 3459, 3460, 3456, 3462, 3685, 3465,
695 3685, 3463, 3464, 3685, 3685, 3467, 3468, 3474, 3685, 3477,
696 3685, 3478, 3470, 3476, 3685, 3685, 3685, 3472, 3685, 3481,
697 3685, 3500, 3495, 3685, 3493, 3513, 3514, 3685, 3515, 3685,
698 3516, 3685, 3505, 3518, 3685, 3685, 3685, 3685, 3520, 3501,
699 3523, 3522, 3685, 3537, 3512, 3535, 3529, 3685, 3685, 3593,
700 3600, 3607, 3614, 3621, 82, 3628, 3635, 3642, 3649, 3656,
701 3663, 3670, 3677
569 191, 176, 190, 216, 225, 235, 214, 246, 116, 438,
570 3745, 3745, 3745, 94, 437, 3745, 3745, 3745, 96, 430,
571 435, 3745, 3745, 3745, 214, 333, 3745, 3745, 3745, 102,
572 299, 3745, 289, 3745, 184, 293, 249, 297, 111, 0,
573 301, 0, 0, 219, 223, 163, 272, 250, 284, 288,
574 285, 282, 309, 292, 287, 290, 302, 314, 232, 296,
575 336, 294, 319, 345, 328, 331, 330, 346, 337, 334,
576
577 358, 349, 369, 364, 355, 187, 371, 370, 137, 375,
578 385, 381, 376, 383, 393, 395, 397, 403, 239, 154,
579 229, 199, 186, 442, 176, 115, 277, 90, 449, 457,
580 0, 426, 413, 411, 431, 443, 439, 435, 432, 456,
581 464, 488, 462, 448, 466, 445, 472, 469, 473, 489,
582 495, 493, 500, 459, 496, 517, 520, 522, 519, 529,
583 525, 537, 545, 535, 544, 531, 547, 532, 552, 546,
584 543, 570, 562, 564, 549, 565, 566, 579, 569, 580,
585 593, 604, 602, 606, 589, 596, 597, 607, 609, 603,
586 619, 630, 624, 616, 639, 631, 633, 650, 651, 652,
587
588 623, 642, 658, 657, 643, 667, 645, 670, 668, 672,
589 674, 684, 675, 690, 686, 689, 694, 695, 702, 710,
590 712, 718, 713, 717, 724, 722, 740, 731, 723, 751,
591 732, 755, 745, 742, 765, 762, 761, 758, 753, 773,
592 750, 791, 782, 836, 780, 788, 778, 785, 787, 807,
593 820, 813, 815, 817, 826, 829, 840, 837, 841, 842,
594 860, 857, 872, 877, 862, 869, 884, 882, 885, 888,
595 886, 898, 894, 897, 901, 904, 920, 909, 917, 911,
596 929, 916, 938, 3745, 941, 919, 927, 936, 943, 3745,
597 931, 932, 946, 944, 966, 979, 959, 958, 984, 968,
598
599 976, 973, 971, 1004, 972, 975, 1017, 994, 996, 1000,
600 1008, 1011, 1016, 1018, 1010, 1024, 1035, 1039, 1015, 1043,
601 1050, 1063, 1052, 1047, 1055, 776, 1057, 1059, 1061, 1075,
602 1067, 1072, 1083, 1091, 1089, 1093, 1101, 1079, 1099, 1105,
603 1112, 1107, 1108, 1094, 1116, 1110, 1103, 1121, 1118, 1126,
604 1138, 1122, 1146, 1149, 1142, 1152, 1162, 1153, 1158, 1160,
605 1165, 1148, 1164, 1189, 1168, 1191, 1204, 1187, 1192, 1199,
606 1207, 1206, 1209, 1195, 1197, 1193, 1190, 1221, 1217, 1223,
607 1228, 1231, 1226, 1229, 1242, 1244, 1235, 1247, 1248, 1253,
608 1258, 1257, 1262, 1272, 1265, 1274, 1270, 1268, 1291, 1295,
609
610 1299, 1284, 1306, 3745, 1290, 1308, 1301, 1294, 1309, 3745,
611 3745, 1310, 3745, 3745, 1304, 1314, 1334, 1318, 1364, 1343,
612 1332, 1328, 1354, 1316, 1345, 1359, 1347, 1372, 1375, 1365,
613 1369, 1386, 1389, 1391, 1393, 1392, 1401, 1404, 1402, 1414,
614 1415, 1409, 1420, 1419, 1430, 1424, 1418, 1421, 3745, 1434,
615 1429, 1438, 1452, 3745, 1441, 1448, 1451, 1450, 1453, 1449,
616 1456, 1465, 1477, 1467, 1468, 1482, 1479, 1492, 1487, 1478,
617 1495, 1498, 1489, 1511, 1519, 1514, 1505, 1508, 1530, 1513,
618 1527, 1528, 1516, 1532, 1526, 1525, 1537, 1576, 1538, 1541,
619 1546, 1548, 1550, 1553, 1564, 1578, 1594, 1577, 1569, 1572,
620
621 1589, 1596, 1599, 1586, 1605, 1615, 1614, 3745, 1629, 1627,
622 1612, 1622, 1628, 1634, 1617, 1632, 1626, 1638, 1639, 1642,
623 3745, 1653, 1645, 1662, 1666, 1665, 1675, 1682, 3745, 1685,
624 1683, 1688, 1681, 1670, 1697, 1694, 1701, 1680, 1698, 1705,
625 1707, 1702, 1719, 1712, 1715, 1723, 1732, 1733, 1726, 1742,
626 1729, 1692, 1752, 1739, 1741, 1751, 1747, 1746, 396, 1757,
627 1767, 1763, 1762, 3745, 76, 1766, 1768, 1771, 1759, 1781,
628 1794, 1778, 1786, 1796, 1789, 1797, 1806, 1793, 1808, 1810,
629 1803, 1820, 1813, 1830, 1814, 1821, 1831, 1826, 1833, 1828,
630 1844, 1847, 1848, 1842, 3745, 1869, 1852, 1856, 1860, 1871,
631
632 1886, 1872, 1875, 1892, 1889, 1895, 1896, 1893, 1883, 1887,
633 1908, 1910, 1904, 1911, 1925, 1918, 3745, 1922, 1931, 1930,
634 1933, 1932, 1936, 1937, 1940, 1950, 1954, 3745, 1959, 1964,
635 1953, 1976, 1979, 1978, 1984, 1967, 1980, 1982, 1988, 1977,
636 1991, 1994, 3745, 1992, 2002, 2003, 2004, 2007, 2006, 2012,
637 2013, 2017, 2009, 2030, 2018, 2021, 2024, 2026, 2029, 2033,
638 2028, 2039, 3745, 2067, 2044, 2054, 2056, 2057, 2059, 2073,
639 2055, 2064, 2065, 2068, 2085, 2086, 2091, 2092, 2089, 2088,
640 2102, 2100, 2104, 2115, 2126, 2123, 3745, 2127, 2114, 2119,
641 2143, 2133, 2125, 2130, 2134, 2151, 2137, 2139, 2150, 2153,
642
643 2148, 2147, 2164, 2180, 2177, 2159, 2160, 2175, 2174, 2188,
644 2187, 2178, 2197, 3745, 3745, 2205, 2202, 2201, 3745, 3745,
645 2212, 3745, 2213, 2217, 2207, 2206, 2215, 2208, 2226, 2221,
646 2235, 2224, 2227, 2248, 2237, 2250, 3745, 2239, 2245, 2260,
647 2247, 2249, 2251, 2268, 2275, 2264, 2265, 2276, 2283, 3745,
648 2288, 2274, 2278, 2304, 2305, 2291, 2294, 2308, 2296, 2317,
649 2311, 2320, 2310, 2307, 2323, 2315, 2312, 2332, 2334, 2333,
650 2337, 2341, 2348, 2351, 2364, 2350, 3745, 3745, 2365, 2368,
651 2360, 2355, 2385, 2372, 2352, 2383, 2382, 2391, 2387, 2392,
652 2361, 2389, 2410, 2399, 2409, 3745, 2421, 2424, 2416, 2429,
653
654 2417, 2432, 3745, 2420, 2426, 2434, 2431, 2444, 2445, 3745,
655 2447, 2442, 2459, 2465, 2471, 2466, 2455, 2468, 2480, 2474,
656 2469, 2472, 2489, 2492, 2482, 2506, 2513, 2514, 2508, 2518,
657 2493, 2501, 2502, 2503, 2524, 2525, 2526, 2510, 2529, 3745,
658 2538, 2528, 2540, 2533, 2542, 2553, 2547, 2549, 2537, 2550,
659 2551, 2545, 2562, 2556, 2574, 2559, 3745, 2578, 2584, 2583,
660 2573, 2593, 2577, 2580, 3745, 2607, 2617, 2588, 2609, 2622,
661 2619, 2618, 2605, 2613, 2610, 2632, 2633, 2637, 2631, 2620,
662 2636, 2661, 2662, 2670, 2665, 2655, 2675, 2660, 2669, 2664,
663 2654, 2678, 2663, 2682, 2671, 3745, 2681, 2686, 2693, 2689,
664
665 2696, 2698, 2705, 3745, 3745, 2703, 3745, 2706, 2699, 2710,
666 2712, 3745, 3745, 3745, 2713, 2728, 2726, 2734, 2736, 2729,
667 3745, 2740, 2730, 2748, 2731, 2739, 2756, 2757, 2744, 2753,
668 3745, 2755, 2762, 2754, 2776, 2788, 2766, 2789, 2795, 2793,
669 2796, 2784, 2786, 2808, 2800, 3745, 2790, 2804, 2807, 2814,
670 2828, 2821, 2827, 2833, 2841, 3745, 2829, 2823, 2831, 3745,
671 2845, 3745, 2853, 2836, 2835, 2849, 2866, 2852, 2858, 2878,
672 2876, 2870, 2884, 2879, 3745, 3745, 2880, 2890, 2891, 2886,
673 2894, 2896, 2897, 2910, 2869, 2901, 2905, 2911, 2913, 2919,
674 2914, 3745, 2933, 2940, 2923, 2932, 2947, 2944, 2949, 2938,
675
676 2952, 2953, 2950, 2954, 2955, 3745, 2959, 2966, 2965, 2968,
677 2967, 2977, 2970, 2986, 2988, 2971, 2989, 3745, 2999, 2979,
678 3000, 2991, 3004, 2994, 2995, 3012, 3015, 3010, 3014, 3029,
679 3028, 3030, 3745, 3024, 3745, 3031, 3042, 3049, 3053, 3745,
680 3048, 3047, 3745, 3061, 3067, 3066, 3069, 3065, 3077, 3074,
681 3058, 3080, 3082, 3092, 3086, 3081, 3745, 3094, 3093, 3095,
682 3113, 3745, 3745, 3111, 3745, 3745, 3116, 3745, 3745, 3117,
683 3745, 3118, 3745, 3127, 3125, 3119, 3106, 3129, 3745, 3131,
684 3745, 3745, 3136, 3130, 3142, 3148, 3149, 3150, 3139, 3146,
685 3153, 3155, 3158, 3152, 3160, 3162, 3157, 3161, 3173, 3166,
686
687 3182, 3177, 3197, 3198, 3201, 3745, 3187, 3206, 3745, 3211,
688 3209, 3200, 3194, 3208, 3204, 3221, 3216, 3210, 3229, 3222,
689 3230, 3745, 3745, 3745, 3231, 3243, 3252, 3239, 3237, 3745,
690 3259, 3242, 3260, 3745, 3745, 3745, 3262, 3253, 3256, 3267,
691 3269, 3268, 3745, 3270, 3279, 3286, 3278, 3298, 3300, 3308,
692 3307, 3309, 3745, 3305, 3302, 3745, 3312, 3303, 3313, 3317,
693 3318, 3324, 3745, 3304, 3328, 3321, 3329, 3344, 3349, 3745,
694 3348, 3345, 3745, 3359, 3745, 3341, 3362, 3364, 3366, 3369,
695 3355, 3356, 3368, 3377, 3374, 3745, 3745, 3381, 3745, 3745,
696 3379, 3372, 3383, 3391, 3393, 3406, 3395, 3386, 3394, 3396,
697
698 3745, 3414, 3408, 3424, 3423, 3419, 3745, 3422, 3420, 3435,
699 3745, 3745, 3429, 3436, 3439, 3745, 3440, 3443, 3438, 3453,
700 3469, 3462, 3458, 3454, 3470, 3472, 3456, 3467, 3476, 3483,
701 3745, 3490, 3487, 3484, 3491, 3492, 3489, 3500, 3501, 3493,
702 3510, 3502, 3504, 3745, 3511, 3519, 3526, 3530, 3532, 3531,
703 3540, 3745, 3541, 3745, 3543, 3539, 3745, 3745, 3537, 3547,
704 3549, 3745, 3550, 3745, 3553, 3556, 3557, 3745, 3745, 3745,
705 3560, 3745, 3558, 3745, 3565, 3563, 3745, 3568, 3575, 3579,
706 3745, 3591, 3745, 3593, 3745, 3582, 3595, 3745, 3745, 3745,
707 3745, 3597, 3583, 3598, 3590, 3745, 3589, 3600, 3588, 3608,
708
709 3745, 3745, 3653, 3660, 3667, 3674, 3681, 82, 3688, 3695,
710 3702, 3709, 3716, 3723, 3730, 3737
702711 } ;
703712
704 static yyconst flex_int16_t yy_def[1284] =
713 static yyconst flex_int16_t yy_def[1317] =
705714 { 0,
706 1269, 1, 1270, 1270, 1271, 1271, 1272, 1272, 1273, 1273,
707 1274, 1274, 1269, 1275, 1269, 1269, 1269, 1269, 1276, 1275,
708 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
709 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1277,
710 1269, 1269, 1269, 1277, 1278, 1269, 1269, 1269, 1278, 1279,
711 1269, 1269, 1269, 1269, 1279, 1280, 1269, 1269, 1269, 1280,
712 1281, 1269, 1282, 1269, 1281, 1281, 1275, 1275, 1269, 1283,
713 1276, 1283, 1276, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
714 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
715 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
716
717 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
718 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1277, 1277, 1278,
719 1278, 1279, 1279, 1269, 1280, 1280, 1281, 1281, 1282, 1282,
720 1281, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
721 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
722 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
723 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
724 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
725 1275, 1275, 1281, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
726 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
727
728 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
729 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
730 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
731 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
732 1275, 1275, 1275, 1281, 1275, 1275, 1275, 1275, 1275, 1275,
733 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
734 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
735 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
736 1269, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275,
737 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
738
739 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
740 1275, 1275, 1275, 1275, 1281, 1275, 1275, 1275, 1275, 1275,
741 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
742 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
743 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
744 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
745 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
746 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
747 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1281,
748 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
749
750 1269, 1269, 1275, 1269, 1269, 1275, 1275, 1275, 1275, 1275,
751 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
752 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
753 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
754 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
755 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
756 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1281,
757 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
758 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
759 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275,
760
761 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275,
762 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275,
763 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
764 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
765 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1281,
766 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
767 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
768 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
769 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
770 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
771
772 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
773 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
774 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
775 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
776 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
777 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
778 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275,
779 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
780 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
781 1275, 1275, 1275, 1275, 1275, 1269, 1269, 1275, 1269, 1269,
782
783 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
784 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275,
785 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
786 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
787 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
788 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1269, 1275, 1275,
789 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
790 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275,
791 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275,
792 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
793
794 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
795 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275,
796 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
797 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
798 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
799 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
800 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
801 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
802 1269, 1275, 1269, 1275, 1275, 1275, 1275, 1269, 1269, 1269,
803 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275,
804
805 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275,
806 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
807 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
808 1275, 1275, 1269, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
809 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1269, 1275,
810 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
811 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275,
812 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275,
813 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
814 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
815
816 1275, 1275, 1275, 1269, 1275, 1269, 1275, 1275, 1275, 1275,
817 1269, 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275,
818 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275,
819 1275, 1275, 1269, 1269, 1275, 1269, 1269, 1275, 1269, 1269,
820 1275, 1269, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1269,
821 1275, 1269, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
822 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
823 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1269, 1275, 1275,
824 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
825 1269, 1269, 1269, 1275, 1275, 1275, 1275, 1275, 1269, 1275,
826
827 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
828 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
829 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1269,
830 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275, 1269,
831 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
832 1275, 1275, 1269, 1269, 1275, 1269, 1269, 1275, 1275, 1275,
833 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275,
834 1275, 1275, 1275, 1269, 1275, 1275, 1275, 1269, 1269, 1275,
835 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
836 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275, 1275,
837
838 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
839 1269, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1269, 1275,
840 1269, 1275, 1275, 1269, 1269, 1275, 1275, 1275, 1269, 1275,
841 1269, 1275, 1275, 1275, 1269, 1269, 1269, 1275, 1269, 1275,
842 1269, 1275, 1275, 1269, 1275, 1275, 1275, 1269, 1275, 1269,
843 1275, 1269, 1275, 1275, 1269, 1269, 1269, 1269, 1275, 1275,
844 1275, 1275, 1269, 1275, 1275, 1275, 1275, 1269, 0, 1269,
845 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
846 1269, 1269, 1269
715 1302, 1, 1303, 1303, 1304, 1304, 1305, 1305, 1306, 1306,
716 1307, 1307, 1302, 1308, 1302, 1302, 1302, 1302, 1309, 1308,
717 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
718 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1310,
719 1302, 1302, 1302, 1310, 1311, 1302, 1302, 1302, 1311, 1312,
720 1302, 1302, 1302, 1302, 1312, 1313, 1302, 1302, 1302, 1313,
721 1314, 1302, 1315, 1302, 1314, 1314, 1308, 1308, 1302, 1316,
722 1309, 1316, 1309, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
723 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
724 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
725
726 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
727 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1310, 1310,
728 1311, 1311, 1312, 1312, 1302, 1313, 1313, 1314, 1314, 1315,
729 1315, 1314, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
730 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
731 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
732 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
733 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
734 1308, 1308, 1308, 1308, 1314, 1308, 1308, 1308, 1308, 1308,
735 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
736
737 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
738 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
739 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
740 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
741 1308, 1308, 1308, 1308, 1308, 1308, 1314, 1308, 1308, 1308,
742 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
743 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
744 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
745 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1302,
746 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
747
748 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
749 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
750 1314, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
751 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
752 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
753 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
754 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
755 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
756 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
757 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1314, 1308,
758
759 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1302,
760 1302, 1308, 1302, 1302, 1308, 1308, 1308, 1308, 1308, 1308,
761 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
762 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
763 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308,
764 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308,
765 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
766 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
767 1308, 1314, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
768 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
769
770 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308,
771 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
772 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308,
773 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
774 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
775 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
776 1308, 1308, 1308, 1302, 1314, 1308, 1308, 1308, 1308, 1308,
777 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
778 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
779 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308,
780
781 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
782 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
783 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308,
784 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
785 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
786 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
787 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
788 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
789 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
790 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
791
792 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
793 1308, 1308, 1308, 1302, 1302, 1308, 1308, 1308, 1302, 1302,
794 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
795 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
796 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302,
797 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
798 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
799 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1302, 1308, 1308,
800 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
801 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
802
803 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1302,
804 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
805 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
806 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302,
807 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
808 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
809 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308,
810 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
811 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
812 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
813
814 1308, 1308, 1308, 1302, 1302, 1308, 1302, 1308, 1308, 1308,
815 1308, 1302, 1302, 1302, 1308, 1308, 1308, 1308, 1308, 1308,
816 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
817 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
818 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
819 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1302,
820 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
821 1308, 1308, 1308, 1308, 1302, 1302, 1308, 1308, 1308, 1308,
822 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
823 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
824
825 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
826 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308,
827 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
828 1308, 1308, 1302, 1308, 1302, 1308, 1308, 1308, 1308, 1302,
829 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
830 1308, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
831 1308, 1302, 1302, 1308, 1302, 1302, 1308, 1302, 1302, 1308,
832 1302, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1302, 1308,
833 1302, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
834 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
835
836 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1302, 1308,
837 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
838 1308, 1302, 1302, 1302, 1308, 1308, 1308, 1308, 1308, 1302,
839 1308, 1308, 1308, 1302, 1302, 1302, 1308, 1308, 1308, 1308,
840 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
841 1308, 1308, 1302, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
842 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1302,
843 1308, 1308, 1302, 1308, 1302, 1308, 1308, 1308, 1308, 1308,
844 1308, 1308, 1308, 1308, 1308, 1302, 1302, 1308, 1302, 1302,
845 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
846
847 1302, 1308, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308,
848 1302, 1302, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
849 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
850 1302, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
851 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308, 1308, 1308,
852 1308, 1302, 1308, 1302, 1308, 1308, 1302, 1302, 1308, 1308,
853 1308, 1302, 1308, 1302, 1308, 1308, 1308, 1302, 1302, 1302,
854 1308, 1302, 1308, 1302, 1308, 1308, 1302, 1308, 1308, 1308,
855 1302, 1308, 1302, 1308, 1302, 1308, 1308, 1302, 1302, 1302,
856 1302, 1308, 1308, 1308, 1308, 1302, 1308, 1308, 1308, 1308,
857
858 1302, 0, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
859 1302, 1302, 1302, 1302, 1302, 1302
847860 } ;
848861
849 static yyconst flex_int16_t yy_nxt[3751] =
862 static yyconst flex_int16_t yy_nxt[3811] =
850863 { 0,
851864 14, 15, 16, 17, 18, 19, 18, 14, 14, 14,
852865 14, 18, 20, 14, 21, 22, 23, 24, 14, 25,
857870 38, 14, 14, 14, 14, 41, 42, 43, 41, 42,
858871 43, 46, 47, 46, 47, 48, 86, 48, 51, 52,
859872 53, 54, 67, 18, 51, 52, 53, 54, 68, 18,
860 57, 58, 59, 57, 58, 59, 69, 118, 118, 120,
861
862 70, 44, 120, 86, 44, 125, 125, 49, 72, 49,
863 72, 72, 69, 72, 128, 55, 70, 67, 72, 67,
864 67, 55, 67, 84, 74, 75, 60, 67, 128, 60,
873 57, 58, 59, 57, 58, 59, 69, 119, 119, 121,
874
875 70, 44, 121, 86, 44, 126, 126, 49, 72, 49,
876 72, 72, 69, 72, 129, 55, 70, 67, 72, 67,
877 67, 55, 67, 84, 74, 75, 60, 67, 129, 60,
865878 15, 16, 17, 62, 63, 64, 15, 16, 17, 62,
866 63, 64, 76, 85, 173, 73, 68, 92, 68, 65,
867 84, 74, 75, 126, 77, 65, 80, 118, 118, 68,
879 63, 64, 76, 85, 174, 73, 68, 92, 68, 65,
880 84, 74, 75, 127, 77, 65, 80, 119, 119, 68,
868881 81, 78, 89, 82, 93, 90, 83, 66, 79, 76,
869 85, 87, 91, 66, 92, 68, 65, 124, 68, 88,
882 85, 87, 91, 66, 92, 68, 65, 125, 68, 88,
870883 68, 77, 65, 80, 94, 68, 68, 81, 78, 89,
871 82, 93, 90, 83, 132, 79, 68, 68, 87, 91,
872
873 95, 123, 120, 97, 96, 120, 88, 98, 100, 131,
874 101, 94, 68, 121, 68, 119, 102, 68, 68, 103,
875 114, 132, 128, 99, 128, 115, 104, 95, 68, 68,
876 97, 96, 105, 68, 98, 100, 131, 101, 111, 133,
877 112, 108, 106, 102, 116, 107, 103, 114, 117, 126,
878 99, 109, 115, 104, 68, 113, 110, 125, 125, 105,
879 124, 123, 68, 68, 68, 111, 133, 112, 108, 106,
880 68, 116, 107, 134, 122, 117, 122, 122, 109, 122,
881 68, 135, 113, 110, 72, 121, 72, 72, 127, 72,
882 127, 127, 67, 127, 67, 67, 72, 67, 72, 72,
883
884 134, 72, 67, 136, 137, 68, 72, 138, 135, 139,
885 140, 141, 68, 143, 119, 68, 144, 68, 68, 68,
886 145, 130, 68, 68, 148, 147, 68, 153, 142, 68,
887 136, 137, 146, 73, 138, 68, 139, 140, 154, 158,
888 143, 68, 68, 144, 149, 156, 68, 145, 68, 157,
889 150, 148, 147, 151, 153, 142, 160, 68, 155, 146,
890 68, 159, 68, 1269, 161, 154, 158, 152, 162, 68,
891 68, 149, 156, 164, 68, 1269, 157, 150, 165, 163,
892 151, 68, 68, 160, 68, 155, 68, 68, 159, 166,
893 168, 161, 170, 167, 152, 162, 68, 68, 169, 171,
894
895 164, 172, 185, 174, 68, 165, 163, 68, 178, 176,
896 68, 68, 68, 177, 68, 180, 166, 168, 68, 170,
897 167, 1269, 1269, 175, 68, 169, 171, 179, 172, 68,
898 174, 68, 181, 68, 182, 178, 176, 68, 190, 192,
899 177, 1269, 180, 68, 183, 184, 122, 68, 122, 122,
900 175, 122, 186, 127, 179, 127, 127, 187, 127, 181,
901 72, 182, 72, 72, 68, 72, 188, 68, 128, 68,
902 68, 183, 184, 189, 191, 1269, 68, 198, 68, 186,
903 68, 199, 201, 200, 187, 1269, 68, 205, 202, 68,
904 1269, 1269, 1269, 188, 203, 1269, 68, 130, 1269, 68,
905
906 189, 191, 193, 68, 198, 68, 209, 194, 199, 201,
907 200, 68, 195, 204, 205, 202, 68, 206, 196, 197,
908 207, 203, 208, 210, 211, 68, 68, 212, 68, 193,
909 68, 68, 68, 209, 194, 68, 213, 216, 214, 195,
910 204, 217, 219, 68, 206, 196, 197, 207, 215, 208,
911 210, 211, 218, 220, 223, 225, 221, 236, 68, 222,
912 68, 68, 68, 213, 216, 227, 224, 1269, 229, 68,
913 226, 228, 68, 68, 68, 215, 68, 68, 68, 218,
914 68, 223, 225, 221, 68, 234, 222, 68, 68, 68,
915 68, 230, 227, 224, 233, 229, 68, 226, 228, 231,
916
917 232, 68, 235, 237, 241, 238, 239, 245, 68, 244,
918 68, 68, 234, 247, 1269, 68, 242, 1269, 230, 246,
919 248, 233, 68, 629, 128, 1269, 231, 232, 240, 235,
920 237, 68, 238, 243, 245, 68, 244, 68, 68, 249,
921 250, 68, 68, 242, 68, 251, 246, 248, 255, 68,
922 252, 68, 253, 68, 254, 240, 256, 1269, 257, 68,
923 243, 258, 260, 261, 68, 262, 249, 250, 68, 259,
924 264, 1269, 251, 263, 68, 255, 68, 252, 68, 253,
925 68, 254, 68, 256, 68, 257, 269, 68, 258, 266,
926 261, 68, 262, 68, 268, 68, 259, 265, 68, 267,
927
928 263, 68, 270, 271, 68, 68, 272, 273, 68, 277,
929 1269, 68, 68, 269, 279, 280, 266, 274, 68, 281,
930 1269, 268, 286, 278, 265, 275, 267, 68, 276, 270,
931 271, 68, 68, 282, 273, 68, 277, 68, 68, 68,
932 68, 279, 280, 287, 274, 288, 68, 285, 283, 286,
933 278, 284, 275, 289, 290, 276, 291, 68, 68, 68,
934 282, 292, 293, 68, 294, 298, 68, 68, 1269, 68,
935 68, 295, 288, 1269, 285, 283, 297, 296, 284, 68,
936 289, 290, 300, 291, 299, 319, 68, 1269, 68, 293,
937 68, 294, 68, 301, 68, 68, 68, 302, 295, 303,
938
939 68, 305, 315, 297, 296, 313, 68, 314, 128, 300,
940 68, 299, 318, 316, 68, 304, 68, 68, 317, 68,
941 301, 68, 1269, 68, 302, 68, 303, 325, 305, 315,
942 68, 320, 313, 1269, 314, 321, 322, 324, 68, 318,
943 316, 1269, 304, 306, 307, 317, 1269, 68, 68, 68,
944 68, 1269, 323, 308, 325, 309, 310, 311, 320, 68,
945 312, 329, 321, 322, 324, 326, 327, 1269, 68, 328,
946 306, 307, 68, 331, 330, 1269, 68, 332, 335, 323,
947 308, 334, 309, 310, 311, 68, 68, 312, 329, 333,
948 68, 68, 338, 336, 68, 339, 328, 341, 340, 342,
949
950 331, 330, 68, 1269, 332, 335, 337, 343, 334, 344,
951 68, 68, 68, 345, 1269, 68, 333, 68, 346, 338,
952 336, 68, 339, 347, 341, 340, 348, 68, 68, 349,
953 68, 68, 68, 337, 343, 350, 344, 351, 1269, 353,
954 345, 354, 352, 355, 68, 346, 364, 68, 68, 68,
955 68, 359, 356, 348, 68, 357, 349, 358, 68, 68,
956 1269, 362, 350, 361, 351, 68, 353, 68, 354, 352,
957 355, 68, 68, 68, 360, 363, 68, 68, 359, 356,
958 365, 68, 357, 68, 358, 367, 366, 368, 362, 68,
959 361, 68, 373, 374, 68, 68, 369, 375, 377, 68,
960
961 378, 360, 363, 370, 68, 68, 376, 365, 68, 380,
962 384, 371, 367, 366, 368, 379, 382, 68, 68, 373,
963 374, 372, 68, 369, 386, 377, 68, 378, 68, 381,
964 370, 68, 383, 376, 385, 68, 380, 384, 371, 68,
965 387, 68, 379, 382, 68, 388, 68, 390, 372, 391,
966 389, 386, 394, 68, 392, 393, 381, 395, 68, 383,
967 396, 385, 68, 397, 68, 399, 68, 387, 401, 68,
968 128, 398, 388, 402, 390, 68, 403, 389, 68, 394,
969 68, 392, 393, 68, 68, 400, 404, 396, 405, 68,
970 397, 406, 399, 1269, 408, 68, 407, 409, 398, 68,
971
972 68, 410, 68, 411, 413, 414, 412, 68, 1269, 421,
973 1269, 68, 400, 68, 416, 68, 68, 415, 1269, 420,
974 68, 408, 68, 407, 409, 422, 68, 68, 68, 417,
975 411, 413, 68, 412, 418, 423, 68, 427, 419, 68,
976 68, 416, 429, 68, 415, 68, 420, 424, 1269, 426,
977 428, 68, 422, 68, 430, 431, 417, 1269, 433, 68,
978 432, 418, 423, 439, 427, 419, 436, 440, 438, 425,
979 68, 68, 68, 68, 424, 68, 426, 428, 435, 68,
980 68, 430, 431, 434, 68, 433, 441, 432, 68, 437,
981 68, 68, 68, 436, 68, 438, 425, 442, 443, 444,
982
983 1269, 446, 447, 445, 448, 435, 450, 452, 1269, 449,
984 434, 68, 451, 68, 453, 68, 437, 68, 68, 68,
985 455, 68, 68, 476, 442, 443, 68, 68, 446, 447,
986 68, 448, 68, 450, 452, 454, 449, 456, 458, 451,
987 459, 457, 460, 68, 462, 68, 68, 455, 68, 68,
988 461, 464, 463, 465, 68, 1269, 68, 1269, 468, 485,
989 68, 467, 454, 68, 456, 458, 68, 459, 457, 460,
990 68, 462, 68, 68, 466, 68, 68, 461, 464, 463,
991 465, 68, 469, 68, 470, 468, 471, 473, 467, 472,
992 68, 474, 477, 68, 478, 68, 1269, 481, 1269, 475,
993
994 1269, 466, 1269, 68, 479, 484, 128, 68, 480, 469,
995 68, 470, 68, 471, 473, 68, 472, 68, 474, 477,
996 68, 478, 482, 68, 481, 483, 475, 493, 68, 492,
997 1269, 479, 484, 495, 496, 480, 68, 494, 1269, 68,
998 68, 498, 1269, 1269, 1269, 497, 68, 499, 1269, 482,
999 500, 68, 483, 486, 493, 487, 492, 68, 488, 68,
1000 495, 68, 501, 489, 494, 68, 502, 68, 498, 490,
1001 491, 503, 497, 68, 499, 504, 68, 500, 68, 68,
1002 486, 505, 487, 506, 508, 488, 68, 509, 510, 501,
1003 489, 507, 511, 502, 68, 68, 490, 491, 503, 515,
1004
1005 68, 512, 504, 513, 516, 517, 68, 68, 505, 519,
1006 506, 508, 68, 68, 68, 510, 514, 518, 507, 511,
1007 68, 68, 68, 521, 68, 68, 515, 520, 512, 522,
1008 513, 516, 68, 523, 536, 68, 68, 524, 1269, 528,
1009 68, 1269, 68, 514, 518, 525, 526, 68, 529, 527,
1010 521, 531, 68, 1269, 520, 68, 522, 68, 533, 68,
1011 523, 68, 530, 1269, 524, 68, 528, 532, 537, 68,
1012 68, 68, 525, 526, 534, 529, 527, 535, 531, 68,
1013 68, 68, 539, 540, 538, 533, 542, 541, 543, 530,
1014 68, 68, 68, 68, 532, 537, 544, 68, 545, 547,
1015
1016 549, 534, 546, 1269, 535, 68, 550, 68, 548, 539,
1017 540, 538, 68, 542, 541, 68, 68, 552, 553, 68,
1018 68, 554, 551, 544, 68, 545, 68, 68, 555, 546,
1019 68, 1269, 1269, 128, 68, 548, 561, 568, 1269, 563,
1020 68, 68, 1269, 1269, 552, 553, 1269, 564, 554, 551,
1021 562, 68, 68, 1269, 567, 555, 556, 566, 557, 68,
1022 68, 565, 558, 561, 559, 572, 563, 68, 68, 560,
1023 68, 1269, 569, 573, 564, 68, 575, 562, 574, 570,
1024 68, 567, 576, 556, 566, 557, 68, 68, 565, 558,
1025 580, 559, 572, 68, 577, 578, 560, 571, 68, 569,
1026
1027 573, 582, 68, 575, 68, 574, 570, 579, 68, 576,
1028 581, 583, 584, 68, 585, 68, 593, 68, 586, 588,
1029 68, 577, 578, 590, 571, 587, 589, 68, 68, 591,
1030 68, 592, 68, 68, 579, 68, 600, 581, 583, 584,
1031 68, 585, 68, 68, 595, 586, 588, 68, 68, 68,
1032 590, 594, 587, 589, 596, 597, 591, 598, 592, 599,
1033 601, 1269, 603, 68, 602, 604, 68, 68, 606, 605,
1034 608, 595, 607, 1269, 1269, 68, 68, 68, 594, 68,
1035 68, 596, 597, 609, 598, 68, 599, 610, 68, 603,
1036 611, 68, 604, 68, 68, 606, 605, 608, 612, 607,
1037
1038 613, 615, 616, 614, 617, 68, 619, 621, 68, 68,
1039 609, 68, 68, 618, 610, 68, 68, 611, 620, 68,
1040 622, 623, 625, 68, 68, 612, 68, 613, 615, 616,
1041 614, 617, 624, 619, 621, 68, 637, 627, 626, 628,
1042 618, 635, 68, 631, 68, 620, 68, 630, 638, 68,
1043 68, 68, 68, 68, 68, 632, 68, 645, 633, 624,
1044 68, 68, 634, 68, 627, 626, 628, 68, 635, 636,
1045 631, 639, 642, 640, 630, 68, 68, 641, 646, 68,
1046 643, 648, 632, 644, 68, 633, 68, 68, 647, 634,
1047 68, 650, 68, 68, 68, 68, 636, 652, 639, 642,
1048
1049 640, 649, 653, 68, 641, 646, 68, 643, 648, 68,
1050 644, 651, 655, 68, 68, 647, 657, 656, 650, 68,
1051 68, 654, 68, 658, 652, 68, 659, 68, 649, 653,
1052 660, 662, 68, 68, 661, 663, 665, 670, 651, 655,
1053 667, 68, 68, 657, 656, 666, 664, 68, 654, 68,
1054 658, 68, 68, 659, 672, 68, 668, 660, 662, 68,
1055 669, 661, 68, 665, 670, 671, 68, 667, 673, 674,
1056 678, 675, 666, 664, 676, 677, 679, 680, 689, 68,
1057 1269, 1269, 681, 68, 1269, 68, 1269, 68, 68, 682,
1058 68, 68, 671, 68, 68, 673, 674, 678, 675, 688,
1059
1060 68, 676, 677, 687, 68, 689, 683, 68, 68, 681,
1061 693, 684, 68, 685, 690, 686, 682, 692, 691, 68,
1062 696, 697, 68, 68, 68, 68, 688, 694, 699, 68,
1063 687, 68, 695, 683, 68, 698, 68, 693, 684, 700,
1064 685, 690, 686, 68, 692, 691, 701, 68, 68, 702,
1065 703, 705, 704, 706, 694, 68, 707, 68, 710, 695,
1066 708, 711, 698, 712, 709, 68, 68, 713, 68, 717,
1067 68, 1269, 716, 701, 68, 68, 68, 703, 705, 704,
1068 706, 68, 714, 707, 68, 68, 715, 708, 68, 68,
1069 712, 709, 68, 719, 68, 718, 68, 68, 68, 716,
1070
1071 68, 720, 68, 721, 722, 1269, 723, 1269, 724, 714,
1072 68, 68, 725, 715, 726, 68, 68, 727, 1269, 68,
1073 719, 728, 718, 729, 733, 68, 68, 730, 731, 68,
1074 721, 722, 68, 723, 68, 724, 732, 736, 734, 725,
1075 738, 726, 735, 1269, 727, 68, 68, 68, 728, 68,
1076 737, 733, 741, 68, 68, 731, 739, 744, 68, 747,
1077 68, 742, 740, 732, 736, 734, 68, 738, 68, 735,
1078 68, 743, 745, 746, 68, 749, 748, 737, 750, 741,
1079 68, 68, 68, 739, 744, 68, 747, 751, 742, 740,
1080 68, 1269, 753, 68, 752, 754, 755, 68, 743, 745,
1081
1082 746, 756, 749, 748, 68, 757, 758, 759, 68, 68,
1083 761, 762, 1269, 767, 68, 68, 760, 763, 68, 753,
1084 68, 752, 754, 755, 68, 68, 68, 764, 765, 769,
1085 766, 68, 68, 68, 759, 68, 68, 761, 68, 768,
1086 767, 68, 68, 760, 763, 68, 770, 771, 772, 773,
1087 774, 775, 776, 778, 764, 765, 769, 766, 68, 777,
1088 68, 779, 780, 68, 781, 1269, 768, 1269, 68, 68,
1089 782, 68, 68, 770, 771, 772, 773, 774, 775, 68,
1090 778, 68, 783, 784, 786, 785, 777, 68, 787, 788,
1091 804, 68, 68, 68, 68, 68, 789, 782, 790, 791,
1092
1093 68, 792, 1269, 68, 68, 794, 68, 793, 68, 783,
1094 784, 786, 785, 68, 795, 787, 68, 68, 796, 1269,
1095 797, 68, 798, 789, 68, 790, 791, 68, 792, 802,
1096 68, 799, 794, 68, 793, 800, 68, 801, 68, 803,
1097 806, 795, 68, 805, 68, 796, 808, 797, 68, 798,
1098 68, 807, 810, 68, 68, 809, 802, 68, 799, 811,
1099 812, 68, 800, 1269, 801, 813, 803, 806, 68, 815,
1100 805, 816, 68, 808, 68, 68, 68, 814, 807, 810,
1101 817, 818, 809, 819, 68, 820, 68, 812, 821, 1269,
1102 68, 68, 813, 822, 68, 68, 815, 825, 816, 1269,
1103
1104 68, 823, 68, 824, 814, 68, 826, 817, 68, 827,
1105 819, 68, 820, 830, 68, 821, 68, 829, 68, 828,
1106 822, 831, 834, 68, 825, 68, 68, 835, 823, 832,
1107 824, 836, 833, 68, 837, 838, 827, 68, 843, 839,
1108 830, 68, 840, 68, 829, 841, 828, 68, 831, 834,
1109 842, 853, 68, 844, 68, 68, 832, 68, 836, 833,
1110 68, 837, 838, 68, 845, 68, 839, 846, 849, 840,
1111 847, 848, 841, 68, 850, 851, 68, 68, 68, 852,
1112 844, 68, 68, 68, 854, 858, 68, 855, 68, 859,
1113 1269, 845, 1269, 856, 846, 849, 860, 847, 848, 857,
1114
1115 68, 850, 851, 68, 68, 68, 852, 865, 68, 869,
1116 861, 862, 858, 866, 855, 68, 859, 68, 68, 863,
1117 856, 867, 68, 860, 864, 868, 857, 68, 68, 870,
1118 68, 68, 871, 68, 865, 68, 869, 861, 862, 872,
1119 866, 873, 874, 68, 68, 875, 863, 68, 867, 876,
1120 877, 864, 868, 884, 68, 878, 870, 68, 879, 871,
1121 68, 880, 881, 882, 68, 68, 68, 883, 873, 874,
1122 885, 887, 875, 888, 889, 886, 68, 877, 68, 68,
1123 68, 68, 878, 68, 68, 879, 890, 891, 68, 68,
1124 882, 893, 892, 895, 68, 1269, 894, 885, 887, 897,
1125
1126 68, 68, 886, 898, 896, 68, 68, 899, 903, 907,
1127 900, 1269, 901, 68, 904, 68, 68, 902, 68, 892,
1128 905, 68, 68, 894, 68, 68, 68, 68, 906, 68,
1129 898, 896, 908, 68, 68, 903, 68, 900, 68, 901,
1130 909, 904, 910, 911, 902, 912, 913, 905, 915, 68,
1131 914, 68, 916, 68, 918, 906, 919, 917, 922, 908,
1132 1269, 68, 921, 1269, 68, 68, 68, 909, 68, 910,
1133 911, 920, 912, 913, 68, 915, 68, 914, 68, 916,
1134 923, 918, 68, 924, 917, 68, 925, 68, 926, 921,
1135 928, 927, 931, 68, 929, 932, 933, 930, 920, 68,
1136
1137 68, 68, 68, 68, 934, 68, 936, 923, 935, 938,
1138 924, 68, 68, 925, 937, 926, 939, 928, 927, 931,
1139 943, 929, 940, 68, 930, 945, 68, 941, 942, 68,
1140 68, 68, 946, 944, 947, 68, 948, 68, 68, 949,
1141 68, 937, 68, 939, 950, 68, 951, 68, 952, 940,
1142 961, 68, 953, 957, 941, 942, 68, 954, 68, 946,
1143 944, 947, 68, 68, 958, 68, 68, 955, 68, 68,
1144 68, 950, 68, 951, 959, 952, 960, 962, 956, 953,
1145 957, 68, 68, 963, 954, 965, 964, 68, 966, 68,
1146 967, 958, 68, 68, 955, 968, 969, 68, 1269, 970,
1147
1148 1269, 959, 68, 960, 962, 956, 1269, 973, 68, 68,
1149 963, 68, 68, 964, 68, 966, 971, 967, 972, 68,
1150 974, 68, 968, 969, 975, 976, 970, 68, 977, 979,
1151 978, 68, 981, 68, 973, 980, 68, 68, 982, 983,
1152 985, 987, 984, 971, 1269, 972, 68, 974, 68, 68,
1153 68, 975, 976, 986, 68, 977, 68, 978, 990, 981,
1154 68, 68, 980, 68, 68, 982, 983, 985, 988, 984,
1155 989, 68, 68, 991, 992, 995, 993, 996, 68, 994,
1156 986, 998, 997, 1269, 1000, 990, 1001, 999, 68, 68,
1157 68, 1004, 68, 68, 68, 988, 68, 989, 68, 1003,
1158
1159 68, 992, 995, 993, 996, 68, 994, 68, 998, 997,
1160 1002, 1000, 68, 1001, 999, 1005, 1006, 68, 68, 1007,
1161 1010, 1008, 1011, 1009, 1269, 1014, 1003, 68, 1015, 1269,
1162 1269, 1269, 1012, 68, 68, 1013, 1017, 1002, 1018, 1021,
1163 68, 1016, 1005, 68, 68, 68, 1007, 1010, 1008, 68,
1164 1009, 68, 68, 68, 68, 1015, 68, 1019, 68, 1012,
1165 1020, 68, 1013, 1017, 1022, 1018, 1021, 1023, 1016, 68,
1166 68, 1024, 68, 1026, 1025, 1027, 1028, 1033, 1030, 68,
1167 68, 68, 68, 1029, 1019, 1031, 1034, 1020, 68, 1032,
1168 1036, 1022, 68, 1037, 1023, 1035, 1039, 1040, 1024, 68,
1169
1170 1026, 1025, 1027, 68, 68, 1030, 1038, 68, 1041, 68,
1171 1029, 1042, 1031, 68, 68, 68, 1032, 68, 1043, 1044,
1172 68, 1046, 1035, 68, 68, 1045, 68, 1047, 1269, 1048,
1173 68, 1050, 1051, 1038, 68, 1041, 1052, 1053, 68, 1055,
1174 68, 1269, 68, 1269, 1049, 1043, 68, 1056, 1046, 1054,
1175 68, 68, 1045, 1057, 1047, 68, 1048, 1059, 68, 1051,
1176 1060, 1058, 68, 68, 68, 68, 1055, 68, 1061, 1064,
1177 1063, 1049, 68, 1062, 1056, 68, 1054, 1067, 1065, 68,
1178 1057, 1066, 1068, 1072, 1059, 68, 68, 1060, 1058, 1069,
1179 1071, 68, 68, 1075, 1073, 1061, 1064, 1070, 68, 68,
1180
1181 1062, 68, 68, 68, 1067, 1065, 1074, 1076, 1066, 1078,
1182 1072, 1077, 1084, 68, 1269, 68, 1069, 1071, 68, 1079,
1183 68, 1073, 1080, 1083, 1070, 1081, 1085, 1091, 68, 68,
1184 68, 1086, 1082, 1074, 1076, 68, 68, 1088, 1077, 68,
1185 1087, 68, 68, 68, 1089, 68, 1079, 68, 68, 1080,
1186 1083, 1090, 1081, 1085, 68, 1092, 68, 1093, 1086, 1082,
1187 1094, 1095, 68, 1096, 1088, 1097, 1099, 1087, 1269, 68,
1188 68, 1089, 1098, 1100, 68, 1102, 1101, 68, 1090, 1103,
1189 1105, 1104, 68, 1106, 68, 1110, 1269, 68, 1095, 68,
1190 1096, 68, 1097, 68, 68, 68, 68, 68, 68, 1098,
1191
1192 1100, 68, 1102, 1101, 1107, 1108, 68, 1105, 1104, 1109,
1193 1106, 1111, 68, 1112, 68, 1113, 68, 1116, 1117, 68,
1194 68, 1114, 68, 1115, 1118, 1119, 68, 68, 1120, 68,
1195 68, 1107, 1108, 1122, 1121, 68, 1109, 1123, 1111, 1124,
1196 1112, 1125, 1113, 68, 1116, 1117, 68, 68, 1114, 1126,
1197 1115, 1118, 1119, 68, 1127, 68, 1128, 68, 68, 68,
1198 1122, 1121, 1129, 68, 68, 1130, 1124, 68, 1125, 1131,
1199 68, 1133, 1132, 1269, 1269, 1134, 1126, 1136, 1135, 68,
1200 1137, 1127, 68, 1128, 68, 68, 1139, 1140, 1141, 1129,
1201 1142, 1138, 68, 1143, 1145, 68, 68, 1148, 1133, 1132,
1202
1203 68, 68, 1134, 68, 1136, 1135, 1144, 68, 1146, 1147,
1204 1149, 68, 68, 1139, 68, 1141, 68, 68, 1138, 68,
1205 1143, 1145, 68, 1150, 1148, 1151, 1152, 1153, 1154, 1155,
1206 68, 68, 1156, 1144, 1157, 1146, 1147, 1149, 68, 1160,
1207 1158, 1159, 1269, 1161, 1269, 68, 1162, 68, 1164, 1269,
1208 1150, 1163, 1151, 1152, 68, 68, 68, 68, 1165, 68,
1209 68, 68, 68, 68, 68, 1168, 1160, 1158, 1159, 68,
1210 1161, 1166, 1167, 1162, 68, 1164, 68, 1169, 1163, 68,
1211 68, 1170, 1173, 1171, 1172, 1165, 1174, 1175, 1269, 1176,
1212 1182, 1178, 68, 1177, 68, 68, 68, 1179, 1166, 1167,
1213
1214 68, 1183, 68, 1180, 1169, 68, 1181, 1269, 1170, 1173,
1215 1171, 1172, 68, 68, 1175, 68, 1176, 68, 68, 68,
1216 1177, 68, 1184, 1185, 68, 1189, 1186, 1187, 68, 1188,
1217 1180, 1190, 1192, 1181, 68, 1191, 1196, 68, 1197, 68,
1218 1193, 68, 68, 1194, 68, 68, 68, 68, 1195, 1184,
1219 1185, 68, 1189, 1186, 1187, 68, 1188, 68, 1190, 1192,
1220 68, 68, 1191, 1196, 1198, 1197, 1199, 1193, 1200, 1201,
1221 1194, 1269, 1203, 1202, 68, 1195, 1204, 1269, 1205, 1206,
1222 1207, 1269, 1209, 1208, 1211, 1269, 68, 68, 68, 68,
1223 68, 68, 1269, 1199, 1212, 1200, 1201, 68, 68, 1203,
1224
1225 1202, 68, 68, 1204, 68, 1205, 1206, 1207, 1210, 1209,
1226 1208, 68, 68, 1213, 1214, 1215, 1216, 1217, 68, 1218,
1227 68, 1212, 68, 1219, 68, 1220, 1221, 68, 1223, 1222,
1228 1224, 1225, 1229, 68, 68, 1210, 68, 1226, 68, 1227,
1229 1213, 1214, 1215, 1216, 1217, 68, 1218, 68, 1230, 1231,
1230 68, 1269, 1220, 68, 68, 1223, 1222, 68, 68, 68,
1231 1228, 1232, 1234, 68, 1226, 1233, 1227, 68, 1235, 68,
1232 1236, 1237, 1238, 1239, 1241, 1230, 68, 1240, 68, 1244,
1233 1242, 1248, 1269, 1250, 68, 1269, 1243, 1228, 1232, 1234,
1234 1245, 1249, 1233, 1246, 68, 68, 1251, 68, 68, 1238,
1235
1236 68, 68, 68, 68, 1240, 68, 68, 1242, 68, 1247,
1237 68, 1252, 68, 1243, 68, 68, 68, 1245, 1249, 68,
1238 1246, 1253, 1254, 1251, 1255, 1256, 1257, 1258, 1259, 1269,
1239 1260, 68, 1262, 68, 1263, 1261, 1247, 1266, 68, 68,
1240 1268, 1269, 1264, 68, 1269, 1269, 1269, 1269, 1253, 1254,
1241 68, 68, 68, 68, 68, 1259, 68, 1260, 68, 1262,
1242 68, 68, 1261, 1265, 1266, 1267, 1269, 68, 1269, 1264,
1243 1269, 1269, 1269, 68, 1269, 68, 1269, 1269, 1269, 1269,
1244 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1245 1265, 1269, 1267, 40, 40, 40, 40, 40, 40, 40,
1246
884 82, 93, 90, 83, 135, 79, 68, 68, 87, 91,
885
886 95, 68, 121, 97, 96, 121, 88, 98, 100, 132,
887 101, 94, 68, 171, 68, 123, 102, 123, 123, 103,
888 123, 135, 129, 99, 124, 68, 104, 95, 68, 68,
889 97, 96, 105, 133, 98, 100, 132, 101, 134, 115,
890 171, 108, 106, 102, 116, 107, 103, 112, 149, 113,
891 99, 109, 68, 104, 68, 110, 111, 68, 117, 105,
892 133, 68, 118, 68, 114, 134, 115, 122, 108, 106,
893 68, 116, 107, 68, 112, 149, 113, 120, 109, 137,
894 126, 126, 110, 111, 68, 117, 136, 68, 68, 118,
895 72, 114, 72, 72, 128, 72, 128, 128, 67, 128,
896
897 67, 67, 72, 67, 72, 72, 137, 72, 67, 138,
898 68, 139, 72, 136, 140, 141, 142, 144, 145, 146,
899 68, 150, 68, 68, 154, 68, 68, 131, 68, 148,
900 68, 147, 68, 143, 68, 155, 138, 129, 139, 73,
901 68, 140, 141, 159, 144, 145, 146, 68, 150, 160,
902 151, 154, 68, 152, 161, 156, 148, 68, 147, 157,
903 143, 163, 155, 158, 162, 164, 68, 153, 68, 68,
904 159, 127, 68, 165, 68, 68, 160, 151, 166, 170,
905 152, 161, 156, 68, 68, 167, 157, 68, 163, 168,
906 158, 162, 164, 68, 153, 169, 68, 176, 175, 173,
907
908 165, 172, 68, 179, 647, 166, 170, 68, 68, 68,
909 178, 182, 167, 68, 68, 180, 168, 177, 187, 68,
910 183, 68, 169, 68, 176, 175, 173, 181, 172, 186,
911 179, 68, 184, 68, 68, 68, 125, 178, 182, 192,
912 185, 68, 180, 123, 177, 123, 123, 183, 123, 68,
913 128, 68, 128, 128, 181, 128, 186, 188, 72, 184,
914 72, 72, 189, 72, 129, 190, 191, 185, 124, 68,
915 68, 194, 193, 68, 200, 122, 120, 68, 201, 203,
916 68, 68, 202, 68, 188, 205, 68, 204, 1302, 189,
917 212, 1302, 190, 191, 68, 131, 1302, 68, 206, 193,
918
919 68, 200, 68, 195, 68, 201, 203, 68, 196, 202,
920 68, 68, 205, 197, 204, 207, 211, 212, 208, 198,
921 199, 209, 210, 213, 214, 206, 68, 68, 1302, 216,
922 195, 68, 215, 68, 68, 196, 219, 1302, 68, 217,
923 197, 220, 207, 211, 221, 208, 198, 199, 209, 210,
924 213, 218, 222, 223, 1302, 68, 235, 68, 68, 215,
925 68, 224, 225, 68, 226, 227, 217, 68, 220, 68,
926 68, 228, 229, 68, 230, 68, 239, 1302, 218, 237,
927 223, 68, 68, 68, 68, 68, 231, 68, 224, 225,
928 68, 226, 227, 233, 234, 232, 236, 238, 228, 229,
929
930 68, 230, 68, 68, 68, 241, 237, 68, 68, 244,
931 240, 242, 247, 231, 250, 1302, 249, 68, 68, 245,
932 233, 234, 232, 236, 238, 251, 248, 129, 256, 252,
933 263, 68, 241, 243, 68, 68, 246, 240, 255, 247,
934 68, 68, 68, 249, 68, 68, 245, 68, 253, 254,
935 267, 257, 251, 248, 68, 256, 252, 68, 258, 259,
936 243, 68, 68, 246, 260, 255, 261, 264, 68, 68,
937 265, 68, 262, 266, 269, 253, 254, 68, 257, 1302,
938 68, 68, 275, 68, 272, 258, 259, 1302, 68, 68,
939 68, 260, 271, 261, 264, 68, 68, 265, 268, 262,
940
941 266, 269, 270, 273, 276, 68, 68, 274, 68, 277,
942 68, 272, 68, 68, 280, 282, 283, 278, 281, 271,
943 279, 284, 68, 1302, 68, 268, 285, 68, 68, 270,
944 273, 276, 68, 68, 274, 290, 277, 289, 291, 288,
945 68, 280, 282, 283, 278, 281, 286, 279, 68, 287,
946 68, 68, 292, 285, 294, 68, 68, 293, 295, 298,
947 68, 68, 68, 296, 289, 291, 288, 299, 304, 68,
948 68, 297, 1302, 286, 305, 308, 287, 1302, 68, 292,
949 68, 294, 303, 68, 293, 306, 298, 404, 68, 68,
950 296, 68, 300, 68, 299, 301, 68, 302, 297, 68,
951
952 68, 305, 308, 68, 307, 309, 319, 311, 320, 303,
953 321, 68, 306, 323, 68, 322, 129, 1302, 68, 300,
954 68, 310, 301, 68, 302, 68, 68, 325, 1302, 68,
955 1302, 307, 309, 319, 311, 320, 1302, 321, 324, 1302,
956 323, 327, 322, 328, 326, 68, 332, 333, 310, 312,
957 313, 68, 1302, 68, 330, 68, 331, 329, 68, 314,
958 1302, 315, 316, 317, 68, 324, 318, 68, 327, 335,
959 328, 326, 334, 1302, 68, 68, 312, 313, 68, 68,
960 68, 330, 337, 331, 329, 338, 314, 336, 315, 316,
961 317, 340, 339, 318, 341, 68, 335, 1302, 68, 334,
962
963 68, 345, 344, 346, 342, 348, 347, 68, 1302, 337,
964 68, 349, 338, 350, 336, 68, 352, 343, 340, 339,
965 68, 341, 68, 68, 68, 351, 68, 353, 345, 344,
966 346, 342, 68, 347, 356, 68, 68, 355, 349, 68,
967 350, 354, 68, 352, 343, 357, 362, 68, 358, 68,
968 359, 361, 351, 360, 68, 68, 363, 68, 68, 1302,
969 368, 356, 365, 366, 355, 68, 364, 68, 354, 68,
970 68, 367, 357, 362, 68, 358, 68, 359, 361, 68,
971 360, 68, 68, 363, 68, 369, 370, 368, 371, 365,
972 366, 372, 375, 364, 374, 1302, 68, 68, 367, 373,
973
974 376, 377, 383, 382, 68, 1302, 68, 1302, 387, 68,
975 68, 68, 369, 68, 68, 371, 378, 68, 372, 375,
976 389, 374, 68, 379, 384, 386, 373, 376, 377, 383,
977 382, 380, 68, 385, 68, 387, 388, 390, 68, 391,
978 393, 381, 68, 378, 392, 397, 68, 389, 68, 68,
979 379, 395, 386, 68, 68, 68, 68, 394, 380, 396,
980 385, 1302, 68, 388, 390, 399, 391, 393, 381, 398,
981 400, 392, 397, 68, 1302, 401, 402, 68, 395, 403,
982 405, 68, 406, 410, 394, 68, 396, 407, 129, 408,
983 68, 409, 399, 68, 411, 68, 398, 68, 412, 68,
984
985 413, 68, 401, 402, 414, 68, 403, 405, 415, 406,
986 68, 416, 1302, 68, 407, 417, 408, 68, 409, 419,
987 418, 68, 420, 423, 421, 422, 424, 68, 425, 68,
988 429, 68, 68, 430, 1302, 426, 432, 68, 416, 68,
989 427, 68, 417, 68, 428, 68, 68, 418, 68, 420,
990 68, 421, 422, 424, 68, 425, 68, 429, 431, 68,
991 68, 433, 426, 432, 68, 435, 436, 427, 437, 438,
992 439, 428, 440, 1302, 441, 1302, 68, 443, 1302, 1302,
993 68, 442, 446, 434, 68, 431, 68, 68, 433, 444,
994 68, 68, 435, 436, 450, 437, 68, 439, 68, 440,
995
996 68, 441, 68, 68, 443, 445, 68, 447, 442, 446,
997 434, 448, 451, 452, 453, 449, 444, 1302, 454, 455,
998 1302, 460, 456, 459, 457, 68, 458, 68, 68, 68,
999 68, 68, 445, 68, 447, 68, 461, 68, 465, 451,
1000 452, 467, 68, 462, 68, 68, 455, 68, 460, 456,
1001 459, 457, 463, 458, 464, 68, 466, 468, 1302, 68,
1002 469, 68, 470, 461, 68, 1302, 68, 68, 467, 68,
1003 462, 473, 472, 68, 474, 475, 1302, 471, 476, 463,
1004 68, 464, 68, 466, 468, 68, 68, 469, 477, 470,
1005 480, 68, 479, 481, 478, 68, 68, 488, 473, 472,
1006
1007 68, 474, 475, 68, 471, 476, 68, 482, 68, 483,
1008 68, 1302, 68, 491, 484, 477, 485, 480, 486, 479,
1009 481, 478, 68, 489, 494, 497, 487, 508, 68, 129,
1010 490, 495, 68, 68, 482, 492, 483, 68, 493, 68,
1011 491, 484, 68, 485, 68, 486, 68, 68, 68, 496,
1012 489, 494, 68, 487, 68, 1302, 68, 490, 495, 504,
1013 1302, 505, 492, 509, 506, 493, 68, 1302, 507, 1302,
1014 68, 510, 68, 511, 1302, 1302, 496, 498, 1302, 499,
1015 1302, 68, 500, 68, 512, 68, 504, 501, 505, 513,
1016 509, 506, 68, 502, 503, 507, 514, 68, 510, 515,
1017
1018 511, 517, 68, 68, 498, 516, 499, 68, 520, 500,
1019 68, 512, 521, 68, 501, 1302, 513, 518, 522, 523,
1020 502, 503, 519, 514, 68, 531, 515, 68, 517, 68,
1021 68, 68, 516, 524, 525, 520, 527, 528, 526, 68,
1022 68, 529, 68, 530, 518, 522, 523, 68, 533, 519,
1023 535, 532, 68, 68, 534, 1302, 68, 68, 68, 68,
1024 524, 525, 68, 527, 528, 526, 536, 68, 68, 543,
1025 530, 544, 68, 538, 537, 533, 68, 535, 532, 68,
1026 539, 534, 540, 541, 542, 548, 68, 68, 68, 68,
1027 68, 68, 547, 536, 68, 545, 543, 546, 544, 551,
1028
1029 538, 537, 552, 68, 550, 68, 68, 539, 553, 540,
1030 541, 542, 548, 549, 555, 68, 68, 68, 554, 547,
1031 68, 556, 545, 557, 546, 68, 558, 68, 559, 552,
1032 68, 550, 561, 68, 560, 553, 68, 562, 564, 565,
1033 549, 555, 566, 68, 563, 554, 68, 567, 556, 68,
1034 557, 68, 68, 576, 68, 559, 568, 68, 1302, 561,
1035 569, 560, 570, 68, 68, 68, 129, 1302, 68, 566,
1036 68, 563, 578, 579, 567, 68, 68, 577, 581, 68,
1037 576, 582, 580, 568, 68, 583, 68, 569, 68, 570,
1038 571, 68, 572, 587, 588, 589, 573, 1302, 574, 578,
1039
1040 579, 590, 68, 575, 577, 581, 584, 68, 582, 580,
1041 68, 593, 591, 585, 68, 68, 68, 571, 592, 572,
1042 587, 588, 589, 573, 68, 574, 595, 68, 590, 596,
1043 575, 586, 68, 584, 68, 594, 597, 68, 593, 591,
1044 585, 598, 599, 68, 601, 592, 600, 603, 604, 608,
1045 68, 1302, 68, 68, 602, 68, 596, 605, 586, 607,
1046 68, 610, 594, 606, 68, 68, 68, 68, 598, 599,
1047 68, 601, 68, 600, 603, 604, 68, 68, 611, 609,
1048 68, 602, 612, 68, 605, 613, 607, 614, 610, 615,
1049 606, 68, 616, 1302, 1302, 618, 617, 626, 619, 640,
1050
1051 68, 622, 620, 68, 68, 611, 609, 621, 68, 612,
1052 624, 623, 613, 68, 614, 627, 628, 625, 68, 68,
1053 68, 68, 618, 68, 626, 619, 68, 629, 622, 620,
1054 68, 630, 68, 631, 621, 68, 68, 624, 623, 68,
1055 68, 632, 627, 68, 625, 68, 633, 634, 635, 636,
1056 68, 639, 643, 68, 629, 637, 638, 68, 630, 641,
1057 631, 68, 1302, 1302, 68, 642, 655, 68, 632, 646,
1058 68, 68, 645, 633, 634, 635, 636, 68, 639, 68,
1059 68, 644, 637, 638, 68, 68, 648, 649, 656, 68,
1060 68, 652, 642, 650, 653, 68, 646, 68, 651, 645,
1061
1062 68, 68, 654, 658, 68, 68, 68, 1302, 644, 68,
1063 657, 659, 660, 648, 649, 661, 68, 663, 652, 68,
1064 650, 653, 664, 662, 68, 651, 666, 68, 665, 654,
1065 658, 68, 68, 667, 68, 68, 668, 657, 659, 660,
1066 671, 68, 661, 669, 68, 670, 68, 672, 68, 664,
1067 662, 68, 68, 666, 673, 665, 674, 676, 68, 68,
1068 667, 677, 680, 668, 68, 675, 68, 671, 68, 68,
1069 669, 68, 670, 678, 672, 683, 681, 682, 1302, 679,
1070 68, 673, 68, 674, 676, 68, 68, 685, 677, 680,
1071 68, 684, 675, 686, 68, 689, 688, 687, 68, 690,
1072
1073 678, 691, 683, 1302, 682, 694, 679, 68, 695, 68,
1074 68, 692, 693, 68, 685, 697, 696, 698, 684, 1302,
1075 699, 68, 689, 688, 68, 68, 700, 68, 691, 1302,
1076 68, 68, 694, 68, 68, 695, 1302, 706, 692, 693,
1077 705, 1302, 68, 696, 1302, 701, 68, 699, 68, 68,
1078 702, 1302, 703, 700, 704, 711, 68, 707, 709, 708,
1079 68, 714, 710, 68, 706, 715, 712, 705, 68, 68,
1080 68, 68, 701, 716, 68, 68, 713, 702, 68, 703,
1081 717, 704, 711, 718, 707, 709, 708, 719, 68, 710,
1082 720, 68, 68, 712, 721, 722, 724, 68, 723, 730,
1083
1084 716, 725, 68, 713, 726, 68, 727, 717, 728, 731,
1085 718, 733, 729, 1302, 68, 68, 68, 68, 68, 732,
1086 68, 721, 68, 724, 737, 723, 68, 734, 725, 68,
1087 68, 726, 68, 727, 736, 728, 735, 740, 744, 729,
1088 68, 68, 68, 739, 68, 68, 732, 68, 738, 741,
1089 68, 68, 742, 743, 734, 68, 68, 747, 1302, 68,
1090 745, 736, 68, 735, 68, 744, 68, 68, 68, 746,
1091 739, 68, 753, 748, 749, 738, 741, 68, 750, 742,
1092 743, 751, 68, 752, 747, 757, 754, 745, 756, 758,
1093 755, 759, 68, 68, 68, 68, 746, 68, 760, 753,
1094
1095 748, 761, 68, 68, 762, 68, 68, 763, 751, 765,
1096 752, 68, 757, 754, 766, 756, 758, 755, 759, 767,
1097 769, 764, 770, 68, 68, 760, 68, 68, 761, 68,
1098 68, 762, 768, 771, 763, 772, 765, 1302, 68, 774,
1099 68, 766, 68, 773, 778, 1302, 767, 769, 764, 775,
1100 776, 781, 68, 68, 777, 779, 1302, 68, 782, 768,
1101 780, 68, 772, 68, 68, 68, 774, 783, 68, 784,
1102 773, 68, 68, 787, 792, 68, 775, 68, 781, 788,
1103 785, 68, 779, 786, 793, 68, 68, 780, 68, 68,
1104 789, 68, 790, 791, 783, 794, 784, 68, 68, 796,
1105
1106 787, 792, 68, 797, 799, 795, 788, 785, 802, 798,
1107 786, 793, 68, 68, 801, 68, 68, 789, 68, 790,
1108 791, 800, 794, 803, 1302, 68, 68, 804, 1302, 805,
1109 797, 808, 795, 806, 809, 68, 798, 810, 1302, 68,
1110 68, 801, 807, 68, 68, 68, 68, 812, 800, 814,
1111 68, 68, 811, 68, 804, 68, 805, 813, 808, 68,
1112 806, 809, 68, 815, 68, 68, 817, 816, 818, 807,
1113 819, 826, 820, 68, 812, 68, 814, 68, 821, 811,
1114 822, 824, 823, 68, 813, 68, 68, 68, 68, 68,
1115 815, 825, 832, 817, 816, 818, 827, 819, 68, 820,
1116
1117 829, 828, 68, 68, 830, 821, 68, 822, 824, 823,
1118 831, 833, 68, 68, 68, 1302, 68, 834, 825, 832,
1119 835, 68, 840, 827, 837, 836, 68, 829, 828, 68,
1120 838, 830, 68, 839, 68, 846, 841, 831, 843, 842,
1121 845, 848, 68, 68, 834, 68, 68, 835, 68, 68,
1122 68, 837, 836, 68, 844, 68, 847, 838, 68, 864,
1123 839, 68, 846, 841, 849, 843, 842, 845, 850, 853,
1124 68, 68, 68, 851, 852, 68, 857, 856, 1302, 68,
1125 859, 844, 858, 847, 854, 860, 68, 855, 68, 68,
1126 68, 849, 863, 68, 865, 850, 853, 870, 68, 68,
1127
1128 851, 852, 68, 68, 856, 861, 68, 859, 862, 858,
1129 68, 854, 860, 866, 855, 867, 868, 869, 871, 863,
1130 68, 68, 872, 68, 870, 68, 873, 68, 875, 68,
1131 68, 876, 861, 877, 1302, 862, 878, 68, 874, 882,
1132 866, 879, 867, 868, 869, 871, 880, 68, 68, 872,
1133 883, 1302, 881, 873, 68, 68, 1302, 889, 68, 68,
1134 877, 885, 68, 884, 68, 874, 882, 68, 879, 68,
1135 68, 886, 68, 880, 887, 890, 1302, 883, 888, 881,
1136 68, 891, 68, 68, 889, 68, 893, 892, 885, 894,
1137 884, 896, 898, 68, 895, 899, 900, 68, 886, 897,
1138
1139 908, 887, 890, 68, 68, 888, 68, 68, 891, 68,
1140 68, 902, 68, 893, 892, 901, 894, 915, 68, 898,
1141 68, 895, 899, 903, 904, 905, 897, 68, 906, 907,
1142 68, 68, 910, 909, 911, 912, 913, 914, 902, 68,
1143 68, 68, 901, 916, 68, 917, 68, 919, 68, 1302,
1144 903, 68, 68, 921, 923, 906, 68, 918, 1302, 910,
1145 909, 911, 68, 68, 68, 922, 68, 68, 927, 920,
1146 916, 68, 924, 931, 925, 68, 68, 930, 68, 926,
1147 68, 928, 929, 68, 918, 68, 933, 68, 68, 68,
1148 934, 68, 922, 932, 68, 927, 920, 68, 935, 924,
1149
1150 68, 925, 936, 937, 930, 939, 926, 941, 928, 929,
1151 938, 68, 68, 933, 940, 68, 68, 934, 68, 944,
1152 932, 68, 68, 942, 943, 935, 68, 945, 1302, 936,
1153 937, 68, 939, 946, 941, 947, 949, 938, 948, 950,
1154 951, 940, 956, 68, 1302, 68, 944, 68, 68, 952,
1155 942, 68, 957, 953, 945, 68, 68, 68, 68, 954,
1156 68, 958, 947, 949, 955, 948, 950, 951, 959, 68,
1157 68, 68, 963, 960, 68, 68, 952, 961, 964, 957,
1158 953, 962, 965, 966, 967, 970, 954, 968, 958, 972,
1159 969, 955, 68, 68, 973, 974, 971, 975, 68, 68,
1160
1161 68, 68, 68, 68, 976, 964, 977, 68, 68, 68,
1162 966, 967, 978, 68, 968, 979, 68, 969, 982, 68,
1163 68, 973, 974, 971, 68, 980, 981, 68, 984, 983,
1164 985, 68, 986, 977, 68, 988, 68, 68, 987, 978,
1165 992, 68, 979, 68, 68, 982, 990, 1302, 68, 991,
1166 68, 68, 980, 981, 989, 984, 983, 985, 993, 986,
1167 995, 994, 997, 996, 68, 987, 68, 68, 68, 68,
1168 1000, 1002, 68, 990, 68, 1003, 991, 68, 68, 998,
1169 999, 989, 68, 1004, 1001, 993, 68, 995, 994, 997,
1170 996, 68, 68, 68, 68, 68, 1005, 1000, 1002, 1006,
1171
1172 68, 1302, 1003, 1007, 68, 1008, 998, 999, 1009, 1010,
1173 1004, 1001, 1011, 1012, 68, 1014, 1015, 1013, 1018, 1302,
1174 1016, 1302, 68, 1005, 68, 1302, 68, 68, 68, 1017,
1175 1007, 68, 1008, 68, 68, 1009, 1010, 1019, 68, 1011,
1176 1012, 1022, 68, 1015, 1013, 68, 68, 1016, 1020, 1024,
1177 1023, 1021, 68, 1026, 1027, 1032, 1017, 1025, 1028, 68,
1178 1033, 68, 1029, 1035, 1019, 68, 68, 68, 1022, 68,
1179 1030, 68, 1031, 68, 68, 1020, 1024, 1023, 1021, 68,
1180 1026, 1027, 1032, 68, 1025, 1028, 1034, 68, 1036, 1029,
1181 68, 68, 1038, 1037, 1039, 1040, 68, 1030, 1041, 1031,
1182
1183 1042, 1043, 1302, 1044, 68, 1302, 1050, 68, 68, 1045,
1184 1046, 1047, 1302, 1034, 68, 1036, 68, 68, 68, 1038,
1185 1037, 1039, 68, 1048, 68, 1041, 1049, 1042, 68, 68,
1186 1044, 1051, 68, 1050, 68, 68, 1045, 1046, 1047, 68,
1187 1052, 1053, 1055, 68, 1057, 1054, 1056, 1059, 68, 68,
1188 1048, 68, 68, 1049, 1058, 1062, 1060, 68, 1051, 1061,
1189 1063, 68, 1064, 1065, 1066, 1068, 1069, 1052, 1053, 1055,
1190 68, 68, 1054, 1056, 1059, 1070, 68, 1071, 68, 1073,
1191 1067, 1058, 68, 1060, 1076, 68, 1061, 68, 68, 1064,
1192 68, 68, 68, 68, 1075, 1072, 1074, 68, 1077, 1079,
1193
1194 1081, 1080, 1070, 68, 68, 68, 68, 1067, 68, 68,
1195 1082, 1076, 1084, 1078, 1085, 68, 1083, 68, 1302, 1088,
1196 1086, 1075, 1072, 1074, 68, 1077, 68, 68, 1080, 68,
1197 1087, 1090, 68, 68, 1092, 1094, 1091, 68, 68, 1084,
1198 1078, 1085, 68, 1083, 1089, 1095, 1088, 1086, 68, 1093,
1199 68, 1097, 68, 68, 1098, 1096, 1099, 1087, 1090, 1302,
1200 1302, 1092, 68, 1091, 1302, 1100, 68, 68, 68, 68,
1201 1103, 1089, 1095, 1101, 1102, 1104, 1093, 1106, 1097, 1108,
1202 68, 1098, 1096, 1105, 1107, 68, 68, 68, 1109, 1111,
1203 1110, 68, 1100, 1115, 1302, 1112, 68, 1103, 1116, 68,
1204
1205 1101, 1102, 1104, 68, 68, 68, 1108, 68, 1114, 1118,
1206 1105, 1107, 68, 1113, 1119, 68, 1111, 1110, 68, 68,
1207 68, 1117, 1112, 1121, 68, 1116, 1120, 1122, 1123, 1124,
1208 68, 68, 68, 68, 1125, 1114, 1118, 1126, 1302, 1128,
1209 1113, 1119, 1130, 1132, 68, 1129, 1127, 1302, 1117, 68,
1210 1121, 68, 1131, 1120, 68, 68, 68, 68, 1133, 1134,
1211 1135, 1136, 1137, 68, 1126, 68, 1128, 68, 68, 68,
1212 1132, 1143, 1129, 1127, 68, 1138, 1139, 68, 1140, 1131,
1213 68, 1141, 1144, 1142, 68, 1133, 68, 68, 68, 1137,
1214 68, 68, 1146, 68, 1145, 68, 68, 1147, 68, 68,
1215
1216 68, 1148, 1138, 1139, 68, 1140, 1150, 1149, 1141, 1144,
1217 1142, 68, 1153, 1151, 1152, 68, 1154, 1164, 1155, 1146,
1218 68, 1145, 1156, 1159, 1147, 68, 1158, 1163, 1148, 1157,
1219 1302, 1161, 68, 1150, 1149, 68, 68, 1160, 68, 68,
1220 1151, 1152, 68, 1154, 68, 1155, 68, 68, 68, 68,
1221 1159, 1162, 1166, 1158, 68, 1165, 1157, 1169, 1161, 68,
1222 68, 1167, 1168, 1170, 1160, 1171, 1172, 68, 68, 68,
1223 1173, 1175, 1174, 1302, 1176, 68, 1178, 68, 1162, 1166,
1224 68, 68, 1165, 1179, 1169, 1180, 1177, 1181, 1167, 1168,
1225 68, 68, 1171, 1172, 68, 1183, 1182, 68, 68, 1174,
1226
1227 68, 1176, 1184, 1178, 1185, 68, 68, 68, 68, 1186,
1228 1179, 1187, 1180, 1177, 1181, 1188, 68, 68, 1189, 1302,
1229 1190, 1191, 1183, 1182, 68, 1192, 1193, 1194, 1302, 1184,
1230 1197, 1185, 1201, 1195, 1199, 1302, 68, 1196, 68, 1302,
1231 68, 68, 68, 68, 1198, 68, 68, 68, 1191, 1202,
1232 68, 68, 1192, 1193, 1194, 68, 68, 1197, 1200, 68,
1233 1195, 1199, 68, 1203, 1196, 1204, 68, 68, 1205, 1206,
1234 1207, 1198, 1208, 1302, 1209, 1215, 1202, 1211, 1210, 68,
1235 1212, 1214, 68, 68, 1213, 1200, 68, 68, 1216, 1217,
1236 1203, 1220, 1204, 68, 68, 1205, 1206, 68, 1218, 1208,
1237
1238 68, 1209, 68, 1222, 68, 1210, 68, 68, 1214, 1219,
1239 68, 1213, 68, 1221, 1227, 68, 1217, 68, 1220, 68,
1240 1223, 68, 1224, 1226, 68, 1218, 1225, 1228, 1229, 68,
1241 1222, 68, 68, 68, 68, 1231, 1219, 1230, 1232, 1233,
1242 1221, 1227, 1234, 1235, 68, 1237, 68, 1223, 1238, 1224,
1243 1226, 1302, 68, 1225, 1228, 1229, 1240, 68, 68, 1239,
1244 68, 68, 68, 1241, 1230, 1232, 1233, 68, 1242, 1234,
1245 1235, 1236, 1237, 68, 68, 1238, 68, 68, 68, 1243,
1246 1244, 68, 1245, 1240, 1247, 1246, 1239, 1252, 1249, 1248,
1247 1241, 68, 68, 1250, 68, 1242, 68, 1251, 1236, 1253,
1248
1249 68, 1254, 1257, 1258, 1262, 68, 1243, 68, 68, 1245,
1250 68, 1247, 1246, 1264, 68, 1249, 1248, 1256, 1255, 1259,
1251 1250, 68, 68, 1260, 1251, 68, 1253, 68, 68, 68,
1252 68, 68, 1261, 1263, 1265, 1267, 1266, 1268, 68, 68,
1253 68, 1269, 68, 1270, 1256, 1255, 1259, 1271, 68, 68,
1254 1260, 1272, 1302, 1273, 1274, 1275, 1276, 68, 1277, 1261,
1255 1263, 1265, 1267, 1266, 68, 1278, 1279, 1281, 68, 68,
1256 68, 1283, 1282, 1284, 1271, 68, 1285, 68, 68, 68,
1257 1273, 68, 1275, 1276, 1280, 68, 1288, 68, 68, 1286,
1258 1289, 68, 1278, 1279, 68, 68, 68, 1287, 68, 1282,
1259
1260 1284, 68, 1290, 68, 1291, 1292, 68, 1293, 1302, 1296,
1261 1297, 1280, 1294, 68, 1295, 1298, 1286, 68, 1300, 1301,
1262 68, 68, 1302, 1302, 1287, 1299, 68, 68, 68, 68,
1263 1302, 68, 1292, 68, 1293, 68, 68, 1297, 68, 1294,
1264 1302, 1295, 1298, 1302, 1302, 1300, 68, 1302, 1302, 1302,
1265 1302, 1302, 1299, 40, 40, 40, 40, 40, 40, 40,
12471266 45, 45, 45, 45, 45, 45, 45, 50, 50, 50,
12481267 50, 50, 50, 50, 56, 56, 56, 56, 56, 56,
12491268 56, 61, 61, 61, 61, 61, 61, 61, 71, 71,
1250 1269, 71, 71, 71, 71, 118, 118, 1269, 1269, 1269,
1251 118, 118, 120, 120, 1269, 1269, 120, 1269, 120, 122,
1252 1269, 1269, 1269, 1269, 1269, 122, 125, 125, 1269, 1269,
1253 1269, 125, 125, 127, 1269, 1269, 1269, 1269, 1269, 127,
1254 129, 129, 1269, 129, 129, 129, 129, 72, 72, 1269,
1255 72, 72, 72, 72, 13, 1269, 1269, 1269, 1269, 1269,
1256 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1257
1258 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1259 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1260 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1261 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1262 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269
1269 1302, 71, 71, 71, 71, 119, 119, 1302, 1302, 1302,
1270
1271 119, 119, 121, 121, 1302, 1302, 121, 1302, 121, 123,
1272 1302, 1302, 1302, 1302, 1302, 123, 126, 126, 1302, 1302,
1273 1302, 126, 126, 128, 1302, 1302, 1302, 1302, 1302, 128,
1274 130, 130, 1302, 130, 130, 130, 130, 72, 72, 1302,
1275 72, 72, 72, 72, 13, 1302, 1302, 1302, 1302, 1302,
1276 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1277 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1278 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1279 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1280 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1281
1282 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302
12631283 } ;
12641284
1265 static yyconst flex_int16_t yy_chk[3751] =
1285 static yyconst flex_int16_t yy_chk[3811] =
12661286 { 0,
12671287 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12681288 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12721292 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12731293 1, 1, 1, 1, 1, 3, 3, 3, 4, 4,
12741294 4, 5, 5, 6, 6, 5, 24, 6, 7, 7,
1275 7, 7, 1275, 7, 8, 8, 8, 8, 24, 8,
1295 7, 7, 1308, 7, 8, 8, 8, 8, 24, 8,
12761296 9, 9, 9, 10, 10, 10, 15, 44, 44, 49,
12771297
12781298 15, 3, 49, 24, 4, 60, 60, 5, 19, 6,
1279 19, 19, 69, 19, 550, 7, 69, 39, 19, 39,
1280 39, 8, 39, 23, 20, 20, 9, 39, 127, 10,
1299 19, 19, 69, 19, 565, 7, 69, 39, 19, 39,
1300 39, 8, 39, 23, 20, 20, 9, 39, 128, 10,
12811301 11, 11, 11, 11, 11, 11, 12, 12, 12, 12,
12821302 12, 12, 20, 23, 109, 19, 23, 27, 20, 11,
1283 23, 20, 20, 125, 21, 12, 22, 119, 119, 27,
1303 23, 20, 20, 126, 21, 12, 22, 120, 120, 27,
12841304 22, 21, 26, 22, 28, 26, 22, 11, 21, 20,
1285 23, 25, 26, 12, 27, 109, 11, 124, 22, 25,
1305 23, 25, 26, 12, 27, 109, 11, 125, 22, 25,
12861306 21, 21, 12, 22, 29, 26, 28, 22, 21, 26,
1287 22, 28, 26, 22, 74, 21, 29, 25, 25, 26,
1288
1289 30, 122, 121, 31, 30, 121, 25, 31, 32, 65,
1290 33, 29, 30, 120, 32, 118, 33, 67, 74, 33,
1291 37, 74, 65, 31, 61, 37, 33, 30, 33, 31,
1292 31, 30, 34, 37, 31, 32, 65, 33, 36, 75,
1293 36, 35, 34, 33, 38, 34, 33, 37, 38, 56,
1294 31, 35, 37, 33, 34, 36, 35, 126, 126, 34,
1295 51, 50, 75, 35, 36, 36, 75, 36, 35, 34,
1296 38, 38, 34, 76, 55, 38, 55, 55, 35, 55,
1297 76, 77, 36, 35, 63, 45, 63, 63, 66, 63,
1298 66, 66, 68, 66, 68, 68, 71, 68, 71, 71,
1299
1300 76, 71, 68, 78, 79, 77, 71, 80, 77, 81,
1301 82, 83, 78, 84, 40, 82, 85, 79, 81, 14,
1302 86, 63, 80, 85, 89, 88, 84, 92, 83, 86,
1303 78, 79, 87, 71, 80, 92, 81, 82, 93, 95,
1304 84, 87, 83, 85, 90, 94, 89, 86, 88, 94,
1305 91, 89, 88, 91, 92, 83, 97, 90, 93, 87,
1306 93, 96, 95, 13, 98, 93, 95, 91, 99, 94,
1307 97, 90, 94, 101, 91, 0, 94, 91, 102, 100,
1308 91, 96, 99, 97, 98, 93, 100, 102, 96, 103,
1309 104, 98, 106, 103, 91, 99, 101, 104, 105, 107,
1310
1311 101, 108, 133, 110, 106, 102, 100, 107, 113, 111,
1312 108, 103, 105, 112, 113, 115, 103, 104, 111, 106,
1313 103, 0, 0, 110, 112, 105, 107, 114, 108, 110,
1314 110, 114, 116, 133, 117, 113, 111, 115, 138, 140,
1315 112, 0, 115, 117, 131, 132, 123, 116, 123, 123,
1316 110, 123, 134, 128, 114, 128, 128, 135, 128, 116,
1317 129, 117, 129, 129, 134, 129, 136, 132, 131, 138,
1318 140, 131, 132, 137, 139, 0, 135, 142, 136, 134,
1319 137, 143, 145, 144, 135, 0, 145, 149, 146, 143,
1320 0, 0, 0, 136, 147, 0, 139, 129, 0, 149,
1321
1322 137, 139, 141, 142, 142, 144, 152, 141, 143, 145,
1323 144, 146, 141, 148, 149, 146, 147, 150, 141, 141,
1324 150, 147, 151, 153, 154, 141, 148, 155, 152, 141,
1325 153, 151, 150, 152, 141, 154, 156, 158, 157, 141,
1326 148, 159, 161, 158, 150, 141, 141, 150, 157, 151,
1327 153, 154, 160, 162, 165, 167, 163, 177, 155, 164,
1328 167, 165, 156, 156, 158, 169, 166, 0, 171, 157,
1329 168, 170, 159, 161, 160, 157, 163, 169, 170, 160,
1330 164, 165, 167, 163, 162, 175, 164, 166, 177, 168,
1331 171, 172, 169, 166, 174, 171, 172, 168, 170, 173,
1332
1333 173, 174, 176, 178, 181, 179, 180, 184, 173, 183,
1334 175, 178, 175, 186, 0, 184, 182, 0, 172, 185,
1335 187, 174, 176, 544, 183, 0, 173, 173, 180, 176,
1336 178, 179, 179, 182, 184, 181, 183, 180, 185, 188,
1337 189, 182, 187, 182, 186, 190, 185, 187, 194, 189,
1338 191, 188, 192, 544, 193, 180, 195, 0, 196, 194,
1339 182, 197, 199, 200, 190, 201, 188, 189, 195, 198,
1340 203, 0, 190, 202, 191, 194, 200, 191, 192, 192,
1341 193, 193, 196, 195, 197, 196, 208, 198, 197, 205,
1342 200, 201, 201, 199, 207, 202, 198, 204, 205, 206,
1343
1344 202, 203, 209, 210, 204, 206, 211, 212, 207, 215,
1345 0, 209, 208, 208, 217, 217, 205, 213, 210, 218,
1346 0, 207, 222, 216, 204, 214, 206, 215, 214, 209,
1347 210, 212, 213, 219, 212, 214, 215, 211, 216, 217,
1348 222, 217, 217, 223, 213, 224, 218, 221, 220, 222,
1349 216, 220, 214, 225, 226, 214, 227, 219, 220, 221,
1350 219, 228, 229, 227, 230, 234, 226, 224, 0, 229,
1351 223, 231, 224, 0, 221, 220, 233, 232, 220, 225,
1352 225, 226, 236, 227, 235, 248, 230, 0, 236, 229,
1353 232, 230, 228, 237, 233, 231, 234, 238, 231, 239,
1354
1355 237, 240, 244, 233, 232, 242, 235, 243, 244, 236,
1356 238, 235, 247, 245, 240, 239, 248, 242, 246, 247,
1357 237, 245, 0, 239, 238, 243, 239, 254, 240, 244,
1358 246, 249, 242, 0, 243, 250, 251, 253, 249, 247,
1359 245, 0, 239, 241, 241, 246, 0, 250, 251, 254,
1360 253, 0, 252, 241, 254, 241, 241, 241, 249, 252,
1361 241, 257, 250, 251, 253, 255, 255, 0, 241, 256,
1362 241, 241, 257, 259, 258, 0, 256, 260, 263, 252,
1363 241, 262, 241, 241, 241, 258, 259, 241, 257, 261,
1364 262, 263, 265, 264, 255, 266, 256, 268, 267, 269,
1365
1366 259, 258, 260, 0, 260, 263, 264, 270, 262, 271,
1367 265, 264, 261, 272, 0, 268, 261, 266, 273, 265,
1368 264, 267, 266, 274, 268, 267, 275, 272, 270, 276,
1369 269, 271, 275, 264, 270, 277, 271, 278, 0, 280,
1370 272, 282, 279, 283, 273, 273, 293, 276, 279, 283,
1371 277, 288, 284, 275, 274, 285, 276, 286, 288, 278,
1372 0, 291, 277, 290, 278, 280, 280, 282, 282, 279,
1373 283, 284, 286, 285, 289, 292, 290, 293, 288, 284,
1374 294, 289, 285, 291, 286, 296, 295, 297, 291, 294,
1375 290, 295, 299, 300, 292, 297, 298, 301, 302, 299,
1376
1377 303, 289, 292, 298, 300, 302, 301, 294, 296, 305,
1378 309, 298, 296, 295, 297, 304, 307, 304, 309, 299,
1379 300, 298, 298, 298, 311, 302, 303, 303, 301, 306,
1380 298, 307, 308, 301, 310, 305, 305, 309, 298, 310,
1381 312, 306, 304, 307, 308, 313, 311, 315, 298, 316,
1382 314, 311, 319, 313, 317, 318, 306, 320, 312, 308,
1383 321, 310, 314, 322, 318, 324, 319, 312, 326, 317,
1384 315, 323, 313, 327, 315, 321, 328, 314, 322, 319,
1385 316, 317, 318, 323, 320, 325, 329, 321, 330, 324,
1386 322, 331, 324, 0, 333, 326, 332, 334, 323, 325,
1387
1388 327, 335, 332, 336, 338, 339, 337, 328, 0, 344,
1389 0, 338, 325, 329, 341, 330, 333, 340, 0, 343,
1390 334, 333, 331, 332, 334, 345, 336, 341, 337, 342,
1391 336, 338, 335, 337, 342, 346, 339, 349, 342, 340,
1392 344, 341, 351, 345, 340, 343, 343, 347, 0, 348,
1393 350, 349, 345, 342, 352, 353, 342, 0, 355, 346,
1394 354, 342, 346, 361, 349, 342, 358, 361, 360, 347,
1395 347, 348, 350, 351, 347, 352, 348, 350, 357, 353,
1396 355, 352, 353, 356, 354, 355, 362, 354, 358, 359,
1397 360, 357, 356, 358, 361, 360, 347, 363, 364, 365,
1398
1399 0, 366, 367, 365, 368, 357, 370, 372, 0, 369,
1400 356, 368, 371, 359, 373, 363, 359, 362, 370, 372,
1401 375, 371, 364, 396, 363, 364, 366, 367, 366, 367,
1402 365, 368, 369, 370, 372, 374, 369, 376, 378, 371,
1403 379, 377, 380, 374, 382, 373, 375, 375, 379, 378,
1404 381, 384, 383, 385, 396, 0, 380, 0, 388, 409,
1405 376, 387, 374, 377, 376, 378, 382, 379, 377, 380,
1406 381, 382, 383, 384, 386, 385, 388, 381, 384, 383,
1407 385, 387, 389, 386, 390, 388, 391, 393, 387, 392,
1408 409, 394, 397, 393, 398, 389, 0, 403, 0, 394,
1409
1410 0, 386, 0, 398, 399, 408, 390, 403, 400, 389,
1411 391, 390, 392, 391, 393, 397, 392, 394, 394, 397,
1412 400, 398, 406, 399, 403, 407, 394, 412, 408, 411,
1413 0, 399, 408, 414, 415, 400, 412, 413, 0, 413,
1414 406, 417, 0, 0, 0, 416, 407, 418, 0, 406,
1415 419, 411, 407, 410, 412, 410, 411, 414, 410, 418,
1416 414, 415, 420, 410, 413, 416, 421, 417, 417, 410,
1417 410, 422, 416, 421, 418, 423, 419, 419, 410, 422,
1418 410, 424, 410, 425, 427, 410, 420, 428, 429, 420,
1419 410, 426, 430, 421, 423, 425, 410, 410, 422, 434,
1420
1421 426, 431, 423, 432, 435, 436, 427, 424, 424, 438,
1422 425, 427, 429, 430, 428, 429, 433, 437, 426, 430,
1423 431, 434, 432, 441, 435, 433, 434, 439, 431, 442,
1424 432, 435, 436, 443, 456, 439, 437, 444, 0, 448,
1425 438, 0, 442, 433, 437, 444, 446, 441, 449, 447,
1426 441, 451, 446, 0, 439, 447, 442, 448, 453, 443,
1427 443, 444, 450, 0, 444, 456, 448, 452, 457, 451,
1428 450, 449, 444, 446, 454, 449, 447, 455, 451, 453,
1429 452, 454, 459, 460, 458, 453, 462, 461, 463, 450,
1430 455, 457, 458, 461, 452, 457, 464, 459, 465, 467,
1431
1432 469, 454, 466, 0, 455, 460, 470, 465, 468, 459,
1433 460, 458, 462, 462, 461, 468, 466, 472, 473, 463,
1434 464, 474, 471, 464, 474, 465, 473, 469, 475, 466,
1435 467, 0, 0, 470, 471, 468, 477, 484, 0, 479,
1436 472, 475, 0, 0, 472, 473, 0, 480, 474, 471,
1437 478, 479, 478, 0, 483, 475, 476, 482, 476, 477,
1438 480, 481, 476, 477, 476, 486, 479, 481, 484, 476,
1439 482, 0, 485, 487, 480, 483, 489, 478, 488, 485,
1440 476, 483, 490, 476, 482, 476, 487, 486, 481, 476,
1441 494, 476, 486, 488, 491, 492, 476, 485, 485, 485,
1442
1443 487, 497, 489, 489, 490, 488, 485, 493, 492, 490,
1444 495, 498, 499, 491, 500, 493, 508, 494, 501, 503,
1445 499, 491, 492, 505, 485, 502, 504, 503, 500, 506,
1446 505, 507, 497, 495, 493, 498, 516, 495, 498, 499,
1447 501, 500, 506, 502, 511, 501, 503, 508, 504, 507,
1448 505, 510, 502, 504, 512, 513, 506, 514, 507, 515,
1449 518, 0, 519, 510, 518, 519, 511, 516, 521, 520,
1450 523, 511, 522, 0, 0, 514, 512, 513, 510, 522,
1451 521, 512, 513, 524, 514, 515, 515, 525, 519, 519,
1452 526, 518, 519, 520, 523, 521, 520, 523, 527, 522,
1453
1454 528, 530, 531, 529, 532, 524, 534, 536, 530, 525,
1455 524, 526, 529, 533, 525, 534, 531, 526, 535, 527,
1456 537, 538, 540, 536, 528, 527, 532, 528, 530, 531,
1457 529, 532, 539, 534, 536, 533, 554, 542, 541, 543,
1458 533, 552, 535, 546, 539, 535, 541, 545, 555, 540,
1459 542, 537, 538, 552, 543, 547, 545, 562, 548, 539,
1460 548, 546, 551, 547, 542, 541, 543, 554, 552, 553,
1461 546, 556, 559, 557, 545, 551, 553, 558, 563, 555,
1462 560, 565, 547, 561, 562, 548, 557, 563, 564, 551,
1463 558, 567, 560, 556, 559, 561, 553, 569, 556, 559,
1464
1465 557, 566, 570, 565, 558, 563, 564, 560, 565, 566,
1466 561, 568, 572, 567, 570, 564, 574, 573, 567, 568,
1467 569, 571, 574, 575, 569, 573, 576, 572, 566, 570,
1468 577, 579, 575, 571, 578, 581, 583, 587, 568, 572,
1469 585, 578, 577, 574, 573, 584, 582, 576, 571, 579,
1470 575, 587, 584, 576, 589, 583, 586, 577, 579, 582,
1471 586, 578, 585, 583, 587, 588, 581, 585, 590, 591,
1472 595, 592, 584, 582, 593, 594, 596, 597, 604, 595,
1473 0, 0, 598, 588, 0, 589, 0, 586, 594, 599,
1474 604, 591, 588, 592, 590, 590, 591, 595, 592, 603,
1475
1476 593, 593, 594, 601, 598, 604, 600, 596, 597, 598,
1477 608, 600, 599, 600, 605, 600, 599, 607, 606, 601,
1478 611, 612, 603, 605, 600, 607, 603, 609, 614, 608,
1479 601, 606, 610, 600, 610, 613, 609, 608, 600, 615,
1480 600, 605, 600, 613, 607, 606, 616, 611, 612, 617,
1481 618, 620, 619, 621, 609, 614, 622, 618, 626, 610,
1482 623, 627, 613, 628, 624, 622, 615, 629, 616, 633,
1483 620, 0, 632, 616, 619, 621, 617, 618, 620, 619,
1484 621, 623, 630, 622, 624, 628, 631, 623, 632, 626,
1485 628, 624, 627, 635, 631, 634, 633, 635, 629, 632,
1486
1487 630, 636, 634, 637, 638, 0, 639, 0, 640, 630,
1488 637, 638, 641, 631, 642, 639, 642, 643, 0, 641,
1489 635, 644, 634, 646, 649, 644, 643, 646, 647, 647,
1490 637, 638, 636, 639, 640, 640, 648, 652, 650, 641,
1491 654, 642, 651, 0, 643, 648, 649, 650, 644, 651,
1492 653, 649, 657, 654, 646, 647, 655, 660, 653, 663,
1493 652, 658, 656, 648, 652, 650, 660, 654, 655, 651,
1494 656, 659, 661, 662, 657, 665, 664, 653, 666, 657,
1495 663, 658, 664, 655, 660, 662, 663, 667, 658, 656,
1496 661, 0, 670, 659, 668, 671, 672, 665, 659, 661,
1497
1498 662, 673, 665, 664, 672, 673, 674, 675, 671, 666,
1499 677, 678, 0, 683, 670, 675, 676, 679, 667, 670,
1500 668, 668, 671, 672, 676, 679, 683, 680, 681, 685,
1501 682, 677, 673, 674, 675, 680, 681, 677, 682, 684,
1502 683, 685, 678, 676, 679, 684, 686, 687, 688, 689,
1503 690, 691, 692, 694, 680, 681, 685, 682, 691, 693,
1504 694, 695, 698, 689, 701, 0, 684, 0, 690, 687,
1505 703, 688, 686, 686, 687, 688, 689, 690, 691, 692,
1506 694, 693, 704, 705, 707, 706, 693, 706, 708, 709,
1507 726, 701, 695, 698, 703, 705, 710, 703, 711, 712,
1508
1509 708, 713, 0, 710, 712, 715, 707, 714, 704, 704,
1510 705, 707, 706, 715, 716, 708, 709, 713, 718, 0,
1511 719, 726, 720, 710, 711, 711, 712, 718, 713, 724,
1512 714, 721, 715, 719, 714, 722, 716, 723, 721, 725,
1513 728, 716, 722, 727, 723, 718, 731, 719, 720, 720,
1514 727, 729, 733, 728, 724, 732, 724, 732, 721, 734,
1515 735, 725, 722, 0, 723, 736, 725, 728, 731, 738,
1516 727, 739, 729, 731, 736, 739, 733, 737, 729, 733,
1517 740, 741, 732, 742, 737, 743, 735, 735, 744, 0,
1518 734, 738, 736, 745, 743, 744, 738, 748, 739, 0,
1519
1520 745, 746, 740, 747, 737, 742, 749, 740, 741, 750,
1521 742, 748, 743, 753, 746, 744, 750, 752, 747, 751,
1522 745, 754, 756, 752, 748, 753, 751, 759, 746, 755,
1523 747, 760, 755, 756, 761, 762, 750, 749, 766, 763,
1524 753, 754, 763, 762, 752, 764, 751, 755, 754, 756,
1525 765, 777, 761, 767, 759, 760, 755, 763, 760, 755,
1526 767, 761, 762, 764, 768, 766, 763, 769, 772, 763,
1527 770, 771, 764, 771, 773, 774, 769, 772, 768, 775,
1528 767, 765, 777, 770, 778, 782, 774, 779, 775, 783,
1529 0, 768, 0, 780, 769, 772, 784, 770, 771, 780,
1530
1531 773, 773, 774, 783, 782, 784, 775, 790, 779, 794,
1532 785, 786, 782, 791, 779, 778, 783, 780, 785, 787,
1533 780, 792, 786, 784, 789, 793, 780, 794, 787, 795,
1534 790, 789, 796, 795, 790, 791, 794, 785, 786, 797,
1535 791, 798, 799, 792, 796, 800, 787, 793, 792, 801,
1536 802, 789, 793, 809, 798, 803, 795, 799, 804, 796,
1537 800, 805, 806, 807, 803, 802, 797, 808, 798, 799,
1538 810, 812, 800, 813, 814, 811, 810, 802, 812, 804,
1539 801, 807, 803, 811, 809, 804, 815, 816, 805, 806,
1540 807, 819, 817, 821, 808, 0, 820, 810, 812, 823,
1541
1542 813, 814, 811, 824, 822, 820, 822, 825, 827, 831,
1543 826, 0, 826, 815, 828, 827, 817, 826, 816, 817,
1544 829, 828, 819, 820, 821, 826, 823, 829, 830, 824,
1545 824, 822, 832, 832, 830, 827, 831, 826, 825, 826,
1546 833, 828, 834, 836, 826, 837, 838, 829, 840, 834,
1547 839, 839, 841, 841, 844, 830, 845, 842, 848, 832,
1548 0, 836, 847, 0, 838, 837, 833, 833, 842, 834,
1549 836, 846, 837, 838, 840, 840, 844, 839, 846, 841,
1550 849, 844, 847, 850, 842, 848, 851, 845, 852, 847,
1551 854, 853, 857, 851, 855, 858, 859, 856, 846, 853,
1552
1553 852, 850, 849, 856, 860, 857, 861, 849, 860, 863,
1554 850, 854, 855, 851, 862, 852, 864, 854, 853, 857,
1555 868, 855, 865, 859, 856, 870, 858, 866, 867, 862,
1556 867, 864, 871, 869, 873, 860, 874, 861, 869, 875,
1557 863, 862, 866, 864, 876, 865, 877, 871, 878, 865,
1558 892, 868, 879, 885, 866, 867, 870, 882, 873, 871,
1559 869, 873, 885, 874, 886, 876, 875, 884, 877, 878,
1560 879, 876, 882, 877, 887, 878, 891, 893, 884, 879,
1561 885, 892, 886, 894, 882, 896, 895, 893, 898, 891,
1562 899, 886, 887, 884, 884, 900, 901, 899, 0, 902,
1563
1564 0, 887, 901, 891, 893, 884, 0, 905, 898, 894,
1565 894, 895, 896, 895, 902, 898, 903, 899, 904, 905,
1566 906, 900, 900, 901, 908, 909, 902, 906, 910, 912,
1567 911, 903, 914, 904, 905, 913, 913, 910, 915, 916,
1568 918, 920, 917, 903, 0, 904, 908, 906, 911, 918,
1569 909, 908, 909, 919, 914, 910, 912, 911, 924, 914,
1570 919, 916, 913, 915, 917, 915, 916, 918, 921, 917,
1571 923, 924, 920, 925, 926, 928, 927, 929, 923, 927,
1572 919, 931, 930, 0, 934, 924, 936, 932, 931, 926,
1573 921, 939, 929, 928, 927, 921, 930, 923, 932, 938,
1574
1575 925, 926, 928, 927, 929, 934, 927, 936, 931, 930,
1576 937, 934, 937, 936, 932, 940, 941, 938, 939, 942,
1577 945, 943, 946, 944, 0, 951, 938, 942, 952, 0,
1578 0, 0, 947, 940, 945, 950, 954, 937, 955, 958,
1579 958, 953, 940, 941, 943, 944, 942, 945, 943, 946,
1580 944, 947, 951, 950, 952, 952, 953, 956, 954, 947,
1581 957, 955, 950, 954, 959, 955, 958, 960, 953, 956,
1582 960, 961, 959, 963, 962, 964, 966, 971, 968, 961,
1583 962, 964, 957, 967, 956, 969, 972, 957, 963, 970,
1584 974, 959, 968, 975, 960, 973, 977, 978, 961, 969,
1585
1586 963, 962, 964, 966, 971, 968, 976, 967, 980, 973,
1587 967, 981, 969, 972, 976, 970, 970, 974, 982, 983,
1588 975, 985, 973, 977, 978, 984, 982, 986, 0, 987,
1589 980, 988, 989, 976, 984, 980, 990, 992, 981, 994,
1590 989, 0, 985, 0, 987, 982, 983, 995, 985, 993,
1591 993, 986, 984, 996, 986, 987, 987, 998, 988, 989,
1592 999, 997, 995, 990, 992, 994, 994, 997, 1000, 1003,
1593 1002, 987, 999, 1001, 995, 996, 993, 1008, 1005, 998,
1594 996, 1007, 1009, 1013, 998, 1005, 1000, 999, 997, 1010,
1595 1012, 1001, 1003, 1017, 1015, 1000, 1003, 1010, 1013, 1007,
1596
1597 1001, 1002, 1012, 1008, 1008, 1005, 1016, 1018, 1007, 1020,
1598 1013, 1019, 1026, 1009, 0, 1010, 1010, 1012, 1015, 1021,
1599 1017, 1015, 1022, 1025, 1010, 1023, 1027, 1038, 1016, 1022,
1600 1018, 1029, 1024, 1016, 1018, 1019, 1020, 1031, 1019, 1024,
1601 1030, 1021, 1029, 1026, 1032, 1025, 1021, 1027, 1023, 1022,
1602 1025, 1035, 1023, 1027, 1038, 1041, 1031, 1043, 1029, 1024,
1603 1045, 1046, 1030, 1047, 1031, 1048, 1051, 1030, 0, 1032,
1604 1048, 1032, 1049, 1054, 1047, 1056, 1055, 1035, 1035, 1057,
1605 1059, 1058, 1041, 1060, 1043, 1064, 0, 1046, 1046, 1059,
1606 1047, 1045, 1048, 1051, 1049, 1054, 1058, 1056, 1060, 1049,
1607
1608 1054, 1055, 1056, 1055, 1061, 1062, 1057, 1059, 1058, 1063,
1609 1060, 1065, 1064, 1066, 1066, 1067, 1063, 1070, 1071, 1061,
1610 1062, 1068, 1067, 1069, 1072, 1073, 1069, 1071, 1074, 1065,
1611 1070, 1061, 1062, 1077, 1076, 1068, 1063, 1079, 1065, 1080,
1612 1066, 1081, 1067, 1076, 1070, 1071, 1072, 1073, 1068, 1082,
1613 1069, 1072, 1073, 1081, 1083, 1074, 1084, 1080, 1082, 1077,
1614 1077, 1076, 1085, 1083, 1079, 1086, 1080, 1084, 1081, 1087,
1615 1085, 1089, 1088, 0, 0, 1090, 1082, 1095, 1094, 1089,
1616 1096, 1083, 1090, 1084, 1088, 1094, 1098, 1100, 1101, 1085,
1617 1102, 1097, 1086, 1104, 1106, 1098, 1101, 1109, 1089, 1088,
1618
1619 1087, 1095, 1090, 1097, 1095, 1094, 1105, 1096, 1107, 1108,
1620 1111, 1105, 1106, 1098, 1100, 1101, 1109, 1102, 1097, 1104,
1621 1104, 1106, 1111, 1112, 1109, 1113, 1114, 1115, 1116, 1117,
1622 1107, 1108, 1118, 1105, 1119, 1107, 1108, 1111, 1114, 1124,
1623 1121, 1122, 0, 1125, 0, 1112, 1126, 1113, 1128, 0,
1624 1112, 1127, 1113, 1114, 1115, 1116, 1122, 1125, 1129, 1118,
1625 1117, 1119, 1121, 1124, 1126, 1133, 1124, 1121, 1122, 1127,
1626 1125, 1131, 1132, 1126, 1128, 1128, 1129, 1134, 1127, 1131,
1627 1132, 1135, 1139, 1136, 1138, 1129, 1141, 1143, 0, 1144,
1628 1150, 1146, 1133, 1145, 1143, 1134, 1139, 1147, 1131, 1132,
1629
1630 1135, 1151, 1138, 1148, 1134, 1136, 1149, 0, 1135, 1139,
1631 1136, 1138, 1148, 1141, 1143, 1144, 1144, 1145, 1146, 1149,
1632 1145, 1150, 1152, 1155, 1147, 1161, 1158, 1159, 1151, 1160,
1633 1148, 1162, 1164, 1149, 1158, 1163, 1169, 1160, 1170, 1164,
1634 1165, 1165, 1162, 1166, 1155, 1152, 1159, 1170, 1167, 1152,
1635 1155, 1161, 1161, 1158, 1159, 1167, 1160, 1163, 1162, 1164,
1636 1169, 1166, 1163, 1169, 1171, 1170, 1172, 1165, 1173, 1175,
1637 1166, 0, 1177, 1176, 1177, 1167, 1180, 0, 1181, 1182,
1638 1184, 0, 1186, 1185, 1188, 0, 1173, 1175, 1176, 1172,
1639 1186, 1171, 0, 1172, 1189, 1173, 1175, 1182, 1180, 1177,
1640
1641 1176, 1185, 1184, 1180, 1181, 1181, 1182, 1184, 1187, 1186,
1642 1185, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1194, 1195,
1643 1187, 1189, 1191, 1196, 1190, 1197, 1199, 1195, 1201, 1200,
1644 1202, 1203, 1207, 1201, 1192, 1187, 1200, 1204, 1193, 1205,
1645 1190, 1191, 1192, 1193, 1194, 1204, 1195, 1197, 1208, 1209,
1646 1196, 0, 1197, 1199, 1205, 1201, 1200, 1202, 1203, 1207,
1647 1206, 1210, 1213, 1208, 1204, 1212, 1205, 1206, 1214, 1210,
1648 1215, 1216, 1217, 1218, 1222, 1208, 1209, 1220, 1212, 1227,
1649 1223, 1233, 0, 1238, 1213, 0, 1226, 1206, 1210, 1213,
1650 1228, 1234, 1212, 1230, 1217, 1214, 1240, 1215, 1216, 1217,
1651
1652 1218, 1222, 1223, 1220, 1220, 1226, 1227, 1223, 1233, 1232,
1653 1238, 1242, 1228, 1226, 1234, 1230, 1232, 1228, 1234, 1240,
1654 1230, 1243, 1245, 1240, 1246, 1247, 1249, 1251, 1253, 0,
1655 1254, 1245, 1260, 1243, 1261, 1259, 1232, 1265, 1242, 1260,
1656 1267, 0, 1262, 1253, 0, 0, 0, 0, 1243, 1245,
1657 1265, 1246, 1247, 1249, 1251, 1253, 1254, 1254, 1259, 1260,
1658 1262, 1261, 1259, 1264, 1265, 1266, 0, 1267, 0, 1262,
1659 0, 0, 0, 1266, 0, 1264, 0, 0, 0, 0,
1660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661 1264, 0, 1266, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
1662
1663 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1272, 1272, 1272,
1664 1272, 1272, 1272, 1272, 1273, 1273, 1273, 1273, 1273, 1273,
1665 1273, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1276, 1276,
1666 0, 1276, 1276, 1276, 1276, 1277, 1277, 0, 0, 0,
1667 1277, 1277, 1278, 1278, 0, 0, 1278, 0, 1278, 1279,
1668 0, 0, 0, 0, 0, 1279, 1280, 1280, 0, 0,
1669 0, 1280, 1280, 1281, 0, 0, 0, 0, 0, 1281,
1670 1282, 1282, 0, 1282, 1282, 1282, 1282, 1283, 1283, 0,
1671 1283, 1283, 1283, 1283, 1269, 1269, 1269, 1269, 1269, 1269,
1672 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1673
1674 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1675 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1676 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1677 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
1678 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269
1307 22, 28, 26, 22, 76, 21, 29, 25, 25, 26,
1308
1309 30, 76, 122, 31, 30, 122, 25, 31, 32, 65,
1310 33, 29, 30, 106, 32, 55, 33, 55, 55, 33,
1311 55, 76, 65, 31, 123, 106, 33, 30, 33, 31,
1312 31, 30, 34, 74, 31, 32, 65, 33, 75, 37,
1313 106, 35, 34, 33, 37, 34, 33, 36, 89, 36,
1314 31, 35, 37, 33, 34, 35, 35, 74, 38, 34,
1315 74, 75, 38, 35, 36, 75, 37, 121, 35, 34,
1316 89, 37, 34, 36, 36, 89, 36, 119, 35, 78,
1317 127, 127, 35, 35, 38, 38, 77, 67, 78, 38,
1318 63, 36, 63, 63, 66, 63, 66, 66, 68, 66,
1319
1320 68, 68, 71, 68, 71, 71, 78, 71, 68, 79,
1321 77, 80, 71, 77, 81, 82, 83, 84, 85, 86,
1322 82, 90, 79, 81, 92, 85, 80, 63, 86, 88,
1323 84, 87, 92, 83, 90, 93, 79, 61, 80, 71,
1324 87, 81, 82, 95, 84, 85, 86, 83, 90, 96,
1325 91, 92, 88, 91, 97, 93, 88, 93, 87, 94,
1326 83, 99, 93, 94, 98, 100, 95, 91, 97, 96,
1327 95, 56, 100, 101, 91, 99, 96, 91, 102, 105,
1328 91, 97, 93, 94, 98, 103, 94, 102, 99, 103,
1329 94, 98, 100, 105, 91, 104, 101, 111, 110, 108,
1330
1331 101, 107, 104, 113, 559, 102, 105, 103, 108, 107,
1332 112, 116, 103, 110, 113, 114, 103, 111, 134, 112,
1333 117, 114, 104, 111, 111, 110, 108, 115, 107, 133,
1334 113, 115, 118, 116, 559, 117, 51, 112, 116, 139,
1335 132, 118, 114, 124, 111, 124, 124, 117, 124, 134,
1336 129, 133, 129, 129, 115, 129, 133, 135, 130, 118,
1337 130, 130, 136, 130, 132, 137, 138, 132, 50, 135,
1338 139, 141, 140, 138, 143, 45, 40, 137, 144, 146,
1339 14, 136, 145, 146, 135, 148, 144, 147, 13, 136,
1340 154, 0, 137, 138, 140, 130, 0, 154, 149, 140,
1341
1342 143, 143, 141, 142, 145, 144, 146, 148, 142, 145,
1343 147, 149, 148, 142, 147, 150, 153, 154, 151, 142,
1344 142, 151, 152, 155, 156, 149, 142, 150, 0, 158,
1345 142, 152, 157, 151, 155, 142, 160, 0, 153, 158,
1346 142, 161, 150, 153, 162, 151, 142, 142, 151, 152,
1347 155, 159, 163, 164, 0, 156, 175, 159, 157, 157,
1348 158, 165, 166, 161, 167, 168, 158, 160, 161, 166,
1349 168, 169, 170, 164, 171, 162, 179, 0, 159, 177,
1350 164, 171, 165, 163, 170, 167, 172, 175, 165, 166,
1351 169, 167, 168, 174, 174, 173, 176, 178, 169, 170,
1352
1353 173, 171, 174, 176, 177, 181, 177, 179, 172, 183,
1354 180, 182, 185, 172, 188, 0, 187, 178, 180, 184,
1355 174, 174, 173, 176, 178, 189, 186, 185, 194, 190,
1356 201, 181, 181, 182, 186, 187, 184, 180, 193, 185,
1357 183, 190, 182, 187, 184, 188, 184, 189, 191, 192,
1358 205, 195, 189, 186, 194, 194, 190, 191, 196, 197,
1359 182, 201, 193, 184, 198, 193, 199, 202, 192, 196,
1360 203, 197, 200, 204, 207, 191, 192, 195, 195, 0,
1361 202, 205, 213, 207, 210, 196, 197, 0, 198, 199,
1362 200, 198, 209, 199, 202, 204, 203, 203, 206, 200,
1363
1364 204, 207, 208, 211, 214, 206, 209, 212, 208, 215,
1365 210, 210, 211, 213, 217, 219, 219, 216, 218, 209,
1366 216, 220, 212, 0, 215, 206, 221, 216, 214, 208,
1367 211, 214, 217, 218, 212, 225, 215, 224, 226, 223,
1368 219, 217, 219, 219, 216, 218, 222, 216, 220, 222,
1369 221, 223, 227, 221, 229, 224, 222, 228, 230, 233,
1370 226, 229, 225, 231, 224, 226, 223, 234, 237, 228,
1371 231, 232, 0, 222, 238, 241, 222, 0, 227, 227,
1372 234, 229, 236, 233, 228, 239, 233, 326, 241, 230,
1373 231, 239, 235, 232, 234, 235, 238, 235, 232, 237,
1374
1375 236, 238, 241, 235, 240, 242, 245, 243, 246, 236,
1376 247, 240, 239, 249, 326, 248, 247, 0, 245, 235,
1377 243, 242, 235, 248, 235, 249, 246, 251, 0, 242,
1378 0, 240, 242, 245, 243, 246, 0, 247, 250, 0,
1379 249, 253, 248, 254, 252, 250, 258, 258, 242, 244,
1380 244, 252, 0, 253, 256, 254, 257, 255, 251, 244,
1381 0, 244, 244, 244, 255, 250, 244, 256, 253, 260,
1382 254, 252, 259, 0, 244, 258, 244, 244, 257, 259,
1383 260, 256, 262, 257, 255, 263, 244, 261, 244, 244,
1384 244, 265, 264, 244, 266, 262, 260, 0, 261, 259,
1385
1386 265, 269, 268, 270, 267, 272, 271, 266, 0, 262,
1387 263, 273, 263, 274, 261, 264, 276, 267, 265, 264,
1388 268, 266, 267, 269, 271, 275, 270, 277, 269, 268,
1389 270, 267, 273, 271, 280, 274, 272, 279, 273, 275,
1390 274, 278, 276, 276, 267, 281, 287, 278, 282, 280,
1391 283, 286, 275, 285, 282, 279, 288, 286, 277, 0,
1392 294, 280, 291, 292, 279, 287, 289, 281, 278, 291,
1393 292, 293, 281, 287, 288, 282, 283, 283, 286, 285,
1394 285, 289, 294, 288, 293, 295, 296, 294, 297, 291,
1395 292, 298, 301, 289, 300, 0, 298, 297, 293, 299,
1396
1397 302, 303, 306, 305, 295, 0, 300, 0, 309, 303,
1398 305, 302, 295, 306, 301, 297, 304, 296, 298, 301,
1399 311, 300, 299, 304, 307, 308, 299, 302, 303, 306,
1400 305, 304, 308, 307, 309, 309, 310, 312, 310, 313,
1401 315, 304, 304, 304, 314, 319, 311, 311, 315, 312,
1402 304, 317, 308, 319, 313, 307, 314, 316, 304, 318,
1403 307, 0, 316, 310, 312, 321, 313, 315, 304, 320,
1404 322, 314, 319, 317, 0, 323, 324, 318, 317, 325,
1405 327, 320, 328, 332, 316, 324, 318, 329, 321, 330,
1406 323, 331, 321, 325, 333, 327, 320, 328, 334, 329,
1407
1408 335, 322, 323, 324, 336, 331, 325, 327, 337, 328,
1409 332, 338, 0, 330, 329, 339, 330, 338, 331, 341,
1410 340, 333, 342, 345, 343, 344, 346, 335, 347, 334,
1411 349, 336, 344, 350, 0, 348, 352, 339, 338, 337,
1412 348, 347, 339, 340, 348, 342, 343, 340, 346, 342,
1413 341, 343, 344, 346, 345, 347, 349, 349, 351, 348,
1414 352, 353, 348, 352, 350, 354, 355, 348, 356, 357,
1415 358, 348, 359, 0, 360, 0, 351, 362, 0, 0,
1416 355, 361, 365, 353, 353, 351, 362, 354, 353, 363,
1417 356, 358, 354, 355, 368, 356, 359, 358, 360, 359,
1418
1419 357, 360, 363, 361, 362, 364, 365, 366, 361, 365,
1420 353, 367, 369, 370, 371, 367, 363, 0, 371, 372,
1421 0, 377, 373, 376, 374, 368, 375, 364, 377, 366,
1422 369, 376, 364, 374, 366, 375, 378, 370, 382, 369,
1423 370, 384, 367, 379, 372, 371, 372, 373, 377, 373,
1424 376, 374, 380, 375, 381, 379, 383, 385, 0, 378,
1425 386, 380, 387, 378, 383, 0, 381, 384, 384, 382,
1426 379, 390, 389, 387, 391, 392, 0, 388, 393, 380,
1427 385, 381, 386, 383, 385, 388, 389, 386, 394, 387,
1428 397, 390, 396, 398, 395, 392, 391, 405, 390, 389,
1429
1430 393, 391, 392, 395, 388, 393, 398, 399, 397, 400,
1431 394, 0, 396, 408, 401, 394, 402, 397, 403, 396,
1432 398, 395, 402, 406, 415, 418, 403, 424, 405, 399,
1433 407, 416, 408, 400, 399, 409, 400, 401, 412, 407,
1434 408, 401, 415, 402, 403, 403, 406, 409, 412, 417,
1435 406, 415, 416, 403, 424, 0, 418, 407, 416, 420,
1436 0, 421, 409, 425, 422, 412, 422, 0, 423, 0,
1437 421, 426, 417, 427, 0, 0, 417, 419, 0, 419,
1438 0, 420, 419, 425, 428, 427, 420, 419, 421, 429,
1439 425, 422, 423, 419, 419, 423, 430, 426, 426, 431,
1440
1441 427, 433, 419, 430, 419, 432, 419, 431, 436, 419,
1442 428, 428, 437, 429, 419, 0, 429, 434, 438, 439,
1443 419, 419, 435, 430, 432, 447, 431, 433, 433, 434,
1444 436, 435, 432, 440, 441, 436, 443, 444, 442, 437,
1445 439, 445, 438, 446, 434, 438, 439, 442, 450, 435,
1446 452, 448, 440, 441, 451, 0, 447, 444, 443, 448,
1447 440, 441, 446, 443, 444, 442, 453, 451, 445, 460,
1448 446, 461, 450, 455, 453, 450, 452, 452, 448, 455,
1449 456, 451, 457, 458, 459, 465, 456, 460, 458, 457,
1450 453, 459, 464, 453, 461, 462, 460, 463, 461, 468,
1451
1452 455, 453, 469, 462, 467, 464, 465, 456, 470, 457,
1453 458, 459, 465, 466, 472, 463, 470, 467, 471, 464,
1454 466, 473, 462, 474, 463, 469, 475, 473, 476, 469,
1455 468, 467, 478, 471, 477, 470, 472, 479, 481, 482,
1456 466, 472, 483, 477, 480, 471, 478, 484, 473, 474,
1457 474, 480, 476, 489, 483, 476, 485, 475, 0, 478,
1458 486, 477, 487, 486, 485, 481, 482, 0, 479, 483,
1459 484, 480, 491, 492, 484, 487, 489, 490, 494, 490,
1460 489, 495, 493, 485, 491, 496, 492, 486, 493, 487,
1461 488, 494, 488, 498, 499, 500, 488, 0, 488, 491,
1462
1463 492, 501, 495, 488, 490, 494, 497, 499, 495, 493,
1464 500, 504, 502, 497, 488, 498, 496, 488, 503, 488,
1465 498, 499, 500, 488, 504, 488, 506, 501, 501, 507,
1466 488, 497, 497, 497, 502, 505, 509, 503, 504, 502,
1467 497, 510, 511, 505, 513, 503, 512, 515, 516, 520,
1468 511, 0, 507, 506, 514, 515, 507, 517, 497, 519,
1469 512, 523, 505, 518, 517, 510, 513, 509, 510, 511,
1470 516, 513, 514, 512, 515, 516, 518, 519, 524, 522,
1471 520, 514, 525, 523, 517, 526, 519, 527, 523, 528,
1472 518, 522, 530, 0, 0, 531, 530, 538, 531, 552,
1473
1474 524, 534, 532, 526, 525, 524, 522, 533, 534, 525,
1475 536, 535, 526, 527, 527, 539, 540, 537, 538, 533,
1476 528, 531, 531, 530, 538, 531, 532, 541, 534, 532,
1477 552, 542, 536, 543, 533, 535, 539, 536, 535, 537,
1478 542, 544, 539, 540, 537, 541, 545, 546, 547, 548,
1479 544, 551, 555, 545, 541, 549, 550, 543, 542, 553,
1480 543, 546, 0, 0, 549, 554, 569, 551, 544, 558,
1481 547, 548, 557, 545, 546, 547, 548, 554, 551, 555,
1482 550, 556, 549, 550, 558, 557, 560, 561, 570, 556,
1483 553, 566, 554, 562, 567, 560, 558, 569, 563, 557,
1484
1485 563, 562, 568, 572, 566, 561, 567, 0, 556, 568,
1486 571, 573, 574, 560, 561, 575, 572, 577, 566, 570,
1487 562, 567, 578, 576, 573, 563, 580, 575, 579, 568,
1488 572, 578, 571, 581, 574, 576, 582, 571, 573, 574,
1489 585, 581, 575, 583, 577, 584, 579, 586, 580, 578,
1490 576, 583, 585, 580, 587, 579, 588, 590, 582, 586,
1491 581, 591, 594, 582, 588, 589, 590, 585, 584, 587,
1492 583, 589, 584, 592, 586, 598, 596, 597, 0, 593,
1493 594, 587, 591, 588, 590, 592, 593, 600, 591, 594,
1494 597, 599, 589, 601, 598, 603, 602, 601, 599, 604,
1495
1496 592, 605, 598, 0, 597, 608, 593, 596, 609, 600,
1497 602, 606, 607, 603, 600, 611, 610, 612, 599, 0,
1498 613, 609, 603, 602, 601, 610, 614, 605, 605, 0,
1499 604, 608, 608, 606, 607, 609, 0, 618, 606, 607,
1500 616, 0, 613, 610, 0, 615, 611, 613, 612, 614,
1501 615, 0, 615, 614, 615, 623, 616, 619, 621, 620,
1502 618, 626, 622, 615, 618, 627, 624, 616, 620, 619,
1503 622, 621, 615, 629, 623, 624, 625, 615, 625, 615,
1504 630, 615, 623, 631, 619, 621, 620, 632, 626, 622,
1505 633, 631, 627, 624, 634, 635, 637, 629, 636, 644,
1506
1507 629, 638, 630, 625, 639, 636, 640, 630, 641, 645,
1508 631, 647, 642, 0, 632, 640, 634, 633, 637, 646,
1509 638, 634, 635, 637, 651, 636, 639, 648, 638, 641,
1510 644, 639, 642, 640, 650, 641, 649, 654, 658, 642,
1511 645, 646, 647, 653, 649, 648, 646, 653, 652, 655,
1512 650, 651, 656, 657, 648, 652, 655, 661, 0, 656,
1513 659, 650, 657, 649, 658, 658, 661, 659, 654, 660,
1514 653, 660, 667, 662, 664, 652, 655, 662, 664, 656,
1515 657, 665, 665, 666, 661, 671, 668, 659, 670, 672,
1516 669, 673, 666, 671, 667, 668, 660, 669, 674, 667,
1517
1518 662, 675, 672, 673, 676, 664, 674, 677, 665, 679,
1519 666, 670, 671, 668, 680, 670, 672, 669, 673, 681,
1520 683, 678, 684, 675, 676, 674, 680, 679, 675, 677,
1521 678, 676, 682, 685, 677, 686, 679, 0, 682, 689,
1522 681, 680, 683, 688, 692, 0, 681, 683, 678, 690,
1523 691, 695, 689, 684, 691, 693, 0, 690, 696, 682,
1524 694, 686, 686, 693, 685, 688, 689, 697, 694, 698,
1525 688, 692, 695, 701, 706, 697, 690, 698, 695, 702,
1526 699, 691, 693, 700, 707, 702, 701, 694, 699, 696,
1527 703, 700, 704, 705, 697, 708, 698, 706, 707, 710,
1528
1529 701, 706, 703, 711, 713, 709, 702, 699, 718, 712,
1530 700, 707, 709, 708, 717, 705, 712, 703, 704, 704,
1531 705, 716, 708, 721, 0, 711, 710, 723, 0, 724,
1532 711, 727, 709, 725, 728, 713, 712, 729, 0, 718,
1533 717, 717, 726, 716, 726, 725, 728, 731, 716, 733,
1534 721, 723, 730, 727, 723, 724, 724, 732, 727, 730,
1535 725, 728, 732, 734, 729, 733, 736, 735, 738, 726,
1536 739, 746, 740, 731, 731, 735, 733, 738, 741, 730,
1537 742, 744, 743, 739, 732, 741, 734, 742, 736, 743,
1538 734, 745, 753, 736, 735, 738, 747, 739, 740, 740,
1539
1540 749, 748, 746, 747, 751, 741, 744, 742, 744, 743,
1541 752, 754, 752, 745, 748, 0, 753, 755, 745, 753,
1542 756, 749, 761, 747, 758, 757, 751, 749, 748, 756,
1543 759, 751, 757, 760, 759, 767, 762, 752, 764, 763,
1544 766, 769, 754, 755, 755, 764, 758, 756, 763, 761,
1545 767, 758, 757, 766, 765, 760, 768, 759, 762, 785,
1546 760, 765, 767, 762, 770, 764, 763, 766, 771, 774,
1547 768, 770, 769, 772, 773, 771, 779, 776, 0, 772,
1548 781, 765, 780, 768, 775, 782, 773, 775, 776, 774,
1549 785, 770, 784, 782, 786, 771, 774, 791, 781, 791,
1550
1551 772, 773, 775, 779, 776, 783, 780, 781, 783, 780,
1552 784, 775, 782, 787, 775, 788, 789, 790, 792, 784,
1553 787, 786, 793, 783, 791, 789, 794, 792, 797, 788,
1554 790, 798, 783, 799, 0, 783, 800, 794, 795, 804,
1555 787, 801, 788, 789, 790, 792, 802, 795, 793, 793,
1556 805, 0, 802, 794, 799, 801, 0, 812, 804, 797,
1557 799, 807, 798, 806, 805, 795, 804, 800, 801, 807,
1558 802, 808, 806, 802, 809, 813, 0, 805, 811, 802,
1559 812, 814, 808, 809, 812, 811, 816, 815, 807, 817,
1560 806, 819, 821, 817, 818, 822, 823, 813, 808, 820,
1561
1562 831, 809, 813, 814, 816, 811, 818, 821, 814, 815,
1563 822, 825, 820, 816, 815, 824, 817, 838, 819, 821,
1564 825, 818, 822, 826, 827, 828, 820, 823, 829, 830,
1565 824, 831, 833, 832, 834, 835, 836, 837, 825, 832,
1566 833, 834, 824, 839, 826, 841, 829, 843, 838, 0,
1567 826, 827, 828, 845, 847, 829, 830, 842, 0, 833,
1568 832, 834, 835, 836, 837, 846, 842, 839, 849, 844,
1569 839, 844, 848, 853, 848, 849, 841, 852, 843, 848,
1570 845, 850, 851, 852, 842, 847, 855, 848, 850, 851,
1571 856, 846, 846, 854, 854, 849, 844, 856, 858, 848,
1572
1573 853, 848, 859, 860, 852, 862, 848, 864, 850, 851,
1574 861, 861, 855, 855, 863, 863, 858, 856, 864, 868,
1575 854, 860, 859, 866, 867, 858, 868, 869, 0, 859,
1576 860, 862, 862, 870, 864, 871, 873, 861, 872, 874,
1577 875, 863, 879, 873, 0, 866, 868, 869, 875, 876,
1578 866, 874, 880, 877, 869, 867, 872, 871, 880, 878,
1579 870, 881, 871, 873, 878, 872, 874, 875, 882, 879,
1580 876, 877, 885, 883, 881, 878, 876, 884, 886, 880,
1581 877, 884, 887, 888, 889, 892, 878, 890, 881, 894,
1582 891, 878, 891, 886, 895, 897, 893, 898, 888, 882,
1583
1584 883, 893, 890, 885, 899, 886, 900, 889, 884, 895,
1585 888, 889, 901, 887, 890, 902, 892, 891, 908, 897,
1586 894, 895, 897, 893, 898, 903, 906, 900, 909, 908,
1587 910, 899, 911, 900, 901, 916, 902, 909, 915, 901,
1588 920, 906, 902, 903, 908, 908, 918, 0, 910, 919,
1589 911, 915, 903, 906, 917, 909, 908, 910, 922, 911,
1590 924, 923, 926, 925, 917, 915, 916, 920, 923, 925,
1591 929, 932, 918, 918, 919, 933, 919, 926, 922, 927,
1592 928, 917, 929, 934, 930, 922, 924, 924, 923, 926,
1593 925, 930, 934, 932, 927, 928, 935, 929, 932, 936,
1594
1595 933, 0, 933, 937, 937, 938, 927, 928, 939, 940,
1596 934, 930, 941, 942, 935, 944, 945, 943, 949, 0,
1597 947, 0, 942, 935, 943, 0, 936, 938, 947, 948,
1598 937, 940, 938, 939, 941, 939, 940, 950, 945, 941,
1599 942, 952, 948, 945, 943, 949, 944, 947, 951, 954,
1600 953, 951, 950, 957, 958, 965, 948, 955, 959, 952,
1601 966, 958, 961, 968, 950, 953, 951, 957, 952, 959,
1602 963, 954, 964, 965, 964, 951, 954, 953, 951, 955,
1603 957, 958, 965, 961, 955, 959, 967, 966, 969, 961,
1604 968, 963, 971, 970, 972, 973, 969, 963, 974, 964,
1605
1606 977, 978, 0, 979, 967, 0, 985, 985, 972, 980,
1607 981, 982, 0, 967, 971, 969, 970, 974, 977, 971,
1608 970, 972, 973, 983, 980, 974, 984, 977, 978, 979,
1609 979, 986, 981, 985, 982, 983, 980, 981, 982, 986,
1610 987, 988, 990, 987, 993, 989, 991, 995, 984, 988,
1611 983, 989, 991, 984, 994, 998, 996, 990, 986, 997,
1612 999, 995, 1000, 1001, 1002, 1004, 1005, 987, 988, 990,
1613 996, 993, 989, 991, 995, 1007, 1000, 1008, 994, 1010,
1614 1003, 994, 998, 996, 1013, 997, 997, 999, 1003, 1000,
1615 1001, 1002, 1004, 1005, 1012, 1009, 1011, 1007, 1014, 1015,
1616
1617 1017, 1016, 1007, 1009, 1008, 1011, 1010, 1003, 1013, 1016,
1618 1019, 1013, 1021, 1014, 1022, 1012, 1020, 1020, 0, 1025,
1619 1023, 1012, 1009, 1011, 1014, 1014, 1015, 1017, 1016, 1022,
1620 1024, 1027, 1024, 1025, 1029, 1031, 1028, 1019, 1021, 1021,
1621 1014, 1022, 1023, 1020, 1026, 1032, 1025, 1023, 1028, 1030,
1622 1026, 1036, 1029, 1027, 1037, 1034, 1038, 1024, 1027, 0,
1623 0, 1029, 1034, 1028, 0, 1039, 1031, 1030, 1032, 1036,
1624 1042, 1026, 1032, 1039, 1041, 1044, 1030, 1046, 1036, 1048,
1625 1037, 1037, 1034, 1045, 1047, 1042, 1041, 1038, 1049, 1051,
1626 1050, 1039, 1039, 1055, 0, 1052, 1051, 1042, 1056, 1044,
1627
1628 1039, 1041, 1044, 1048, 1046, 1045, 1048, 1047, 1054, 1059,
1629 1045, 1047, 1050, 1053, 1060, 1049, 1051, 1050, 1052, 1056,
1630 1053, 1058, 1052, 1064, 1055, 1056, 1061, 1067, 1070, 1072,
1631 1054, 1059, 1058, 1060, 1074, 1054, 1059, 1075, 0, 1077,
1632 1053, 1060, 1080, 1084, 1077, 1078, 1076, 0, 1058, 1064,
1633 1064, 1061, 1083, 1061, 1067, 1070, 1072, 1076, 1085, 1086,
1634 1087, 1088, 1089, 1075, 1075, 1074, 1077, 1078, 1084, 1080,
1635 1084, 1095, 1078, 1076, 1083, 1090, 1091, 1089, 1092, 1083,
1636 1085, 1093, 1096, 1094, 1090, 1085, 1086, 1087, 1088, 1089,
1637 1094, 1091, 1098, 1092, 1097, 1097, 1093, 1099, 1095, 1098,
1638
1639 1096, 1100, 1090, 1091, 1100, 1092, 1102, 1101, 1093, 1096,
1640 1094, 1099, 1105, 1103, 1104, 1102, 1107, 1118, 1108, 1098,
1641 1101, 1097, 1110, 1113, 1099, 1107, 1112, 1117, 1100, 1111,
1642 0, 1115, 1113, 1102, 1101, 1103, 1104, 1114, 1112, 1105,
1643 1103, 1104, 1115, 1107, 1108, 1108, 1114, 1111, 1118, 1110,
1644 1113, 1116, 1120, 1112, 1117, 1119, 1111, 1126, 1115, 1116,
1645 1120, 1121, 1125, 1127, 1114, 1128, 1129, 1119, 1121, 1125,
1646 1131, 1133, 1132, 0, 1137, 1129, 1139, 1128, 1116, 1120,
1647 1132, 1126, 1119, 1140, 1126, 1141, 1138, 1142, 1121, 1125,
1648 1127, 1138, 1128, 1129, 1139, 1145, 1144, 1131, 1133, 1132,
1649
1650 1137, 1137, 1146, 1139, 1147, 1140, 1142, 1141, 1144, 1148,
1651 1140, 1149, 1141, 1138, 1142, 1150, 1147, 1145, 1151, 0,
1652 1152, 1154, 1145, 1144, 1146, 1155, 1157, 1158, 0, 1146,
1653 1161, 1147, 1166, 1159, 1164, 0, 1148, 1160, 1149, 0,
1654 1155, 1158, 1164, 1154, 1162, 1151, 1150, 1152, 1154, 1167,
1655 1157, 1159, 1155, 1157, 1158, 1160, 1161, 1161, 1165, 1166,
1656 1159, 1164, 1162, 1168, 1160, 1169, 1165, 1167, 1171, 1172,
1657 1174, 1162, 1176, 0, 1177, 1183, 1167, 1179, 1178, 1176,
1658 1180, 1182, 1168, 1172, 1181, 1165, 1171, 1169, 1184, 1185,
1659 1168, 1192, 1169, 1181, 1182, 1171, 1172, 1174, 1188, 1176,
1660
1661 1177, 1177, 1178, 1194, 1179, 1178, 1183, 1180, 1182, 1191,
1662 1192, 1181, 1185, 1193, 1199, 1184, 1185, 1191, 1192, 1188,
1663 1195, 1193, 1196, 1198, 1198, 1188, 1197, 1200, 1202, 1194,
1664 1194, 1195, 1199, 1197, 1200, 1204, 1191, 1203, 1205, 1206,
1665 1193, 1199, 1208, 1209, 1196, 1213, 1203, 1195, 1214, 1196,
1666 1198, 0, 1202, 1197, 1200, 1202, 1217, 1206, 1209, 1215,
1667 1208, 1205, 1204, 1218, 1203, 1205, 1206, 1213, 1219, 1208,
1668 1209, 1210, 1213, 1210, 1214, 1214, 1219, 1215, 1217, 1220,
1669 1221, 1218, 1222, 1217, 1224, 1223, 1215, 1229, 1226, 1225,
1670 1218, 1220, 1224, 1227, 1227, 1219, 1223, 1228, 1210, 1230,
1671
1672 1222, 1232, 1235, 1236, 1240, 1228, 1220, 1221, 1225, 1222,
1673 1226, 1224, 1223, 1242, 1229, 1226, 1225, 1234, 1233, 1237,
1674 1227, 1230, 1234, 1238, 1228, 1233, 1230, 1237, 1232, 1235,
1675 1236, 1240, 1239, 1241, 1243, 1246, 1245, 1247, 1238, 1239,
1676 1242, 1248, 1243, 1249, 1234, 1233, 1237, 1250, 1241, 1245,
1677 1238, 1251, 0, 1253, 1255, 1256, 1259, 1246, 1260, 1239,
1678 1241, 1243, 1246, 1245, 1247, 1261, 1263, 1266, 1248, 1250,
1679 1249, 1271, 1267, 1273, 1250, 1259, 1275, 1256, 1251, 1253,
1680 1253, 1255, 1256, 1259, 1265, 1260, 1279, 1261, 1263, 1276,
1681 1280, 1265, 1261, 1263, 1266, 1267, 1273, 1278, 1271, 1267,
1682
1683 1273, 1276, 1282, 1275, 1284, 1286, 1278, 1287, 0, 1294,
1684 1295, 1265, 1292, 1279, 1293, 1297, 1276, 1280, 1299, 1300,
1685 1286, 1293, 0, 0, 1278, 1298, 1299, 1297, 1295, 1282,
1686 0, 1284, 1286, 1287, 1287, 1292, 1294, 1295, 1298, 1292,
1687 0, 1293, 1297, 0, 0, 1299, 1300, 0, 0, 0,
1688 0, 0, 1298, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
1689 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1305, 1305, 1305,
1690 1305, 1305, 1305, 1305, 1306, 1306, 1306, 1306, 1306, 1306,
1691 1306, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1309, 1309,
1692 0, 1309, 1309, 1309, 1309, 1310, 1310, 0, 0, 0,
1693
1694 1310, 1310, 1311, 1311, 0, 0, 1311, 0, 1311, 1312,
1695 0, 0, 0, 0, 0, 1312, 1313, 1313, 0, 0,
1696 0, 1313, 1313, 1314, 0, 0, 0, 0, 0, 1314,
1697 1315, 1315, 0, 1315, 1315, 1315, 1315, 1316, 1316, 0,
1698 1316, 1316, 1316, 1316, 1302, 1302, 1302, 1302, 1302, 1302,
1699 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1700 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1701 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1702 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1703 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
1704
1705 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302
16791706 } ;
16801707
16811708 static yy_state_type yy_last_accepting_state;
17991826 #define YY_NO_INPUT 1
18001827 #endif
18011828
1802 #line 1802 "<stdout>"
1829 #line 1829 "<stdout>"
18031830
18041831 #define INITIAL 0
18051832 #define quotedstring 1
19862013
19872014 #line 120 "util/configlexer.lex"
19882015
1989 #line 1989 "<stdout>"
2016 #line 2016 "<stdout>"
19902017
19912018 if ( !(yy_init) )
19922019 {
20452072 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
20462073 {
20472074 yy_current_state = (int) yy_def[yy_current_state];
2048 if ( yy_current_state >= 1270 )
2075 if ( yy_current_state >= 1303 )
20492076 yy_c = yy_meta[(unsigned int) yy_c];
20502077 }
20512078 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
20522079 ++yy_cp;
20532080 }
2054 while ( yy_base[yy_current_state] != 3685 );
2081 while ( yy_base[yy_current_state] != 3745 );
20552082
20562083 yy_find_action:
20572084 yy_act = yy_accept[yy_current_state];
21612188 case 17:
21622189 YY_RULE_SETUP
21632190 #line 140 "util/configlexer.lex"
2191 { YDVAR(1, VAR_SSL_UPSTREAM) }
2192 YY_BREAK
2193 case 18:
2194 YY_RULE_SETUP
2195 #line 141 "util/configlexer.lex"
2196 { YDVAR(1, VAR_SSL_SERVICE_KEY) }
2197 YY_BREAK
2198 case 19:
2199 YY_RULE_SETUP
2200 #line 142 "util/configlexer.lex"
2201 { YDVAR(1, VAR_SSL_SERVICE_PEM) }
2202 YY_BREAK
2203 case 20:
2204 YY_RULE_SETUP
2205 #line 143 "util/configlexer.lex"
2206 { YDVAR(1, VAR_SSL_PORT) }
2207 YY_BREAK
2208 case 21:
2209 YY_RULE_SETUP
2210 #line 144 "util/configlexer.lex"
21642211 { YDVAR(1, VAR_DO_DAEMONIZE) }
21652212 YY_BREAK
2166 case 18:
2167 YY_RULE_SETUP
2168 #line 141 "util/configlexer.lex"
2213 case 22:
2214 YY_RULE_SETUP
2215 #line 145 "util/configlexer.lex"
21692216 { YDVAR(1, VAR_INTERFACE) }
21702217 YY_BREAK
2171 case 19:
2172 YY_RULE_SETUP
2173 #line 142 "util/configlexer.lex"
2218 case 23:
2219 YY_RULE_SETUP
2220 #line 146 "util/configlexer.lex"
21742221 { YDVAR(1, VAR_OUTGOING_INTERFACE) }
21752222 YY_BREAK
2176 case 20:
2177 YY_RULE_SETUP
2178 #line 143 "util/configlexer.lex"
2223 case 24:
2224 YY_RULE_SETUP
2225 #line 147 "util/configlexer.lex"
21792226 { YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
21802227 YY_BREAK
2181 case 21:
2182 YY_RULE_SETUP
2183 #line 144 "util/configlexer.lex"
2228 case 25:
2229 YY_RULE_SETUP
2230 #line 148 "util/configlexer.lex"
21842231 { YDVAR(1, VAR_SO_RCVBUF) }
21852232 YY_BREAK
2186 case 22:
2187 YY_RULE_SETUP
2188 #line 145 "util/configlexer.lex"
2233 case 26:
2234 YY_RULE_SETUP
2235 #line 149 "util/configlexer.lex"
21892236 { YDVAR(1, VAR_SO_SNDBUF) }
21902237 YY_BREAK
2191 case 23:
2192 YY_RULE_SETUP
2193 #line 146 "util/configlexer.lex"
2238 case 27:
2239 YY_RULE_SETUP
2240 #line 150 "util/configlexer.lex"
21942241 { YDVAR(1, VAR_CHROOT) }
21952242 YY_BREAK
2196 case 24:
2197 YY_RULE_SETUP
2198 #line 147 "util/configlexer.lex"
2243 case 28:
2244 YY_RULE_SETUP
2245 #line 151 "util/configlexer.lex"
21992246 { YDVAR(1, VAR_USERNAME) }
22002247 YY_BREAK
2201 case 25:
2202 YY_RULE_SETUP
2203 #line 148 "util/configlexer.lex"
2248 case 29:
2249 YY_RULE_SETUP
2250 #line 152 "util/configlexer.lex"
22042251 { YDVAR(1, VAR_DIRECTORY) }
22052252 YY_BREAK
2206 case 26:
2207 YY_RULE_SETUP
2208 #line 149 "util/configlexer.lex"
2253 case 30:
2254 YY_RULE_SETUP
2255 #line 153 "util/configlexer.lex"
22092256 { YDVAR(1, VAR_LOGFILE) }
22102257 YY_BREAK
2211 case 27:
2212 YY_RULE_SETUP
2213 #line 150 "util/configlexer.lex"
2258 case 31:
2259 YY_RULE_SETUP
2260 #line 154 "util/configlexer.lex"
22142261 { YDVAR(1, VAR_PIDFILE) }
22152262 YY_BREAK
2216 case 28:
2217 YY_RULE_SETUP
2218 #line 151 "util/configlexer.lex"
2263 case 32:
2264 YY_RULE_SETUP
2265 #line 155 "util/configlexer.lex"
22192266 { YDVAR(1, VAR_ROOT_HINTS) }
22202267 YY_BREAK
2221 case 29:
2222 YY_RULE_SETUP
2223 #line 152 "util/configlexer.lex"
2268 case 33:
2269 YY_RULE_SETUP
2270 #line 156 "util/configlexer.lex"
22242271 { YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
22252272 YY_BREAK
2226 case 30:
2227 YY_RULE_SETUP
2228 #line 153 "util/configlexer.lex"
2273 case 34:
2274 YY_RULE_SETUP
2275 #line 157 "util/configlexer.lex"
22292276 { YDVAR(1, VAR_MSG_BUFFER_SIZE) }
22302277 YY_BREAK
2231 case 31:
2232 YY_RULE_SETUP
2233 #line 154 "util/configlexer.lex"
2278 case 35:
2279 YY_RULE_SETUP
2280 #line 158 "util/configlexer.lex"
22342281 { YDVAR(1, VAR_MSG_CACHE_SIZE) }
22352282 YY_BREAK
2236 case 32:
2237 YY_RULE_SETUP
2238 #line 155 "util/configlexer.lex"
2283 case 36:
2284 YY_RULE_SETUP
2285 #line 159 "util/configlexer.lex"
22392286 { YDVAR(1, VAR_MSG_CACHE_SLABS) }
22402287 YY_BREAK
2241 case 33:
2242 YY_RULE_SETUP
2243 #line 156 "util/configlexer.lex"
2288 case 37:
2289 YY_RULE_SETUP
2290 #line 160 "util/configlexer.lex"
22442291 { YDVAR(1, VAR_RRSET_CACHE_SIZE) }
22452292 YY_BREAK
2246 case 34:
2247 YY_RULE_SETUP
2248 #line 157 "util/configlexer.lex"
2293 case 38:
2294 YY_RULE_SETUP
2295 #line 161 "util/configlexer.lex"
22492296 { YDVAR(1, VAR_RRSET_CACHE_SLABS) }
22502297 YY_BREAK
2251 case 35:
2252 YY_RULE_SETUP
2253 #line 158 "util/configlexer.lex"
2298 case 39:
2299 YY_RULE_SETUP
2300 #line 162 "util/configlexer.lex"
22542301 { YDVAR(1, VAR_CACHE_MAX_TTL) }
22552302 YY_BREAK
2256 case 36:
2257 YY_RULE_SETUP
2258 #line 159 "util/configlexer.lex"
2303 case 40:
2304 YY_RULE_SETUP
2305 #line 163 "util/configlexer.lex"
22592306 { YDVAR(1, VAR_CACHE_MIN_TTL) }
22602307 YY_BREAK
2261 case 37:
2262 YY_RULE_SETUP
2263 #line 160 "util/configlexer.lex"
2308 case 41:
2309 YY_RULE_SETUP
2310 #line 164 "util/configlexer.lex"
22642311 { YDVAR(1, VAR_INFRA_HOST_TTL) }
22652312 YY_BREAK
2266 case 38:
2267 YY_RULE_SETUP
2268 #line 161 "util/configlexer.lex"
2313 case 42:
2314 YY_RULE_SETUP
2315 #line 165 "util/configlexer.lex"
22692316 { YDVAR(1, VAR_INFRA_LAME_TTL) }
22702317 YY_BREAK
2271 case 39:
2272 YY_RULE_SETUP
2273 #line 162 "util/configlexer.lex"
2318 case 43:
2319 YY_RULE_SETUP
2320 #line 166 "util/configlexer.lex"
22742321 { YDVAR(1, VAR_INFRA_CACHE_SLABS) }
22752322 YY_BREAK
2276 case 40:
2277 YY_RULE_SETUP
2278 #line 163 "util/configlexer.lex"
2323 case 44:
2324 YY_RULE_SETUP
2325 #line 167 "util/configlexer.lex"
22792326 { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
22802327 YY_BREAK
2281 case 41:
2282 YY_RULE_SETUP
2283 #line 164 "util/configlexer.lex"
2328 case 45:
2329 YY_RULE_SETUP
2330 #line 168 "util/configlexer.lex"
22842331 { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
22852332 YY_BREAK
2286 case 42:
2287 YY_RULE_SETUP
2288 #line 165 "util/configlexer.lex"
2333 case 46:
2334 YY_RULE_SETUP
2335 #line 169 "util/configlexer.lex"
22892336 { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
22902337 YY_BREAK
2291 case 43:
2292 YY_RULE_SETUP
2293 #line 166 "util/configlexer.lex"
2338 case 47:
2339 YY_RULE_SETUP
2340 #line 170 "util/configlexer.lex"
22942341 { YDVAR(1, VAR_JOSTLE_TIMEOUT) }
22952342 YY_BREAK
2296 case 44:
2297 YY_RULE_SETUP
2298 #line 167 "util/configlexer.lex"
2343 case 48:
2344 YY_RULE_SETUP
2345 #line 171 "util/configlexer.lex"
22992346 { YDVAR(1, VAR_TARGET_FETCH_POLICY) }
23002347 YY_BREAK
2301 case 45:
2302 YY_RULE_SETUP
2303 #line 168 "util/configlexer.lex"
2348 case 49:
2349 YY_RULE_SETUP
2350 #line 172 "util/configlexer.lex"
23042351 { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
23052352 YY_BREAK
2306 case 46:
2307 YY_RULE_SETUP
2308 #line 169 "util/configlexer.lex"
2353 case 50:
2354 YY_RULE_SETUP
2355 #line 173 "util/configlexer.lex"
23092356 { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
23102357 YY_BREAK
2311 case 47:
2312 YY_RULE_SETUP
2313 #line 170 "util/configlexer.lex"
2358 case 51:
2359 YY_RULE_SETUP
2360 #line 174 "util/configlexer.lex"
23142361 { YDVAR(1, VAR_HARDEN_GLUE) }
23152362 YY_BREAK
2316 case 48:
2317 YY_RULE_SETUP
2318 #line 171 "util/configlexer.lex"
2363 case 52:
2364 YY_RULE_SETUP
2365 #line 175 "util/configlexer.lex"
23192366 { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
23202367 YY_BREAK
2321 case 49:
2322 YY_RULE_SETUP
2323 #line 172 "util/configlexer.lex"
2368 case 53:
2369 YY_RULE_SETUP
2370 #line 176 "util/configlexer.lex"
23242371 { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
23252372 YY_BREAK
2326 case 50:
2327 YY_RULE_SETUP
2328 #line 173 "util/configlexer.lex"
2373 case 54:
2374 YY_RULE_SETUP
2375 #line 177 "util/configlexer.lex"
23292376 { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
23302377 YY_BREAK
2331 case 51:
2332 YY_RULE_SETUP
2333 #line 174 "util/configlexer.lex"
2378 case 55:
2379 YY_RULE_SETUP
2380 #line 178 "util/configlexer.lex"
23342381 { YDVAR(1, VAR_USE_CAPS_FOR_ID) }
23352382 YY_BREAK
2336 case 52:
2337 YY_RULE_SETUP
2338 #line 175 "util/configlexer.lex"
2383 case 56:
2384 YY_RULE_SETUP
2385 #line 179 "util/configlexer.lex"
23392386 { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
23402387 YY_BREAK
2341 case 53:
2342 YY_RULE_SETUP
2343 #line 176 "util/configlexer.lex"
2388 case 57:
2389 YY_RULE_SETUP
2390 #line 180 "util/configlexer.lex"
23442391 { YDVAR(1, VAR_PRIVATE_ADDRESS) }
23452392 YY_BREAK
2346 case 54:
2347 YY_RULE_SETUP
2348 #line 177 "util/configlexer.lex"
2393 case 58:
2394 YY_RULE_SETUP
2395 #line 181 "util/configlexer.lex"
23492396 { YDVAR(1, VAR_PRIVATE_DOMAIN) }
23502397 YY_BREAK
2351 case 55:
2352 YY_RULE_SETUP
2353 #line 178 "util/configlexer.lex"
2398 case 59:
2399 YY_RULE_SETUP
2400 #line 182 "util/configlexer.lex"
23542401 { YDVAR(1, VAR_PREFETCH_KEY) }
23552402 YY_BREAK
2356 case 56:
2357 YY_RULE_SETUP
2358 #line 179 "util/configlexer.lex"
2403 case 60:
2404 YY_RULE_SETUP
2405 #line 183 "util/configlexer.lex"
23592406 { YDVAR(1, VAR_PREFETCH) }
23602407 YY_BREAK
2361 case 57:
2362 YY_RULE_SETUP
2363 #line 180 "util/configlexer.lex"
2408 case 61:
2409 YY_RULE_SETUP
2410 #line 184 "util/configlexer.lex"
23642411 { YDVAR(0, VAR_STUB_ZONE) }
23652412 YY_BREAK
2366 case 58:
2367 YY_RULE_SETUP
2368 #line 181 "util/configlexer.lex"
2413 case 62:
2414 YY_RULE_SETUP
2415 #line 185 "util/configlexer.lex"
23692416 { YDVAR(1, VAR_NAME) }
23702417 YY_BREAK
2371 case 59:
2372 YY_RULE_SETUP
2373 #line 182 "util/configlexer.lex"
2418 case 63:
2419 YY_RULE_SETUP
2420 #line 186 "util/configlexer.lex"
23742421 { YDVAR(1, VAR_STUB_ADDR) }
23752422 YY_BREAK
2376 case 60:
2377 YY_RULE_SETUP
2378 #line 183 "util/configlexer.lex"
2423 case 64:
2424 YY_RULE_SETUP
2425 #line 187 "util/configlexer.lex"
23792426 { YDVAR(1, VAR_STUB_HOST) }
23802427 YY_BREAK
2381 case 61:
2382 YY_RULE_SETUP
2383 #line 184 "util/configlexer.lex"
2428 case 65:
2429 YY_RULE_SETUP
2430 #line 188 "util/configlexer.lex"
23842431 { YDVAR(1, VAR_STUB_PRIME) }
23852432 YY_BREAK
2386 case 62:
2387 YY_RULE_SETUP
2388 #line 185 "util/configlexer.lex"
2433 case 66:
2434 YY_RULE_SETUP
2435 #line 189 "util/configlexer.lex"
23892436 { YDVAR(0, VAR_FORWARD_ZONE) }
23902437 YY_BREAK
2391 case 63:
2392 YY_RULE_SETUP
2393 #line 186 "util/configlexer.lex"
2438 case 67:
2439 YY_RULE_SETUP
2440 #line 190 "util/configlexer.lex"
23942441 { YDVAR(1, VAR_FORWARD_ADDR) }
23952442 YY_BREAK
2396 case 64:
2397 YY_RULE_SETUP
2398 #line 187 "util/configlexer.lex"
2443 case 68:
2444 YY_RULE_SETUP
2445 #line 191 "util/configlexer.lex"
23992446 { YDVAR(1, VAR_FORWARD_HOST) }
24002447 YY_BREAK
2401 case 65:
2402 YY_RULE_SETUP
2403 #line 188 "util/configlexer.lex"
2448 case 69:
2449 YY_RULE_SETUP
2450 #line 192 "util/configlexer.lex"
24042451 { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
24052452 YY_BREAK
2406 case 66:
2407 YY_RULE_SETUP
2408 #line 189 "util/configlexer.lex"
2453 case 70:
2454 YY_RULE_SETUP
2455 #line 193 "util/configlexer.lex"
24092456 { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
24102457 YY_BREAK
2411 case 67:
2412 YY_RULE_SETUP
2413 #line 190 "util/configlexer.lex"
2458 case 71:
2459 YY_RULE_SETUP
2460 #line 194 "util/configlexer.lex"
24142461 { YDVAR(2, VAR_ACCESS_CONTROL) }
24152462 YY_BREAK
2416 case 68:
2417 YY_RULE_SETUP
2418 #line 191 "util/configlexer.lex"
2463 case 72:
2464 YY_RULE_SETUP
2465 #line 195 "util/configlexer.lex"
24192466 { YDVAR(1, VAR_HIDE_IDENTITY) }
24202467 YY_BREAK
2421 case 69:
2422 YY_RULE_SETUP
2423 #line 192 "util/configlexer.lex"
2468 case 73:
2469 YY_RULE_SETUP
2470 #line 196 "util/configlexer.lex"
24242471 { YDVAR(1, VAR_HIDE_VERSION) }
24252472 YY_BREAK
2426 case 70:
2427 YY_RULE_SETUP
2428 #line 193 "util/configlexer.lex"
2473 case 74:
2474 YY_RULE_SETUP
2475 #line 197 "util/configlexer.lex"
24292476 { YDVAR(1, VAR_IDENTITY) }
24302477 YY_BREAK
2431 case 71:
2432 YY_RULE_SETUP
2433 #line 194 "util/configlexer.lex"
2478 case 75:
2479 YY_RULE_SETUP
2480 #line 198 "util/configlexer.lex"
24342481 { YDVAR(1, VAR_VERSION) }
24352482 YY_BREAK
2436 case 72:
2437 YY_RULE_SETUP
2438 #line 195 "util/configlexer.lex"
2483 case 76:
2484 YY_RULE_SETUP
2485 #line 199 "util/configlexer.lex"
24392486 { YDVAR(1, VAR_MODULE_CONF) }
24402487 YY_BREAK
2441 case 73:
2442 YY_RULE_SETUP
2443 #line 196 "util/configlexer.lex"
2488 case 77:
2489 YY_RULE_SETUP
2490 #line 200 "util/configlexer.lex"
24442491 { YDVAR(1, VAR_DLV_ANCHOR) }
24452492 YY_BREAK
2446 case 74:
2447 YY_RULE_SETUP
2448 #line 197 "util/configlexer.lex"
2493 case 78:
2494 YY_RULE_SETUP
2495 #line 201 "util/configlexer.lex"
24492496 { YDVAR(1, VAR_DLV_ANCHOR_FILE) }
24502497 YY_BREAK
2451 case 75:
2452 YY_RULE_SETUP
2453 #line 198 "util/configlexer.lex"
2498 case 79:
2499 YY_RULE_SETUP
2500 #line 202 "util/configlexer.lex"
24542501 { YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
24552502 YY_BREAK
2456 case 76:
2457 YY_RULE_SETUP
2458 #line 199 "util/configlexer.lex"
2503 case 80:
2504 YY_RULE_SETUP
2505 #line 203 "util/configlexer.lex"
24592506 { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
24602507 YY_BREAK
2461 case 77:
2462 YY_RULE_SETUP
2463 #line 200 "util/configlexer.lex"
2508 case 81:
2509 YY_RULE_SETUP
2510 #line 204 "util/configlexer.lex"
24642511 { YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
24652512 YY_BREAK
2466 case 78:
2467 YY_RULE_SETUP
2468 #line 201 "util/configlexer.lex"
2513 case 82:
2514 YY_RULE_SETUP
2515 #line 205 "util/configlexer.lex"
24692516 { YDVAR(1, VAR_TRUST_ANCHOR) }
24702517 YY_BREAK
2471 case 79:
2472 YY_RULE_SETUP
2473 #line 202 "util/configlexer.lex"
2518 case 83:
2519 YY_RULE_SETUP
2520 #line 206 "util/configlexer.lex"
24742521 { YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
24752522 YY_BREAK
2476 case 80:
2477 YY_RULE_SETUP
2478 #line 203 "util/configlexer.lex"
2523 case 84:
2524 YY_RULE_SETUP
2525 #line 207 "util/configlexer.lex"
24792526 { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
24802527 YY_BREAK
2481 case 81:
2482 YY_RULE_SETUP
2483 #line 204 "util/configlexer.lex"
2528 case 85:
2529 YY_RULE_SETUP
2530 #line 208 "util/configlexer.lex"
24842531 { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
24852532 YY_BREAK
2486 case 82:
2487 YY_RULE_SETUP
2488 #line 205 "util/configlexer.lex"
2533 case 86:
2534 YY_RULE_SETUP
2535 #line 209 "util/configlexer.lex"
24892536 { YDVAR(1, VAR_BOGUS_TTL) }
24902537 YY_BREAK
2491 case 83:
2492 YY_RULE_SETUP
2493 #line 206 "util/configlexer.lex"
2538 case 87:
2539 YY_RULE_SETUP
2540 #line 210 "util/configlexer.lex"
24942541 { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
24952542 YY_BREAK
2496 case 84:
2497 YY_RULE_SETUP
2498 #line 207 "util/configlexer.lex"
2543 case 88:
2544 YY_RULE_SETUP
2545 #line 211 "util/configlexer.lex"
24992546 { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
25002547 YY_BREAK
2501 case 85:
2502 YY_RULE_SETUP
2503 #line 208 "util/configlexer.lex"
2548 case 89:
2549 YY_RULE_SETUP
2550 #line 212 "util/configlexer.lex"
25042551 { YDVAR(1, VAR_IGNORE_CD_FLAG) }
25052552 YY_BREAK
2506 case 86:
2507 YY_RULE_SETUP
2508 #line 209 "util/configlexer.lex"
2553 case 90:
2554 YY_RULE_SETUP
2555 #line 213 "util/configlexer.lex"
25092556 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
25102557 YY_BREAK
2511 case 87:
2512 YY_RULE_SETUP
2513 #line 210 "util/configlexer.lex"
2558 case 91:
2559 YY_RULE_SETUP
2560 #line 214 "util/configlexer.lex"
25142561 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
25152562 YY_BREAK
2516 case 88:
2517 YY_RULE_SETUP
2518 #line 211 "util/configlexer.lex"
2563 case 92:
2564 YY_RULE_SETUP
2565 #line 215 "util/configlexer.lex"
25192566 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
25202567 YY_BREAK
2521 case 89:
2522 YY_RULE_SETUP
2523 #line 212 "util/configlexer.lex"
2568 case 93:
2569 YY_RULE_SETUP
2570 #line 216 "util/configlexer.lex"
25242571 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
25252572 YY_BREAK
2526 case 90:
2527 YY_RULE_SETUP
2528 #line 213 "util/configlexer.lex"
2573 case 94:
2574 YY_RULE_SETUP
2575 #line 217 "util/configlexer.lex"
25292576 {
25302577 YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
25312578 YY_BREAK
2532 case 91:
2533 YY_RULE_SETUP
2534 #line 215 "util/configlexer.lex"
2579 case 95:
2580 YY_RULE_SETUP
2581 #line 219 "util/configlexer.lex"
25352582 { YDVAR(1, VAR_ADD_HOLDDOWN) }
25362583 YY_BREAK
2537 case 92:
2538 YY_RULE_SETUP
2539 #line 216 "util/configlexer.lex"
2584 case 96:
2585 YY_RULE_SETUP
2586 #line 220 "util/configlexer.lex"
25402587 { YDVAR(1, VAR_DEL_HOLDDOWN) }
25412588 YY_BREAK
2542 case 93:
2543 YY_RULE_SETUP
2544 #line 217 "util/configlexer.lex"
2589 case 97:
2590 YY_RULE_SETUP
2591 #line 221 "util/configlexer.lex"
25452592 { YDVAR(1, VAR_KEEP_MISSING) }
25462593 YY_BREAK
2547 case 94:
2548 YY_RULE_SETUP
2549 #line 218 "util/configlexer.lex"
2594 case 98:
2595 YY_RULE_SETUP
2596 #line 222 "util/configlexer.lex"
25502597 { YDVAR(1, VAR_USE_SYSLOG) }
25512598 YY_BREAK
2552 case 95:
2553 YY_RULE_SETUP
2554 #line 219 "util/configlexer.lex"
2599 case 99:
2600 YY_RULE_SETUP
2601 #line 223 "util/configlexer.lex"
25552602 { YDVAR(1, VAR_LOG_TIME_ASCII) }
25562603 YY_BREAK
2557 case 96:
2558 YY_RULE_SETUP
2559 #line 220 "util/configlexer.lex"
2604 case 100:
2605 YY_RULE_SETUP
2606 #line 224 "util/configlexer.lex"
25602607 { YDVAR(1, VAR_LOG_QUERIES) }
25612608 YY_BREAK
2562 case 97:
2563 YY_RULE_SETUP
2564 #line 221 "util/configlexer.lex"
2609 case 101:
2610 YY_RULE_SETUP
2611 #line 225 "util/configlexer.lex"
25652612 { YDVAR(2, VAR_LOCAL_ZONE) }
25662613 YY_BREAK
2567 case 98:
2568 YY_RULE_SETUP
2569 #line 222 "util/configlexer.lex"
2614 case 102:
2615 YY_RULE_SETUP
2616 #line 226 "util/configlexer.lex"
25702617 { YDVAR(1, VAR_LOCAL_DATA) }
25712618 YY_BREAK
2572 case 99:
2573 YY_RULE_SETUP
2574 #line 223 "util/configlexer.lex"
2619 case 103:
2620 YY_RULE_SETUP
2621 #line 227 "util/configlexer.lex"
25752622 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
25762623 YY_BREAK
2577 case 100:
2578 YY_RULE_SETUP
2579 #line 224 "util/configlexer.lex"
2624 case 104:
2625 YY_RULE_SETUP
2626 #line 228 "util/configlexer.lex"
25802627 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
25812628 YY_BREAK
2582 case 101:
2583 YY_RULE_SETUP
2584 #line 225 "util/configlexer.lex"
2629 case 105:
2630 YY_RULE_SETUP
2631 #line 229 "util/configlexer.lex"
25852632 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
25862633 YY_BREAK
2587 case 102:
2588 YY_RULE_SETUP
2589 #line 226 "util/configlexer.lex"
2634 case 106:
2635 YY_RULE_SETUP
2636 #line 230 "util/configlexer.lex"
25902637 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
25912638 YY_BREAK
2592 case 103:
2593 YY_RULE_SETUP
2594 #line 227 "util/configlexer.lex"
2639 case 107:
2640 YY_RULE_SETUP
2641 #line 231 "util/configlexer.lex"
25952642 { YDVAR(0, VAR_REMOTE_CONTROL) }
25962643 YY_BREAK
2597 case 104:
2598 YY_RULE_SETUP
2599 #line 228 "util/configlexer.lex"
2644 case 108:
2645 YY_RULE_SETUP
2646 #line 232 "util/configlexer.lex"
26002647 { YDVAR(1, VAR_CONTROL_ENABLE) }
26012648 YY_BREAK
2602 case 105:
2603 YY_RULE_SETUP
2604 #line 229 "util/configlexer.lex"
2649 case 109:
2650 YY_RULE_SETUP
2651 #line 233 "util/configlexer.lex"
26052652 { YDVAR(1, VAR_CONTROL_INTERFACE) }
26062653 YY_BREAK
2607 case 106:
2608 YY_RULE_SETUP
2609 #line 230 "util/configlexer.lex"
2654 case 110:
2655 YY_RULE_SETUP
2656 #line 234 "util/configlexer.lex"
26102657 { YDVAR(1, VAR_CONTROL_PORT) }
26112658 YY_BREAK
2612 case 107:
2613 YY_RULE_SETUP
2614 #line 231 "util/configlexer.lex"
2659 case 111:
2660 YY_RULE_SETUP
2661 #line 235 "util/configlexer.lex"
26152662 { YDVAR(1, VAR_SERVER_KEY_FILE) }
26162663 YY_BREAK
2617 case 108:
2618 YY_RULE_SETUP
2619 #line 232 "util/configlexer.lex"
2664 case 112:
2665 YY_RULE_SETUP
2666 #line 236 "util/configlexer.lex"
26202667 { YDVAR(1, VAR_SERVER_CERT_FILE) }
26212668 YY_BREAK
2622 case 109:
2623 YY_RULE_SETUP
2624 #line 233 "util/configlexer.lex"
2669 case 113:
2670 YY_RULE_SETUP
2671 #line 237 "util/configlexer.lex"
26252672 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
26262673 YY_BREAK
2627 case 110:
2628 YY_RULE_SETUP
2629 #line 234 "util/configlexer.lex"
2674 case 114:
2675 YY_RULE_SETUP
2676 #line 238 "util/configlexer.lex"
26302677 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
26312678 YY_BREAK
2632 case 111:
2633 YY_RULE_SETUP
2634 #line 235 "util/configlexer.lex"
2679 case 115:
2680 YY_RULE_SETUP
2681 #line 239 "util/configlexer.lex"
26352682 { YDVAR(1, VAR_PYTHON_SCRIPT) }
26362683 YY_BREAK
2637 case 112:
2638 YY_RULE_SETUP
2639 #line 236 "util/configlexer.lex"
2684 case 116:
2685 YY_RULE_SETUP
2686 #line 240 "util/configlexer.lex"
26402687 { YDVAR(0, VAR_PYTHON) }
26412688 YY_BREAK
2642 case 113:
2643 YY_RULE_SETUP
2644 #line 237 "util/configlexer.lex"
2689 case 117:
2690 YY_RULE_SETUP
2691 #line 241 "util/configlexer.lex"
26452692 { YDVAR(1, VAR_DOMAIN_INSECURE) }
26462693 YY_BREAK
2647 case 114:
2648 /* rule 114 can match eol */
2649 YY_RULE_SETUP
2650 #line 238 "util/configlexer.lex"
2694 case 118:
2695 /* rule 118 can match eol */
2696 YY_RULE_SETUP
2697 #line 242 "util/configlexer.lex"
26512698 { LEXOUT(("NL\n")); cfg_parser->line++; }
26522699 YY_BREAK
26532700 /* Quoted strings. Strip leading and ending quotes */
2654 case 115:
2655 YY_RULE_SETUP
2656 #line 241 "util/configlexer.lex"
2701 case 119:
2702 YY_RULE_SETUP
2703 #line 245 "util/configlexer.lex"
26572704 { BEGIN(quotedstring); LEXOUT(("QS ")); }
26582705 YY_BREAK
26592706 case YY_STATE_EOF(quotedstring):
2660 #line 242 "util/configlexer.lex"
2707 #line 246 "util/configlexer.lex"
26612708 {
26622709 yyerror("EOF inside quoted string");
26632710 if(--num_args == 0) { BEGIN(INITIAL); }
26642711 else { BEGIN(val); }
26652712 }
26662713 YY_BREAK
2667 case 116:
2668 YY_RULE_SETUP
2669 #line 247 "util/configlexer.lex"
2714 case 120:
2715 YY_RULE_SETUP
2716 #line 251 "util/configlexer.lex"
26702717 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
26712718 YY_BREAK
2672 case 117:
2673 /* rule 117 can match eol */
2674 YY_RULE_SETUP
2675 #line 248 "util/configlexer.lex"
2719 case 121:
2720 /* rule 121 can match eol */
2721 YY_RULE_SETUP
2722 #line 252 "util/configlexer.lex"
26762723 { yyerror("newline inside quoted string, no end \"");
26772724 cfg_parser->line++; BEGIN(INITIAL); }
26782725 YY_BREAK
2679 case 118:
2680 YY_RULE_SETUP
2681 #line 250 "util/configlexer.lex"
2726 case 122:
2727 YY_RULE_SETUP
2728 #line 254 "util/configlexer.lex"
26822729 {
26832730 LEXOUT(("QE "));
26842731 if(--num_args == 0) { BEGIN(INITIAL); }
26912738 }
26922739 YY_BREAK
26932740 /* Single Quoted strings. Strip leading and ending quotes */
2694 case 119:
2695 YY_RULE_SETUP
2696 #line 262 "util/configlexer.lex"
2741 case 123:
2742 YY_RULE_SETUP
2743 #line 266 "util/configlexer.lex"
26972744 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
26982745 YY_BREAK
26992746 case YY_STATE_EOF(singlequotedstr):
2700 #line 263 "util/configlexer.lex"
2747 #line 267 "util/configlexer.lex"
27012748 {
27022749 yyerror("EOF inside quoted string");
27032750 if(--num_args == 0) { BEGIN(INITIAL); }
27042751 else { BEGIN(val); }
27052752 }
27062753 YY_BREAK
2707 case 120:
2708 YY_RULE_SETUP
2709 #line 268 "util/configlexer.lex"
2754 case 124:
2755 YY_RULE_SETUP
2756 #line 272 "util/configlexer.lex"
27102757 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
27112758 YY_BREAK
2712 case 121:
2713 /* rule 121 can match eol */
2714 YY_RULE_SETUP
2715 #line 269 "util/configlexer.lex"
2759 case 125:
2760 /* rule 125 can match eol */
2761 YY_RULE_SETUP
2762 #line 273 "util/configlexer.lex"
27162763 { yyerror("newline inside quoted string, no end '");
27172764 cfg_parser->line++; BEGIN(INITIAL); }
27182765 YY_BREAK
2719 case 122:
2720 YY_RULE_SETUP
2721 #line 271 "util/configlexer.lex"
2766 case 126:
2767 YY_RULE_SETUP
2768 #line 275 "util/configlexer.lex"
27222769 {
27232770 LEXOUT(("SQE "));
27242771 if(--num_args == 0) { BEGIN(INITIAL); }
27312778 }
27322779 YY_BREAK
27332780 /* include: directive */
2734 case 123:
2735 YY_RULE_SETUP
2736 #line 283 "util/configlexer.lex"
2781 case 127:
2782 YY_RULE_SETUP
2783 #line 287 "util/configlexer.lex"
27372784 {
27382785 LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
27392786 YY_BREAK
27402787 case YY_STATE_EOF(include):
2741 #line 285 "util/configlexer.lex"
2788 #line 289 "util/configlexer.lex"
27422789 {
27432790 yyerror("EOF inside include directive");
27442791 BEGIN(inc_prev);
27452792 }
27462793 YY_BREAK
2747 case 124:
2748 YY_RULE_SETUP
2749 #line 289 "util/configlexer.lex"
2794 case 128:
2795 YY_RULE_SETUP
2796 #line 293 "util/configlexer.lex"
27502797 { LEXOUT(("ISP ")); /* ignore */ }
27512798 YY_BREAK
2752 case 125:
2753 /* rule 125 can match eol */
2754 YY_RULE_SETUP
2755 #line 290 "util/configlexer.lex"
2799 case 129:
2800 /* rule 129 can match eol */
2801 YY_RULE_SETUP
2802 #line 294 "util/configlexer.lex"
27562803 { LEXOUT(("NL\n")); cfg_parser->line++;}
27572804 YY_BREAK
2758 case 126:
2759 YY_RULE_SETUP
2760 #line 291 "util/configlexer.lex"
2805 case 130:
2806 YY_RULE_SETUP
2807 #line 295 "util/configlexer.lex"
27612808 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
27622809 YY_BREAK
2763 case 127:
2764 YY_RULE_SETUP
2765 #line 292 "util/configlexer.lex"
2810 case 131:
2811 YY_RULE_SETUP
2812 #line 296 "util/configlexer.lex"
27662813 {
27672814 LEXOUT(("Iunquotedstr(%s) ", yytext));
27682815 config_start_include(yytext);
27702817 }
27712818 YY_BREAK
27722819 case YY_STATE_EOF(include_quoted):
2773 #line 297 "util/configlexer.lex"
2820 #line 301 "util/configlexer.lex"
27742821 {
27752822 yyerror("EOF inside quoted string");
27762823 BEGIN(inc_prev);
27772824 }
27782825 YY_BREAK
2779 case 128:
2780 YY_RULE_SETUP
2781 #line 301 "util/configlexer.lex"
2826 case 132:
2827 YY_RULE_SETUP
2828 #line 305 "util/configlexer.lex"
27822829 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
27832830 YY_BREAK
2784 case 129:
2785 /* rule 129 can match eol */
2786 YY_RULE_SETUP
2787 #line 302 "util/configlexer.lex"
2831 case 133:
2832 /* rule 133 can match eol */
2833 YY_RULE_SETUP
2834 #line 306 "util/configlexer.lex"
27882835 { yyerror("newline before \" in include name");
27892836 cfg_parser->line++; BEGIN(inc_prev); }
27902837 YY_BREAK
2791 case 130:
2792 YY_RULE_SETUP
2793 #line 304 "util/configlexer.lex"
2838 case 134:
2839 YY_RULE_SETUP
2840 #line 308 "util/configlexer.lex"
27942841 {
27952842 LEXOUT(("IQE "));
27962843 yytext[yyleng - 1] = '\0';
28002847 YY_BREAK
28012848 case YY_STATE_EOF(INITIAL):
28022849 case YY_STATE_EOF(val):
2803 #line 310 "util/configlexer.lex"
2850 #line 314 "util/configlexer.lex"
28042851 {
28052852 yy_set_bol(1); /* Set beginning of line, so "^" rules match. */
28062853 if (config_include_stack_ptr == 0) {
28112858 }
28122859 }
28132860 YY_BREAK
2814 case 131:
2815 YY_RULE_SETUP
2816 #line 320 "util/configlexer.lex"
2861 case 135:
2862 YY_RULE_SETUP
2863 #line 324 "util/configlexer.lex"
28172864 { LEXOUT(("unquotedstr(%s) ", yytext));
28182865 if(--num_args == 0) { BEGIN(INITIAL); }
28192866 yylval.str = strdup(yytext); return STRING_ARG; }
28202867 YY_BREAK
2821 case 132:
2822 YY_RULE_SETUP
2823 #line 324 "util/configlexer.lex"
2868 case 136:
2869 YY_RULE_SETUP
2870 #line 328 "util/configlexer.lex"
28242871 {
28252872 ub_c_error_msg("unknown keyword '%s'", yytext);
28262873 }
28272874 YY_BREAK
2828 case 133:
2829 YY_RULE_SETUP
2830 #line 328 "util/configlexer.lex"
2875 case 137:
2876 YY_RULE_SETUP
2877 #line 332 "util/configlexer.lex"
28312878 {
28322879 ub_c_error_msg("stray '%s'", yytext);
28332880 }
28342881 YY_BREAK
2835 case 134:
2836 YY_RULE_SETUP
2837 #line 332 "util/configlexer.lex"
2882 case 138:
2883 YY_RULE_SETUP
2884 #line 336 "util/configlexer.lex"
28382885 ECHO;
28392886 YY_BREAK
2840 #line 2840 "<stdout>"
2887 #line 2887 "<stdout>"
28412888
28422889 case YY_END_OF_BUFFER:
28432890 {
31273174 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
31283175 {
31293176 yy_current_state = (int) yy_def[yy_current_state];
3130 if ( yy_current_state >= 1270 )
3177 if ( yy_current_state >= 1303 )
31313178 yy_c = yy_meta[(unsigned int) yy_c];
31323179 }
31333180 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
31553202 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
31563203 {
31573204 yy_current_state = (int) yy_def[yy_current_state];
3158 if ( yy_current_state >= 1270 )
3205 if ( yy_current_state >= 1303 )
31593206 yy_c = yy_meta[(unsigned int) yy_c];
31603207 }
31613208 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3162 yy_is_jam = (yy_current_state == 1269);
3209 yy_is_jam = (yy_current_state == 1302);
31633210
31643211 return yy_is_jam ? 0 : yy_current_state;
31653212 }
37963843
37973844 #define YYTABLES_NAME "yytables"
37983845
3799 #line 332 "util/configlexer.lex"
3800
3801
3802
3846 #line 336 "util/configlexer.lex"
3847
3848
3849
136136 do-udp{COLON} { YDVAR(1, VAR_DO_UDP) }
137137 do-tcp{COLON} { YDVAR(1, VAR_DO_TCP) }
138138 tcp-upstream{COLON} { YDVAR(1, VAR_TCP_UPSTREAM) }
139 ssl-upstream{COLON} { YDVAR(1, VAR_SSL_UPSTREAM) }
140 ssl-service-key{COLON} { YDVAR(1, VAR_SSL_SERVICE_KEY) }
141 ssl-service-pem{COLON} { YDVAR(1, VAR_SSL_SERVICE_PEM) }
142 ssl-port{COLON} { YDVAR(1, VAR_SSL_PORT) }
139143 do-daemonize{COLON} { YDVAR(1, VAR_DO_DAEMONIZE) }
140144 interface{COLON} { YDVAR(1, VAR_INTERFACE) }
141145 outgoing-interface{COLON} { YDVAR(1, VAR_OUTGOING_INTERFACE) }
0 /* A Bison parser, made by GNU Bison 2.4.3. */
1
2 /* Skeleton implementation for Bison's Yacc-like parsers in C
0 /* A Bison parser, made by GNU Bison 2.5. */
1
2 /* Bison implementation for Yacc-like parsers in C
33
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
5 2009, 2010 Free Software Foundation, Inc.
4 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
65
76 This program is free software: you can redistribute it and/or modify
87 it under the terms of the GNU General Public License as published by
4443 #define YYBISON 1
4544
4645 /* Bison version. */
47 #define YYBISON_VERSION "2.4.3"
46 #define YYBISON_VERSION "2.5"
4847
4948 /* Skeleton name. */
5049 #define YYSKELETON_NAME "yacc.c"
6564
6665 /* Copy the first part of user declarations. */
6766
68 /* Line 189 of yacc.c */
67 /* Line 268 of yacc.c */
6968 #line 38 "util/configparser.y"
7069
7170 #include "config.h"
9493
9594
9695
97 /* Line 189 of yacc.c */
98 #line 100 "util/configparser.c"
96 /* Line 268 of yacc.c */
97 #line 99 "util/configparser.c"
9998
10099 /* Enabling traces. */
101100 #ifndef YYDEBUG
240239 VAR_HARDEN_BELOW_NXDOMAIN = 373,
241240 VAR_IGNORE_CD_FLAG = 374,
242241 VAR_LOG_QUERIES = 375,
243 VAR_TCP_UPSTREAM = 376
242 VAR_TCP_UPSTREAM = 376,
243 VAR_SSL_UPSTREAM = 377,
244 VAR_SSL_SERVICE_KEY = 378,
245 VAR_SSL_SERVICE_PEM = 379,
246 VAR_SSL_PORT = 380
244247 };
245248 #endif
246249 /* Tokens. */
363366 #define VAR_IGNORE_CD_FLAG 374
364367 #define VAR_LOG_QUERIES 375
365368 #define VAR_TCP_UPSTREAM 376
369 #define VAR_SSL_UPSTREAM 377
370 #define VAR_SSL_SERVICE_KEY 378
371 #define VAR_SSL_SERVICE_PEM 379
372 #define VAR_SSL_PORT 380
366373
367374
368375
371378 typedef union YYSTYPE
372379 {
373380
374 /* Line 214 of yacc.c */
381 /* Line 293 of yacc.c */
375382 #line 64 "util/configparser.y"
376383
377384 char* str;
378385
379386
380387
381 /* Line 214 of yacc.c */
382 #line 384 "util/configparser.c"
388 /* Line 293 of yacc.c */
389 #line 391 "util/configparser.c"
383390 } YYSTYPE;
384391 # define YYSTYPE_IS_TRIVIAL 1
385392 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
390397 /* Copy the second part of user declarations. */
391398
392399
393 /* Line 264 of yacc.c */
394 #line 396 "util/configparser.c"
400 /* Line 343 of yacc.c */
401 #line 403 "util/configparser.c"
395402
396403 #ifdef short
397404 # undef short
494501 # define alloca _alloca
495502 # else
496503 # define YYSTACK_ALLOC alloca
497 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
504 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
498505 || defined __cplusplus || defined _MSC_VER)
499506 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
500 # ifndef _STDLIB_H
501 # define _STDLIB_H 1
507 # ifndef EXIT_SUCCESS
508 # define EXIT_SUCCESS 0
502509 # endif
503510 # endif
504511 # endif
521528 # ifndef YYSTACK_ALLOC_MAXIMUM
522529 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
523530 # endif
524 # if (defined __cplusplus && ! defined _STDLIB_H \
531 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
525532 && ! ((defined YYMALLOC || defined malloc) \
526533 && (defined YYFREE || defined free)))
527534 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
528 # ifndef _STDLIB_H
529 # define _STDLIB_H 1
535 # ifndef EXIT_SUCCESS
536 # define EXIT_SUCCESS 0
530537 # endif
531538 # endif
532539 # ifndef YYMALLOC
533540 # define YYMALLOC malloc
534 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
541 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
535542 || defined __cplusplus || defined _MSC_VER)
536543 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
537544 # endif
538545 # endif
539546 # ifndef YYFREE
540547 # define YYFREE free
541 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
548 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
542549 || defined __cplusplus || defined _MSC_VER)
543550 void free (void *); /* INFRINGES ON USER NAME SPACE */
544551 # endif
567574 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
568575 + YYSTACK_GAP_MAXIMUM)
569576
577 # define YYCOPY_NEEDED 1
578
579 /* Relocate STACK from its old location to the new one. The
580 local variables YYSIZE and YYSTACKSIZE give the old and new number of
581 elements in the stack, and YYPTR gives the new location of the
582 stack. Advance YYPTR to a properly aligned location for the next
583 stack. */
584 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
585 do \
586 { \
587 YYSIZE_T yynewbytes; \
588 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
589 Stack = &yyptr->Stack_alloc; \
590 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
591 yyptr += yynewbytes / sizeof (*yyptr); \
592 } \
593 while (YYID (0))
594
595 #endif
596
597 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
570598 /* Copy COUNT objects from FROM to TO. The source and destination do
571599 not overlap. */
572600 # ifndef YYCOPY
584612 while (YYID (0))
585613 # endif
586614 # endif
587
588 /* Relocate STACK from its old location to the new one. The
589 local variables YYSIZE and YYSTACKSIZE give the old and new number of
590 elements in the stack, and YYPTR gives the new location of the
591 stack. Advance YYPTR to a properly aligned location for the next
592 stack. */
593 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
594 do \
595 { \
596 YYSIZE_T yynewbytes; \
597 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
598 Stack = &yyptr->Stack_alloc; \
599 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
600 yyptr += yynewbytes / sizeof (*yyptr); \
601 } \
602 while (YYID (0))
603
604 #endif
615 #endif /* !YYCOPY_NEEDED */
605616
606617 /* YYFINAL -- State number of the termination state. */
607618 #define YYFINAL 2
608619 /* YYLAST -- Last index in YYTABLE. */
609 #define YYLAST 221
620 #define YYLAST 229
610621
611622 /* YYNTOKENS -- Number of terminals. */
612 #define YYNTOKENS 122
623 #define YYNTOKENS 126
613624 /* YYNNTS -- Number of nonterminals. */
614 #define YYNNTS 125
625 #define YYNNTS 129
615626 /* YYNRULES -- Number of rules. */
616 #define YYNRULES 237
627 #define YYNRULES 245
617628 /* YYNRULES -- Number of states. */
618 #define YYNSTATES 347
629 #define YYNSTATES 359
619630
620631 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
621632 #define YYUNDEFTOK 2
622 #define YYMAXUTOK 376
633 #define YYMAXUTOK 380
623634
624635 #define YYTRANSLATE(YYX) \
625636 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
664675 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
665676 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
666677 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
667 115, 116, 117, 118, 119, 120, 121
678 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
679 125
668680 };
669681
670682 #if YYDEBUG
682694 144, 146, 148, 150, 152, 154, 156, 158, 160, 162,
683695 164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
684696 184, 186, 188, 190, 192, 194, 196, 198, 200, 202,
685 204, 206, 208, 210, 212, 214, 217, 218, 220, 222,
686 224, 226, 228, 231, 232, 234, 236, 238, 241, 244,
687 247, 250, 253, 256, 259, 262, 265, 268, 271, 274,
688 277, 280, 283, 286, 289, 292, 295, 298, 301, 304,
689 307, 310, 313, 316, 319, 322, 325, 328, 331, 334,
690 337, 340, 343, 346, 349, 352, 355, 358, 361, 364,
691 367, 370, 373, 376, 379, 382, 385, 388, 391, 394,
692 397, 400, 403, 406, 409, 412, 415, 418, 421, 424,
693 427, 430, 433, 436, 439, 442, 445, 448, 452, 455,
694 458, 461, 464, 467, 470, 473, 476, 479, 482, 485,
695 488, 491, 494, 497, 500, 503, 506, 510, 513, 516,
696 519, 522, 525, 528, 531, 534, 537, 539, 542, 543,
697 545, 547, 549, 551, 553, 555, 557, 560, 563, 566,
698 569, 572, 575, 578, 580, 583, 584, 586
697 204, 206, 208, 210, 212, 214, 216, 218, 220, 222,
698 225, 226, 228, 230, 232, 234, 236, 239, 240, 242,
699 244, 246, 249, 252, 255, 258, 261, 264, 267, 270,
700 273, 276, 279, 282, 285, 288, 291, 294, 297, 300,
701 303, 306, 309, 312, 315, 318, 321, 324, 327, 330,
702 333, 336, 339, 342, 345, 348, 351, 354, 357, 360,
703 363, 366, 369, 372, 375, 378, 381, 384, 387, 390,
704 393, 396, 399, 402, 405, 408, 411, 414, 417, 420,
705 423, 426, 429, 432, 435, 438, 441, 444, 447, 450,
706 453, 456, 459, 462, 465, 468, 472, 475, 478, 481,
707 484, 487, 490, 493, 496, 499, 502, 505, 508, 511,
708 514, 517, 520, 523, 526, 530, 533, 536, 539, 542,
709 545, 548, 551, 554, 557, 559, 562, 563, 565, 567,
710 569, 571, 573, 575, 577, 580, 583, 586, 589, 592,
711 595, 598, 600, 603, 604, 606
699712 };
700713
701714 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
702715 static const yytype_int16 yyrhs[] =
703716 {
704 123, 0, -1, -1, 123, 124, -1, 125, 126, -1,
705 128, 129, -1, 131, 132, -1, 243, 244, -1, 233,
706 234, -1, 11, -1, 126, 127, -1, -1, 134, -1,
707 135, -1, 139, -1, 142, -1, 148, -1, 149, -1,
708 150, -1, 151, -1, 140, -1, 157, -1, 158, -1,
709 159, -1, 160, -1, 161, -1, 178, -1, 179, -1,
710 180, -1, 182, -1, 183, -1, 145, -1, 184, -1,
711 185, -1, 188, -1, 186, -1, 187, -1, 189, -1,
712 190, -1, 191, -1, 202, -1, 170, -1, 171, -1,
713 172, -1, 173, -1, 192, -1, 205, -1, 166, -1,
714 168, -1, 206, -1, 211, -1, 212, -1, 213, -1,
715 146, -1, 177, -1, 220, -1, 221, -1, 167, -1,
716 216, -1, 154, -1, 141, -1, 162, -1, 203, -1,
717 209, -1, 193, -1, 204, -1, 223, -1, 224, -1,
718 147, -1, 136, -1, 153, -1, 196, -1, 137, -1,
719 143, -1, 144, -1, 163, -1, 164, -1, 222, -1,
720 195, -1, 197, -1, 198, -1, 138, -1, 225, -1,
721 181, -1, 201, -1, 155, -1, 169, -1, 207, -1,
722 208, -1, 210, -1, 215, -1, 165, -1, 217, -1,
723 218, -1, 219, -1, 174, -1, 176, -1, 199, -1,
724 200, -1, 175, -1, 194, -1, 214, -1, 156, -1,
725 152, -1, 38, -1, 129, 130, -1, -1, 226, -1,
726 227, -1, 228, -1, 229, -1, 44, -1, 132, 133,
727 -1, -1, 230, -1, 231, -1, 232, -1, 13, 10,
728 -1, 12, 10, -1, 76, 10, -1, 79, 10, -1,
729 96, 10, -1, 14, 10, -1, 16, 10, -1, 67,
730 10, -1, 15, 10, -1, 80, 10, -1, 81, 10,
731 -1, 31, 10, -1, 60, 10, -1, 75, 10, -1,
732 17, 10, -1, 18, 10, -1, 19, 10, -1, 20,
733 10, -1, 121, 10, -1, 77, 10, -1, 66, 10,
717 127, 0, -1, -1, 127, 128, -1, 129, 130, -1,
718 132, 133, -1, 135, 136, -1, 251, 252, -1, 241,
719 242, -1, 11, -1, 130, 131, -1, -1, 138, -1,
720 139, -1, 143, -1, 146, -1, 152, -1, 153, -1,
721 154, -1, 155, -1, 144, -1, 165, -1, 166, -1,
722 167, -1, 168, -1, 169, -1, 186, -1, 187, -1,
723 188, -1, 190, -1, 191, -1, 149, -1, 192, -1,
724 193, -1, 196, -1, 194, -1, 195, -1, 197, -1,
725 198, -1, 199, -1, 210, -1, 178, -1, 179, -1,
726 180, -1, 181, -1, 200, -1, 213, -1, 174, -1,
727 176, -1, 214, -1, 219, -1, 220, -1, 221, -1,
728 150, -1, 185, -1, 228, -1, 229, -1, 175, -1,
729 224, -1, 162, -1, 145, -1, 170, -1, 211, -1,
730 217, -1, 201, -1, 212, -1, 231, -1, 232, -1,
731 151, -1, 140, -1, 161, -1, 204, -1, 141, -1,
732 147, -1, 148, -1, 171, -1, 172, -1, 230, -1,
733 203, -1, 205, -1, 206, -1, 142, -1, 233, -1,
734 189, -1, 209, -1, 163, -1, 177, -1, 215, -1,
735 216, -1, 218, -1, 223, -1, 173, -1, 225, -1,
736 226, -1, 227, -1, 182, -1, 184, -1, 207, -1,
737 208, -1, 183, -1, 202, -1, 222, -1, 164, -1,
738 156, -1, 157, -1, 158, -1, 159, -1, 160, -1,
739 38, -1, 133, 134, -1, -1, 234, -1, 235, -1,
740 236, -1, 237, -1, 44, -1, 136, 137, -1, -1,
741 238, -1, 239, -1, 240, -1, 13, 10, -1, 12,
742 10, -1, 76, 10, -1, 79, 10, -1, 96, 10,
743 -1, 14, 10, -1, 16, 10, -1, 67, 10, -1,
744 15, 10, -1, 80, 10, -1, 81, 10, -1, 31,
745 10, -1, 60, 10, -1, 75, 10, -1, 17, 10,
746 -1, 18, 10, -1, 19, 10, -1, 20, 10, -1,
747 121, 10, -1, 122, 10, -1, 123, 10, -1, 124,
748 10, -1, 125, 10, -1, 77, 10, -1, 66, 10,
734749 -1, 101, 10, -1, 120, 10, -1, 21, 10, -1,
735750 22, 10, -1, 23, 10, -1, 24, 10, -1, 25,
736751 10, -1, 68, 10, -1, 82, 10, -1, 83, 10,
754769 63, 10, -1, 84, 10, -1, 73, 10, 10, -1,
755770 74, 10, -1, 97, 10, -1, 37, 10, -1, 39,
756771 10, -1, 40, 10, -1, 99, 10, -1, 37, 10,
757 -1, 45, 10, -1, 46, 10, -1, 88, -1, 234,
758 235, -1, -1, 236, -1, 238, -1, 237, -1, 239,
759 -1, 240, -1, 241, -1, 242, -1, 89, 10, -1,
772 -1, 45, 10, -1, 46, 10, -1, 88, -1, 242,
773 243, -1, -1, 244, -1, 246, -1, 245, -1, 247,
774 -1, 248, -1, 249, -1, 250, -1, 89, 10, -1,
760775 91, 10, -1, 90, 10, -1, 92, 10, -1, 93,
761776 10, -1, 94, 10, -1, 95, 10, -1, 103, -1,
762 244, 245, -1, -1, 246, -1, 104, 10, -1
777 252, 253, -1, -1, 254, -1, 104, 10, -1
763778 };
764779
765780 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
766781 static const yytype_uint16 yyrline[] =
767782 {
768 0, 108, 108, 108, 109, 109, 110, 110, 111, 115,
769 120, 121, 122, 122, 122, 123, 123, 124, 124, 124,
770 125, 125, 125, 126, 126, 126, 127, 127, 128, 128,
771 129, 129, 130, 130, 131, 131, 132, 132, 133, 133,
772 134, 134, 135, 135, 135, 136, 136, 136, 137, 137,
773 137, 138, 138, 139, 139, 140, 140, 141, 141, 142,
774 142, 142, 143, 143, 144, 144, 145, 145, 145, 146,
775 146, 147, 147, 148, 148, 149, 149, 149, 150, 150,
776 151, 151, 152, 152, 153, 153, 154, 154, 155, 155,
777 155, 156, 156, 157, 157, 157, 158, 158, 158, 159,
778 159, 159, 160, 160, 162, 174, 175, 176, 176, 176,
779 176, 178, 190, 191, 192, 192, 192, 194, 203, 212,
780 223, 232, 241, 250, 263, 278, 287, 296, 305, 314,
781 323, 332, 341, 350, 359, 368, 377, 386, 400, 409,
782 418, 425, 432, 439, 447, 454, 461, 468, 475, 483,
783 491, 499, 506, 513, 522, 531, 538, 545, 553, 561,
784 574, 585, 593, 606, 615, 624, 632, 645, 654, 663,
785 672, 681, 694, 701, 711, 721, 731, 741, 751, 761,
786 771, 778, 785, 794, 803, 812, 819, 829, 843, 850,
787 868, 881, 894, 903, 912, 921, 931, 941, 950, 959,
788 966, 975, 984, 993, 1001, 1014, 1022, 1044, 1051, 1066,
789 1076, 1083, 1090, 1100, 1110, 1117, 1124, 1129, 1130, 1131,
790 1131, 1131, 1132, 1132, 1132, 1133, 1135, 1145, 1154, 1161,
791 1168, 1175, 1182, 1189, 1194, 1195, 1196, 1198
783 0, 109, 109, 109, 110, 110, 111, 111, 112, 116,
784 121, 122, 123, 123, 123, 124, 124, 125, 125, 125,
785 126, 126, 126, 127, 127, 127, 128, 128, 129, 129,
786 130, 130, 131, 131, 132, 132, 133, 133, 134, 134,
787 135, 135, 136, 136, 136, 137, 137, 137, 138, 138,
788 138, 139, 139, 140, 140, 141, 141, 142, 142, 143,
789 143, 143, 144, 144, 145, 145, 146, 146, 146, 147,
790 147, 148, 148, 149, 149, 150, 150, 150, 151, 151,
791 152, 152, 153, 153, 154, 154, 155, 155, 156, 156,
792 156, 157, 157, 158, 158, 158, 159, 159, 159, 160,
793 160, 160, 161, 161, 161, 162, 162, 162, 164, 176,
794 177, 178, 178, 178, 178, 180, 192, 193, 194, 194,
795 194, 196, 205, 214, 225, 234, 243, 252, 265, 280,
796 289, 298, 307, 316, 325, 334, 343, 352, 361, 370,
797 379, 388, 395, 402, 411, 420, 434, 443, 452, 459,
798 466, 473, 481, 488, 495, 502, 509, 517, 525, 533,
799 540, 547, 556, 565, 572, 579, 587, 595, 608, 619,
800 627, 640, 649, 658, 666, 679, 688, 696, 705, 713,
801 726, 733, 743, 753, 763, 773, 783, 793, 803, 810,
802 817, 826, 835, 844, 851, 861, 875, 882, 900, 913,
803 926, 935, 944, 953, 963, 973, 982, 991, 998, 1007,
804 1016, 1025, 1033, 1046, 1054, 1076, 1083, 1098, 1108, 1115,
805 1122, 1132, 1142, 1149, 1156, 1161, 1162, 1163, 1163, 1163,
806 1164, 1164, 1164, 1165, 1167, 1177, 1186, 1193, 1200, 1207,
807 1214, 1221, 1226, 1227, 1228, 1230
792808 };
793809 #endif
794810
835851 "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF",
836852 "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY",
837853 "VAR_SO_SNDBUF", "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG",
838 "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "$accept", "toplevelvars",
839 "toplevelvar", "serverstart", "contents_server", "content_server",
840 "stubstart", "contents_stub", "content_stub", "forwardstart",
841 "contents_forward", "content_forward", "server_num_threads",
842 "server_verbosity", "server_statistics_interval",
854 "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM", "VAR_SSL_UPSTREAM",
855 "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "$accept",
856 "toplevelvars", "toplevelvar", "serverstart", "contents_server",
857 "content_server", "stubstart", "contents_stub", "content_stub",
858 "forwardstart", "contents_forward", "content_forward",
859 "server_num_threads", "server_verbosity", "server_statistics_interval",
843860 "server_statistics_cumulative", "server_extended_statistics",
844861 "server_port", "server_interface", "server_outgoing_interface",
845862 "server_outgoing_range", "server_outgoing_port_permit",
846863 "server_outgoing_port_avoid", "server_outgoing_num_tcp",
847864 "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
848865 "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream",
849 "server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
850 "server_log_queries", "server_chroot", "server_username",
851 "server_directory", "server_logfile", "server_pidfile",
852 "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
853 "server_auto_trust_anchor_file", "server_trust_anchor_file",
854 "server_trusted_keys_file", "server_trust_anchor",
855 "server_domain_insecure", "server_hide_identity", "server_hide_version",
856 "server_identity", "server_version", "server_so_rcvbuf",
857 "server_so_sndbuf", "server_edns_buffer_size", "server_msg_buffer_size",
858 "server_msg_cache_size", "server_msg_cache_slabs",
859 "server_num_queries_per_thread", "server_jostle_timeout",
860 "server_rrset_cache_size", "server_rrset_cache_slabs",
861 "server_infra_host_ttl", "server_infra_lame_ttl",
862 "server_infra_cache_numhosts", "server_infra_cache_lame_size",
863 "server_infra_cache_slabs", "server_target_fetch_policy",
864 "server_harden_short_bufsize", "server_harden_large_queries",
865 "server_harden_glue", "server_harden_dnssec_stripped",
866 "server_harden_below_nxdomain", "server_harden_referral_path",
867 "server_use_caps_for_id", "server_private_address",
868 "server_private_domain", "server_prefetch", "server_prefetch_key",
869 "server_unwanted_reply_threshold", "server_do_not_query_address",
870 "server_do_not_query_localhost", "server_access_control",
871 "server_module_conf", "server_val_override_date",
872 "server_val_sig_skew_min", "server_val_sig_skew_max",
873 "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl",
866 "server_ssl_upstream", "server_ssl_service_key",
867 "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
868 "server_use_syslog", "server_log_time_ascii", "server_log_queries",
869 "server_chroot", "server_username", "server_directory", "server_logfile",
870 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
871 "server_dlv_anchor", "server_auto_trust_anchor_file",
872 "server_trust_anchor_file", "server_trusted_keys_file",
873 "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
874 "server_hide_version", "server_identity", "server_version",
875 "server_so_rcvbuf", "server_so_sndbuf", "server_edns_buffer_size",
876 "server_msg_buffer_size", "server_msg_cache_size",
877 "server_msg_cache_slabs", "server_num_queries_per_thread",
878 "server_jostle_timeout", "server_rrset_cache_size",
879 "server_rrset_cache_slabs", "server_infra_host_ttl",
880 "server_infra_lame_ttl", "server_infra_cache_numhosts",
881 "server_infra_cache_lame_size", "server_infra_cache_slabs",
882 "server_target_fetch_policy", "server_harden_short_bufsize",
883 "server_harden_large_queries", "server_harden_glue",
884 "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
885 "server_harden_referral_path", "server_use_caps_for_id",
886 "server_private_address", "server_private_domain", "server_prefetch",
887 "server_prefetch_key", "server_unwanted_reply_threshold",
888 "server_do_not_query_address", "server_do_not_query_localhost",
889 "server_access_control", "server_module_conf",
890 "server_val_override_date", "server_val_sig_skew_min",
891 "server_val_sig_skew_max", "server_cache_max_ttl",
892 "server_cache_min_ttl", "server_bogus_ttl",
874893 "server_val_clean_additional", "server_val_permissive_mode",
875894 "server_ignore_cd_flag", "server_val_log_level",
876895 "server_val_nsec3_keysize_iterations", "server_add_holddown",
903922 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
904923 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
905924 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
906 375, 376
925 375, 376, 377, 378, 379, 380
907926 };
908927 # endif
909928
910929 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
911930 static const yytype_uint8 yyr1[] =
912931 {
913 0, 122, 123, 123, 124, 124, 124, 124, 124, 125,
914 126, 126, 127, 127, 127, 127, 127, 127, 127, 127,
915 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
916 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
917 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
918 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
919 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
920 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
921 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
922 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
923 127, 127, 127, 127, 128, 129, 129, 130, 130, 130,
924 130, 131, 132, 132, 133, 133, 133, 134, 135, 136,
932 0, 126, 127, 127, 128, 128, 128, 128, 128, 129,
933 130, 130, 131, 131, 131, 131, 131, 131, 131, 131,
934 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
935 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
936 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
937 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
938 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
939 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
940 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
941 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
942 131, 131, 131, 131, 131, 131, 131, 131, 132, 133,
943 133, 134, 134, 134, 134, 135, 136, 136, 137, 137,
925944 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
926945 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
927946 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
931950 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
932951 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
933952 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
934 227, 228, 229, 230, 231, 232, 233, 234, 234, 235,
935 235, 235, 235, 235, 235, 235, 236, 237, 238, 239,
936 240, 241, 242, 243, 244, 244, 245, 246
953 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
954 237, 238, 239, 240, 241, 242, 242, 243, 243, 243,
955 243, 243, 243, 243, 244, 245, 246, 247, 248, 249,
956 250, 251, 252, 252, 253, 254
937957 };
938958
939959 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
949969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
950970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
951971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
952 1, 1, 1, 1, 1, 2, 0, 1, 1, 1,
953 1, 1, 2, 0, 1, 1, 1, 2, 2, 2,
972 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
973 0, 1, 1, 1, 1, 1, 2, 0, 1, 1,
974 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
954975 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
955976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
956977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
957978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
958979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
959980 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
960 2, 2, 2, 2, 2, 2, 2, 3, 2, 2,
981 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
961982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
963 2, 2, 2, 2, 2, 2, 1, 2, 0, 1,
964 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
965 2, 2, 2, 1, 2, 0, 1, 2
983 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
984 2, 2, 2, 2, 1, 2, 0, 1, 1, 1,
985 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
986 2, 1, 2, 0, 1, 2
966987 };
967988
968 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
969 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
989 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
990 Performed when YYTABLE doesn't specify something else to do. Zero
970991 means the default is an error. */
971992 static const yytype_uint8 yydefact[] =
972993 {
973 2, 0, 1, 9, 104, 111, 216, 233, 3, 11,
974 106, 113, 218, 235, 4, 5, 6, 8, 7, 0,
994 2, 0, 1, 9, 108, 115, 224, 241, 3, 11,
995 110, 117, 226, 243, 4, 5, 6, 8, 7, 0,
975996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
976997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
977998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9811002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9821003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9831004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
984 0, 10, 12, 13, 69, 72, 81, 14, 20, 60,
985 15, 73, 74, 31, 53, 68, 16, 17, 18, 19,
986 103, 70, 59, 85, 102, 21, 22, 23, 24, 25,
987 61, 75, 76, 91, 47, 57, 48, 86, 41, 42,
988 43, 44, 95, 99, 96, 54, 26, 27, 28, 83,
989 29, 30, 32, 33, 35, 36, 34, 37, 38, 39,
990 45, 64, 100, 78, 71, 79, 80, 97, 98, 84,
991 40, 62, 65, 46, 49, 87, 88, 63, 89, 50,
992 51, 52, 101, 90, 58, 92, 93, 94, 55, 56,
993 77, 66, 67, 82, 0, 0, 0, 0, 105, 107,
994 108, 109, 110, 0, 0, 0, 112, 114, 115, 116,
995 0, 0, 0, 0, 0, 0, 0, 217, 219, 221,
996 220, 222, 223, 224, 225, 0, 234, 236, 118, 117,
997 122, 125, 123, 131, 132, 133, 134, 140, 141, 142,
998 143, 144, 161, 162, 163, 165, 166, 128, 167, 168,
999 171, 169, 170, 172, 173, 174, 185, 153, 154, 155,
1000 156, 175, 188, 149, 151, 189, 194, 195, 196, 129,
1001 160, 203, 204, 150, 199, 137, 124, 145, 186, 192,
1002 176, 0, 0, 207, 130, 119, 136, 179, 120, 126,
1003 127, 146, 147, 205, 178, 180, 181, 121, 208, 164,
1004 184, 138, 152, 190, 191, 193, 198, 148, 202, 200,
1005 201, 157, 159, 182, 183, 158, 177, 197, 139, 135,
1006 209, 210, 211, 212, 213, 214, 215, 226, 228, 227,
1007 229, 230, 231, 232, 237, 187, 206
1005 0, 0, 0, 0, 0, 10, 12, 13, 69, 72,
1006 81, 14, 20, 60, 15, 73, 74, 31, 53, 68,
1007 16, 17, 18, 19, 103, 104, 105, 106, 107, 70,
1008 59, 85, 102, 21, 22, 23, 24, 25, 61, 75,
1009 76, 91, 47, 57, 48, 86, 41, 42, 43, 44,
1010 95, 99, 96, 54, 26, 27, 28, 83, 29, 30,
1011 32, 33, 35, 36, 34, 37, 38, 39, 45, 64,
1012 100, 78, 71, 79, 80, 97, 98, 84, 40, 62,
1013 65, 46, 49, 87, 88, 63, 89, 50, 51, 52,
1014 101, 90, 58, 92, 93, 94, 55, 56, 77, 66,
1015 67, 82, 0, 0, 0, 0, 109, 111, 112, 113,
1016 114, 0, 0, 0, 116, 118, 119, 120, 0, 0,
1017 0, 0, 0, 0, 0, 225, 227, 229, 228, 230,
1018 231, 232, 233, 0, 242, 244, 122, 121, 126, 129,
1019 127, 135, 136, 137, 138, 148, 149, 150, 151, 152,
1020 169, 170, 171, 173, 174, 132, 175, 176, 179, 177,
1021 178, 180, 181, 182, 193, 161, 162, 163, 164, 183,
1022 196, 157, 159, 197, 202, 203, 204, 133, 168, 211,
1023 212, 158, 207, 145, 128, 153, 194, 200, 184, 0,
1024 0, 215, 134, 123, 144, 187, 124, 130, 131, 154,
1025 155, 213, 186, 188, 189, 125, 216, 172, 192, 146,
1026 160, 198, 199, 201, 206, 156, 210, 208, 209, 165,
1027 167, 190, 191, 166, 185, 205, 147, 139, 140, 141,
1028 142, 143, 217, 218, 219, 220, 221, 222, 223, 234,
1029 236, 235, 237, 238, 239, 240, 245, 195, 214
10081030 };
10091031
10101032 /* YYDEFGOTO[NTERM-NUM]. */
10111033 static const yytype_int16 yydefgoto[] =
10121034 {
1013 -1, 1, 8, 9, 14, 111, 10, 15, 208, 11,
1014 16, 216, 112, 113, 114, 115, 116, 117, 118, 119,
1015 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1016 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1017 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
1018 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1019 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
1020 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
1021 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
1022 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
1023 200, 201, 202, 203, 209, 210, 211, 212, 217, 218,
1024 219, 12, 17, 227, 228, 229, 230, 231, 232, 233,
1025 234, 13, 18, 236, 237
1035 -1, 1, 8, 9, 14, 115, 10, 15, 216, 11,
1036 16, 224, 116, 117, 118, 119, 120, 121, 122, 123,
1037 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1038 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1039 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1040 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
1041 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1042 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1043 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1044 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1045 204, 205, 206, 207, 208, 209, 210, 211, 217, 218,
1046 219, 220, 225, 226, 227, 12, 17, 235, 236, 237,
1047 238, 239, 240, 241, 242, 13, 18, 244, 245
10261048 };
10271049
10281050 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
10321054 {
10331055 -80, 76, -80, -80, -80, -80, -80, -80, -80, -80,
10341056 -80, -80, -80, -80, -12, 40, 46, 32, -79, 16,
1035 17, 18, 22, 23, 24, 68, 71, 72, 100, 101,
1036 102, 103, 105, 106, 107, 108, 109, 118, 119, 120,
1037 121, 122, 123, 124, 125, 126, 127, 128, 130, 131,
1038 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1039 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
1040 152, 153, 155, 156, 157, 158, 159, 160, 161, 162,
1041 163, 164, 165, 166, 167, 168, 170, 171, 172, 173,
1042 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1043 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1044 194, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1057 17, 18, 22, 23, 24, 68, 71, 72, 105, 106,
1058 107, 108, 109, 118, 119, 120, 121, 122, 123, 124,
1059 125, 126, 127, 128, 130, 131, 132, 133, 134, 135,
1060 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1061 146, 147, 148, 149, 150, 151, 152, 153, 155, 156,
1062 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
1063 167, 168, 170, 171, 172, 173, 174, 175, 176, 177,
1064 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
1065 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
1066 198, 199, 200, 201, 202, -80, -80, -80, -80, -80,
10451067 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10461068 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10471069 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10501072 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10511073 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10521074 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1053 -80, -80, -80, -80, 195, 196, 197, 198, -80, -80,
1054 -80, -80, -80, 199, 200, 201, -80, -80, -80, -80,
1055 202, 203, 204, 205, 206, 207, 208, -80, -80, -80,
1056 -80, -80, -80, -80, -80, 209, -80, -80, -80, -80,
1075 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1076 -80, -80, 203, 204, 205, 206, -80, -80, -80, -80,
1077 -80, 207, 208, 209, -80, -80, -80, -80, 210, 211,
1078 212, 213, 214, 215, 216, -80, -80, -80, -80, -80,
1079 -80, -80, -80, 217, -80, -80, -80, -80, -80, -80,
10571080 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10581081 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10591082 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10601083 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1061 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1062 -80, 210, 211, -80, -80, -80, -80, -80, -80, -80,
1084 -80, -80, -80, -80, -80, -80, -80, -80, -80, 218,
1085 219, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10631086 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10641087 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10651088 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10661089 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1067 -80, -80, -80, -80, -80, -80, -80
1090 -80, -80, -80, -80, -80, -80, -80, -80, -80
10681091 };
10691092
10701093 /* YYPGOTO[NTERM-NUM]. */
10821105 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10831106 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
10841107 -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
1085 -80, -80, -80, -80, -80
1108 -80, -80, -80, -80, -80, -80, -80, -80, -80
10861109 };
10871110
10881111 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
10891112 positive, shift that token. If negative, reduce the rule which
1090 number is the opposite. If zero, do what YYDEFACT says.
1091 If YYTABLE_NINF, syntax error. */
1113 number is the opposite. If YYTABLE_NINF, syntax error. */
10921114 #define YYTABLE_NINF -1
10931115 static const yytype_uint16 yytable[] =
10941116 {
10951117 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
10961118 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1097 39, 40, 41, 42, 43, 235, 238, 239, 240, 44,
1098 45, 46, 241, 242, 243, 47, 48, 49, 50, 51,
1119 39, 40, 41, 42, 43, 243, 246, 247, 248, 44,
1120 45, 46, 249, 250, 251, 47, 48, 49, 50, 51,
10991121 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
11001122 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
11011123 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
1102 82, 83, 84, 85, 86, 87, 2, 204, 244, 205,
1103 206, 245, 246, 213, 88, 89, 90, 3, 91, 92,
1104 93, 214, 215, 94, 95, 96, 97, 98, 99, 100,
1124 82, 83, 84, 85, 86, 87, 2, 212, 252, 213,
1125 214, 253, 254, 221, 88, 89, 90, 3, 91, 92,
1126 93, 222, 223, 94, 95, 96, 97, 98, 99, 100,
11051127 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1106 247, 248, 249, 250, 4, 251, 252, 253, 254, 255,
1107 5, 220, 221, 222, 223, 224, 225, 226, 256, 257,
1108 258, 259, 260, 261, 262, 263, 264, 265, 266, 207,
1109 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
1110 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1111 287, 288, 289, 290, 6, 291, 292, 293, 294, 295,
1112 296, 297, 298, 299, 300, 301, 302, 303, 304, 7,
1113 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1114 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1115 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1116 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1117 345, 346
1128 111, 112, 113, 114, 4, 255, 256, 257, 258, 259,
1129 5, 228, 229, 230, 231, 232, 233, 234, 260, 261,
1130 262, 263, 264, 265, 266, 267, 268, 269, 270, 215,
1131 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1132 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
1133 291, 292, 293, 294, 6, 295, 296, 297, 298, 299,
1134 300, 301, 302, 303, 304, 305, 306, 307, 308, 7,
1135 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
1136 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
1137 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
1138 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
1139 349, 350, 351, 352, 353, 354, 355, 356, 357, 358
11181140 };
1141
1142 #define yypact_value_is_default(yystate) \
1143 ((yystate) == (-80))
1144
1145 #define yytable_value_is_error(yytable_value) \
1146 YYID (0)
11191147
11201148 static const yytype_uint8 yycheck[] =
11211149 {
11301158 40, 10, 10, 37, 96, 97, 98, 11, 100, 101,
11311159 102, 45, 46, 105, 106, 107, 108, 109, 110, 111,
11321160 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1133 10, 10, 10, 10, 38, 10, 10, 10, 10, 10,
1161 122, 123, 124, 125, 38, 10, 10, 10, 10, 10,
11341162 44, 89, 90, 91, 92, 93, 94, 95, 10, 10,
11351163 10, 10, 10, 10, 10, 10, 10, 10, 10, 99,
11361164 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11411169 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11421170 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11431171 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1144 10, 10
1172 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
11451173 };
11461174
11471175 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
11481176 symbol of state STATE-NUM. */
11491177 static const yytype_uint8 yystos[] =
11501178 {
1151 0, 123, 0, 11, 38, 44, 88, 103, 124, 125,
1152 128, 131, 233, 243, 126, 129, 132, 234, 244, 12,
1179 0, 127, 0, 11, 38, 44, 88, 103, 128, 129,
1180 132, 135, 241, 251, 130, 133, 136, 242, 252, 12,
11531181 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
11541182 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
11551183 33, 34, 35, 36, 41, 42, 43, 47, 48, 49,
11591187 80, 81, 82, 83, 84, 85, 86, 87, 96, 97,
11601188 98, 100, 101, 102, 105, 106, 107, 108, 109, 110,
11611189 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1162 121, 127, 134, 135, 136, 137, 138, 139, 140, 141,
1190 121, 122, 123, 124, 125, 131, 138, 139, 140, 141,
11631191 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
11641192 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
11651193 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
11681196 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
11691197 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
11701198 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
1171 222, 223, 224, 225, 37, 39, 40, 99, 130, 226,
1172 227, 228, 229, 37, 45, 46, 133, 230, 231, 232,
1173 89, 90, 91, 92, 93, 94, 95, 235, 236, 237,
1174 238, 239, 240, 241, 242, 104, 245, 246, 10, 10,
1199 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
1200 232, 233, 37, 39, 40, 99, 134, 234, 235, 236,
1201 237, 37, 45, 46, 137, 238, 239, 240, 89, 90,
1202 91, 92, 93, 94, 95, 243, 244, 245, 246, 247,
1203 248, 249, 250, 104, 253, 254, 10, 10, 10, 10,
11751204 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11761205 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11771206 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11821211 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11831212 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
11841213 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1185 10, 10, 10, 10, 10, 10, 10
1214 10, 10, 10, 10, 10, 10, 10, 10, 10
11861215 };
11871216
11881217 #define yyerrok (yyerrstatus = 0)
12181247 { \
12191248 yychar = (Token); \
12201249 yylval = (Value); \
1221 yytoken = YYTRANSLATE (yychar); \
12221250 YYPOPSTACK (1); \
12231251 goto yybackup; \
12241252 } \
12601288 #endif
12611289
12621290
1263 /* YY_LOCATION_PRINT -- Print the location on the stream.
1264 This macro was not mandated originally: define only if we know
1265 we won't break user code: when these are the locations we know. */
1291 /* This macro is provided for backward compatibility. */
12661292
12671293 #ifndef YY_LOCATION_PRINT
1268 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1269 # define YY_LOCATION_PRINT(File, Loc) \
1270 fprintf (File, "%d.%d-%d.%d", \
1271 (Loc).first_line, (Loc).first_column, \
1272 (Loc).last_line, (Loc).last_column)
1273 # else
1274 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1275 # endif
1294 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
12761295 #endif
12771296
12781297
14641483 # define YYMAXDEPTH 10000
14651484 #endif
14661485
1467
14681486
14691487 #if YYERROR_VERBOSE
14701488
15671585 }
15681586 # endif
15691587
1570 /* Copy into YYRESULT an error message about the unexpected token
1571 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1572 including the terminating null byte. If YYRESULT is null, do not
1573 copy anything; just return the number of bytes that would be
1574 copied. As a special case, return 0 if an ordinary "syntax error"
1575 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1576 size calculation. */
1577 static YYSIZE_T
1578 yysyntax_error (char *yyresult, int yystate, int yychar)
1588 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1589 about the unexpected token YYTOKEN for the state stack whose top is
1590 YYSSP.
1591
1592 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1593 not large enough to hold the message. In that case, also set
1594 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1595 required number of bytes is too large to store. */
1596 static int
1597 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1598 yytype_int16 *yyssp, int yytoken)
15791599 {
1580 int yyn = yypact[yystate];
1581
1582 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1583 return 0;
1584 else
1585 {
1586 int yytype = YYTRANSLATE (yychar);
1587 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1588 YYSIZE_T yysize = yysize0;
1589 YYSIZE_T yysize1;
1590 int yysize_overflow = 0;
1591 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1592 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1593 int yyx;
1594
1595 # if 0
1596 /* This is so xgettext sees the translatable formats that are
1597 constructed on the fly. */
1598 YY_("syntax error, unexpected %s");
1599 YY_("syntax error, unexpected %s, expecting %s");
1600 YY_("syntax error, unexpected %s, expecting %s or %s");
1601 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1602 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1603 # endif
1604 char *yyfmt;
1605 char const *yyf;
1606 static char const yyunexpected[] = "syntax error, unexpected %s";
1607 static char const yyexpecting[] = ", expecting %s";
1608 static char const yyor[] = " or %s";
1609 char yyformat[sizeof yyunexpected
1610 + sizeof yyexpecting - 1
1611 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1612 * (sizeof yyor - 1))];
1613 char const *yyprefix = yyexpecting;
1614
1615 /* Start YYX at -YYN if negative to avoid negative indexes in
1616 YYCHECK. */
1617 int yyxbegin = yyn < 0 ? -yyn : 0;
1618
1619 /* Stay within bounds of both yycheck and yytname. */
1620 int yychecklim = YYLAST - yyn + 1;
1621 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1622 int yycount = 1;
1623
1624 yyarg[0] = yytname[yytype];
1625 yyfmt = yystpcpy (yyformat, yyunexpected);
1626
1627 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1628 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1629 {
1630 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1631 {
1632 yycount = 1;
1633 yysize = yysize0;
1634 yyformat[sizeof yyunexpected - 1] = '\0';
1635 break;
1636 }
1637 yyarg[yycount++] = yytname[yyx];
1638 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1639 yysize_overflow |= (yysize1 < yysize);
1640 yysize = yysize1;
1641 yyfmt = yystpcpy (yyfmt, yyprefix);
1642 yyprefix = yyor;
1643 }
1644
1645 yyf = YY_(yyformat);
1646 yysize1 = yysize + yystrlen (yyf);
1647 yysize_overflow |= (yysize1 < yysize);
1648 yysize = yysize1;
1649
1650 if (yysize_overflow)
1651 return YYSIZE_MAXIMUM;
1652
1653 if (yyresult)
1654 {
1655 /* Avoid sprintf, as that infringes on the user's name space.
1656 Don't have undefined behavior even if the translation
1657 produced a string with the wrong number of "%s"s. */
1658 char *yyp = yyresult;
1659 int yyi = 0;
1660 while ((*yyp = *yyf) != '\0')
1661 {
1662 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1663 {
1664 yyp += yytnamerr (yyp, yyarg[yyi++]);
1665 yyf += 2;
1666 }
1667 else
1668 {
1669 yyp++;
1670 yyf++;
1671 }
1672 }
1673 }
1674 return yysize;
1600 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
1601 YYSIZE_T yysize = yysize0;
1602 YYSIZE_T yysize1;
1603 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1604 /* Internationalized format string. */
1605 const char *yyformat = 0;
1606 /* Arguments of yyformat. */
1607 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1608 /* Number of reported tokens (one for the "unexpected", one per
1609 "expected"). */
1610 int yycount = 0;
1611
1612 /* There are many possibilities here to consider:
1613 - Assume YYFAIL is not used. It's too flawed to consider. See
1614 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1615 for details. YYERROR is fine as it does not invoke this
1616 function.
1617 - If this state is a consistent state with a default action, then
1618 the only way this function was invoked is if the default action
1619 is an error action. In that case, don't check for expected
1620 tokens because there are none.
1621 - The only way there can be no lookahead present (in yychar) is if
1622 this state is a consistent state with a default action. Thus,
1623 detecting the absence of a lookahead is sufficient to determine
1624 that there is no unexpected or expected token to report. In that
1625 case, just report a simple "syntax error".
1626 - Don't assume there isn't a lookahead just because this state is a
1627 consistent state with a default action. There might have been a
1628 previous inconsistent state, consistent state with a non-default
1629 action, or user semantic action that manipulated yychar.
1630 - Of course, the expected token list depends on states to have
1631 correct lookahead information, and it depends on the parser not
1632 to perform extra reductions after fetching a lookahead from the
1633 scanner and before detecting a syntax error. Thus, state merging
1634 (from LALR or IELR) and default reductions corrupt the expected
1635 token list. However, the list is correct for canonical LR with
1636 one exception: it will still contain any token that will not be
1637 accepted due to an error action in a later state.
1638 */
1639 if (yytoken != YYEMPTY)
1640 {
1641 int yyn = yypact[*yyssp];
1642 yyarg[yycount++] = yytname[yytoken];
1643 if (!yypact_value_is_default (yyn))
1644 {
1645 /* Start YYX at -YYN if negative to avoid negative indexes in
1646 YYCHECK. In other words, skip the first -YYN actions for
1647 this state because they are default actions. */
1648 int yyxbegin = yyn < 0 ? -yyn : 0;
1649 /* Stay within bounds of both yycheck and yytname. */
1650 int yychecklim = YYLAST - yyn + 1;
1651 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1652 int yyx;
1653
1654 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1655 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1656 && !yytable_value_is_error (yytable[yyx + yyn]))
1657 {
1658 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1659 {
1660 yycount = 1;
1661 yysize = yysize0;
1662 break;
1663 }
1664 yyarg[yycount++] = yytname[yyx];
1665 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1666 if (! (yysize <= yysize1
1667 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1668 return 2;
1669 yysize = yysize1;
1670 }
1671 }
16751672 }
1673
1674 switch (yycount)
1675 {
1676 # define YYCASE_(N, S) \
1677 case N: \
1678 yyformat = S; \
1679 break
1680 YYCASE_(0, YY_("syntax error"));
1681 YYCASE_(1, YY_("syntax error, unexpected %s"));
1682 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1683 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1684 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1685 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1686 # undef YYCASE_
1687 }
1688
1689 yysize1 = yysize + yystrlen (yyformat);
1690 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1691 return 2;
1692 yysize = yysize1;
1693
1694 if (*yymsg_alloc < yysize)
1695 {
1696 *yymsg_alloc = 2 * yysize;
1697 if (! (yysize <= *yymsg_alloc
1698 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1699 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1700 return 1;
1701 }
1702
1703 /* Avoid sprintf, as that infringes on the user's name space.
1704 Don't have undefined behavior even if the translation
1705 produced a string with the wrong number of "%s"s. */
1706 {
1707 char *yyp = *yymsg;
1708 int yyi = 0;
1709 while ((*yyp = *yyformat) != '\0')
1710 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1711 {
1712 yyp += yytnamerr (yyp, yyarg[yyi++]);
1713 yyformat += 2;
1714 }
1715 else
1716 {
1717 yyp++;
1718 yyformat++;
1719 }
1720 }
1721 return 0;
16761722 }
16771723 #endif /* YYERROR_VERBOSE */
1678
16791724
16801725 /*-----------------------------------------------.
16811726 | Release the memory associated to this symbol. |
17081753 }
17091754 }
17101755
1756
17111757 /* Prevent warnings from -Wmissing-prototypes. */
17121758 #ifdef YYPARSE_PARAM
17131759 #if defined __STDC__ || defined __cplusplus
17341780 int yynerrs;
17351781
17361782
1737
1738 /*-------------------------.
1739 | yyparse or yypush_parse. |
1740 `-------------------------*/
1783 /*----------.
1784 | yyparse. |
1785 `----------*/
17411786
17421787 #ifdef YYPARSE_PARAM
17431788 #if (defined __STDC__ || defined __C99__FUNC__ \
17611806 #endif
17621807 #endif
17631808 {
1764
1765
17661809 int yystate;
17671810 /* Number of tokens to shift before error messages enabled. */
17681811 int yyerrstatus;
19171960
19181961 /* First try to decide what to do without reference to lookahead token. */
19191962 yyn = yypact[yystate];
1920 if (yyn == YYPACT_NINF)
1963 if (yypact_value_is_default (yyn))
19211964 goto yydefault;
19221965
19231966 /* Not known => get a lookahead token if don't already have one. */
19481991 yyn = yytable[yyn];
19491992 if (yyn <= 0)
19501993 {
1951 if (yyn == 0 || yyn == YYTABLE_NINF)
1952 goto yyerrlab;
1994 if (yytable_value_is_error (yyn))
1995 goto yyerrlab;
19531996 yyn = -yyn;
19541997 goto yyreduce;
19551998 }
20042047 {
20052048 case 9:
20062049
2007 /* Line 1464 of yacc.c */
2008 #line 116 "util/configparser.y"
2050 /* Line 1806 of yacc.c */
2051 #line 117 "util/configparser.y"
20092052 {
20102053 OUTYY(("\nP(server:)\n"));
20112054 }
20122055 break;
20132056
2014 case 104:
2015
2016 /* Line 1464 of yacc.c */
2017 #line 163 "util/configparser.y"
2057 case 108:
2058
2059 /* Line 1806 of yacc.c */
2060 #line 165 "util/configparser.y"
20182061 {
20192062 struct config_stub* s;
20202063 OUTYY(("\nP(stub_zone:)\n"));
20272070 }
20282071 break;
20292072
2030 case 111:
2031
2032 /* Line 1464 of yacc.c */
2033 #line 179 "util/configparser.y"
2073 case 115:
2074
2075 /* Line 1806 of yacc.c */
2076 #line 181 "util/configparser.y"
20342077 {
20352078 struct config_stub* s;
20362079 OUTYY(("\nP(forward_zone:)\n"));
20432086 }
20442087 break;
20452088
2046 case 117:
2047
2048 /* Line 1464 of yacc.c */
2049 #line 195 "util/configparser.y"
2089 case 121:
2090
2091 /* Line 1806 of yacc.c */
2092 #line 197 "util/configparser.y"
20502093 {
20512094 OUTYY(("P(server_num_threads:%s)\n", (yyvsp[(2) - (2)].str)));
20522095 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
20562099 }
20572100 break;
20582101
2059 case 118:
2060
2061 /* Line 1464 of yacc.c */
2062 #line 204 "util/configparser.y"
2102 case 122:
2103
2104 /* Line 1806 of yacc.c */
2105 #line 206 "util/configparser.y"
20632106 {
20642107 OUTYY(("P(server_verbosity:%s)\n", (yyvsp[(2) - (2)].str)));
20652108 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
20692112 }
20702113 break;
20712114
2072 case 119:
2073
2074 /* Line 1464 of yacc.c */
2075 #line 213 "util/configparser.y"
2115 case 123:
2116
2117 /* Line 1806 of yacc.c */
2118 #line 215 "util/configparser.y"
20762119 {
20772120 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[(2) - (2)].str)));
20782121 if(strcmp((yyvsp[(2) - (2)].str), "") == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0)
20842127 }
20852128 break;
20862129
2087 case 120:
2088
2089 /* Line 1464 of yacc.c */
2090 #line 224 "util/configparser.y"
2130 case 124:
2131
2132 /* Line 1806 of yacc.c */
2133 #line 226 "util/configparser.y"
20912134 {
20922135 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[(2) - (2)].str)));
20932136 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
20972140 }
20982141 break;
20992142
2100 case 121:
2101
2102 /* Line 1464 of yacc.c */
2103 #line 233 "util/configparser.y"
2143 case 125:
2144
2145 /* Line 1806 of yacc.c */
2146 #line 235 "util/configparser.y"
21042147 {
21052148 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[(2) - (2)].str)));
21062149 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
21102153 }
21112154 break;
21122155
2113 case 122:
2114
2115 /* Line 1464 of yacc.c */
2116 #line 242 "util/configparser.y"
2156 case 126:
2157
2158 /* Line 1806 of yacc.c */
2159 #line 244 "util/configparser.y"
21172160 {
21182161 OUTYY(("P(server_port:%s)\n", (yyvsp[(2) - (2)].str)));
21192162 if(atoi((yyvsp[(2) - (2)].str)) == 0)
21232166 }
21242167 break;
21252168
2126 case 123:
2127
2128 /* Line 1464 of yacc.c */
2129 #line 251 "util/configparser.y"
2169 case 127:
2170
2171 /* Line 1806 of yacc.c */
2172 #line 253 "util/configparser.y"
21302173 {
21312174 OUTYY(("P(server_interface:%s)\n", (yyvsp[(2) - (2)].str)));
21322175 if(cfg_parser->cfg->num_ifs == 0)
21402183 }
21412184 break;
21422185
2143 case 124:
2144
2145 /* Line 1464 of yacc.c */
2146 #line 264 "util/configparser.y"
2186 case 128:
2187
2188 /* Line 1806 of yacc.c */
2189 #line 266 "util/configparser.y"
21472190 {
21482191 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[(2) - (2)].str)));
21492192 if(cfg_parser->cfg->num_out_ifs == 0)
21592202 }
21602203 break;
21612204
2162 case 125:
2163
2164 /* Line 1464 of yacc.c */
2165 #line 279 "util/configparser.y"
2205 case 129:
2206
2207 /* Line 1806 of yacc.c */
2208 #line 281 "util/configparser.y"
21662209 {
21672210 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[(2) - (2)].str)));
21682211 if(atoi((yyvsp[(2) - (2)].str)) == 0)
21722215 }
21732216 break;
21742217
2175 case 126:
2176
2177 /* Line 1464 of yacc.c */
2178 #line 288 "util/configparser.y"
2218 case 130:
2219
2220 /* Line 1806 of yacc.c */
2221 #line 290 "util/configparser.y"
21792222 {
21802223 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[(2) - (2)].str)));
21812224 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 1,
21852228 }
21862229 break;
21872230
2188 case 127:
2189
2190 /* Line 1464 of yacc.c */
2191 #line 297 "util/configparser.y"
2231 case 131:
2232
2233 /* Line 1806 of yacc.c */
2234 #line 299 "util/configparser.y"
21922235 {
21932236 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[(2) - (2)].str)));
21942237 if(!cfg_mark_ports((yyvsp[(2) - (2)].str), 0,
21982241 }
21992242 break;
22002243
2201 case 128:
2202
2203 /* Line 1464 of yacc.c */
2204 #line 306 "util/configparser.y"
2244 case 132:
2245
2246 /* Line 1806 of yacc.c */
2247 #line 308 "util/configparser.y"
22052248 {
22062249 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
22072250 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
22112254 }
22122255 break;
22132256
2214 case 129:
2215
2216 /* Line 1464 of yacc.c */
2217 #line 315 "util/configparser.y"
2257 case 133:
2258
2259 /* Line 1806 of yacc.c */
2260 #line 317 "util/configparser.y"
22182261 {
22192262 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
22202263 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
22242267 }
22252268 break;
22262269
2227 case 130:
2228
2229 /* Line 1464 of yacc.c */
2230 #line 324 "util/configparser.y"
2270 case 134:
2271
2272 /* Line 1806 of yacc.c */
2273 #line 326 "util/configparser.y"
22312274 {
22322275 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[(2) - (2)].str)));
22332276 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
22372280 }
22382281 break;
22392282
2240 case 131:
2241
2242 /* Line 1464 of yacc.c */
2243 #line 333 "util/configparser.y"
2283 case 135:
2284
2285 /* Line 1806 of yacc.c */
2286 #line 335 "util/configparser.y"
22442287 {
22452288 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[(2) - (2)].str)));
22462289 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
22502293 }
22512294 break;
22522295
2253 case 132:
2254
2255 /* Line 1464 of yacc.c */
2256 #line 342 "util/configparser.y"
2296 case 136:
2297
2298 /* Line 1806 of yacc.c */
2299 #line 344 "util/configparser.y"
22572300 {
22582301 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[(2) - (2)].str)));
22592302 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
22632306 }
22642307 break;
22652308
2266 case 133:
2267
2268 /* Line 1464 of yacc.c */
2269 #line 351 "util/configparser.y"
2309 case 137:
2310
2311 /* Line 1806 of yacc.c */
2312 #line 353 "util/configparser.y"
22702313 {
22712314 OUTYY(("P(server_do_udp:%s)\n", (yyvsp[(2) - (2)].str)));
22722315 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
22762319 }
22772320 break;
22782321
2279 case 134:
2280
2281 /* Line 1464 of yacc.c */
2282 #line 360 "util/configparser.y"
2322 case 138:
2323
2324 /* Line 1806 of yacc.c */
2325 #line 362 "util/configparser.y"
22832326 {
22842327 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[(2) - (2)].str)));
22852328 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
22892332 }
22902333 break;
22912334
2292 case 135:
2293
2294 /* Line 1464 of yacc.c */
2295 #line 369 "util/configparser.y"
2335 case 139:
2336
2337 /* Line 1806 of yacc.c */
2338 #line 371 "util/configparser.y"
22962339 {
22972340 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
22982341 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
23022345 }
23032346 break;
23042347
2305 case 136:
2306
2307 /* Line 1464 of yacc.c */
2308 #line 378 "util/configparser.y"
2348 case 140:
2349
2350 /* Line 1806 of yacc.c */
2351 #line 380 "util/configparser.y"
2352 {
2353 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[(2) - (2)].str)));
2354 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
2355 yyerror("expected yes or no.");
2356 else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[(2) - (2)].str), "yes")==0);
2357 free((yyvsp[(2) - (2)].str));
2358 }
2359 break;
2360
2361 case 141:
2362
2363 /* Line 1806 of yacc.c */
2364 #line 389 "util/configparser.y"
2365 {
2366 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[(2) - (2)].str)));
2367 free(cfg_parser->cfg->ssl_service_key);
2368 cfg_parser->cfg->ssl_service_key = (yyvsp[(2) - (2)].str);
2369 }
2370 break;
2371
2372 case 142:
2373
2374 /* Line 1806 of yacc.c */
2375 #line 396 "util/configparser.y"
2376 {
2377 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[(2) - (2)].str)));
2378 free(cfg_parser->cfg->ssl_service_pem);
2379 cfg_parser->cfg->ssl_service_pem = (yyvsp[(2) - (2)].str);
2380 }
2381 break;
2382
2383 case 143:
2384
2385 /* Line 1806 of yacc.c */
2386 #line 403 "util/configparser.y"
2387 {
2388 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[(2) - (2)].str)));
2389 if(atoi((yyvsp[(2) - (2)].str)) == 0)
2390 yyerror("port number expected");
2391 else cfg_parser->cfg->ssl_port = atoi((yyvsp[(2) - (2)].str));
2392 free((yyvsp[(2) - (2)].str));
2393 }
2394 break;
2395
2396 case 144:
2397
2398 /* Line 1806 of yacc.c */
2399 #line 412 "util/configparser.y"
23092400 {
23102401 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[(2) - (2)].str)));
23112402 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
23152406 }
23162407 break;
23172408
2318 case 137:
2319
2320 /* Line 1464 of yacc.c */
2321 #line 387 "util/configparser.y"
2409 case 145:
2410
2411 /* Line 1806 of yacc.c */
2412 #line 421 "util/configparser.y"
23222413 {
23232414 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[(2) - (2)].str)));
23242415 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
23332424 }
23342425 break;
23352426
2336 case 138:
2337
2338 /* Line 1464 of yacc.c */
2339 #line 401 "util/configparser.y"
2427 case 146:
2428
2429 /* Line 1806 of yacc.c */
2430 #line 435 "util/configparser.y"
23402431 {
23412432 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[(2) - (2)].str)));
23422433 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
23462437 }
23472438 break;
23482439
2349 case 139:
2350
2351 /* Line 1464 of yacc.c */
2352 #line 410 "util/configparser.y"
2440 case 147:
2441
2442 /* Line 1806 of yacc.c */
2443 #line 444 "util/configparser.y"
23532444 {
23542445 OUTYY(("P(server_log_queries:%s)\n", (yyvsp[(2) - (2)].str)));
23552446 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
23592450 }
23602451 break;
23612452
2362 case 140:
2363
2364 /* Line 1464 of yacc.c */
2365 #line 419 "util/configparser.y"
2453 case 148:
2454
2455 /* Line 1806 of yacc.c */
2456 #line 453 "util/configparser.y"
23662457 {
23672458 OUTYY(("P(server_chroot:%s)\n", (yyvsp[(2) - (2)].str)));
23682459 free(cfg_parser->cfg->chrootdir);
23702461 }
23712462 break;
23722463
2373 case 141:
2374
2375 /* Line 1464 of yacc.c */
2376 #line 426 "util/configparser.y"
2464 case 149:
2465
2466 /* Line 1806 of yacc.c */
2467 #line 460 "util/configparser.y"
23772468 {
23782469 OUTYY(("P(server_username:%s)\n", (yyvsp[(2) - (2)].str)));
23792470 free(cfg_parser->cfg->username);
23812472 }
23822473 break;
23832474
2384 case 142:
2385
2386 /* Line 1464 of yacc.c */
2387 #line 433 "util/configparser.y"
2475 case 150:
2476
2477 /* Line 1806 of yacc.c */
2478 #line 467 "util/configparser.y"
23882479 {
23892480 OUTYY(("P(server_directory:%s)\n", (yyvsp[(2) - (2)].str)));
23902481 free(cfg_parser->cfg->directory);
23922483 }
23932484 break;
23942485
2395 case 143:
2396
2397 /* Line 1464 of yacc.c */
2398 #line 440 "util/configparser.y"
2486 case 151:
2487
2488 /* Line 1806 of yacc.c */
2489 #line 474 "util/configparser.y"
23992490 {
24002491 OUTYY(("P(server_logfile:%s)\n", (yyvsp[(2) - (2)].str)));
24012492 free(cfg_parser->cfg->logfile);
24042495 }
24052496 break;
24062497
2407 case 144:
2408
2409 /* Line 1464 of yacc.c */
2410 #line 448 "util/configparser.y"
2498 case 152:
2499
2500 /* Line 1806 of yacc.c */
2501 #line 482 "util/configparser.y"
24112502 {
24122503 OUTYY(("P(server_pidfile:%s)\n", (yyvsp[(2) - (2)].str)));
24132504 free(cfg_parser->cfg->pidfile);
24152506 }
24162507 break;
24172508
2418 case 145:
2419
2420 /* Line 1464 of yacc.c */
2421 #line 455 "util/configparser.y"
2509 case 153:
2510
2511 /* Line 1806 of yacc.c */
2512 #line 489 "util/configparser.y"
24222513 {
24232514 OUTYY(("P(server_root_hints:%s)\n", (yyvsp[(2) - (2)].str)));
24242515 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[(2) - (2)].str)))
24262517 }
24272518 break;
24282519
2429 case 146:
2430
2431 /* Line 1464 of yacc.c */
2432 #line 462 "util/configparser.y"
2520 case 154:
2521
2522 /* Line 1806 of yacc.c */
2523 #line 496 "util/configparser.y"
24332524 {
24342525 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
24352526 free(cfg_parser->cfg->dlv_anchor_file);
24372528 }
24382529 break;
24392530
2440 case 147:
2441
2442 /* Line 1464 of yacc.c */
2443 #line 469 "util/configparser.y"
2531 case 155:
2532
2533 /* Line 1806 of yacc.c */
2534 #line 503 "util/configparser.y"
24442535 {
24452536 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
24462537 if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[(2) - (2)].str)))
24482539 }
24492540 break;
24502541
2451 case 148:
2452
2453 /* Line 1464 of yacc.c */
2454 #line 476 "util/configparser.y"
2542 case 156:
2543
2544 /* Line 1806 of yacc.c */
2545 #line 510 "util/configparser.y"
24552546 {
24562547 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
24572548 if(!cfg_strlist_insert(&cfg_parser->cfg->
24602551 }
24612552 break;
24622553
2463 case 149:
2464
2465 /* Line 1464 of yacc.c */
2466 #line 484 "util/configparser.y"
2554 case 157:
2555
2556 /* Line 1806 of yacc.c */
2557 #line 518 "util/configparser.y"
24672558 {
24682559 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[(2) - (2)].str)));
24692560 if(!cfg_strlist_insert(&cfg_parser->cfg->
24722563 }
24732564 break;
24742565
2475 case 150:
2476
2477 /* Line 1464 of yacc.c */
2478 #line 492 "util/configparser.y"
2566 case 158:
2567
2568 /* Line 1806 of yacc.c */
2569 #line 526 "util/configparser.y"
24792570 {
24802571 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[(2) - (2)].str)));
24812572 if(!cfg_strlist_insert(&cfg_parser->cfg->
24842575 }
24852576 break;
24862577
2487 case 151:
2488
2489 /* Line 1464 of yacc.c */
2490 #line 500 "util/configparser.y"
2578 case 159:
2579
2580 /* Line 1806 of yacc.c */
2581 #line 534 "util/configparser.y"
24912582 {
24922583 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[(2) - (2)].str)));
24932584 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[(2) - (2)].str)))
24952586 }
24962587 break;
24972588
2498 case 152:
2499
2500 /* Line 1464 of yacc.c */
2501 #line 507 "util/configparser.y"
2589 case 160:
2590
2591 /* Line 1806 of yacc.c */
2592 #line 541 "util/configparser.y"
25022593 {
25032594 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[(2) - (2)].str)));
25042595 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[(2) - (2)].str)))
25062597 }
25072598 break;
25082599
2509 case 153:
2510
2511 /* Line 1464 of yacc.c */
2512 #line 514 "util/configparser.y"
2600 case 161:
2601
2602 /* Line 1806 of yacc.c */
2603 #line 548 "util/configparser.y"
25132604 {
25142605 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[(2) - (2)].str)));
25152606 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
25192610 }
25202611 break;
25212612
2522 case 154:
2523
2524 /* Line 1464 of yacc.c */
2525 #line 523 "util/configparser.y"
2613 case 162:
2614
2615 /* Line 1806 of yacc.c */
2616 #line 557 "util/configparser.y"
25262617 {
25272618 OUTYY(("P(server_hide_version:%s)\n", (yyvsp[(2) - (2)].str)));
25282619 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
25322623 }
25332624 break;
25342625
2535 case 155:
2536
2537 /* Line 1464 of yacc.c */
2538 #line 532 "util/configparser.y"
2626 case 163:
2627
2628 /* Line 1806 of yacc.c */
2629 #line 566 "util/configparser.y"
25392630 {
25402631 OUTYY(("P(server_identity:%s)\n", (yyvsp[(2) - (2)].str)));
25412632 free(cfg_parser->cfg->identity);
25432634 }
25442635 break;
25452636
2546 case 156:
2547
2548 /* Line 1464 of yacc.c */
2549 #line 539 "util/configparser.y"
2637 case 164:
2638
2639 /* Line 1806 of yacc.c */
2640 #line 573 "util/configparser.y"
25502641 {
25512642 OUTYY(("P(server_version:%s)\n", (yyvsp[(2) - (2)].str)));
25522643 free(cfg_parser->cfg->version);
25542645 }
25552646 break;
25562647
2557 case 157:
2558
2559 /* Line 1464 of yacc.c */
2560 #line 546 "util/configparser.y"
2648 case 165:
2649
2650 /* Line 1806 of yacc.c */
2651 #line 580 "util/configparser.y"
25612652 {
25622653 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[(2) - (2)].str)));
25632654 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_rcvbuf))
25662657 }
25672658 break;
25682659
2569 case 158:
2570
2571 /* Line 1464 of yacc.c */
2572 #line 554 "util/configparser.y"
2660 case 166:
2661
2662 /* Line 1806 of yacc.c */
2663 #line 588 "util/configparser.y"
25732664 {
25742665 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[(2) - (2)].str)));
25752666 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->so_sndbuf))
25782669 }
25792670 break;
25802671
2581 case 159:
2582
2583 /* Line 1464 of yacc.c */
2584 #line 562 "util/configparser.y"
2672 case 167:
2673
2674 /* Line 1806 of yacc.c */
2675 #line 596 "util/configparser.y"
25852676 {
25862677 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
25872678 if(atoi((yyvsp[(2) - (2)].str)) == 0)
25952686 }
25962687 break;
25972688
2598 case 160:
2599
2600 /* Line 1464 of yacc.c */
2601 #line 575 "util/configparser.y"
2689 case 168:
2690
2691 /* Line 1806 of yacc.c */
2692 #line 609 "util/configparser.y"
26022693 {
26032694 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[(2) - (2)].str)));
26042695 if(atoi((yyvsp[(2) - (2)].str)) == 0)
26102701 }
26112702 break;
26122703
2613 case 161:
2614
2615 /* Line 1464 of yacc.c */
2616 #line 586 "util/configparser.y"
2704 case 169:
2705
2706 /* Line 1806 of yacc.c */
2707 #line 620 "util/configparser.y"
26172708 {
26182709 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
26192710 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->msg_cache_size))
26222713 }
26232714 break;
26242715
2625 case 162:
2626
2627 /* Line 1464 of yacc.c */
2628 #line 594 "util/configparser.y"
2716 case 170:
2717
2718 /* Line 1806 of yacc.c */
2719 #line 628 "util/configparser.y"
26292720 {
26302721 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
26312722 if(atoi((yyvsp[(2) - (2)].str)) == 0)
26392730 }
26402731 break;
26412732
2642 case 163:
2643
2644 /* Line 1464 of yacc.c */
2645 #line 607 "util/configparser.y"
2733 case 171:
2734
2735 /* Line 1806 of yacc.c */
2736 #line 641 "util/configparser.y"
26462737 {
26472738 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[(2) - (2)].str)));
26482739 if(atoi((yyvsp[(2) - (2)].str)) == 0)
26522743 }
26532744 break;
26542745
2655 case 164:
2656
2657 /* Line 1464 of yacc.c */
2658 #line 616 "util/configparser.y"
2746 case 172:
2747
2748 /* Line 1806 of yacc.c */
2749 #line 650 "util/configparser.y"
26592750 {
26602751 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[(2) - (2)].str)));
26612752 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
26652756 }
26662757 break;
26672758
2668 case 165:
2669
2670 /* Line 1464 of yacc.c */
2671 #line 625 "util/configparser.y"
2759 case 173:
2760
2761 /* Line 1806 of yacc.c */
2762 #line 659 "util/configparser.y"
26722763 {
26732764 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
26742765 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->rrset_cache_size))
26772768 }
26782769 break;
26792770
2680 case 166:
2681
2682 /* Line 1464 of yacc.c */
2683 #line 633 "util/configparser.y"
2771 case 174:
2772
2773 /* Line 1806 of yacc.c */
2774 #line 667 "util/configparser.y"
26842775 {
26852776 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
26862777 if(atoi((yyvsp[(2) - (2)].str)) == 0)
26942785 }
26952786 break;
26962787
2697 case 167:
2698
2699 /* Line 1464 of yacc.c */
2700 #line 646 "util/configparser.y"
2788 case 175:
2789
2790 /* Line 1806 of yacc.c */
2791 #line 680 "util/configparser.y"
27012792 {
27022793 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
27032794 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
27072798 }
27082799 break;
27092800
2710 case 168:
2711
2712 /* Line 1464 of yacc.c */
2713 #line 655 "util/configparser.y"
2801 case 176:
2802
2803 /* Line 1806 of yacc.c */
2804 #line 689 "util/configparser.y"
27142805 {
27152806 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
2716 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
2717 yyerror("number expected");
2718 else cfg_parser->cfg->lame_ttl = atoi((yyvsp[(2) - (2)].str));
2719 free((yyvsp[(2) - (2)].str));
2720 }
2721 break;
2722
2723 case 169:
2724
2725 /* Line 1464 of yacc.c */
2726 #line 664 "util/configparser.y"
2807 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
2808 "removed, use infra-host-ttl)", (yyvsp[(2) - (2)].str));
2809 free((yyvsp[(2) - (2)].str));
2810 }
2811 break;
2812
2813 case 177:
2814
2815 /* Line 1806 of yacc.c */
2816 #line 697 "util/configparser.y"
27272817 {
27282818 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[(2) - (2)].str)));
27292819 if(atoi((yyvsp[(2) - (2)].str)) == 0)
27332823 }
27342824 break;
27352825
2736 case 170:
2737
2738 /* Line 1464 of yacc.c */
2739 #line 673 "util/configparser.y"
2826 case 178:
2827
2828 /* Line 1806 of yacc.c */
2829 #line 706 "util/configparser.y"
27402830 {
27412831 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[(2) - (2)].str)));
2742 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->
2743 infra_cache_lame_size))
2744 yyerror("number expected");
2745 free((yyvsp[(2) - (2)].str));
2746 }
2747 break;
2748
2749 case 171:
2750
2751 /* Line 1464 of yacc.c */
2752 #line 682 "util/configparser.y"
2832 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
2833 "(option removed, use infra-cache-numhosts)", (yyvsp[(2) - (2)].str));
2834 free((yyvsp[(2) - (2)].str));
2835 }
2836 break;
2837
2838 case 179:
2839
2840 /* Line 1806 of yacc.c */
2841 #line 714 "util/configparser.y"
27532842 {
27542843 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
27552844 if(atoi((yyvsp[(2) - (2)].str)) == 0)
27632852 }
27642853 break;
27652854
2766 case 172:
2767
2768 /* Line 1464 of yacc.c */
2769 #line 695 "util/configparser.y"
2855 case 180:
2856
2857 /* Line 1806 of yacc.c */
2858 #line 727 "util/configparser.y"
27702859 {
27712860 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[(2) - (2)].str)));
27722861 free(cfg_parser->cfg->target_fetch_policy);
27742863 }
27752864 break;
27762865
2777 case 173:
2778
2779 /* Line 1464 of yacc.c */
2780 #line 702 "util/configparser.y"
2866 case 181:
2867
2868 /* Line 1806 of yacc.c */
2869 #line 734 "util/configparser.y"
27812870 {
27822871 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[(2) - (2)].str)));
27832872 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
27882877 }
27892878 break;
27902879
2791 case 174:
2792
2793 /* Line 1464 of yacc.c */
2794 #line 712 "util/configparser.y"
2880 case 182:
2881
2882 /* Line 1806 of yacc.c */
2883 #line 744 "util/configparser.y"
27952884 {
27962885 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[(2) - (2)].str)));
27972886 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28022891 }
28032892 break;
28042893
2805 case 175:
2806
2807 /* Line 1464 of yacc.c */
2808 #line 722 "util/configparser.y"
2894 case 183:
2895
2896 /* Line 1806 of yacc.c */
2897 #line 754 "util/configparser.y"
28092898 {
28102899 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[(2) - (2)].str)));
28112900 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28162905 }
28172906 break;
28182907
2819 case 176:
2820
2821 /* Line 1464 of yacc.c */
2822 #line 732 "util/configparser.y"
2908 case 184:
2909
2910 /* Line 1806 of yacc.c */
2911 #line 764 "util/configparser.y"
28232912 {
28242913 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[(2) - (2)].str)));
28252914 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28302919 }
28312920 break;
28322921
2833 case 177:
2834
2835 /* Line 1464 of yacc.c */
2836 #line 742 "util/configparser.y"
2922 case 185:
2923
2924 /* Line 1806 of yacc.c */
2925 #line 774 "util/configparser.y"
28372926 {
28382927 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[(2) - (2)].str)));
28392928 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28442933 }
28452934 break;
28462935
2847 case 178:
2848
2849 /* Line 1464 of yacc.c */
2850 #line 752 "util/configparser.y"
2936 case 186:
2937
2938 /* Line 1806 of yacc.c */
2939 #line 784 "util/configparser.y"
28512940 {
28522941 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[(2) - (2)].str)));
28532942 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28582947 }
28592948 break;
28602949
2861 case 179:
2862
2863 /* Line 1464 of yacc.c */
2864 #line 762 "util/configparser.y"
2950 case 187:
2951
2952 /* Line 1806 of yacc.c */
2953 #line 794 "util/configparser.y"
28652954 {
28662955 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[(2) - (2)].str)));
28672956 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
28722961 }
28732962 break;
28742963
2875 case 180:
2876
2877 /* Line 1464 of yacc.c */
2878 #line 772 "util/configparser.y"
2964 case 188:
2965
2966 /* Line 1806 of yacc.c */
2967 #line 804 "util/configparser.y"
28792968 {
28802969 OUTYY(("P(server_private_address:%s)\n", (yyvsp[(2) - (2)].str)));
28812970 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[(2) - (2)].str)))
28832972 }
28842973 break;
28852974
2886 case 181:
2887
2888 /* Line 1464 of yacc.c */
2889 #line 779 "util/configparser.y"
2975 case 189:
2976
2977 /* Line 1806 of yacc.c */
2978 #line 811 "util/configparser.y"
28902979 {
28912980 OUTYY(("P(server_private_domain:%s)\n", (yyvsp[(2) - (2)].str)));
28922981 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[(2) - (2)].str)))
28942983 }
28952984 break;
28962985
2897 case 182:
2898
2899 /* Line 1464 of yacc.c */
2900 #line 786 "util/configparser.y"
2986 case 190:
2987
2988 /* Line 1806 of yacc.c */
2989 #line 818 "util/configparser.y"
29012990 {
29022991 OUTYY(("P(server_prefetch:%s)\n", (yyvsp[(2) - (2)].str)));
29032992 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
29072996 }
29082997 break;
29092998
2910 case 183:
2911
2912 /* Line 1464 of yacc.c */
2913 #line 795 "util/configparser.y"
2999 case 191:
3000
3001 /* Line 1806 of yacc.c */
3002 #line 827 "util/configparser.y"
29143003 {
29153004 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[(2) - (2)].str)));
29163005 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
29203009 }
29213010 break;
29223011
2923 case 184:
2924
2925 /* Line 1464 of yacc.c */
2926 #line 804 "util/configparser.y"
3012 case 192:
3013
3014 /* Line 1806 of yacc.c */
3015 #line 836 "util/configparser.y"
29273016 {
29283017 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[(2) - (2)].str)));
29293018 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
29333022 }
29343023 break;
29353024
2936 case 185:
2937
2938 /* Line 1464 of yacc.c */
2939 #line 813 "util/configparser.y"
3025 case 193:
3026
3027 /* Line 1806 of yacc.c */
3028 #line 845 "util/configparser.y"
29403029 {
29413030 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[(2) - (2)].str)));
29423031 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[(2) - (2)].str)))
29443033 }
29453034 break;
29463035
2947 case 186:
2948
2949 /* Line 1464 of yacc.c */
2950 #line 820 "util/configparser.y"
3036 case 194:
3037
3038 /* Line 1806 of yacc.c */
3039 #line 852 "util/configparser.y"
29513040 {
29523041 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[(2) - (2)].str)));
29533042 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
29583047 }
29593048 break;
29603049
2961 case 187:
2962
2963 /* Line 1464 of yacc.c */
2964 #line 830 "util/configparser.y"
3050 case 195:
3051
3052 /* Line 1806 of yacc.c */
3053 #line 862 "util/configparser.y"
29653054 {
29663055 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
29673056 if(strcmp((yyvsp[(3) - (3)].str), "deny")!=0 && strcmp((yyvsp[(3) - (3)].str), "refuse")!=0 &&
29763065 }
29773066 break;
29783067
2979 case 188:
2980
2981 /* Line 1464 of yacc.c */
2982 #line 844 "util/configparser.y"
3068 case 196:
3069
3070 /* Line 1806 of yacc.c */
3071 #line 876 "util/configparser.y"
29833072 {
29843073 OUTYY(("P(server_module_conf:%s)\n", (yyvsp[(2) - (2)].str)));
29853074 free(cfg_parser->cfg->module_conf);
29873076 }
29883077 break;
29893078
2990 case 189:
2991
2992 /* Line 1464 of yacc.c */
2993 #line 851 "util/configparser.y"
3079 case 197:
3080
3081 /* Line 1806 of yacc.c */
3082 #line 883 "util/configparser.y"
29943083 {
29953084 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[(2) - (2)].str)));
29963085 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
30093098 }
30103099 break;
30113100
3012 case 190:
3013
3014 /* Line 1464 of yacc.c */
3015 #line 869 "util/configparser.y"
3101 case 198:
3102
3103 /* Line 1806 of yacc.c */
3104 #line 901 "util/configparser.y"
30163105 {
30173106 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[(2) - (2)].str)));
30183107 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
30263115 }
30273116 break;
30283117
3029 case 191:
3030
3031 /* Line 1464 of yacc.c */
3032 #line 882 "util/configparser.y"
3118 case 199:
3119
3120 /* Line 1806 of yacc.c */
3121 #line 914 "util/configparser.y"
30333122 {
30343123 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[(2) - (2)].str)));
30353124 if(strlen((yyvsp[(2) - (2)].str)) == 0 || strcmp((yyvsp[(2) - (2)].str), "0") == 0) {
30433132 }
30443133 break;
30453134
3046 case 192:
3047
3048 /* Line 1464 of yacc.c */
3049 #line 895 "util/configparser.y"
3135 case 200:
3136
3137 /* Line 1806 of yacc.c */
3138 #line 927 "util/configparser.y"
30503139 {
30513140 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
30523141 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
30563145 }
30573146 break;
30583147
3059 case 193:
3060
3061 /* Line 1464 of yacc.c */
3062 #line 904 "util/configparser.y"
3148 case 201:
3149
3150 /* Line 1806 of yacc.c */
3151 #line 936 "util/configparser.y"
30633152 {
30643153 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
30653154 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
30693158 }
30703159 break;
30713160
3072 case 194:
3073
3074 /* Line 1464 of yacc.c */
3075 #line 913 "util/configparser.y"
3161 case 202:
3162
3163 /* Line 1806 of yacc.c */
3164 #line 945 "util/configparser.y"
30763165 {
30773166 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[(2) - (2)].str)));
30783167 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
30823171 }
30833172 break;
30843173
3085 case 195:
3086
3087 /* Line 1464 of yacc.c */
3088 #line 922 "util/configparser.y"
3174 case 203:
3175
3176 /* Line 1806 of yacc.c */
3177 #line 954 "util/configparser.y"
30893178 {
30903179 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[(2) - (2)].str)));
30913180 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
30963185 }
30973186 break;
30983187
3099 case 196:
3100
3101 /* Line 1464 of yacc.c */
3102 #line 932 "util/configparser.y"
3188 case 204:
3189
3190 /* Line 1806 of yacc.c */
3191 #line 964 "util/configparser.y"
31033192 {
31043193 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[(2) - (2)].str)));
31053194 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
31103199 }
31113200 break;
31123201
3113 case 197:
3114
3115 /* Line 1464 of yacc.c */
3116 #line 942 "util/configparser.y"
3202 case 205:
3203
3204 /* Line 1806 of yacc.c */
3205 #line 974 "util/configparser.y"
31173206 {
31183207 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[(2) - (2)].str)));
31193208 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
31233212 }
31243213 break;
31253214
3126 case 198:
3127
3128 /* Line 1464 of yacc.c */
3129 #line 951 "util/configparser.y"
3215 case 206:
3216
3217 /* Line 1806 of yacc.c */
3218 #line 983 "util/configparser.y"
31303219 {
31313220 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[(2) - (2)].str)));
31323221 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
31363225 }
31373226 break;
31383227
3139 case 199:
3140
3141 /* Line 1464 of yacc.c */
3142 #line 960 "util/configparser.y"
3228 case 207:
3229
3230 /* Line 1806 of yacc.c */
3231 #line 992 "util/configparser.y"
31433232 {
31443233 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[(2) - (2)].str)));
31453234 free(cfg_parser->cfg->val_nsec3_key_iterations);
31473236 }
31483237 break;
31493238
3150 case 200:
3151
3152 /* Line 1464 of yacc.c */
3153 #line 967 "util/configparser.y"
3239 case 208:
3240
3241 /* Line 1806 of yacc.c */
3242 #line 999 "util/configparser.y"
31543243 {
31553244 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
31563245 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
31603249 }
31613250 break;
31623251
3163 case 201:
3164
3165 /* Line 1464 of yacc.c */
3166 #line 976 "util/configparser.y"
3252 case 209:
3253
3254 /* Line 1806 of yacc.c */
3255 #line 1008 "util/configparser.y"
31673256 {
31683257 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[(2) - (2)].str)));
31693258 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
31733262 }
31743263 break;
31753264
3176 case 202:
3177
3178 /* Line 1464 of yacc.c */
3179 #line 985 "util/configparser.y"
3265 case 210:
3266
3267 /* Line 1806 of yacc.c */
3268 #line 1017 "util/configparser.y"
31803269 {
31813270 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[(2) - (2)].str)));
31823271 if(atoi((yyvsp[(2) - (2)].str)) == 0 && strcmp((yyvsp[(2) - (2)].str), "0") != 0)
31863275 }
31873276 break;
31883277
3189 case 203:
3190
3191 /* Line 1464 of yacc.c */
3192 #line 994 "util/configparser.y"
3278 case 211:
3279
3280 /* Line 1806 of yacc.c */
3281 #line 1026 "util/configparser.y"
31933282 {
31943283 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
31953284 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->key_cache_size))
31983287 }
31993288 break;
32003289
3201 case 204:
3202
3203 /* Line 1464 of yacc.c */
3204 #line 1002 "util/configparser.y"
3290 case 212:
3291
3292 /* Line 1806 of yacc.c */
3293 #line 1034 "util/configparser.y"
32053294 {
32063295 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[(2) - (2)].str)));
32073296 if(atoi((yyvsp[(2) - (2)].str)) == 0)
32153304 }
32163305 break;
32173306
3218 case 205:
3219
3220 /* Line 1464 of yacc.c */
3221 #line 1015 "util/configparser.y"
3307 case 213:
3308
3309 /* Line 1806 of yacc.c */
3310 #line 1047 "util/configparser.y"
32223311 {
32233312 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[(2) - (2)].str)));
32243313 if(!cfg_parse_memsize((yyvsp[(2) - (2)].str), &cfg_parser->cfg->neg_cache_size))
32273316 }
32283317 break;
32293318
3230 case 206:
3231
3232 /* Line 1464 of yacc.c */
3233 #line 1023 "util/configparser.y"
3319 case 214:
3320
3321 /* Line 1806 of yacc.c */
3322 #line 1055 "util/configparser.y"
32343323 {
32353324 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str)));
32363325 if(strcmp((yyvsp[(3) - (3)].str), "static")!=0 && strcmp((yyvsp[(3) - (3)].str), "deny")!=0 &&
32533342 }
32543343 break;
32553344
3256 case 207:
3257
3258 /* Line 1464 of yacc.c */
3259 #line 1045 "util/configparser.y"
3345 case 215:
3346
3347 /* Line 1806 of yacc.c */
3348 #line 1077 "util/configparser.y"
32603349 {
32613350 OUTYY(("P(server_local_data:%s)\n", (yyvsp[(2) - (2)].str)));
32623351 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[(2) - (2)].str)))
32643353 }
32653354 break;
32663355
3267 case 208:
3268
3269 /* Line 1464 of yacc.c */
3270 #line 1052 "util/configparser.y"
3356 case 216:
3357
3358 /* Line 1806 of yacc.c */
3359 #line 1084 "util/configparser.y"
32713360 {
32723361 char* ptr;
32733362 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[(2) - (2)].str)));
32833372 }
32843373 break;
32853374
3286 case 209:
3287
3288 /* Line 1464 of yacc.c */
3289 #line 1067 "util/configparser.y"
3375 case 217:
3376
3377 /* Line 1806 of yacc.c */
3378 #line 1099 "util/configparser.y"
32903379 {
32913380 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
32923381 if(cfg_parser->cfg->stubs->name)
32973386 }
32983387 break;
32993388
3300 case 210:
3301
3302 /* Line 1464 of yacc.c */
3303 #line 1077 "util/configparser.y"
3389 case 218:
3390
3391 /* Line 1806 of yacc.c */
3392 #line 1109 "util/configparser.y"
33043393 {
33053394 OUTYY(("P(stub-host:%s)\n", (yyvsp[(2) - (2)].str)));
33063395 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[(2) - (2)].str)))
33083397 }
33093398 break;
33103399
3311 case 211:
3312
3313 /* Line 1464 of yacc.c */
3314 #line 1084 "util/configparser.y"
3400 case 219:
3401
3402 /* Line 1806 of yacc.c */
3403 #line 1116 "util/configparser.y"
33153404 {
33163405 OUTYY(("P(stub-addr:%s)\n", (yyvsp[(2) - (2)].str)));
33173406 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[(2) - (2)].str)))
33193408 }
33203409 break;
33213410
3322 case 212:
3323
3324 /* Line 1464 of yacc.c */
3325 #line 1091 "util/configparser.y"
3411 case 220:
3412
3413 /* Line 1806 of yacc.c */
3414 #line 1123 "util/configparser.y"
33263415 {
33273416 OUTYY(("P(stub-prime:%s)\n", (yyvsp[(2) - (2)].str)));
33283417 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
33333422 }
33343423 break;
33353424
3336 case 213:
3337
3338 /* Line 1464 of yacc.c */
3339 #line 1101 "util/configparser.y"
3425 case 221:
3426
3427 /* Line 1806 of yacc.c */
3428 #line 1133 "util/configparser.y"
33403429 {
33413430 OUTYY(("P(name:%s)\n", (yyvsp[(2) - (2)].str)));
33423431 if(cfg_parser->cfg->forwards->name)
33473436 }
33483437 break;
33493438
3350 case 214:
3351
3352 /* Line 1464 of yacc.c */
3353 #line 1111 "util/configparser.y"
3439 case 222:
3440
3441 /* Line 1806 of yacc.c */
3442 #line 1143 "util/configparser.y"
33543443 {
33553444 OUTYY(("P(forward-host:%s)\n", (yyvsp[(2) - (2)].str)));
33563445 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[(2) - (2)].str)))
33583447 }
33593448 break;
33603449
3361 case 215:
3362
3363 /* Line 1464 of yacc.c */
3364 #line 1118 "util/configparser.y"
3450 case 223:
3451
3452 /* Line 1806 of yacc.c */
3453 #line 1150 "util/configparser.y"
33653454 {
33663455 OUTYY(("P(forward-addr:%s)\n", (yyvsp[(2) - (2)].str)));
33673456 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[(2) - (2)].str)))
33693458 }
33703459 break;
33713460
3372 case 216:
3373
3374 /* Line 1464 of yacc.c */
3375 #line 1125 "util/configparser.y"
3461 case 224:
3462
3463 /* Line 1806 of yacc.c */
3464 #line 1157 "util/configparser.y"
33763465 {
33773466 OUTYY(("\nP(remote-control:)\n"));
33783467 }
33793468 break;
33803469
3381 case 226:
3382
3383 /* Line 1464 of yacc.c */
3384 #line 1136 "util/configparser.y"
3470 case 234:
3471
3472 /* Line 1806 of yacc.c */
3473 #line 1168 "util/configparser.y"
33853474 {
33863475 OUTYY(("P(control_enable:%s)\n", (yyvsp[(2) - (2)].str)));
33873476 if(strcmp((yyvsp[(2) - (2)].str), "yes") != 0 && strcmp((yyvsp[(2) - (2)].str), "no") != 0)
33923481 }
33933482 break;
33943483
3395 case 227:
3396
3397 /* Line 1464 of yacc.c */
3398 #line 1146 "util/configparser.y"
3484 case 235:
3485
3486 /* Line 1806 of yacc.c */
3487 #line 1178 "util/configparser.y"
33993488 {
34003489 OUTYY(("P(control_port:%s)\n", (yyvsp[(2) - (2)].str)));
34013490 if(atoi((yyvsp[(2) - (2)].str)) == 0)
34053494 }
34063495 break;
34073496
3408 case 228:
3409
3410 /* Line 1464 of yacc.c */
3411 #line 1155 "util/configparser.y"
3497 case 236:
3498
3499 /* Line 1806 of yacc.c */
3500 #line 1187 "util/configparser.y"
34123501 {
34133502 OUTYY(("P(control_interface:%s)\n", (yyvsp[(2) - (2)].str)));
34143503 if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[(2) - (2)].str)))
34163505 }
34173506 break;
34183507
3419 case 229:
3420
3421 /* Line 1464 of yacc.c */
3422 #line 1162 "util/configparser.y"
3508 case 237:
3509
3510 /* Line 1806 of yacc.c */
3511 #line 1194 "util/configparser.y"
34233512 {
34243513 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
34253514 free(cfg_parser->cfg->server_key_file);
34273516 }
34283517 break;
34293518
3430 case 230:
3431
3432 /* Line 1464 of yacc.c */
3433 #line 1169 "util/configparser.y"
3519 case 238:
3520
3521 /* Line 1806 of yacc.c */
3522 #line 1201 "util/configparser.y"
34343523 {
34353524 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
34363525 free(cfg_parser->cfg->server_cert_file);
34383527 }
34393528 break;
34403529
3441 case 231:
3442
3443 /* Line 1464 of yacc.c */
3444 #line 1176 "util/configparser.y"
3530 case 239:
3531
3532 /* Line 1806 of yacc.c */
3533 #line 1208 "util/configparser.y"
34453534 {
34463535 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[(2) - (2)].str)));
34473536 free(cfg_parser->cfg->control_key_file);
34493538 }
34503539 break;
34513540
3452 case 232:
3453
3454 /* Line 1464 of yacc.c */
3455 #line 1183 "util/configparser.y"
3541 case 240:
3542
3543 /* Line 1806 of yacc.c */
3544 #line 1215 "util/configparser.y"
34563545 {
34573546 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[(2) - (2)].str)));
34583547 free(cfg_parser->cfg->control_cert_file);
34603549 }
34613550 break;
34623551
3463 case 233:
3464
3465 /* Line 1464 of yacc.c */
3466 #line 1190 "util/configparser.y"
3552 case 241:
3553
3554 /* Line 1806 of yacc.c */
3555 #line 1222 "util/configparser.y"
34673556 {
34683557 OUTYY(("\nP(python:)\n"));
34693558 }
34703559 break;
34713560
3472 case 237:
3473
3474 /* Line 1464 of yacc.c */
3475 #line 1199 "util/configparser.y"
3561 case 245:
3562
3563 /* Line 1806 of yacc.c */
3564 #line 1231 "util/configparser.y"
34763565 {
34773566 OUTYY(("P(python-script:%s)\n", (yyvsp[(2) - (2)].str)));
34783567 free(cfg_parser->cfg->python_script);
34823571
34833572
34843573
3485 /* Line 1464 of yacc.c */
3486 #line 3488 "util/configparser.c"
3574 /* Line 1806 of yacc.c */
3575 #line 3577 "util/configparser.c"
34873576 default: break;
34883577 }
3578 /* User semantic actions sometimes alter yychar, and that requires
3579 that yytoken be updated with the new translation. We take the
3580 approach of translating immediately before every use of yytoken.
3581 One alternative is translating here after every semantic action,
3582 but that translation would be missed if the semantic action invokes
3583 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3584 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3585 incorrect destructor might then be invoked immediately. In the
3586 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3587 to an incorrect destructor call or verbose syntax error message
3588 before the lookahead is translated. */
34893589 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
34903590
34913591 YYPOPSTACK (yylen);
35133613 | yyerrlab -- here on detecting error |
35143614 `------------------------------------*/
35153615 yyerrlab:
3616 /* Make sure we have latest lookahead translation. See comments at
3617 user semantic actions for why this is necessary. */
3618 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3619
35163620 /* If not already recovering from an error, report this error. */
35173621 if (!yyerrstatus)
35183622 {
35203624 #if ! YYERROR_VERBOSE
35213625 yyerror (YY_("syntax error"));
35223626 #else
3627 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3628 yyssp, yytoken)
35233629 {
3524 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3525 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3526 {
3527 YYSIZE_T yyalloc = 2 * yysize;
3528 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3529 yyalloc = YYSTACK_ALLOC_MAXIMUM;
3530 if (yymsg != yymsgbuf)
3531 YYSTACK_FREE (yymsg);
3532 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
3533 if (yymsg)
3534 yymsg_alloc = yyalloc;
3535 else
3536 {
3537 yymsg = yymsgbuf;
3538 yymsg_alloc = sizeof yymsgbuf;
3539 }
3540 }
3541
3542 if (0 < yysize && yysize <= yymsg_alloc)
3543 {
3544 (void) yysyntax_error (yymsg, yystate, yychar);
3545 yyerror (yymsg);
3546 }
3547 else
3548 {
3549 yyerror (YY_("syntax error"));
3550 if (yysize != 0)
3551 goto yyexhaustedlab;
3552 }
3630 char const *yymsgp = YY_("syntax error");
3631 int yysyntax_error_status;
3632 yysyntax_error_status = YYSYNTAX_ERROR;
3633 if (yysyntax_error_status == 0)
3634 yymsgp = yymsg;
3635 else if (yysyntax_error_status == 1)
3636 {
3637 if (yymsg != yymsgbuf)
3638 YYSTACK_FREE (yymsg);
3639 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3640 if (!yymsg)
3641 {
3642 yymsg = yymsgbuf;
3643 yymsg_alloc = sizeof yymsgbuf;
3644 yysyntax_error_status = 2;
3645 }
3646 else
3647 {
3648 yysyntax_error_status = YYSYNTAX_ERROR;
3649 yymsgp = yymsg;
3650 }
3651 }
3652 yyerror (yymsgp);
3653 if (yysyntax_error_status == 2)
3654 goto yyexhaustedlab;
35533655 }
3656 # undef YYSYNTAX_ERROR
35543657 #endif
35553658 }
35563659
36093712 for (;;)
36103713 {
36113714 yyn = yypact[yystate];
3612 if (yyn != YYPACT_NINF)
3715 if (!yypact_value_is_default (yyn))
36133716 {
36143717 yyn += YYTERROR;
36153718 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
36683771
36693772 yyreturn:
36703773 if (yychar != YYEMPTY)
3671 yydestruct ("Cleanup: discarding lookahead",
3672 yytoken, &yylval);
3774 {
3775 /* Make sure we have latest lookahead translation. See comments at
3776 user semantic actions for why this is necessary. */
3777 yytoken = YYTRANSLATE (yychar);
3778 yydestruct ("Cleanup: discarding lookahead",
3779 yytoken, &yylval);
3780 }
36733781 /* Do not reclaim the symbols of the rule which action triggered
36743782 this YYABORT or YYACCEPT. */
36753783 YYPOPSTACK (yylen);
36943802
36953803
36963804
3697 /* Line 1684 of yacc.c */
3698 #line 1204 "util/configparser.y"
3805 /* Line 2067 of yacc.c */
3806 #line 1236 "util/configparser.y"
36993807
37003808
37013809 /* parse helper routines could be here */
0 /* A Bison parser, made by GNU Bison 2.4.3. */
1
2 /* Skeleton interface for Bison's Yacc-like parsers in C
3
4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
5 2009, 2010 Free Software Foundation, Inc.
0 /* A Bison parser, made by GNU Bison 2.5. */
1
2 /* Bison interface for Yacc-like parsers in C
3
4 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
65
76 This program is free software: you can redistribute it and/or modify
87 it under the terms of the GNU General Public License as published by
155154 VAR_HARDEN_BELOW_NXDOMAIN = 373,
156155 VAR_IGNORE_CD_FLAG = 374,
157156 VAR_LOG_QUERIES = 375,
158 VAR_TCP_UPSTREAM = 376
157 VAR_TCP_UPSTREAM = 376,
158 VAR_SSL_UPSTREAM = 377,
159 VAR_SSL_SERVICE_KEY = 378,
160 VAR_SSL_SERVICE_PEM = 379,
161 VAR_SSL_PORT = 380
159162 };
160163 #endif
161164 /* Tokens. */
278281 #define VAR_IGNORE_CD_FLAG 374
279282 #define VAR_LOG_QUERIES 375
280283 #define VAR_TCP_UPSTREAM 376
284 #define VAR_SSL_UPSTREAM 377
285 #define VAR_SSL_SERVICE_KEY 378
286 #define VAR_SSL_SERVICE_PEM 379
287 #define VAR_SSL_PORT 380
281288
282289
283290
286293 typedef union YYSTYPE
287294 {
288295
289 /* Line 1685 of yacc.c */
296 /* Line 2068 of yacc.c */
290297 #line 64 "util/configparser.y"
291298
292299 char* str;
293300
294301
295302
296 /* Line 1685 of yacc.c */
297 #line 299 "util/configparser.h"
303 /* Line 2068 of yacc.c */
304 #line 306 "util/configparser.h"
298305 } YYSTYPE;
299306 # define YYSTYPE_IS_TRIVIAL 1
300307 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
101101 %token VAR_AUTO_TRUST_ANCHOR_FILE VAR_KEEP_MISSING VAR_ADD_HOLDDOWN
102102 %token VAR_DEL_HOLDDOWN VAR_SO_RCVBUF VAR_EDNS_BUFFER_SIZE VAR_PREFETCH
103103 %token VAR_PREFETCH_KEY VAR_SO_SNDBUF VAR_HARDEN_BELOW_NXDOMAIN
104 %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM
104 %token VAR_IGNORE_CD_FLAG VAR_LOG_QUERIES VAR_TCP_UPSTREAM VAR_SSL_UPSTREAM
105 %token VAR_SSL_SERVICE_KEY VAR_SSL_SERVICE_PEM VAR_SSL_PORT
105106
106107 %%
107108 toplevelvars: /* empty */ | toplevelvars toplevelvar ;
156157 server_del_holddown | server_keep_missing | server_so_rcvbuf |
157158 server_edns_buffer_size | server_prefetch | server_prefetch_key |
158159 server_so_sndbuf | server_harden_below_nxdomain | server_ignore_cd_flag |
159 server_log_queries | server_tcp_upstream
160 server_log_queries | server_tcp_upstream | server_ssl_upstream |
161 server_ssl_service_key | server_ssl_service_pem | server_ssl_port
160162 ;
161163 stubstart: VAR_STUB_ZONE
162164 {
373375 free($2);
374376 }
375377 ;
378 server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG
379 {
380 OUTYY(("P(server_ssl_upstream:%s)\n", $2));
381 if(strcmp($2, "yes") != 0 && strcmp($2, "no") != 0)
382 yyerror("expected yes or no.");
383 else cfg_parser->cfg->ssl_upstream = (strcmp($2, "yes")==0);
384 free($2);
385 }
386 ;
387 server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG
388 {
389 OUTYY(("P(server_ssl_service_key:%s)\n", $2));
390 free(cfg_parser->cfg->ssl_service_key);
391 cfg_parser->cfg->ssl_service_key = $2;
392 }
393 ;
394 server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG
395 {
396 OUTYY(("P(server_ssl_service_pem:%s)\n", $2));
397 free(cfg_parser->cfg->ssl_service_pem);
398 cfg_parser->cfg->ssl_service_pem = $2;
399 }
400 ;
401 server_ssl_port: VAR_SSL_PORT STRING_ARG
402 {
403 OUTYY(("P(server_ssl_port:%s)\n", $2));
404 if(atoi($2) == 0)
405 yyerror("port number expected");
406 else cfg_parser->cfg->ssl_port = atoi($2);
407 free($2);
408 }
409 ;
376410 server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG
377411 {
378412 OUTYY(("P(server_do_daemonize:%s)\n", $2));
653687 server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG
654688 {
655689 OUTYY(("P(server_infra_lame_ttl:%s)\n", $2));
656 if(atoi($2) == 0 && strcmp($2, "0") != 0)
657 yyerror("number expected");
658 else cfg_parser->cfg->lame_ttl = atoi($2);
690 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
691 "removed, use infra-host-ttl)", $2);
659692 free($2);
660693 }
661694 ;
671704 server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG
672705 {
673706 OUTYY(("P(server_infra_cache_lame_size:%s)\n", $2));
674 if(!cfg_parse_memsize($2, &cfg_parser->cfg->
675 infra_cache_lame_size))
676 yyerror("number expected");
707 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
708 "(option removed, use infra-cache-numhosts)", $2);
677709 free($2);
678710 }
679711 ;
3939 */
4040
4141 #include "config.h"
42 #include "ldns/wire2host.h"
42 #include <ldns/wire2host.h>
4343 #include "util/data/msgencode.h"
4444 #include "util/data/msgreply.h"
4545 #include "util/data/msgparse.h"
3636 * Routines for message parsing a packet buffer to a descriptive structure.
3737 */
3838 #include "config.h"
39 #include "ldns/ldns.h"
39 #include <ldns/ldns.h>
4040 #include "util/data/msgparse.h"
4141 #include "util/net_help.h"
4242 #include "util/data/dname.h"
503503 if(!*rrset_prev) /* untwiddle if not found */
504504 *rrset_flags ^= PACKED_RRSET_NSEC_AT_APEX;
505505 }
506 if(!*rrset_prev && covtype == LDNS_RR_TYPE_SOA) {
507 /* if SOA try with SOA neg flag twiddled */
508 *rrset_flags ^= PACKED_RRSET_SOA_NEG;
509 *hash = pkt_hash_rrset_rest(dname_h, covtype, dclass,
510 *rrset_flags);
511 *rrset_prev = msgparse_hashtable_lookup(msg, pkt,
512 *hash, *rrset_flags, dname, dnamelen, covtype,
513 dclass);
514 if(!*rrset_prev) /* untwiddle if not found */
515 *rrset_flags ^= PACKED_RRSET_SOA_NEG;
516 }
506517 if(*rrset_prev) {
507518 *prev_dname_first = (*rrset_prev)->dname;
508519 *prev_dname_last = dname;
6262 #ifndef UTIL_DATA_MSGPARSE_H
6363 #define UTIL_DATA_MSGPARSE_H
6464 #include "util/storage/lruhash.h"
65 #include "ldns/packet.h"
65 #include <ldns/packet.h>
6666 struct rrset_parse;
6767 struct rr_parse;
6868 struct regional;
3939 */
4040
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "util/data/msgreply.h"
4444 #include "util/storage/lookup3.h"
4545 #include "util/log.h"
3939 */
4040
4141 #include "config.h"
42 #include "ldns/wire2host.h"
42 #include <ldns/wire2host.h>
4343 #include "util/data/packed_rrset.h"
4444 #include "util/data/dname.h"
4545 #include "util/storage/lookup3.h"
4141 #ifndef UTIL_DATA_PACKED_RRSET_H
4242 #define UTIL_DATA_PACKED_RRSET_H
4343 #include "util/storage/lruhash.h"
44 #include "ldns/rr.h"
44 #include <ldns/rr.h>
4545 struct alloc_cache;
4646 struct regional;
4747
193193 {
194194 if(fptr == &msgreply_sizefunc) return 1;
195195 else if(fptr == &ub_rrset_sizefunc) return 1;
196 else if(fptr == &infra_host_sizefunc) return 1;
196 else if(fptr == &infra_sizefunc) return 1;
197197 else if(fptr == &key_entry_sizefunc) return 1;
198 else if(fptr == &infra_lame_sizefunc) return 1;
199198 else if(fptr == &test_slabhash_sizefunc) return 1;
200199 return 0;
201200 }
205204 {
206205 if(fptr == &query_info_compare) return 1;
207206 else if(fptr == &ub_rrset_compare) return 1;
208 else if(fptr == &infra_host_compfunc) return 1;
207 else if(fptr == &infra_compfunc) return 1;
209208 else if(fptr == &key_entry_compfunc) return 1;
210 else if(fptr == &infra_lame_compfunc) return 1;
211209 else if(fptr == &test_slabhash_compfunc) return 1;
212210 return 0;
213211 }
217215 {
218216 if(fptr == &query_entry_delete) return 1;
219217 else if(fptr == &ub_rrset_key_delete) return 1;
220 else if(fptr == &infra_host_delkeyfunc) return 1;
218 else if(fptr == &infra_delkeyfunc) return 1;
221219 else if(fptr == &key_entry_delkeyfunc) return 1;
222 else if(fptr == &infra_lame_delkeyfunc) return 1;
223220 else if(fptr == &test_slabhash_delkey) return 1;
224221 return 0;
225222 }
229226 {
230227 if(fptr == &reply_info_delete) return 1;
231228 else if(fptr == &rrset_data_delete) return 1;
232 else if(fptr == &infra_host_deldatafunc) return 1;
229 else if(fptr == &infra_deldatafunc) return 1;
233230 else if(fptr == &key_entry_deldatafunc) return 1;
234 else if(fptr == &infra_lame_deldatafunc) return 1;
235231 else if(fptr == &test_slabhash_deldata) return 1;
236232 return 0;
237233 }
250246 uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
251247 uint16_t flags, int dnssec, int want_dnssec,
252248 struct sockaddr_storage* addr, socklen_t addrlen,
249 uint8_t* zone, size_t zonelen,
253250 struct module_qstate* q))
254251 {
255252 if(fptr == &worker_send_query) return 1;
6363 * Macro to perform an assertion check for fptr wlist checks.
6464 * Does not get disabled in optimize mode. Check adds security by layers.
6565 */
66 #if defined(EXPORT_ALL_SYMBOLS)
67 #define fptr_ok(x) /* nothing, dll-exe memory layout on win disables it */
68 #else
6669 #define fptr_ok(x) \
6770 do { if(!(x)) \
6871 fatal_exit("%s:%d: %s: pointer whitelist %s failed", \
6972 __FILE__, __LINE__, __func__, #x); \
7073 } while(0);
74 #endif
7175
7276 /**
7377 * Check function pointer whitelist for comm_point callback values.
192196 uint8_t* qname, size_t qnamelen, uint16_t qtype, uint16_t qclass,
193197 uint16_t flags, int dnssec, int want_dnssec,
194198 struct sockaddr_storage* addr, socklen_t addrlen,
199 uint8_t* zone, size_t zonelen,
195200 struct module_qstate* q));
196201
197202 /**
37623762 4168,
37633763 4169,
37643764 4172,
3765 4173,
37653766 4177,
37663767 4178,
37673768 4179,
43934394 6320,
43944395 6321,
43954396 6322,
4397 6324,
43964398 6343,
43974399 6346,
43984400 6347,
49234925 9899,
49244926 9900,
49254927 9901,
4928 9903,
49264929 9909,
49274930 9911,
49284931 9950,
49594962 10104,
49604963 10107,
49614964 10110,
4965 10111,
49624966 10113,
49634967 10114,
49644968 10115,
50815085 16367,
50825086 16368,
50835087 16384,
5088 16666,
50845089 16900,
50855090 16950,
50865091 16991,
50915096 17007,
50925097 17185,
50935098 17219,
5099 17221,
5100 17222,
50945101 17234,
50955102 17235,
50965103 17500,
4040
4141 #ifndef UTIL_LOG_H
4242 #define UTIL_LOG_H
43 #include "ldns/buffer.h"
43 #include <ldns/buffer.h>
4444
4545 /**
4646 * verbosity value:
9999 * EDNS, the answer is likely to be useless for this domain.
100100 * @param addr: where to.
101101 * @param addrlen: length of addr.
102 * @param zone: delegation point name.
103 * @param zonelen: length of zone name.
102104 * @param q: wich query state to reactivate upon return.
103105 * @return: false on failure (memory or socket related). no query was
104106 * sent. Or returns an outbound entry with qsent and qstate set.
108110 struct outbound_entry* (*send_query)(uint8_t* qname, size_t qnamelen,
109111 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec,
110112 int want_dnssec, struct sockaddr_storage* addr,
111 socklen_t addrlen, struct module_qstate* q);
113 socklen_t addrlen, uint8_t* zone, size_t zonelen,
114 struct module_qstate* q);
112115
113116 /**
114117 * Detach-subqueries.
347350
348351 /**
349352 * inform super querystate about the results from this subquerystate.
350 * Is called when the querystate is finished.
353 * Is called when the querystate is finished. The method invoked is
354 * the one from the current module active in the super querystate.
351355 * @param qstate: the query state that is finished.
352356 * Examine return_rcode and return_reply in the qstate.
353357 * @param id: module id for this module.
3737 */
3838
3939 #include "config.h"
40 #include "ldns/ldns.h"
40 #include <ldns/ldns.h>
4141 #include "util/net_help.h"
4242 #include "util/log.h"
4343 #include "util/data/dname.h"
4444 #include "util/module.h"
4545 #include "util/regional.h"
4646 #include <fcntl.h>
47 #include <openssl/ssl.h>
48 #include <openssl/err.h>
4749
4850 /** max length of an IP address (the address portion) that we allow */
4951 #define MAX_ADDR_STRLEN 128 /* characters */
187189 if(!ip) return 0;
188190 p = (uint16_t) port;
189191 if(str_is_ip6(ip)) {
192 char buf[MAX_ADDR_STRLEN];
193 char* s;
190194 struct sockaddr_in6* sa = (struct sockaddr_in6*)addr;
191195 *addrlen = (socklen_t)sizeof(struct sockaddr_in6);
192196 memset(sa, 0, *addrlen);
193197 sa->sin6_family = AF_INET6;
194198 sa->sin6_port = (in_port_t)htons(p);
199 if((s=strchr(ip, '%'))) { /* ip6%interface, rfc 4007 */
200 if(s-ip >= MAX_ADDR_STRLEN)
201 return 0;
202 strncpy(buf, ip, MAX_ADDR_STRLEN);
203 buf[s-ip]=0;
204 sa->sin6_scope_id = (uint32_t)atoi(s+1);
205 ip = buf;
206 }
195207 if(inet_pton((int)sa->sin6_family, ip, &sa->sin6_addr) <= 0) {
196208 return 0;
197209 }
542554 sock_list_insert(list, &p->addr, p->len, region);
543555 }
544556 }
557
558 void
559 log_crypto_err(const char* str)
560 {
561 /* error:[error code]:[library name]:[function name]:[reason string] */
562 char buf[128];
563 unsigned long e;
564 ERR_error_string_n(ERR_get_error(), buf, sizeof(buf));
565 log_err("%s crypto %s", str, buf);
566 while( (e=ERR_get_error()) ) {
567 ERR_error_string_n(e, buf, sizeof(buf));
568 log_err("and additionally crypto %s", buf);
569 }
570 }
571
572 void* listen_sslctx_create(char* key, char* pem, char* verifypem)
573 {
574 SSL_CTX* ctx = SSL_CTX_new(SSLv23_server_method());
575 if(!ctx) {
576 log_crypto_err("could not SSL_CTX_new");
577 return NULL;
578 }
579 /* no SSLv2 because has defects */
580 if(!(SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2)){
581 log_crypto_err("could not set SSL_OP_NO_SSLv2");
582 SSL_CTX_free(ctx);
583 return NULL;
584 }
585 if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) {
586 log_err("error for cert file: %s", pem);
587 log_crypto_err("error in SSL_CTX use_certificate_file");
588 SSL_CTX_free(ctx);
589 return NULL;
590 }
591 if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) {
592 log_err("error for private key file: %s", key);
593 log_crypto_err("Error in SSL_CTX use_PrivateKey_file");
594 SSL_CTX_free(ctx);
595 return NULL;
596 }
597 if(!SSL_CTX_check_private_key(ctx)) {
598 log_err("error for key file: %s", key);
599 log_crypto_err("Error in SSL_CTX check_private_key");
600 SSL_CTX_free(ctx);
601 return NULL;
602 }
603
604 if(verifypem && verifypem[0]) {
605 if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL)) {
606 log_crypto_err("Error in SSL_CTX verify locations");
607 SSL_CTX_free(ctx);
608 return NULL;
609 }
610 SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(
611 verifypem));
612 SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
613 }
614 return ctx;
615 }
616
617 void* connect_sslctx_create(char* key, char* pem, char* verifypem)
618 {
619 SSL_CTX* ctx = SSL_CTX_new(SSLv23_client_method());
620 if(!ctx) {
621 log_crypto_err("could not allocate SSL_CTX pointer");
622 return NULL;
623 }
624 if(!(SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) & SSL_OP_NO_SSLv2)) {
625 log_crypto_err("could not set SSL_OP_NO_SSLv2");
626 SSL_CTX_free(ctx);
627 return NULL;
628 }
629 if(key && key[0]) {
630 if(!SSL_CTX_use_certificate_file(ctx, pem, SSL_FILETYPE_PEM)) {
631 log_err("error in client certificate %s", pem);
632 log_crypto_err("error in certificate file");
633 SSL_CTX_free(ctx);
634 return NULL;
635 }
636 if(!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) {
637 log_err("error in client private key %s", key);
638 log_crypto_err("error in key file");
639 SSL_CTX_free(ctx);
640 return NULL;
641 }
642 if(!SSL_CTX_check_private_key(ctx)) {
643 log_err("error in client key %s", key);
644 log_crypto_err("error in SSL_CTX_check_private_key");
645 SSL_CTX_free(ctx);
646 return NULL;
647 }
648 }
649 if(verifypem && verifypem[0]) {
650 if(!SSL_CTX_load_verify_locations(ctx, verifypem, NULL) != 1) {
651 log_crypto_err("error in SSL_CTX verify");
652 SSL_CTX_free(ctx);
653 return NULL;
654 }
655 SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
656 }
657 return ctx;
658 }
659
660 void* incoming_ssl_fd(void* sslctx, int fd)
661 {
662 SSL* ssl = SSL_new((SSL_CTX*)sslctx);
663 if(!ssl) {
664 log_crypto_err("could not SSL_new");
665 return NULL;
666 }
667 SSL_set_accept_state(ssl);
668 (void)SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
669 if(!SSL_set_fd(ssl, fd)) {
670 log_crypto_err("could not SSL_set_fd");
671 SSL_free(ssl);
672 return NULL;
673 }
674 return ssl;
675 }
676
677 void* outgoing_ssl_fd(void* sslctx, int fd)
678 {
679 SSL* ssl = SSL_new((SSL_CTX*)sslctx);
680 if(!ssl) {
681 log_crypto_err("could not SSL_new");
682 return NULL;
683 }
684 SSL_set_connect_state(ssl);
685 (void)SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
686 if(!SSL_set_fd(ssl, fd)) {
687 log_crypto_err("could not SSL_set_fd");
688 SSL_free(ssl);
689 return NULL;
690 }
691 return ssl;
692 }
322322 void sock_list_merge(struct sock_list** list, struct regional* region,
323323 struct sock_list* add);
324324
325 /**
326 * Log libcrypto error with descriptive string. Calls log_err().
327 * @param str: what failed.
328 */
329 void log_crypto_err(const char* str);
330
331 /**
332 * create SSL listen context
333 * @param key: private key file.
334 * @param pem: public key cert.
335 * @param verifypem: if nonNULL, verifylocation file.
336 * return SSL_CTX* or NULL on failure (logged).
337 */
338 void* listen_sslctx_create(char* key, char* pem, char* verifypem);
339
340 /**
341 * create SSL connect context
342 * @param key: if nonNULL (also pem nonNULL), the client private key.
343 * @param pem: client public key (or NULL if key is NULL).
344 * @param verifypem: if nonNULL used for verifylocation file.
345 * @return SSL_CTX* or NULL on failure (logged).
346 */
347 void* connect_sslctx_create(char* key, char* pem, char* verifypem);
348
349 /**
350 * accept a new fd and wrap it in a BIO in SSL
351 * @param sslctx: the SSL_CTX to use (from listen_sslctx_create()).
352 * @param fd: from accept, nonblocking.
353 * @return SSL or NULL on alloc failure.
354 */
355 void* incoming_ssl_fd(void* sslctx, int fd);
356
357 /**
358 * connect a new fd and wrap it in a BIO in SSL
359 * @param sslctx: the SSL_CTX to use (from connect_sslctx_create())
360 * @param fd: from connect.
361 * @return SSL or NULL on alloc failure
362 */
363 void* outgoing_ssl_fd(void* sslctx, int fd);
364
325365 #endif /* NET_HELP_H */
3838 * This file contains event notification functions.
3939 */
4040 #include "config.h"
41 #include "ldns/wire2host.h"
41 #include <ldns/wire2host.h>
4242 #include "util/netevent.h"
4343 #include "util/log.h"
4444 #include "util/net_help.h"
4545 #include "util/fptr_wlist.h"
46 #include <openssl/ssl.h>
47 #include <openssl/err.h>
4648
4749 /* -------- Start of local definitions -------- */
4850 /** if CMSG_ALIGN is not defined on this platform, a workaround */
682684 return new_fd;
683685 }
684686
687 #ifdef USE_WINSOCK
688 static long win_bio_cb(BIO *b, int oper, const char* ATTR_UNUSED(argp),
689 int ATTR_UNUSED(argi), long argl, long retvalue)
690 {
691 verbose(VERB_ALGO, "bio_cb %d, %s %s %s", oper,
692 (oper&BIO_CB_RETURN)?"return":"before",
693 (oper&BIO_CB_READ)?"read":((oper&BIO_CB_WRITE)?"write":"other"),
694 WSAGetLastError()==WSAEWOULDBLOCK?"wsawb":"");
695 /* on windows, check if previous operation caused EWOULDBLOCK */
696 if( (oper == (BIO_CB_READ|BIO_CB_RETURN) && argl == 0) ||
697 (oper == (BIO_CB_GETS|BIO_CB_RETURN) && argl == 0)) {
698 if(WSAGetLastError() == WSAEWOULDBLOCK)
699 winsock_tcp_wouldblock((struct event*)
700 BIO_get_callback_arg(b), EV_READ);
701 }
702 if( (oper == (BIO_CB_WRITE|BIO_CB_RETURN) && argl == 0) ||
703 (oper == (BIO_CB_PUTS|BIO_CB_RETURN) && argl == 0)) {
704 if(WSAGetLastError() == WSAEWOULDBLOCK)
705 winsock_tcp_wouldblock((struct event*)
706 BIO_get_callback_arg(b), EV_WRITE);
707 }
708 /* return original return value */
709 return retvalue;
710 }
711
712 /** set win bio callbacks for nonblocking operations */
713 void
714 comm_point_tcp_win_bio_cb(struct comm_point* c, void* thessl)
715 {
716 SSL* ssl = (SSL*)thessl;
717 /* set them both just in case, but usually they are the same BIO */
718 BIO_set_callback(SSL_get_rbio(ssl), &win_bio_cb);
719 BIO_set_callback_arg(SSL_get_rbio(ssl), (char*)&c->ev->ev);
720 BIO_set_callback(SSL_get_wbio(ssl), &win_bio_cb);
721 BIO_set_callback_arg(SSL_get_wbio(ssl), (char*)&c->ev->ev);
722 }
723 #endif
724
685725 void
686726 comm_point_tcp_accept_callback(int fd, short event, void* arg)
687727 {
705745 &c_hdl->repinfo.addrlen);
706746 if(new_fd == -1)
707747 return;
748 if(c->ssl) {
749 c_hdl->ssl = incoming_ssl_fd(c->ssl, new_fd);
750 if(!c_hdl->ssl) {
751 c_hdl->fd = new_fd;
752 comm_point_close(c_hdl);
753 return;
754 }
755 c_hdl->ssl_shake_state = comm_ssl_shake_read;
756 #ifdef USE_WINSOCK
757 comm_point_tcp_win_bio_cb(c_hdl, c_hdl->ssl);
758 #endif
759 }
708760
709761 /* grab the tcp handler buffers */
710762 c->tcp_free = c_hdl->tcp_free;
721773 reclaim_tcp_handler(struct comm_point* c)
722774 {
723775 log_assert(c->type == comm_tcp);
776 if(c->ssl) {
777 SSL_shutdown(c->ssl);
778 SSL_free(c->ssl);
779 c->ssl = NULL;
780 }
724781 comm_point_close(c);
725782 if(c->tcp_parent) {
726783 c->tcp_free = c->tcp_parent->tcp_free;
763820 }
764821 }
765822
823 /** continue ssl handshake */
824 static int
825 ssl_handshake(struct comm_point* c)
826 {
827 int r;
828 if(c->ssl_shake_state == comm_ssl_shake_hs_read) {
829 /* read condition satisfied back to writing */
830 comm_point_listen_for_rw(c, 1, 1);
831 c->ssl_shake_state = comm_ssl_shake_none;
832 return 1;
833 }
834 if(c->ssl_shake_state == comm_ssl_shake_hs_write) {
835 /* write condition satisfied, back to reading */
836 comm_point_listen_for_rw(c, 1, 0);
837 c->ssl_shake_state = comm_ssl_shake_none;
838 return 1;
839 }
840
841 ERR_clear_error();
842 r = SSL_do_handshake(c->ssl);
843 if(r != 1) {
844 int want = SSL_get_error(c->ssl, r);
845 if(want == SSL_ERROR_WANT_READ) {
846 if(c->ssl_shake_state == comm_ssl_shake_read)
847 return 1;
848 c->ssl_shake_state = comm_ssl_shake_read;
849 comm_point_listen_for_rw(c, 1, 0);
850 return 1;
851 } else if(want == SSL_ERROR_WANT_WRITE) {
852 if(c->ssl_shake_state == comm_ssl_shake_write)
853 return 1;
854 c->ssl_shake_state = comm_ssl_shake_write;
855 comm_point_listen_for_rw(c, 0, 1);
856 return 1;
857 } else if(r == 0) {
858 return 0; /* closed */
859 } else if(want == SSL_ERROR_SYSCALL) {
860 /* SYSCALL and errno==0 means closed uncleanly */
861 if(errno != 0)
862 log_err("SSL_handshake syscall: %s",
863 strerror(errno));
864 return 0;
865 } else {
866 log_crypto_err("ssl handshake failed");
867 log_addr(1, "ssl handshake failed", &c->repinfo.addr,
868 c->repinfo.addrlen);
869 return 0;
870 }
871 }
872 /* this is where peer verification could take place */
873 log_addr(VERB_ALGO, "SSL DNS connection", &c->repinfo.addr,
874 c->repinfo.addrlen);
875
876 /* setup listen rw correctly */
877 if(c->tcp_is_reading) {
878 if(c->ssl_shake_state != comm_ssl_shake_read)
879 comm_point_listen_for_rw(c, 1, 0);
880 } else {
881 comm_point_listen_for_rw(c, 1, 1);
882 }
883 c->ssl_shake_state = comm_ssl_shake_none;
884 return 1;
885 }
886
887 /** ssl read callback on TCP */
888 static int
889 ssl_handle_read(struct comm_point* c)
890 {
891 int r;
892 if(c->ssl_shake_state != comm_ssl_shake_none) {
893 if(!ssl_handshake(c))
894 return 0;
895 if(c->ssl_shake_state != comm_ssl_shake_none)
896 return 1;
897 }
898 if(c->tcp_byte_count < sizeof(uint16_t)) {
899 /* read length bytes */
900 ERR_clear_error();
901 if((r=SSL_read(c->ssl, (void*)ldns_buffer_at(c->buffer,
902 c->tcp_byte_count), (int)(sizeof(uint16_t) -
903 c->tcp_byte_count))) <= 0) {
904 int want = SSL_get_error(c->ssl, r);
905 if(want == SSL_ERROR_ZERO_RETURN) {
906 return 0; /* shutdown, closed */
907 } else if(want == SSL_ERROR_WANT_READ) {
908 return 1; /* read more later */
909 } else if(want == SSL_ERROR_WANT_WRITE) {
910 c->ssl_shake_state = comm_ssl_shake_hs_write;
911 comm_point_listen_for_rw(c, 0, 1);
912 return 1;
913 } else if(want == SSL_ERROR_SYSCALL) {
914 if(errno != 0)
915 log_err("SSL_read syscall: %s",
916 strerror(errno));
917 return 0;
918 }
919 log_crypto_err("could not SSL_read");
920 return 0;
921 }
922 c->tcp_byte_count += r;
923 if(c->tcp_byte_count != sizeof(uint16_t))
924 return 1;
925 if(ldns_buffer_read_u16_at(c->buffer, 0) >
926 ldns_buffer_capacity(c->buffer)) {
927 verbose(VERB_QUERY, "ssl: dropped larger than buffer");
928 return 0;
929 }
930 ldns_buffer_set_limit(c->buffer,
931 ldns_buffer_read_u16_at(c->buffer, 0));
932 if(ldns_buffer_limit(c->buffer) < LDNS_HEADER_SIZE) {
933 verbose(VERB_QUERY, "ssl: dropped bogus too short.");
934 return 0;
935 }
936 verbose(VERB_ALGO, "Reading ssl tcp query of length %d",
937 (int)ldns_buffer_limit(c->buffer));
938 }
939 log_assert(ldns_buffer_remaining(c->buffer) > 0);
940 ERR_clear_error();
941 r = SSL_read(c->ssl, (void*)ldns_buffer_current(c->buffer),
942 (int)ldns_buffer_remaining(c->buffer));
943 if(r <= 0) {
944 int want = SSL_get_error(c->ssl, r);
945 if(want == SSL_ERROR_ZERO_RETURN) {
946 return 0; /* shutdown, closed */
947 } else if(want == SSL_ERROR_WANT_READ) {
948 return 1; /* read more later */
949 } else if(want == SSL_ERROR_WANT_WRITE) {
950 c->ssl_shake_state = comm_ssl_shake_hs_write;
951 comm_point_listen_for_rw(c, 0, 1);
952 return 1;
953 } else if(want == SSL_ERROR_SYSCALL) {
954 if(errno != 0)
955 log_err("SSL_read syscall: %s",
956 strerror(errno));
957 return 0;
958 }
959 log_crypto_err("could not SSL_read");
960 return 0;
961 }
962 ldns_buffer_skip(c->buffer, (ssize_t)r);
963 if(ldns_buffer_remaining(c->buffer) <= 0) {
964 tcp_callback_reader(c);
965 }
966 return 1;
967 }
968
969 /** ssl write callback on TCP */
970 static int
971 ssl_handle_write(struct comm_point* c)
972 {
973 int r;
974 if(c->ssl_shake_state != comm_ssl_shake_none) {
975 if(!ssl_handshake(c))
976 return 0;
977 if(c->ssl_shake_state != comm_ssl_shake_none)
978 return 1;
979 }
980 /* ignore return, if fails we may simply block */
981 (void)SSL_set_mode(c->ssl, SSL_MODE_ENABLE_PARTIAL_WRITE);
982 if(c->tcp_byte_count < sizeof(uint16_t)) {
983 uint16_t len = htons(ldns_buffer_limit(c->buffer));
984 ERR_clear_error();
985 r = SSL_write(c->ssl,
986 (void*)(((uint8_t*)&len)+c->tcp_byte_count),
987 (int)(sizeof(uint16_t)-c->tcp_byte_count));
988 if(r <= 0) {
989 int want = SSL_get_error(c->ssl, r);
990 if(want == SSL_ERROR_ZERO_RETURN) {
991 return 0; /* closed */
992 } else if(want == SSL_ERROR_WANT_READ) {
993 c->ssl_shake_state = comm_ssl_shake_read;
994 comm_point_listen_for_rw(c, 1, 0);
995 return 1; /* wait for read condition */
996 } else if(want == SSL_ERROR_WANT_WRITE) {
997 return 1; /* write more later */
998 } else if(want == SSL_ERROR_SYSCALL) {
999 if(errno != 0)
1000 log_err("SSL_write syscall: %s",
1001 strerror(errno));
1002 return 0;
1003 }
1004 log_crypto_err("could not SSL_write");
1005 return 0;
1006 }
1007 c->tcp_byte_count += r;
1008 if(c->tcp_byte_count < sizeof(uint16_t))
1009 return 1;
1010 ldns_buffer_set_position(c->buffer, c->tcp_byte_count -
1011 sizeof(uint16_t));
1012 if(ldns_buffer_remaining(c->buffer) == 0) {
1013 tcp_callback_writer(c);
1014 return 1;
1015 }
1016 }
1017 log_assert(ldns_buffer_remaining(c->buffer) > 0);
1018 ERR_clear_error();
1019 r = SSL_write(c->ssl, (void*)ldns_buffer_current(c->buffer),
1020 (int)ldns_buffer_remaining(c->buffer));
1021 if(r <= 0) {
1022 int want = SSL_get_error(c->ssl, r);
1023 if(want == SSL_ERROR_ZERO_RETURN) {
1024 return 0; /* closed */
1025 } else if(want == SSL_ERROR_WANT_READ) {
1026 c->ssl_shake_state = comm_ssl_shake_read;
1027 comm_point_listen_for_rw(c, 1, 0);
1028 return 1; /* wait for read condition */
1029 } else if(want == SSL_ERROR_WANT_WRITE) {
1030 return 1; /* write more later */
1031 } else if(want == SSL_ERROR_SYSCALL) {
1032 if(errno != 0)
1033 log_err("SSL_write syscall: %s",
1034 strerror(errno));
1035 return 0;
1036 }
1037 log_crypto_err("could not SSL_write");
1038 return 0;
1039 }
1040 ldns_buffer_skip(c->buffer, (ssize_t)r);
1041
1042 if(ldns_buffer_remaining(c->buffer) == 0) {
1043 tcp_callback_writer(c);
1044 }
1045 return 1;
1046 }
1047
1048 /** handle ssl tcp connection with dns contents */
1049 static int
1050 ssl_handle_it(struct comm_point* c)
1051 {
1052 if(c->tcp_is_reading)
1053 return ssl_handle_read(c);
1054 return ssl_handle_write(c);
1055 }
1056
7661057 /** Handle tcp reading callback.
7671058 * @param fd: file descriptor of socket.
7681059 * @param c: comm point to read from into buffer.
7741065 {
7751066 ssize_t r;
7761067 log_assert(c->type == comm_tcp || c->type == comm_local);
1068 if(c->ssl)
1069 return ssl_handle_it(c);
7771070 if(!c->tcp_is_reading)
7781071 return 0;
7791072
8721165 {
8731166 ssize_t r;
8741167 log_assert(c->type == comm_tcp);
875 if(c->tcp_is_reading)
1168 if(c->tcp_is_reading && !c->ssl)
8761169 return 0;
8771170 log_assert(fd != -1);
8781171 if(c->tcp_byte_count == 0 && c->tcp_check_nb_connect) {
9141207 return 0;
9151208 }
9161209 }
1210 if(c->ssl)
1211 return ssl_handle_it(c);
9171212
9181213 if(c->tcp_byte_count < sizeof(uint16_t)) {
9191214 uint16_t len = htons(ldns_buffer_limit(c->buffer));
14751770 {
14761771 if(!c)
14771772 return;
1773 if(c->type == comm_tcp && c->ssl) {
1774 SSL_shutdown(c->ssl);
1775 SSL_free(c->ssl);
1776 }
14781777 comm_point_close(c);
14791778 if(c->tcp_handlers) {
14801779 int i;
5959 #ifndef NET_EVENT_H
6060 #define NET_EVENT_H
6161
62 #include "ldns/buffer.h"
62 #include <ldns/buffer.h>
6363 struct comm_point;
6464 struct comm_reply;
6565 struct event_base;
159159 For tcp_accept the first entry, for tcp_handlers the next one. */
160160 struct comm_point* tcp_free;
161161
162 /* -------- SSL TCP DNS ------- */
163 /** the SSL object with rw bio (owned) or for commaccept ctx ref */
164 void* ssl;
165 /** handshake state for init and renegotiate */
166 enum {
167 /** no handshake, it has been done */
168 comm_ssl_shake_none = 0,
169 /** ssl initial handshake wants to read */
170 comm_ssl_shake_read,
171 /** ssl initial handshake wants to write */
172 comm_ssl_shake_write,
173 /** ssl_write wants to read */
174 comm_ssl_shake_hs_read,
175 /** ssl_read wants to write */
176 comm_ssl_shake_hs_write
177 } ssl_shake_state;
178
162179 /** is this a UDP, TCP-accept or TCP socket. */
163180 enum comm_point_type {
164181 /** UDP socket - handle datagrams. */
618635 */
619636 void comm_point_raw_handle_callback(int fd, short event, void* arg);
620637
638 #ifdef USE_WINSOCK
639 /**
640 * Callback for openssl BIO to on windows detect WSAEWOULDBLOCK and notify
641 * the winsock_event of this for proper TCP nonblocking implementation.
642 * @param c: comm_point, fd must be set its struct event is registered.
643 * @param ssl: openssl SSL, fd must be set so it has a bio.
644 */
645 void comm_point_tcp_win_bio_cb(struct comm_point* c, void* ssl);
646 #endif
647
621648 #endif /* NET_EVENT_H */
214214 }
215215
216216
217 #ifdef SELF_TEST
218
217219 /*
218220 --------------------------------------------------------------------
219221 hashword2() -- same as hashword(), but take two seeds and return two
259261 *pc=c; *pb=b;
260262 }
261263
264 #endif /* SELF_TEST */
262265
263266 /*
264267 -------------------------------------------------------------------------------
458461 return c;
459462 }
460463
464 #ifdef SELF_TEST
461465
462466 /*
463467 * hashlittle2: return 2 32-bit hash values
645649 *pc=c; *pb=b;
646650 }
647651
648
652 #endif /* SELF_TEST */
653
654 #if 0 /* currently not used */
649655
650656 /*
651657 * hashbig():
777783 return c;
778784 }
779785
786 #endif /* 0 == currently not used */
780787
781788 #ifdef SELF_TEST
782789
219219 (double)hist->buckets[i].upper.tv_usec/1000000.;
220220 #endif
221221 res = (lookfor - passed)*(up-low)/((double)hist->buckets[i].count);
222 return res;
222 return low+res;
223223 }
224224
225225 void
4040 * It was modified to fit into unbound. The state table process is the same.
4141 */
4242 #include "config.h"
43 #include "ldns/ldns.h"
43 #include <ldns/ldns.h>
4444 #include "validator/autotrust.h"
4545 #include "validator/val_anchor.h"
4646 #include "validator/val_utils.h"
868868 uint8_t* nm, size_t nmlen, uint16_t dclass)
869869 {
870870 ldns_rdf rdf;
871 #ifdef UNBOUND_DEBUG
871872 ldns_status s;
873 #endif
872874
873875 memset(&rdf, 0, sizeof(rdf));
874876 ldns_rdf_set_data(&rdf, nm);
876878 ldns_rdf_set_type(&rdf, LDNS_RDF_TYPE_DNAME);
877879
878880 ldns_buffer_clear(env->scratch_buffer);
879 s = ldns_rdf2buffer_str_dname(env->scratch_buffer, &rdf);
881 #ifdef UNBOUND_DEBUG
882 s =
883 #endif
884 ldns_rdf2buffer_str_dname(env->scratch_buffer, &rdf);
880885 log_assert(s == LDNS_STATUS_OK);
881886 ldns_buffer_write_u8(env->scratch_buffer, 0);
882887 ldns_buffer_flip(env->scratch_buffer);
3939 */
4040 #include "config.h"
4141 #include <ctype.h>
42 #include "ldns/dname.h"
43 #include "ldns/host2wire.h"
42 #include <ldns/dname.h>
43 #include <ldns/host2wire.h>
4444 #include "validator/val_anchor.h"
4545 #include "validator/val_sigcrypt.h"
4646 #include "validator/autotrust.h"
194194 anchor_new_ta(struct val_anchors* anchors, uint8_t* name, int namelabs,
195195 size_t namelen, uint16_t dclass)
196196 {
197 #ifdef UNBOUND_DEBUG
197198 rbnode_t* r;
199 #endif
198200 struct trust_anchor* ta = (struct trust_anchor*)regional_alloc(
199201 anchors->region, sizeof(struct trust_anchor));
200202 if(!ta)
209211 ta->dclass = dclass;
210212 lock_basic_init(&ta->lock);
211213 lock_basic_lock(&anchors->lock);
212 r = rbtree_insert(anchors->tree, &ta->node);
214 #ifdef UNBOUND_DEBUG
215 r =
216 #endif
217 rbtree_insert(anchors->tree, &ta->node);
213218 lock_basic_unlock(&anchors->lock);
214219 log_assert(r != NULL);
215220 return ta;
3838 * This file contains functions for dealing with validator key entries.
3939 */
4040 #include "config.h"
41 #include "ldns/ldns.h"
41 #include <ldns/ldns.h>
4242 #include "validator/val_kentry.h"
4343 #include "util/data/packed_rrset.h"
4444 #include "util/data/dname.h"
4040 * for denial of existance, and proofs for presence of types.
4141 */
4242 #include "config.h"
43 #include "ldns/packet.h"
43 #include <ldns/packet.h>
4444 #include "validator/val_nsec.h"
4545 #include "validator/val_utils.h"
4646 #include "util/data/msgreply.h"
642642 {
643643 struct nsec3_cached_hash* c;
644644 struct nsec3_cached_hash looki;
645 #ifdef UNBOUND_DEBUG
645646 rbnode_t* n;
647 #endif
646648 int r;
647649 looki.node.key = &looki;
648650 looki.nsec3 = nsec3;
669671 r = nsec3_calc_b32(region, buf, c);
670672 if(r != 1)
671673 return r;
672 n = rbtree_insert(table, &c->node);
674 #ifdef UNBOUND_DEBUG
675 n =
676 #endif
677 rbtree_insert(table, &c->node);
673678 log_assert(n); /* cannot be duplicate, just did lookup */
674679 *hash = c;
675680 return 1;
11901195 return sec_status_bogus;
11911196 }
11921197 /* everything is peachy keen, except for optout spans */
1193 log_assert(ce.nc_rrset);
1194 if(nsec3_has_optout(ce.nc_rrset, ce.nc_rr)) {
1198 if(ce.nc_rrset && nsec3_has_optout(ce.nc_rrset, ce.nc_rr)) {
11951199 verbose(VERB_ALGO, "nsec3 nodata proof: matching "
11961200 "wildcard is in optout range, insecure");
11971201 return sec_status_insecure;
12031207 /* Due to forwarders, cnames, and other collating effects, we
12041208 * can see the ordinary unsigned data from a zone beneath an
12051209 * insecure delegation under an optout here */
1210 if(!ce.nc_rrset) {
1211 verbose(VERB_ALGO, "nsec3 nodata proof: no next closer nsec3");
1212 return sec_status_bogus;
1213 }
12061214
12071215 /* We need to make sure that the covering NSEC3 is opt-out. */
12081216 log_assert(ce.nc_rrset);
13771385 return sec_status_bogus;
13781386 }
13791387
1388 /* robust extra check */
1389 if(!ce.nc_rrset) {
1390 verbose(VERB_ALGO, "nsec3 nods proof: no next closer nsec3");
1391 *reason = "no NSEC3 next closer";
1392 return sec_status_bogus;
1393 }
1394
13801395 /* we had the closest encloser proof, then we need to check that the
13811396 * covering NSEC3 was opt-out -- the proveClosestEncloser step already
13821397 * checked to see if the closest encloser was a delegation or DNAME.
4040 * bridging between RR wireformat data and crypto calls.
4141 */
4242 #include "config.h"
43 #include "ldns/ldns.h"
43 #include <ldns/ldns.h>
4444 #include "validator/val_sigcrypt.h"
4545 #include "validator/validator.h"
4646 #include "util/data/msgreply.h"
3939 * According to RFC 4034.
4040 */
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "validator/validator.h"
4444 #include "validator/val_anchor.h"
4545 #include "validator/val_kcache.h"
12651265 /* Determine the signer/lookup name */
12661266 val_find_signer(subtype, &vq->qchase, vq->orig_msg->rep,
12671267 vq->rrset_skip, &vq->signer_name, &vq->signer_len);
1268 if(vq->signer_name != NULL &&
1269 !dname_subdomain_c(lookup_name, vq->signer_name)) {
1270 log_nametypeclass(VERB_ALGO, "this signer name is not a parent "
1271 "of lookupname, omitted", vq->signer_name, 0, 0);
1272 vq->signer_name = NULL;
1273 }
12681274 if(vq->signer_name == NULL) {
12691275 log_nametypeclass(VERB_ALGO, "no signer, using", lookup_name,
12701276 0, 0);
3939 * windows (no shell).
4040 */
4141 #include "config.h"
42 #include "ldns/ldns.h"
42 #include <ldns/ldns.h>
4343 #include "libunbound/unbound.h"
4444
4545 /** usage */
8484 {
8585 ldns_pkt* p = NULL;
8686 ldns_rr_list* a;
87 if(ldns_wire2pkt(&p, result->answer_packet, result->answer_len)
87 if(ldns_wire2pkt(&p, result->answer_packet, (size_t)result->answer_len)
8888 != LDNS_STATUS_OK)
8989 return NULL;
9090 a = ldns_pkt_answer(p);
488488 wsvc_remove(stdout);
489489 else if(strcmp(wopt, "service") == 0)
490490 service_start(cfgfile, v, c);
491 else if(strcmp(wopt, "start") == 0)
492 wsvc_rc_start(stdout);
493 else if(strcmp(wopt, "stop") == 0)
494 wsvc_rc_stop(stdout);
491495 else fatal_exit("unknown option: %s", wopt);
492496 exit(0);
493497 }