forked from OSchip/llvm-project
ccc: Darwin/Link also runs dsymutil in one very particular situation.
llvm-svn: 62154
This commit is contained in:
parent
13e82c0b6b
commit
eb83389b30
|
@ -689,6 +689,8 @@ class OptionParser:
|
|||
self.addOption(JoinedOption('-d', group=self.dGroup))
|
||||
|
||||
self.gGroup = OptionGroup('-g')
|
||||
self.gstabsOption = self.addOption(JoinedOption('-gstabs', self.gGroup))
|
||||
self.g0Option = self.addOption(JoinedOption('-g0', self.gGroup))
|
||||
self.g3Option = self.addOption(JoinedOption('-g3', self.gGroup))
|
||||
self.gOption = self.addOption(JoinedOption('-g', self.gGroup))
|
||||
|
||||
|
|
|
@ -879,10 +879,17 @@ class Darwin_X86_LinkTool(Tool):
|
|||
jobs.addJob(Jobs.Command(self.toolChain.getProgramPath('collect2'),
|
||||
cmd_args))
|
||||
|
||||
# FIXME: We need to add a dsymutil job here in some particular
|
||||
# cases (basically whenever we have a c-family input we are
|
||||
# compiling, I think). Find out why this is the condition, and
|
||||
# implement. See link_command spec for more details.
|
||||
if (arglist.getLastArg(arglist.parser.gGroup) and
|
||||
not arglist.getLastArg(arglist.parser.gstabsOption) and
|
||||
not arglist.getLastArg(arglist.parser.g0Option)):
|
||||
# FIXME: This is gross, but matches gcc. The test only
|
||||
# considers the suffix (not the -x type), and then only of the
|
||||
# first input.
|
||||
inputSuffix = os.path.splitext(arglist.getValue(inputs[0].baseInput))[1]
|
||||
if inputSuffix in ('.c','.cc','.C','.cpp','.cp',
|
||||
'.c++','.cxx','.CPP','.m','.mm'):
|
||||
jobs.addJob(Jobs.Command('dsymutil',
|
||||
arglist.renderAsInput(output)))
|
||||
|
||||
class LipoTool(Tool):
|
||||
def __init__(self):
|
||||
|
|
Loading…
Reference in New Issue