authorgravatar for motiejus@jakstys.ltMotiejus Jakštys <motiejus@jakstys.lt> 2023-05-04 10:36:05+03:00
committergravatar for motiejus@jakstys.ltMotiejus Jakštys <motiejus@jakstys.lt> 2023-05-04 10:36:05+03:00
log3eaca9bbc6fee4b6be0f22b844f7d3214222f434
treeeb83631072edd3b2fdd625cf5fa61db3e97681fa
parent012f9a97eb74c63921ce7f3a036c71816fb59a24

glibc hacks: also add a few dn_* functions


2 files changed, 19 insertions(+), 9 deletions(-)

lib/libc/include/generic-glibc/resolv.h+16-9
......@@ -170,16 +170,20 @@ __END_DECLS
170170#define res_isourserver __res_isourserver
171171
172172/* In glibc 2.33 and earlier res_search, res_nsearch, res_query, res_nquery,
173 * res_querydomain, res_nquerydomain were #define'd to __res_search,
174 * __res_nsearch, etc. glibc 2.34 onwards removes the macros and exposes the
175 * symbols directly. New glibc exposes compat symbols with underscores for
176 * backwards compatibility. Applications linked to glibc 2.34+ are expected
177 * to use the non-underscored symbols.
173 * res_querydomain, res_nquerydomain, dn_skipname, dn_comp, dn_expand were
174 * #define'd to __res_search, __res_nsearch, etc. glibc 2.34 onwards removes
175 * the macros and exposes the symbols directly. New glibc exposes compat
176 * symbols with underscores for backwards compatibility. Applications linked to
177 * glibc 2.34+ are expected to use the non-underscored symbols.
178178 *
179 * It will be enough to bring the macros back when compiling against the older
180 * glibc versions.
179 * It is enough to bring the macros back when compiling against the older glibc
180 * versions.
181181 *
182 * See glibc commit ea9878ec271c791880fcbbe519d70c42f8113750.
182 * See glibc commits:
183 * - ea9878ec271c791880fcbbe519d70c42f8113750 res_*
184 * - 391e02236b931132c0e8b5ba4c3b087c2aaa1044 dn_skipname
185 * - fd8a87c0c1932de591e7ad108ff6288a4b6b18c9 dn_comp
186 * - 640bbdf71c6f10ac26252ac67a22902e26657bd8 dn_expand
183187 */
184188#if (__GLIBC__ == 2 && __GLIBC_MINOR__ < 34)
185189#define res_search __res_search
......@@ -188,6 +192,9 @@ __END_DECLS
188192#define res_nquery __res_nquery
189193#define res_querydomain __res_querydomain
190194#define res_nquerydomain __res_nquerydomain
195#define dn_skipname __dn_skipname
196#define dn_comp __dn_comp
197#define dn_expand __dn_expand
191198#endif
192199/* end glibc compat hacks */
193200
......@@ -327,4 +334,4 @@ void res_nclose (res_state) __THROW;
327334
328335__END_DECLS
329336
330#endif /* !_RESOLV_H_ */
\ No newline at end of file
337#endif /* !_RESOLV_H_ */
test/link/glibc_compat/main.c+3
......@@ -34,4 +34,7 @@ int main() {
3434 printf("address to res_nquery: %p\n", res_nquery);
3535 printf("address to res_querydomain: %p\n", res_querydomain);
3636 printf("address to res_nquerydomain: %p\n", res_nquerydomain);
37 printf("address to dn_skipname: %p\n", dn_skipname);
38 printf("address to dn_comp: %p\n", dn_comp);
39 printf("address to dn_expand: %p\n", dn_expand);
3740}