forked from OSchip/llvm-project
For Darwin, do not let -mcpu override the -arch option. <rdar://11059238>
On Darwin the architecture and the corresponding Mach-O slice is typically specified with -arch. If not, it defaults to the current host architecture. Do not use -mcpu to override the -arch value. This is only an issue when people need to use specialized code for a non-default CPU (hopefully guarded by run-time checks to detect the current processor). The -mcpu option is still used for the -target-cpu option to clang, but this patch causes it to not be used to set the architecture in the target triple. llvm-svn: 153197
This commit is contained in:
parent
eb4eb5cad9
commit
cc4ab9d9c0
|
@ -74,11 +74,15 @@ void ToolChain::configureObjCRuntime(ObjCRuntime &runtime) const {
|
|||
// FIXME: tblgen this.
|
||||
static const char *getARMTargetCPU(const ArgList &Args,
|
||||
const llvm::Triple &Triple) {
|
||||
// FIXME: Warn on inconsistent use of -mcpu and -march.
|
||||
|
||||
// If we have -mcpu=, use that.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
|
||||
return A->getValue(Args);
|
||||
// For Darwin targets, the -arch option (which is translated to a
|
||||
// corresponding -march option) should determine the architecture
|
||||
// (and the Mach-O slice) regardless of any -mcpu options.
|
||||
if (!Triple.isOSDarwin()) {
|
||||
// FIXME: Warn on inconsistent use of -mcpu and -march.
|
||||
// If we have -mcpu=, use that.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ))
|
||||
return A->getValue(Args);
|
||||
}
|
||||
|
||||
StringRef MArch;
|
||||
if (Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
|
||||
|
|
Loading…
Reference in New Issue