[dsymutil] Implement support for universal mach-o object files.
authorFrederic Riss <friss@apple.com>
Fri, 24 Jul 2015 06:41:11 +0000 (06:41 +0000)
committerFrederic Riss <friss@apple.com>
Fri, 24 Jul 2015 06:41:11 +0000 (06:41 +0000)
commitfa7f7bd01705bb0eeae8a4b708e0022ddfb3391d
treeb7d0855bb197907ae889a5985fa9ce2846b269c9
parent15562966156101dfa0f376ac778ece022b02fec6
[dsymutil] Implement support for universal mach-o object files.

This patch allows llvm-dsymutil to read universal (aka fat) macho object
files and archives. The patch touches nearly everything in the BinaryHolder,
but it is fairly mechinical: the methods that returned MemoryBufferRefs or
ObjectFiles now return a vector of those, and the high-level access function
takes a triple argument to select the architecture.

There is no support yet for handling fat executables and thus no support for
writing fat object files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243096 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
test/tools/dsymutil/ARM/fat-arch-not-found.test [new file with mode: 0644]
test/tools/dsymutil/ARM/lit.local.cfg [new file with mode: 0644]
test/tools/dsymutil/Inputs/fat-test.c [new file with mode: 0644]
test/tools/dsymutil/Inputs/fat-test.o [new file with mode: 0644]
test/tools/dsymutil/Inputs/libfat-test.a [new file with mode: 0644]
test/tools/dsymutil/X86/fat-archive-input-i386.test [new file with mode: 0644]
test/tools/dsymutil/X86/fat-object-input-x86_64.test [new file with mode: 0644]
test/tools/dsymutil/X86/fat-object-input-x86_64h.test [new file with mode: 0644]
tools/dsymutil/BinaryHolder.cpp
tools/dsymutil/BinaryHolder.h
tools/dsymutil/DebugMap.cpp
tools/dsymutil/DwarfLinker.cpp
tools/dsymutil/MachODebugMapParser.cpp