From 6a96160ebaae508e540cc68ca8ee9c2e9bd685fb Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Tue, 21 Jun 2016 21:55:01 +0000 Subject: [PATCH] =?utf8?q?Update=20llvm-obdump(1)=20to=20print=20FAT=5FMAG?= =?utf8?q?IC=5F64=20for=20Darwin=E2=80=99s=2064-bit=20universal=20files=20?= =?utf8?q?with=20the=20-macho=20and=20-universal-headers=20flags.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Just a follow on to r273207, I missed updating the printing of the fat magic number when the universal file is a 64-bit universal file. rdar://26899493 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273324 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../X86/Inputs/macho-universal64.x86_64.i386 | Bin 0 -> 16624 bytes .../X86/macho-universal-x86_64.i386.test | 6 ++++++ tools/llvm-objdump/MachODump.cpp | 9 ++++++--- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100755 test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386 diff --git a/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386 b/test/tools/llvm-objdump/X86/Inputs/macho-universal64.x86_64.i386 new file mode 100755 index 0000000000000000000000000000000000000000..add12e44a354dc9d71cfb5dec5622955998c14fd GIT binary patch literal 16624 zcmeHN&r4KM7`;y|B`v3@D2g&EDHU~*Aw-bnkW!S`4*?KH`A=-7ybmu&9cd(=} zP75Y#eI|PTOzw2E-d#DkA?x$fVHJwKc)ChTfG zlDr&G#&kT{H;94!{Dy5jVnCx`$h7wRb>DDz!VhNU$D6kC4%;B~-Psn4o5lY`$I0W- zwho6K@X5i=;#FokahZc)wrRpvjSa-$)3%{7kLu=gcWRzCf4Td(cINiY_|@I$LrO}O ztudw6`Rs%3#d*1o?>}tZrv-&$%sKE%vwLIzR65pMSJ!Z$0eQrG%p{Xv&bs3J81Qn| zogPc2{Y1l&@VXkzVxCQS@G@C`i<4a8M379Y{J4d*$COne$*@}%Uswd1FHbrh-5jIC0iRYLi4V4DQ`65 zMJh_mZefi4h|x1Y0&{#=wXTcYC_1`!H5bu54Srpu6aCsB^?OIszV7$CWB#z(mFSKq z)gGo*tUl~8lhu4%dI%4JVdSFs^S9k9F;Qj_+Wra zFCb0aWV7)D#OU*^s9i3q3QT_CnY1|*>7`DkM|yM*m_LpxCI|=uf`A|(2nYg#fFK|U z2m*qDARq|*=LozG^nY{1K=Mq6{R$1}{~mcYHP1!0f2&_&c!6=v?YK&=ZKq8=h&@O{o8b#?Jc@-pb@_>`q_re*U$8;?Tj&gPM=;CI??uE>~aYy9gWi z;Eff}6}(q|L52181#6a}tvg-49+>f4aJo8mcAC@G=??^5@)QIF0YN|z5CjAPK|l}? z1Ox#=U_~Qvc6_$;Av3i94_tdzQur4F5;77nmIs!cvAxJI1n6C^{!i+y`1qT;Kl!84 S{K4Uz-p?GuTK})={67JbC=g5l literal 0 HcmV?d00001 diff --git a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test index 260e9aa341e..9089716f7a5 100644 --- a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test +++ b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test @@ -6,6 +6,8 @@ RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \ RUN: | FileCheck %s -check-prefix FAT RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \ RUN: -non-verbose | FileCheck %s -check-prefix NON-VERBOSE +RUN: llvm-objdump %p/Inputs/macho-universal64.x86_64.i386 -universal-headers \ +RUN: -m | FileCheck %s -check-prefix FAT-64 UEXE-all: macho-universal.x86_64.i386 (architecture x86_64): UEXE-all: (__TEXT,__text) section @@ -62,3 +64,7 @@ NON-VERBOSE: capabilities 0x0 NON-VERBOSE: offset 12288 NON-VERBOSE: size 4336 NON-VERBOSE: align 2^12 (4096) + +FAT-64: Fat headers +FAT-64: fat_magic FAT_MAGIC_64 +FAT-64: nfat_arch 2 diff --git a/tools/llvm-objdump/MachODump.cpp b/tools/llvm-objdump/MachODump.cpp index 3f4185e6330..b92599a02f8 100644 --- a/tools/llvm-objdump/MachODump.cpp +++ b/tools/llvm-objdump/MachODump.cpp @@ -1403,9 +1403,12 @@ static void printCPUType(uint32_t cputype, uint32_t cpusubtype) { static void printMachOUniversalHeaders(const object::MachOUniversalBinary *UB, bool verbose) { outs() << "Fat headers\n"; - if (verbose) - outs() << "fat_magic FAT_MAGIC\n"; - else + if (verbose) { + if (UB->getMagic() == MachO::FAT_MAGIC) + outs() << "fat_magic FAT_MAGIC\n"; + else // UB->getMagic() == MachO::FAT_MAGIC_64 + outs() << "fat_magic FAT_MAGIC_64\n"; + } else outs() << "fat_magic " << format("0x%" PRIx32, MachO::FAT_MAGIC) << "\n"; uint32_t nfat_arch = UB->getNumberOfObjects(); -- 2.50.1