Fix a bugs with using some Mach-O command line flags like "-arch armv7m".
authorKevin Enderby <enderby@apple.com>
Fri, 16 Dec 2016 22:54:02 +0000 (22:54 +0000)
committerKevin Enderby <enderby@apple.com>
Fri, 16 Dec 2016 22:54:02 +0000 (22:54 +0000)
commit59343a9429f67617e6a601767eda98dfc41e46bf
treea835619c7daf9fa49f700d6b2221bf517ac2ec44
parent46225b193fd956545be97a83cecb4a3b6d3d6f17
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
llvm/include/llvm/Object/MachO.h
llvm/include/llvm/Object/MachOUniversal.h
llvm/lib/Object/MachOObjectFile.cpp
llvm/lib/Object/MachOUniversal.cpp
llvm/test/tools/llvm-objdump/ARM/Inputs/fat-armv7m.o [new file with mode: 0644]
llvm/test/tools/llvm-objdump/ARM/macho-arch-armv7m-flag.test [new file with mode: 0644]
llvm/test/tools/llvm-symbolizer/fat.test
llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
llvm/tools/llvm-nm/llvm-nm.cpp
llvm/tools/llvm-objdump/MachODump.cpp
llvm/tools/llvm-size/llvm-size.cpp