diff options
author | Frederic Riss <friss@apple.com> | 2015-09-02 16:49:13 +0000 |
---|---|---|
committer | Frederic Riss <friss@apple.com> | 2015-09-02 16:49:13 +0000 |
commit | 24faade4b3f3bcbcd671e81c74db425b14b93c33 (patch) | |
tree | 1a66a7d2d5ff8978324be0fe0dbe1ea093794d88 /llvm/tools/llvm-objdump/MachODump.cpp | |
parent | 12004ebe2fd602f5b7a8eacae5cc125b7bb5c932 (diff) | |
download | llvm-24faade4b3f3bcbcd671e81c74db425b14b93c33.zip llvm-24faade4b3f3bcbcd671e81c74db425b14b93c33.tar.gz llvm-24faade4b3f3bcbcd671e81c74db425b14b93c33.tar.bz2 |
Reapply r246012 [dsymutil] Emit real dSYM companion binaries.
With a fix for big endian machines. Thanks to Daniel Sanders for the debugging!
Original commit message:
The binaries containing the linked DWARF generated by dsymutil are not
standard relocatable object files like emitted did previsously. They should be
dSYM companion files, which means they have a different file type in the
header, but also a couple other peculiarities:
- they contain the segments and sections from the original binary in their
load commands, but not the actual contents. This means they get an address
and a size, but their offset is always 0 (but these are not virtual sections)
- they also conatin all the defined symbols from the original binary
This makes MC a really bad fit to emit these kind of binaries. The approach
that was used in this patch is to leverage MC's section layout for the
debug sections, but to use a replacement for MachObjectWriter that lives
in MachOUtils.cpp. Some of the low-level helpers from MachObjectWriter
were reused too.
llvm-svn: 246673
Diffstat (limited to 'llvm/tools/llvm-objdump/MachODump.cpp')
0 files changed, 0 insertions, 0 deletions