benchtests: Add small sizes (<= 64) to bench-bzero-walk.c
[glibc.git] / resolv / Makefile
blob438672786f7aae42c302688ea9e5b382c9ab1a1e
1 # Copyright (C) 1994-2022 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with the GNU C Library; if not, see
16 # <https://www.gnu.org/licenses/>.
19 # Sub-makefile for resolv portion of the library.
21 subdir := resolv
23 include ../Makeconfig
25 headers := resolv.h bits/types/res_state.h \
26 netdb.h bits/netdb.h \
27 arpa/nameser.h arpa/nameser_compat.h \
28 sys/bitypes.h
30 routines := \
31 dn_comp \
32 dn_expand \
33 dn_skipname \
34 dns-canon \
35 dns-host \
36 dns-network \
37 herror \
38 inet_addr \
39 inet_ntop \
40 inet_pton \
41 ns_makecanon \
42 ns_name_compress \
43 ns_name_ntop \
44 ns_name_pack \
45 ns_name_pton \
46 ns_name_skip \
47 ns_name_uncompress \
48 ns_name_unpack \
49 ns_samename \
50 nsap_addr \
51 nss_dns_functions \
52 res-close \
53 res-name-checking \
54 res-state \
55 res_context_hostalias \
56 res_enable_icmp \
57 res_get_nsaddr \
58 res_hconf \
59 res_init \
60 res_libc \
61 res_mkquery \
62 res_nameinquery \
63 res_queriesmatch \
64 res_query \
65 res_randomid \
66 res_send \
67 resolv_conf \
68 resolv_context \
69 # routines
71 tests = tst-aton tst-leaks tst-inet_ntop
72 tests-container = tst-leaks2
74 tests-internal += tst-inet_aton_exact
77 generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace
79 extra-libs := libresolv libnss_dns
80 ifeq ($(have-thread-library),yes)
81 routines += gai_sigqueue
83 tests += \
84 tst-bug18665 \
85 tst-bug18665-tcp \
86 tst-ns_name \
87 tst-ns_name_compress \
88 tst-ns_name_pton \
89 tst-res_hconf_reorder \
90 tst-res_hnok \
91 tst-resolv-basic \
92 tst-resolv-binary \
93 tst-resolv-edns \
94 tst-resolv-network \
95 tst-resolv-nondecimal \
96 tst-resolv-res_init-multi \
97 tst-resolv-search \
98 tst-resolv-trailing \
100 # This test calls __res_context_send directly, which is not exported
101 # from libresolv.
102 tests-internal += tst-resolv-txnid-collision
103 tests-static += tst-resolv-txnid-collision
105 # These tests need libdl.
106 ifeq (yes,$(build-shared))
107 tests += \
108 tst-resolv-ai_idn \
109 tst-resolv-ai_idn-latin1 \
110 tst-resolv-ai_idn-nolibidn2 \
111 tst-resolv-canonname \
112 tst-resolv-trustad \
114 # Needs resolv_context.
115 tests-internal += \
116 tst-resolv-res_init \
117 tst-resolv-res_init-thread \
118 tst-resolv-res_ninit \
119 tst-resolv-threads \
121 # Used by tst-resolv-ai_idn-nolibidn2 to disable libidn2 (by not
122 # providing any functions in libidn2.so.0).
123 modules-names += tst-no-libidn2
124 extra-test-objs += tst-no-libidn2.os
125 LDFLAGS-tst-no-libidn2.so = -Wl,-soname,libidn2.so.0
127 endif # $(build-shared)
129 # This test accesses __inet_ntop_length, an internal libc function.
130 tests-internal += tst-inet_pton
132 # This test accesses the __p_secstodate compat symbol.
133 ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes)
134 tests += tst-p_secstodate
135 endif
137 # This test sends millions of packets and is rather slow.
138 xtests += tst-resolv-qtypes
140 # This test has dropped packet tests and runs for a long time.
141 xtests += tst-resolv-rotate
142 endif # $(have-thread-library)
144 extra-libs-others = $(extra-libs)
145 libresolv-routines := \
146 base64 \
147 compat-gethnamaddr \
148 compat-hooks \
149 inet_net_ntop \
150 inet_net_pton \
151 inet_neta \
152 ns_date \
153 ns_name \
154 ns_netint \
155 ns_parse \
156 ns_print \
157 ns_samedomain \
158 ns_ttl \
159 res-putget \
160 res_data \
161 res_debug \
162 res_hostalias \
163 res_isourserver \
164 resolv-deprecated \
165 # libresolv-routines
167 ifeq ($(have-GLIBC_2.34)$(have-thread-library),yesyes)
168 # Empty compatibility library for old binaries.
169 extra-libs += libanl
170 libanl-routines += libanl-compat
171 libanl-shared-only-routines += libanl-compat
172 endif
174 $(libanl-routines-var) += \
175 gai_cancel \
176 gai_error \
177 gai_misc \
178 gai_notify \
179 gai_suspend \
180 getaddrinfo_a \
181 # $(libanl-routines-var)
183 # Pretend that libanl.so is a linker script, so that the symbolic link
184 # is not installed.
185 install-lib-ldscripts = libanl.so
186 $(inst_libdir)/libanl.so:
188 subdir-dirs = nss_dns
189 vpath %.c nss_dns
191 # Build only an empty shared libnss_dns.
192 libnss_dns-inhibit-o = $(filter-out .os,$(object-suffixes))
194 # Pretend that libnss_dns.so is a linker script, so that the symbolic link
195 # is not installed.
196 install-lib-ldscripts = libnss_dns.so
197 $(inst_libdir)/libnss_dns.so:
199 ifeq ($(run-built-tests),yes)
200 ifneq (no,$(PERL))
201 tests-special += $(objpfx)mtrace-tst-leaks.out $(objpfx)mtrace-tst-leaks2.out \
202 $(objpfx)mtrace-tst-resolv-res_ninit.out
203 endif
204 endif
206 generated += mtrace-tst-leaks.out tst-leaks.mtrace \
207 mtrace-tst-leaks2.out tst-leaks2.mtrace \
208 mtrace-tst-resolv-res_ninit.out tst-resolv-res_ninit.mtrace \
210 include ../Rules
212 LOCALES := en_US.UTF-8 en_US.ISO-8859-1
213 include ../gen-locales.mk
215 CFLAGS-res_hconf.c += -fexceptions
217 # The DNS NSS modules needs the resolver.
218 $(objpfx)libnss_dns.so: $(objpfx)libresolv.so
220 # The asynchronous name lookup code needs the thread library.
221 $(objpfx)libanl.so: $(shared-thread-library)
223 $(objpfx)tst-res_hconf_reorder: $(shared-thread-library)
224 tst-res_hconf_reorder-ENV = RESOLV_REORDER=on
226 $(objpfx)tst-leaks: $(objpfx)libresolv.so
227 tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace \
228 LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
229 $(objpfx)mtrace-tst-leaks.out: $(objpfx)tst-leaks.out
230 $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
231 $(evaluate-test)
233 tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace \
234 LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
235 $(objpfx)mtrace-tst-leaks2.out: $(objpfx)tst-leaks2.out
236 { test -r $(objpfx)tst-leaks2.mtrace \
237 || ( echo "tst-leaks2.mtrace does not exist"; exit 77; ) \
238 && $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace; } > $@; \
239 $(evaluate-test)
241 tst-resolv-res_ninit-ENV = MALLOC_TRACE=$(objpfx)tst-resolv-res_ninit.mtrace \
242 LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
243 $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out
244 $(common-objpfx)malloc/mtrace \
245 $(objpfx)tst-resolv-res_ninit.mtrace > $@; \
246 $(evaluate-test)
248 $(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library)
249 $(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library)
250 $(objpfx)tst-resolv-ai_idn: $(objpfx)libresolv.so $(shared-thread-library)
251 $(objpfx)tst-resolv-ai_idn-latin1: \
252 $(objpfx)libresolv.so $(shared-thread-library)
253 $(objpfx)tst-resolv-ai_idn-nolibidn2: \
254 $(objpfx)libresolv.so $(shared-thread-library)
255 $(objpfx)tst-resolv-ai_idn.out: $(gen-locales)
256 $(objpfx)tst-resolv-ai_idn-latin1.out: $(gen-locales)
257 $(objpfx)tst-resolv-ai_idn-nolibidn2.out: \
258 $(gen-locales) $(objpfx)tst-no-libidn2.so
259 $(objpfx)tst-resolv-basic: $(objpfx)libresolv.so $(shared-thread-library)
260 $(objpfx)tst-resolv-binary: $(objpfx)libresolv.so $(shared-thread-library)
261 $(objpfx)tst-resolv-edns: $(objpfx)libresolv.so $(shared-thread-library)
262 $(objpfx)tst-resolv-network: $(objpfx)libresolv.so $(shared-thread-library)
263 $(objpfx)tst-resolv-res_init: $(objpfx)libresolv.so
264 $(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \
265 $(shared-thread-library)
266 $(objpfx)tst-resolv-res_init-thread: $(objpfx)libresolv.so \
267 $(shared-thread-library)
268 $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library)
269 $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library)
270 $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library)
271 $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library)
272 $(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library)
273 $(objpfx)tst-resolv-threads: $(objpfx)libresolv.so $(shared-thread-library)
274 $(objpfx)tst-resolv-txnid-collision: $(objpfx)libresolv.a \
275 $(static-thread-library)
276 $(objpfx)tst-resolv-canonname: $(objpfx)libresolv.so $(shared-thread-library)
277 $(objpfx)tst-resolv-trustad: $(objpfx)libresolv.so $(shared-thread-library)
279 $(objpfx)tst-ns_name: $(objpfx)libresolv.so
280 $(objpfx)tst-ns_name.out: tst-ns_name.data
281 $(objpfx)tst-ns_name_compress: $(objpfx)libresolv.so
282 $(objpfx)tst-ns_name_pton: $(objpfx)libresolv.so
283 $(objpfx)tst-res_hnok: $(objpfx)libresolv.so
284 $(objpfx)tst-p_secstodate: $(objpfx)libresolv.so