[llvm] r306046 - Updated llvm-objdump for arm64 Mach-O MH_KEXT_BUNDLE file types so
Kevin Enderby via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 22 12:50:57 PDT 2017
Author: enderby
Date: Thu Jun 22 14:50:56 2017
New Revision: 306046
URL: http://llvm.org/viewvc/llvm-project?rev=306046&view=rev
Log:
Updated llvm-objdump for arm64 Mach-O MH_KEXT_BUNDLE file types so
it symbolically disassembles the __text section from the
__TEXT_EXEC segment not the usual __TEXT segment by default.
rdar://30590208
Added:
llvm/trunk/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64 (with props)
llvm/trunk/test/tools/llvm-objdump/AArch64/macho-kextbundle.test
Modified:
llvm/trunk/tools/llvm-objdump/MachODump.cpp
Added: llvm/trunk/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64?rev=306046&view=auto
==============================================================================
Binary file - no diff available.
Propchange: llvm/trunk/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64
------------------------------------------------------------------------------
svn:executable = *
Propchange: llvm/trunk/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: llvm/trunk/test/tools/llvm-objdump/AArch64/macho-kextbundle.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objdump/AArch64/macho-kextbundle.test?rev=306046&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-objdump/AArch64/macho-kextbundle.test (added)
+++ llvm/trunk/test/tools/llvm-objdump/AArch64/macho-kextbundle.test Thu Jun 22 14:50:56 2017
@@ -0,0 +1,9 @@
+RUN: llvm-objdump -d -m -no-show-raw-insn %p/Inputs/kextbundle.macho-aarch64 | FileCheck %s
+
+CHECK: (__TEXT_EXEC,__text) section
+CHECK: _foo:
+CHECK: 4000: stp x29, x30, [sp, #-16]!
+CHECK: 4004: mov x29, sp
+CHECK: 4008: bl _bar.stub
+CHECK: 400c: ldp x29, x30, [sp], #16
+CHECK: 4010: ret
Modified: llvm/trunk/tools/llvm-objdump/MachODump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objdump/MachODump.cpp?rev=306046&r1=306045&r2=306046&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objdump/MachODump.cpp (original)
+++ llvm/trunk/tools/llvm-objdump/MachODump.cpp Thu Jun 22 14:50:56 2017
@@ -1224,8 +1224,13 @@ static void ProcessMachO(StringRef Name,
if (Error Err = MachOOF->checkSymbolTable())
report_error(ArchiveName, FileName, std::move(Err), ArchitectureName);
- if (Disassemble)
- DisassembleMachO(FileName, MachOOF, "__TEXT", "__text");
+ if (Disassemble) {
+ if (MachOOF->getHeader().filetype == MachO::MH_KEXT_BUNDLE &&
+ MachOOF->getHeader().cputype == MachO::CPU_TYPE_ARM64)
+ DisassembleMachO(FileName, MachOOF, "__TEXT_EXEC", "__text");
+ else
+ DisassembleMachO(FileName, MachOOF, "__TEXT", "__text");
+ }
if (IndirectSymbols)
PrintIndirectSymbols(MachOOF, !NonVerbose);
if (DataInCode)
More information about the llvm-commits
mailing list