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.

Also clean up the Mach-O printing of archive membernames in llvm-nm to use
the darwin form of "libx.a(foo.o)".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211316 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Kevin Enderby
2014-06-19 22:03:18 +00:00
parent 0b5745abd8
commit c28016e413
6 changed files with 47 additions and 22 deletions

View File

@ -469,13 +469,20 @@ static void PrintFileSectionSizes(StringRef file) {
std::unique_ptr<Archive> UA;
if (!I->getAsObjectFile(UO)) {
if (ObjectFile *o = dyn_cast<ObjectFile>(&*UO.get())) {
MachOObjectFile *MachO = dyn_cast<MachOObjectFile>(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<MachOObjectFile>(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";