forked from OSchip/llvm-project
ccc: Honor -ccc-clang for generic GCC toolchain.
llvm-svn: 63277
This commit is contained in:
parent
a590802ed6
commit
df49b7cf2f
|
@ -205,9 +205,10 @@ class Generic_GCC_ToolChain(ToolChain):
|
|||
def __init__(self, driver):
|
||||
super(Generic_GCC_ToolChain, self).__init__(driver)
|
||||
cc = Tools.GCC_CompileTool()
|
||||
self.clangTool = Tools.Clang_CompileTool(self)
|
||||
self.toolMap = {
|
||||
Phases.PreprocessPhase : Tools.GCC_PreprocessTool(),
|
||||
Phases.AnalyzePhase : Tools.Clang_CompileTool(self),
|
||||
Phases.AnalyzePhase : self.clangTool,
|
||||
Phases.SyntaxOnlyPhase : cc,
|
||||
Phases.EmitLLVMPhase : cc,
|
||||
Phases.CompilePhase : cc,
|
||||
|
@ -218,4 +219,18 @@ class Generic_GCC_ToolChain(ToolChain):
|
|||
|
||||
def selectTool(self, action):
|
||||
assert isinstance(action, Phases.JobAction)
|
||||
|
||||
if self.driver.cccClang:
|
||||
if (action.inputs[0].type in (Types.CType, Types.CTypeNoPP,
|
||||
Types.ObjCType, Types.ObjCTypeNoPP) and
|
||||
(isinstance(action.phase, Phases.PreprocessPhase) or
|
||||
isinstance(action.phase, Phases.CompilePhase) or
|
||||
isinstance(action.phase, Phases.SyntaxOnlyPhase) or
|
||||
isinstance(action.phase, Phases.EmitLLVMPhase))):
|
||||
return self.clangTool
|
||||
elif (action.inputs[0].type in (Types.CHeaderType, Types.CHeaderNoPPType,
|
||||
Types.ObjCHeaderType, Types.ObjCHeaderNoPPType) and
|
||||
isinstance(action.phase, Phases.PrecompilePhase)):
|
||||
return self.clangTool
|
||||
|
||||
return self.toolMap[action.phase.__class__]
|
||||
|
|
|
@ -247,12 +247,14 @@ class Clang_CompileTool(Tool):
|
|||
not arglist.getLastArg(arglist.parser.staticOption) and
|
||||
not arglist.getLastArg(arglist.parser.m_dynamicNoPicOption)))
|
||||
|
||||
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')
|
||||
# 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 arglist.getLastArg(arglist.parser.f_timeReportOption):
|
||||
cmd_args.append('--time-passes')
|
||||
|
|
Loading…
Reference in New Issue