about summary refs log tree commit diff
path: root/src/test/debuginfo/enum-thinlto.rs
diff options
context:
space:
mode:
authorRyan Cumming <etaoins@gmail.com>2018-01-10 20:13:03 +1100
committerRyan Cumming <etaoins@gmail.com>2018-01-16 06:30:44 +1100
commit090a968fe7680cce0d3aa8fde25a5dc48948e43e (patch)
tree6cb438656baf3111f840ff1a6ca405453da10bf3 /src/test/debuginfo/enum-thinlto.rs
parent8ff449d505728276e822ca9a80c1e7b2da8288a2 (diff)
downloadrust-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