From 1983fcf86ca9353679a9b7d979907730301c76d9 Mon Sep 17 00:00:00 2001 From: Kevin Enderby Date: Thu, 19 Jun 2014 22:03:18 +0000 Subject: Change the output of llvm-nm and llvm-size for Mach-O universal files (aka fat files) to print “ (for architecture XYZ)” for fat files with more than one architecture to be like what the darwin tools do for fat files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also clean up the Mach-O printing of archive membernames in llvm-nm to use the darwin form of "libx.a(foo.o)". llvm-svn: 211316 --- llvm/tools/llvm-size/llvm-size.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'llvm/tools/llvm-size/llvm-size.cpp') diff --git a/llvm/tools/llvm-size/llvm-size.cpp b/llvm/tools/llvm-size/llvm-size.cpp index b3aaac8d27d..408bb4a1880 100644 --- a/llvm/tools/llvm-size/llvm-size.cpp +++ b/llvm/tools/llvm-size/llvm-size.cpp @@ -469,13 +469,20 @@ static void PrintFileSectionSizes(StringRef file) { std::unique_ptr UA; if (!I->getAsObjectFile(UO)) { if (ObjectFile *o = dyn_cast(&*UO.get())) { + MachOObjectFile *MachO = dyn_cast(o); if (OutputFormat == sysv) outs() << o->getFileName() << " :\n"; + else if(MachO && OutputFormat == darwin) { + if (moreThanOneFile || moreThanOneArch) + outs() << o->getFileName() << " (for architecture " + << I->getArchTypeName() << "):"; + outs() << "\n"; + } PrintObjectSectionSizes(o); if (OutputFormat == berkeley) { - MachOObjectFile *MachO = dyn_cast(o); if (!MachO || moreThanOneFile || moreThanOneArch) - outs() << o->getFileName(); + outs() << o->getFileName() << " (for architecture " + << I->getArchTypeName() << ")"; outs() << "\n"; } } @@ -495,11 +502,15 @@ static void PrintFileSectionSizes(StringRef file) { outs() << o->getFileName() << " (ex " << UA->getFileName() << "):\n"; else if(MachO && OutputFormat == darwin) - outs() << UA->getFileName() << "(" << o->getFileName() << "):\n"; + outs() << UA->getFileName() << "(" << o->getFileName() << ")" + << " (for architecture " << I->getArchTypeName() + << "):\n"; PrintObjectSectionSizes(o); if (OutputFormat == berkeley) { if (MachO) - outs() << UA->getFileName() << "(" << o->getFileName() << ")\n"; + outs() << UA->getFileName() << "(" << o->getFileName() << ")" + << " (for architecture " << I->getArchTypeName() + << ")\n"; else outs() << o->getFileName() << " (ex " << UA->getFileName() << ")\n"; -- cgit v1.2.3