Skip to content

Commit

Permalink
Merge pull request #15573 from motiejus/resolv_dn
Browse files Browse the repository at this point in the history
glibc hacks: also add a few dn_* functions
  • Loading branch information
andrewrk authored May 17, 2023
2 parents c1add1e + 892d4e1 commit ad20236
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 9 deletions.
1 change: 1 addition & 0 deletions lib/libc/glibc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ need to be cherry-picked in the future glibc header upgrades:

- 39083c31a550ed80f369f60d35791e98904b8096
- a89813ef282c092a9caf699731c7faaf485acabe
- 3eaca9bbc6fee4b6be0f22b844f7d3214222f434
25 changes: 16 additions & 9 deletions lib/libc/include/generic-glibc/resolv.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,16 +170,20 @@ __END_DECLS
#define res_isourserver __res_isourserver

/* In glibc 2.33 and earlier res_search, res_nsearch, res_query, res_nquery,
* res_querydomain, res_nquerydomain were #define'd to __res_search,
* __res_nsearch, etc. glibc 2.34 onwards removes the macros and exposes the
* symbols directly. New glibc exposes compat symbols with underscores for
* backwards compatibility. Applications linked to glibc 2.34+ are expected
* to use the non-underscored symbols.
* res_querydomain, res_nquerydomain, dn_skipname, dn_comp, dn_expand were
* #define'd to __res_search, __res_nsearch, etc. glibc 2.34 onwards removes
* the macros and exposes the symbols directly. New glibc exposes compat
* symbols with underscores for backwards compatibility. Applications linked to
* glibc 2.34+ are expected to use the non-underscored symbols.
*
* It will be enough to bring the macros back when compiling against the older
* glibc versions.
* It is enough to bring the macros back when compiling against the older glibc
* versions.
*
* See glibc commit ea9878ec271c791880fcbbe519d70c42f8113750.
* See glibc commits:
* - ea9878ec271c791880fcbbe519d70c42f8113750 res_*
* - 391e02236b931132c0e8b5ba4c3b087c2aaa1044 dn_skipname
* - fd8a87c0c1932de591e7ad108ff6288a4b6b18c9 dn_comp
* - 640bbdf71c6f10ac26252ac67a22902e26657bd8 dn_expand
*/
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ < 34)
#define res_search __res_search
Expand All @@ -188,6 +192,9 @@ __END_DECLS
#define res_nquery __res_nquery
#define res_querydomain __res_querydomain
#define res_nquerydomain __res_nquerydomain
#define dn_skipname __dn_skipname
#define dn_comp __dn_comp
#define dn_expand __dn_expand
#endif
/* end glibc compat hacks */

Expand Down Expand Up @@ -327,4 +334,4 @@ void res_nclose (res_state) __THROW;

__END_DECLS

#endif /* !_RESOLV_H_ */
#endif /* !_RESOLV_H_ */
3 changes: 3 additions & 0 deletions test/link/glibc_compat/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,7 @@ int main() {
printf("address to res_nquery: %p\n", res_nquery);
printf("address to res_querydomain: %p\n", res_querydomain);
printf("address to res_nquerydomain: %p\n", res_nquerydomain);
printf("address to dn_skipname: %p\n", dn_skipname);
printf("address to dn_comp: %p\n", dn_comp);
printf("address to dn_expand: %p\n", dn_expand);
}

0 comments on commit ad20236

Please sign in to comment.