summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-size
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2016-12-16 22:54:02 +0000
committerKevin Enderby <enderby@apple.com>2016-12-16 22:54:02 +0000
commit59343a9429f67617e6a601767eda98dfc41e46bf (patch)
treea835619c7daf9fa49f700d6b2221bf517ac2ec44 /llvm/tools/llvm-size
parent46225b193fd956545be97a83cecb4a3b6d3d6f17 (diff)
downloadbcm5719-llvm-59343a9429f67617e6a601767eda98dfc41e46bf.tar.gz
bcm5719-llvm-59343a9429f67617e6a601767eda98dfc41e46bf.zip
Fix a bugs with using some Mach-O command line flags like "-arch armv7m".
The Mach-O command line flag like "-arch armv7m" does not match the arch name part of its llvm Triple which is "thumbv7m-apple-darwin”. I think the best way to fix this is to have llvm::object::MachOObjectFile::getArchTriple() optionally return the name of the Mach-O arch flag that would be used with -arch that matches the CPUType and CPUSubType. Then change llvm::object::MachOUniversalBinary::ObjectForArch::getArchTypeName() to use that and change it to getArchFlagName() as the type name is really part of the Triple and the -arch flag name is a Mach-O thing for a specific Triple with a specific Mcpu value. rdar://29663637 llvm-svn: 290001
Diffstat (limited to 'llvm/tools/llvm-size')
-rw-r--r--llvm/tools/llvm-size/llvm-size.cpp40
1 files changed, 20 insertions, 20 deletions
diff --git a/llvm/tools/llvm-size/llvm-size.cpp b/llvm/tools/llvm-size/llvm-size.cpp
index 903e950bc73..e47cfca8c81 100644
--- a/llvm/tools/llvm-size/llvm-size.cpp
+++ b/llvm/tools/llvm-size/llvm-size.cpp
@@ -580,7 +580,7 @@ static void printFileSectionSizes(StringRef file) {
for (MachOUniversalBinary::object_iterator I = UB->begin_objects(),
E = UB->end_objects();
I != E; ++I) {
- if (ArchFlags[i] == I->getArchTypeName()) {
+ if (ArchFlags[i] == I->getArchFlagName()) {
ArchFound = true;
Expected<std::unique_ptr<ObjectFile>> UO = I->getAsObjectFile();
if (UO) {
@@ -591,20 +591,20 @@ static void printFileSectionSizes(StringRef file) {
else if (MachO && OutputFormat == darwin) {
if (MoreThanOneFile || ArchFlags.size() > 1)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << "): \n";
+ << I->getArchFlagName() << "): \n";
}
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
if (!MachO || MoreThanOneFile || ArchFlags.size() > 1)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << ")";
+ << I->getArchFlagName() << ")";
outs() << "\n";
}
}
} else if (auto E = isNotObjectErrorInvalidFileType(
UO.takeError())) {
error(std::move(E), file, ArchFlags.size() > 1 ?
- StringRef(I->getArchTypeName()) : StringRef());
+ StringRef(I->getArchFlagName()) : StringRef());
return;
} else if (Expected<std::unique_ptr<Archive>> AOrErr =
I->getAsArchive()) {
@@ -619,7 +619,7 @@ static void printFileSectionSizes(StringRef file) {
ChildOrErr.takeError()))
error(std::move(E), UA->getFileName(), C,
ArchFlags.size() > 1 ?
- StringRef(I->getArchTypeName()) : StringRef());
+ StringRef(I->getArchFlagName()) : StringRef());
continue;
}
if (ObjectFile *o = dyn_cast<ObjectFile>(&*ChildOrErr.get())) {
@@ -630,7 +630,7 @@ static void printFileSectionSizes(StringRef file) {
else if (MachO && OutputFormat == darwin)
outs() << UA->getFileName() << "(" << o->getFileName()
<< ")"
- << " (for architecture " << I->getArchTypeName()
+ << " (for architecture " << I->getArchFlagName()
<< "):\n";
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
@@ -638,7 +638,7 @@ static void printFileSectionSizes(StringRef file) {
outs() << UA->getFileName() << "(" << o->getFileName()
<< ")";
if (ArchFlags.size() > 1)
- outs() << " (for architecture " << I->getArchTypeName()
+ outs() << " (for architecture " << I->getArchFlagName()
<< ")";
outs() << "\n";
} else
@@ -652,7 +652,7 @@ static void printFileSectionSizes(StringRef file) {
} else {
consumeError(AOrErr.takeError());
error("Mach-O universal file: " + file + " for architecture " +
- StringRef(I->getArchTypeName()) +
+ StringRef(I->getArchFlagName()) +
" is not a Mach-O file or an archive file");
}
}
@@ -672,7 +672,7 @@ static void printFileSectionSizes(StringRef file) {
for (MachOUniversalBinary::object_iterator I = UB->begin_objects(),
E = UB->end_objects();
I != E; ++I) {
- if (HostArchName == I->getArchTypeName()) {
+ if (HostArchName == I->getArchFlagName()) {
Expected<std::unique_ptr<ObjectFile>> UO = I->getAsObjectFile();
if (UO) {
if (ObjectFile *o = dyn_cast<ObjectFile>(&*UO.get())) {
@@ -682,13 +682,13 @@ static void printFileSectionSizes(StringRef file) {
else if (MachO && OutputFormat == darwin) {
if (MoreThanOneFile)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << "):\n";
+ << I->getArchFlagName() << "):\n";
}
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
if (!MachO || MoreThanOneFile)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << ")";
+ << I->getArchFlagName() << ")";
outs() << "\n";
}
}
@@ -716,7 +716,7 @@ static void printFileSectionSizes(StringRef file) {
<< "):\n";
else if (MachO && OutputFormat == darwin)
outs() << UA->getFileName() << "(" << o->getFileName() << ")"
- << " (for architecture " << I->getArchTypeName()
+ << " (for architecture " << I->getArchFlagName()
<< "):\n";
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
@@ -734,7 +734,7 @@ static void printFileSectionSizes(StringRef file) {
} else {
consumeError(AOrErr.takeError());
error("Mach-O universal file: " + file + " for architecture " +
- StringRef(I->getArchTypeName()) +
+ StringRef(I->getArchFlagName()) +
" is not a Mach-O file or an archive file");
}
return;
@@ -756,20 +756,20 @@ static void printFileSectionSizes(StringRef file) {
else if (MachO && OutputFormat == darwin) {
if (MoreThanOneFile || MoreThanOneArch)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << "):";
+ << I->getArchFlagName() << "):";
outs() << "\n";
}
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
if (!MachO || MoreThanOneFile || MoreThanOneArch)
outs() << o->getFileName() << " (for architecture "
- << I->getArchTypeName() << ")";
+ << I->getArchFlagName() << ")";
outs() << "\n";
}
}
} else if (auto E = isNotObjectErrorInvalidFileType(UO.takeError())) {
error(std::move(E), file, MoreThanOneArch ?
- StringRef(I->getArchTypeName()) : StringRef());
+ StringRef(I->getArchFlagName()) : StringRef());
return;
} else if (Expected<std::unique_ptr<Archive>> AOrErr =
I->getAsArchive()) {
@@ -782,7 +782,7 @@ static void printFileSectionSizes(StringRef file) {
if (auto E = isNotObjectErrorInvalidFileType(
ChildOrErr.takeError()))
error(std::move(E), UA->getFileName(), C, MoreThanOneArch ?
- StringRef(I->getArchTypeName()) : StringRef());
+ StringRef(I->getArchFlagName()) : StringRef());
continue;
}
if (ObjectFile *o = dyn_cast<ObjectFile>(&*ChildOrErr.get())) {
@@ -792,12 +792,12 @@ static void printFileSectionSizes(StringRef file) {
<< "):\n";
else if (MachO && OutputFormat == darwin)
outs() << UA->getFileName() << "(" << o->getFileName() << ")"
- << " (for architecture " << I->getArchTypeName() << "):\n";
+ << " (for architecture " << I->getArchFlagName() << "):\n";
printObjectSectionSizes(o);
if (OutputFormat == berkeley) {
if (MachO)
outs() << UA->getFileName() << "(" << o->getFileName() << ")"
- << " (for architecture " << I->getArchTypeName()
+ << " (for architecture " << I->getArchFlagName()
<< ")\n";
else
outs() << o->getFileName() << " (ex " << UA->getFileName()
@@ -810,7 +810,7 @@ static void printFileSectionSizes(StringRef file) {
} else {
consumeError(AOrErr.takeError());
error("Mach-O universal file: " + file + " for architecture " +
- StringRef(I->getArchTypeName()) +
+ StringRef(I->getArchFlagName()) +
" is not a Mach-O file or an archive file");
}
}
OpenPOWER on IntegriCloud