ccc: Use toolChain arch name instead of looking for arch command line
argument; the toolchain should always know the arch.
- Fixes: <rdar://problem/6582911> -ccc-clang-archs doesn't work for excluding ppc
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65104 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Tools.py b/tools/ccc/ccclib/Tools.py
index dc349be..c1146a0 100644
--- a/tools/ccc/ccclib/Tools.py
+++ b/tools/ccc/ccclib/Tools.py
@@ -37,8 +37,13 @@
cmd_args.extend(arglist.render(arg))
cmd_args.extend(self.getGCCExtraArgs())
- if arch:
- cmd_args.extend(arglist.render(arch))
+
+ # If using a driver driver, force the arch.
+ if self.toolChain.driver.hostInfo.useDriverDriver():
+ # FIXME: Remove this branch once ok.
+ cmd_args.append('-arch')
+ cmd_args.append(self.toolChain.archName)
+
if isinstance(output, Jobs.PipedJob):
cmd_args.extend(['-o', '-'])
elif isinstance(phase.phase, Phases.SyntaxOnlyPhase):
@@ -141,8 +146,9 @@
cmd_args.append('--gstabs')
# Derived from asm spec.
- if arch:
- cmd_args.extend(arglist.render(arch))
+ cmd_args.append('-arch')
+ cmd_args.append(self.toolChain.archName)
+
cmd_args.append('-force_cpusubtype_ALL')
if (arglist.getLastArg(arglist.parser.m_kernelOption) or
arglist.getLastArg(arglist.parser.staticOption) or
@@ -252,13 +258,11 @@
not arglist.getLastArg(arglist.parser.m_dynamicNoPicOption)))
# FIXME: This needs to tie into a platform hook.
- if arch:
- archName = arglist.getValue(arch)
- if (archName == 'x86_64' or
- picEnabled):
- cmd_args.append('--relocation-model=pic')
- elif not arglist.getLastArg(arglist.parser.m_dynamicNoPicOption):
- cmd_args.append('--relocation-model=static')
+ if (self.toolChain.archName == 'x86_64' or
+ picEnabled):
+ cmd_args.append('--relocation-model=pic')
+ elif not arglist.getLastArg(arglist.parser.m_dynamicNoPicOption):
+ cmd_args.append('--relocation-model=static')
if arglist.getLastArg(arglist.parser.f_timeReportOption):
cmd_args.append('--time-passes')
@@ -353,8 +357,10 @@
for arg in arglist.getArgs(arglist.parser.XclangOption):
cmd_args.extend(arglist.getValues(arg))
- if arch is not None:
- cmd_args.extend(arglist.render(arch))
+ # FIXME: We should always pass this once it is always known.
+ if self.toolChain.archName:
+ cmd_args.append('-arch')
+ cmd_args.append(self.toolChain.archName)
if isinstance(output, Jobs.PipedJob):
cmd_args.extend(['-o', '-'])
@@ -583,7 +589,7 @@
arglist.addLastArg(cmd_args, arglist.parser.POption)
# FIXME: Handle %I properly.
- if arglist.getValue(arch) == 'x86_64':
+ if self.toolChain.archName == 'x86_64':
cmd_args.append('-imultilib')
cmd_args.append('x86_64')
@@ -796,13 +802,7 @@
def addDarwinArch(self, cmd_args, arch, arglist):
# Derived from darwin_arch spec.
cmd_args.append('-arch')
- # FIXME: The actual spec uses -m64 for this, but we want to
- # respect arch. Figure out what exactly gcc is doing.
- #if arglist.getLastArg(arglist.parser.m_64Option):
- if arglist.getValue(arch) == 'x86_64':
- cmd_args.append('x86_64')
- else:
- cmd_args.append('i386')
+ cmd_args.append(self.toolChain.archName)
def addDarwinSubArch(self, cmd_args, arch, arglist):
# Derived from darwin_subarch spec, not sure what the
@@ -1109,7 +1109,7 @@
# FIXME: Derive these correctly.
tcDir = self.toolChain.getToolChainDir()
- if arglist.getValue(arch) == 'x86_64':
+ if self.toolChain.archName == 'x86_64':
cmd_args.extend(["-L/usr/lib/gcc/%s/x86_64" % tcDir,
"-L/usr/lib/gcc/%s/x86_64" % tcDir])
cmd_args.extend(["-L/usr/lib/%s" % tcDir,