about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-04-13 02:16:54 -0700
committerbors <bors@rust-lang.org>2014-04-13 02:16:54 -0700
commit2f790546504f869788f3c0e9585b51470773332f (patch)
tree0eebbbc57334ac6da54b63c669502e4ba31f075b /src/rustllvm/ExecutionEngineWrapper.cpp
parent745a3ce458c2884e5db3886d96a8d36d9c8f585a (diff)
parente6072fa0c4c22d62acf3dcb78c8ee260a1368bd7 (diff)
downloadrust-2f790546504f869788f3c0e9585b51470773332f.tar.gz
rust-2f790546504f869788f3c0e9585b51470773332f.zip
auto merge of #13463 : alexcrichton/rust/c-linkage-oh-my, r=brson
Previously, upstream C libraries were linked in a nondeterministic fashion
because they were collected through iter_crate_data() which is a nodeterministic
traversal of a hash map. When upstream rlibs had interdependencies among their
native libraries (such as libfoo depending on libc), then the ordering would
occasionally be wrong, causing linkage to fail.

This uses the topologically sorted list of libraries to collect native
libraries, so if a native library depends on libc it just needs to make sure
that the rust crate depends on liblibc.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions