diff options
| author | Alex Crichton <[email protected]> | 2015-09-01 11:12:22 -0700 |
|---|---|---|
| committer | Alex Crichton <[email protected]> | 2015-09-01 11:24:32 -0700 |
| commit | bf16c19f315c83fe4b329730f03e568cbf4c47f9 (patch) | |
| tree | 0ded372579f889b06f29bebc15f3ee8b98910f6e /openssl-sys | |
| parent | Merge pull request #259 from jedisct1/dh (diff) | |
| download | rust-openssl-bf16c19f315c83fe4b329730f03e568cbf4c47f9.tar.xz rust-openssl-bf16c19f315c83fe4b329730f03e568cbf4c47f9.zip | |
Swap order of linking ssl/crypto
GNU linkers will sometimes aggressively try to strip objects and archives from a
linker command line in a left-to-right fashion. When a linker hits an object
file that doesn't satisfy any unresolved symbols, it will discard the object and
not re-visit it. This means that currently if symbols are depended upon in
libssl then some of the dependencies of libssl (in libcrypto) may have already
been stripped, causing a link error.
By swapping the order of what's linked it reflects the natural flow of
dependencies and the linker should figure everything out for us.
Diffstat (limited to 'openssl-sys')
| -rw-r--r-- | openssl-sys/build.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/openssl-sys/build.rs b/openssl-sys/build.rs index b4a00566..5f934888 100644 --- a/openssl-sys/build.rs +++ b/openssl-sys/build.rs @@ -36,12 +36,12 @@ fn main() { Some(ref v) => v.split(":").collect(), None => if target.contains("windows") { if get_mingw_in_path().is_some() && lib_dir.is_none() && include_dir.is_none() { - vec!("eay32", "ssleay32") + vec!["ssleay32", "eay32"] } else { - vec!("eay32", "ssl32") + vec!["ssl32", "eay32"] } } else { - vec!("crypto", "ssl") + vec!["ssl", "crypto"] } }; |