diff options
| author | Ryan Cumming <etaoins@gmail.com> | 2018-01-10 20:13:03 +1100 |
|---|---|---|
| committer | Ryan Cumming <etaoins@gmail.com> | 2018-01-16 06:30:44 +1100 |
| commit | 090a968fe7680cce0d3aa8fde25a5dc48948e43e (patch) | |
| tree | 6cb438656baf3111f840ff1a6ca405453da10bf3 /src/test/debuginfo/enum-thinlto.rs | |
| parent | 8ff449d505728276e822ca9a80c1e7b2da8288a2 (diff) | |
| download | rust-090a968fe7680cce0d3aa8fde25a5dc48948e43e.tar.gz rust-090a968fe7680cce0d3aa8fde25a5dc48948e43e.zip | |
Only link res_init() on GNU/*nix
To workaround a bug in glibc <= 2.26 lookup_host() calls res_init() based on the glibc version detected at runtime. While this avoids calling res_init() on platforms where it's not required we will still end up linking against the symbol. This causes an issue on macOS where res_init() is implemented in a separate library (libresolv.9.dylib) from the main libc. While this is harmless for standalone programs it becomes a problem if Rust code is statically linked against another program. If the linked program doesn't already specify -lresolv it will cause the link to fail. This is captured in issue #46797 Fix this by hooking in to the glibc workaround in `cvt_gai` and only activating it for the "gnu" environment on Unix This should include all glibc platforms while excluding musl, windows-gnu, macOS, FreeBSD, etc. This has the side benefit of removing the #[cfg] in sys_common; only unix.rs has code related to the workaround now.
Diffstat (limited to 'src/test/debuginfo/enum-thinlto.rs')
0 files changed, 0 insertions, 0 deletions
