about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-04-14 16:28:50 -0700
committerAlex Crichton <alex@alexcrichton.com>2015-04-21 11:08:19 -0700
commit9ab0475d940342a670ad323c151db565e6318e08 (patch)
tree90805d59b9a8cde5071c3591a8f4ace0103973dc /src/rustllvm/ExecutionEngineWrapper.cpp
parent77acda1c8ee75f9eb923ddd811ee591951b2d43f (diff)
downloadrust-9ab0475d940342a670ad323c151db565e6318e08.tar.gz
rust-9ab0475d940342a670ad323c151db565e6318e08.zip
rustc: Handle duplicate names merging archives
When linking an archive statically to an rlib, the compiler will extract all
contents of the archive and add them all to the rlib being generated. The
current method of extraction is to run `ar x`, dumping all files into a
temporary directory. Object archives, however, are allowed to have multiple
entries with the same file name, so there is no method for them to extract their
contents into a directory in a lossless fashion.

This commit adds iterator support to the `ArchiveRO` structure which hooks into
LLVM's support for reading object archives. This iterator is then used to
inspect each object in turn and extract it to a unique location for later
assembly.
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions