]>
Commit | Line | Data |
---|---|---|
688903eb | 1 | # Copyright (C) 1994-2018 Free Software Foundation, Inc. |
28f540f4 RM |
2 | # This file is part of the GNU C Library. |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
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. | |
28f540f4 RM |
8 | |
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 | |
41bdb6e2 | 12 | # Lesser General Public License for more details. |
28f540f4 | 13 | |
41bdb6e2 | 14 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
15 | # License along with the GNU C Library; if not, see |
16 | # <http://www.gnu.org/licenses/>. | |
28f540f4 RM |
17 | |
18 | # | |
19 | # Sub-makefile for resolv portion of the library. | |
20 | # | |
21 | subdir := resolv | |
22 | ||
a5f891ac JM |
23 | include ../Makeconfig |
24 | ||
500b3a49 | 25 | headers := resolv.h bits/types/res_state.h \ |
c6d80202 RM |
26 | netdb.h bits/netdb.h \ |
27 | arpa/nameser.h arpa/nameser_compat.h \ | |
6500dff6 | 28 | sys/bitypes.h |
28f540f4 | 29 | |
b43b13ac | 30 | routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \ |
352f4ff9 | 31 | res_hconf res_libc res-state res_randomid res-close \ |
f30a54b2 | 32 | resolv_context resolv_conf |
282d8743 | 33 | |
37f02b1d | 34 | tests = tst-aton tst-leaks tst-inet_ntop |
2ed2dc18 | 35 | xtests = tst-leaks2 |
b062f051 | 36 | |
2373941b FW |
37 | tests-internal += tst-inet_aton_exact |
38 | ||
39 | ||
0b20a9e8 | 40 | generate := mtrace-tst-leaks.out tst-leaks.mtrace tst-leaks2.mtrace |
0696c2c0 | 41 | |
e10546cb AJ |
42 | extra-libs := libresolv libnss_dns |
43 | ifeq ($(have-thread-library),yes) | |
44 | extra-libs += libanl | |
3897dbb6 | 45 | routines += gai_sigqueue |
5840c75c FW |
46 | |
47 | tests += \ | |
48 | tst-bug18665 \ | |
49 | tst-bug18665-tcp \ | |
07d6f1a3 | 50 | tst-ns_name \ |
c803cb9b | 51 | tst-ns_name_compress \ |
e2a9fca8 | 52 | tst-ns_name_pton \ |
5840c75c | 53 | tst-res_hconf_reorder \ |
5c1a6923 | 54 | tst-res_hnok \ |
5840c75c FW |
55 | tst-res_use_inet6 \ |
56 | tst-resolv-basic \ | |
401311cf | 57 | tst-resolv-binary \ |
e14a2772 | 58 | tst-resolv-edns \ |
5840c75c | 59 | tst-resolv-network \ |
2373941b | 60 | tst-resolv-nondecimal \ |
89f6307c | 61 | tst-resolv-res_init-multi \ |
5840c75c | 62 | tst-resolv-search \ |
2373941b | 63 | tst-resolv-trailing \ |
5840c75c | 64 | |
c3261cdb FW |
65 | # These tests need libdl. |
66 | ifeq (yes,$(build-shared)) | |
67 | tests += \ | |
7f9f1ecb FW |
68 | tst-resolv-ai_idn \ |
69 | tst-resolv-ai_idn-latin1 \ | |
70 | tst-resolv-ai_idn-nolibidn2 \ | |
c3261cdb FW |
71 | tst-resolv-canonname \ |
72 | ||
2714c5f3 FW |
73 | # uses DEPRECATED_RES_USE_INET6 from <resolv-internal.h>. |
74 | tests-internal += \ | |
75 | tst-resolv-res_init \ | |
76 | tst-resolv-res_init-thread \ | |
77 | ||
e237357a | 78 | # Needs resolv_context. |
cb3c27e8 FW |
79 | tests-internal += \ |
80 | tst-resolv-res_ninit \ | |
81 | tst-resolv-threads \ | |
e237357a | 82 | |
7f9f1ecb FW |
83 | # Used by tst-resolv-ai_idn-nolibidn2 to disable libidn2 (by not |
84 | # providing any functions in libidn2.so.0). | |
85 | modules-names += tst-no-libidn2 | |
86 | extra-test-objs += tst-no-libidn2.os | |
87 | LDFLAGS-tst-no-libidn2.so = -Wl,-soname,libidn2.so.0 | |
88 | ||
89 | endif # $(build-shared) | |
c3261cdb | 90 | |
44dade71 | 91 | # This test accesses __inet_ntop_length, an internal libc function. |
60149b28 FW |
92 | tests-internal += tst-inet_pton |
93 | ||
754034c4 JM |
94 | # This test accesses the __p_secstodate compat symbol. |
95 | tests-internal += tst-p_secstodate | |
96 | ||
fc82b0a2 FW |
97 | # This test sends millions of packets and is rather slow. |
98 | xtests += tst-resolv-qtypes | |
5b757a51 FW |
99 | |
100 | # This test has dropped packet tests and runs for a long time. | |
101 | xtests += tst-resolv-rotate | |
e10546cb | 102 | endif |
f0f1bf85 | 103 | extra-libs-others = $(extra-libs) |
e7eceec0 | 104 | libresolv-routines := res_comp res_debug \ |
569c558c | 105 | res_data res_mkquery res_query res_send \ |
b43b13ac UD |
106 | inet_net_ntop inet_net_pton inet_neta base64 \ |
107 | ns_parse ns_name ns_netint ns_ttl ns_print \ | |
e7eceec0 FW |
108 | ns_samedomain ns_date \ |
109 | compat-hooks compat-gethnamaddr | |
28f540f4 | 110 | |
2ace5721 UD |
111 | libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \ |
112 | getaddrinfo_a | |
113 | ||
fd26970f | 114 | subdir-dirs = nss_dns |
68dbb3a6 UD |
115 | vpath %.c nss_dns |
116 | ||
28977c2c | 117 | libnss_dns-routines := dns-host dns-network dns-canon |
40a55d20 | 118 | libnss_dns-inhibit-o = $(filter-out .os,$(object-suffixes)) |
3ff42526 PP |
119 | ifeq ($(build-static-nss),yes) |
120 | routines += $(libnss_dns-routines) $(libresolv-routines) | |
121 | static-only-routines += $(libnss_dns-routines) $(libresolv-routines) | |
5107cf1d | 122 | endif |
68dbb3a6 | 123 | |
f214606a JM |
124 | ifeq ($(run-built-tests),yes) |
125 | ifneq (no,$(PERL)) | |
0b20a9e8 JM |
126 | tests-special += $(objpfx)mtrace-tst-leaks.out |
127 | xtests-special += $(objpfx)mtrace-tst-leaks2.out | |
e237357a | 128 | tests-special += $(objpfx)mtrace-tst-resolv-res_ninit.out |
f214606a JM |
129 | endif |
130 | endif | |
131 | ||
b8a91836 RM |
132 | ifeq (,$(filter sunrpc,$(subdirs))) |
133 | # The netdb.h we install does '#include <rpc/netdb.h>', so one must exist. | |
134 | # If sunrpc/ is built in this configuration, it installs a real <rpc/netdb.h>. | |
135 | # If that's not going to happen, install our dummy file. | |
136 | headers += rpc/netdb.h | |
137 | endif | |
138 | ||
0b20a9e8 | 139 | generated += mtrace-tst-leaks.out tst-leaks.mtrace \ |
e237357a FW |
140 | mtrace-tst-leaks2.out tst-leaks2.mtrace \ |
141 | mtrace-tst-resolv-res_ninit.out tst-resolv-res_ninit.mtrace \ | |
434190c0 | 142 | |
28f540f4 | 143 | include ../Rules |
0793d348 | 144 | |
7f9f1ecb FW |
145 | LOCALES := en_US.UTF-8 en_US.ISO-8859-1 |
146 | include ../gen-locales.mk | |
147 | ||
36975e8e | 148 | CFLAGS-res_hconf.c += -fexceptions |
443f7933 | 149 | |
68dbb3a6 | 150 | # The DNS NSS modules needs the resolver. |
fab7ce3f | 151 | $(objpfx)libnss_dns.so: $(objpfx)libresolv.so |
2ace5721 UD |
152 | |
153 | # The asynchronous name lookup code needs the thread library. | |
fab7ce3f | 154 | $(objpfx)libanl.so: $(shared-thread-library) |
2ace5721 | 155 | |
b57525f1 DL |
156 | $(objpfx)tst-res_hconf_reorder: $(libdl) $(shared-thread-library) |
157 | tst-res_hconf_reorder-ENV = RESOLV_REORDER=on | |
158 | ||
dd174748 RM |
159 | $(objpfx)tst-leaks: $(objpfx)libresolv.so |
160 | tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace | |
0b20a9e8 | 161 | $(objpfx)mtrace-tst-leaks.out: $(objpfx)tst-leaks.out |
f0881698 JM |
162 | $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \ |
163 | $(evaluate-test) | |
2ed2dc18 UD |
164 | |
165 | tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace | |
0b20a9e8 | 166 | $(objpfx)mtrace-tst-leaks2.out: $(objpfx)tst-leaks2.out |
f0881698 JM |
167 | $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@; \ |
168 | $(evaluate-test) | |
5840c75c | 169 | |
e237357a FW |
170 | tst-resolv-res_ninit-ENV = MALLOC_TRACE=$(objpfx)tst-resolv-res_ninit.mtrace |
171 | $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out | |
172 | $(common-objpfx)malloc/mtrace \ | |
173 | $(objpfx)tst-resolv-res_ninit.mtrace > $@; \ | |
174 | $(evaluate-test) | |
175 | ||
5840c75c FW |
176 | $(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library) |
177 | $(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library) | |
178 | $(objpfx)tst-res_use_inet6: $(objpfx)libresolv.so $(shared-thread-library) | |
7f9f1ecb FW |
179 | $(objpfx)tst-resolv-ai_idn: \ |
180 | $(libdl) $(objpfx)libresolv.so $(shared-thread-library) | |
181 | $(objpfx)tst-resolv-ai_idn-latin1: \ | |
182 | $(libdl) $(objpfx)libresolv.so $(shared-thread-library) | |
183 | $(objpfx)tst-resolv-ai_idn-nolibidn2: \ | |
184 | $(libdl) $(objpfx)libresolv.so $(shared-thread-library) | |
185 | $(objpfx)tst-resolv-ai_idn.out: $(gen-locales) | |
186 | $(objpfx)tst-resolv-ai_idn-latin1.out: $(gen-locales) | |
187 | $(objpfx)tst-resolv-ai_idn-nolibidn2.out: \ | |
188 | $(gen-locales) $(objpfx)tst-no-libidn2.so | |
5840c75c | 189 | $(objpfx)tst-resolv-basic: $(objpfx)libresolv.so $(shared-thread-library) |
401311cf | 190 | $(objpfx)tst-resolv-binary: $(objpfx)libresolv.so $(shared-thread-library) |
e14a2772 | 191 | $(objpfx)tst-resolv-edns: $(objpfx)libresolv.so $(shared-thread-library) |
5840c75c | 192 | $(objpfx)tst-resolv-network: $(objpfx)libresolv.so $(shared-thread-library) |
2714c5f3 | 193 | $(objpfx)tst-resolv-res_init: $(libdl) $(objpfx)libresolv.so |
89f6307c FW |
194 | $(objpfx)tst-resolv-res_init-multi: $(objpfx)libresolv.so \ |
195 | $(shared-thread-library) | |
2714c5f3 FW |
196 | $(objpfx)tst-resolv-res_init-thread: $(libdl) $(objpfx)libresolv.so \ |
197 | $(shared-thread-library) | |
2373941b | 198 | $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) |
fc82b0a2 | 199 | $(objpfx)tst-resolv-qtypes: $(objpfx)libresolv.so $(shared-thread-library) |
5b757a51 | 200 | $(objpfx)tst-resolv-rotate: $(objpfx)libresolv.so $(shared-thread-library) |
5840c75c | 201 | $(objpfx)tst-resolv-search: $(objpfx)libresolv.so $(shared-thread-library) |
2373941b | 202 | $(objpfx)tst-resolv-trailing: $(objpfx)libresolv.so $(shared-thread-library) |
cb3c27e8 FW |
203 | $(objpfx)tst-resolv-threads: \ |
204 | $(libdl) $(objpfx)libresolv.so $(shared-thread-library) | |
c3261cdb FW |
205 | $(objpfx)tst-resolv-canonname: \ |
206 | $(libdl) $(objpfx)libresolv.so $(shared-thread-library) | |
b76e0659 | 207 | |
07d6f1a3 FW |
208 | $(objpfx)tst-ns_name: $(objpfx)libresolv.so |
209 | $(objpfx)tst-ns_name.out: tst-ns_name.data | |
c803cb9b | 210 | $(objpfx)tst-ns_name_compress: $(objpfx)libresolv.so |
e2a9fca8 | 211 | $(objpfx)tst-ns_name_pton: $(objpfx)libresolv.so |
5c1a6923 | 212 | $(objpfx)tst-res_hnok: $(objpfx)libresolv.so |
f120cda6 | 213 | $(objpfx)tst-p_secstodate: $(objpfx)libresolv.so |
07d6f1a3 FW |
214 | |
215 | ||
b76e0659 FW |
216 | # This test case uses the deprecated RES_USE_INET6 resolver option. |
217 | CFLAGS-tst-res_use_inet6.c += -Wno-error |