diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-09-30 21:29:54 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-09-30 21:29:54 +0000 |
| commit | cf78d37fd65f273e3db55c585105e3f310cadf39 (patch) | |
| tree | 5371262ceecd6743184306b9663c346ab52d5e3b /lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp | |
| parent | e1c79749ca96a704556c46a8e9140244a9bbdfed (diff) | |
| download | bcm5719-llvm-cf78d37fd65f273e3db55c585105e3f310cadf39.tar.gz bcm5719-llvm-cf78d37fd65f273e3db55c585105e3f310cadf39.zip | |
[mach-o] create __unwind_info section on x86_64
This is a minimally useful pass to construct the __unwind_info section in a
final object from the various __compact_unwind inputs. Currently it doesn't
produce any compressed pages, only works for x86_64 and will fail if any
function ends up without __compact_unwind.
rdar://problem/18208653
llvm-svn: 218703
Diffstat (limited to 'lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp')
| -rw-r--r-- | lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp index 531189f4861..7b73ff1975b 100644 --- a/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp +++ b/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp @@ -36,6 +36,17 @@ public: bool isCallSite(const Reference &) override; bool isPointer(const Reference &) override; bool isPairedReloc(const normalized::Relocation &) override; + + bool needsCompactUnwind() override { + return false; + } + Reference::KindValue imageOffsetKind() override { + return invalid; + } + Reference::KindValue imageOffsetKindIndirect() override { + return invalid; + } + std::error_code getReferenceInfo(const normalized::Relocation &reloc, const DefinedAtom *inAtom, uint32_t offsetInAtom, @@ -59,6 +70,7 @@ public: void generateAtomContent(const DefinedAtom &atom, bool relocatable, FindAddressForAtom findAddress, + uint64_t imageBaseAddress, uint8_t *atomContentBuffer) override; void appendSectionRelocations(const DefinedAtom &atom, @@ -904,9 +916,10 @@ void ArchHandler_arm::applyFixupFinal(const Reference &ref, uint8_t *location, } void ArchHandler_arm::generateAtomContent(const DefinedAtom &atom, - bool relocatable, - FindAddressForAtom findAddress, - uint8_t *atomContentBuffer) { + bool relocatable, + FindAddressForAtom findAddress, + uint64_t imageBaseAddress, + uint8_t *atomContentBuffer) { // Copy raw bytes. memcpy(atomContentBuffer, atom.rawContent().data(), atom.size()); // Apply fix-ups. |

