ccc: (Darwin) Pass -ObjC to linker if -ObjC, -ObjC++ or -fobjc is
present. llvm-svn: 62070
This commit is contained in:
parent
00057e4e09
commit
027c5fbb6d
|
|
@ -370,10 +370,8 @@ class OptionParser:
|
||||||
self.oOption = self.addOption(JoinedOrSeparateOption('-o'))
|
self.oOption = self.addOption(JoinedOrSeparateOption('-o'))
|
||||||
self.xOption = self.addOption(JoinedOrSeparateOption('-x'))
|
self.xOption = self.addOption(JoinedOrSeparateOption('-x'))
|
||||||
|
|
||||||
# FIXME: What do these actually do? The documentation is less than
|
self.ObjCOption = self.addOption(FlagOption('-ObjC'))
|
||||||
# clear.
|
self.ObjCXXOption = self.addOption(FlagOption('-ObjC++'))
|
||||||
self.addOption(FlagOption('-ObjC'))
|
|
||||||
self.addOption(FlagOption('-ObjC++'))
|
|
||||||
|
|
||||||
# FIXME: Weird, gcc claims this here in help but I'm not sure why;
|
# FIXME: Weird, gcc claims this here in help but I'm not sure why;
|
||||||
# perhaps interaction with preprocessor? Investigate.
|
# perhaps interaction with preprocessor? Investigate.
|
||||||
|
|
@ -559,6 +557,7 @@ class OptionParser:
|
||||||
self.addOption(JoinedOption('-g'))
|
self.addOption(JoinedOption('-g'))
|
||||||
|
|
||||||
self.f_exceptionsOption = self.addOption(FlagOption('-fexceptions'))
|
self.f_exceptionsOption = self.addOption(FlagOption('-fexceptions'))
|
||||||
|
self.f_objcOption = self.addOption(FlagOption('-fobjc'))
|
||||||
self.f_openmpOption = self.addOption(FlagOption('-fopenmp'))
|
self.f_openmpOption = self.addOption(FlagOption('-fopenmp'))
|
||||||
self.f_gnuRuntimeOption = self.addOption(FlagOption('-fgnu-runtime'))
|
self.f_gnuRuntimeOption = self.addOption(FlagOption('-fgnu-runtime'))
|
||||||
self.f_nestedFunctionsOption = self.addOption(FlagOption('-fnested-functions'))
|
self.f_nestedFunctionsOption = self.addOption(FlagOption('-fnested-functions'))
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,8 @@ class Darwin10_X86_LinkTool(Tool):
|
||||||
assert outputType is Types.ImageType
|
assert outputType is Types.ImageType
|
||||||
|
|
||||||
# The logic here is derived from gcc's behavior; most of which
|
# The logic here is derived from gcc's behavior; most of which
|
||||||
# comes from specs (link_command). Consult gcc for more information.
|
# comes from specs (starting with link_command). Consult gcc
|
||||||
|
# for more information.
|
||||||
|
|
||||||
# FIXME: gcc's spec controls when this is done; certain things
|
# FIXME: gcc's spec controls when this is done; certain things
|
||||||
# like -filelist or -Wl, still trigger a link stage. I don't
|
# like -filelist or -Wl, still trigger a link stage. I don't
|
||||||
|
|
@ -371,9 +372,13 @@ class Darwin10_X86_LinkTool(Tool):
|
||||||
# Not sure why this particular decomposition exists in gcc.
|
# Not sure why this particular decomposition exists in gcc.
|
||||||
self.addLinkArgs(cmd_args, arch, arglist)
|
self.addLinkArgs(cmd_args, arch, arglist)
|
||||||
|
|
||||||
# FIXME: Need to insert "additional linker options accumulated
|
# This toolchain never accumlates options in specs, the only
|
||||||
# from compilation". What does this mean precisely? And where
|
# place this gets used is to add -ObjC.
|
||||||
# do -Wl, options and -Xlinker options come in?
|
if (arglist.getLastArg(arglist.parser.ObjCOption) or
|
||||||
|
arglist.getLastArg(arglist.parser.f_objcOption)):
|
||||||
|
cmd_args.append('-ObjC')
|
||||||
|
if arglist.getLastArg(arglist.parser.ObjCXXOption):
|
||||||
|
cmd_args.append('-ObjC')
|
||||||
|
|
||||||
# FIXME: gcc has %{x} in here. How could this ever happen?
|
# FIXME: gcc has %{x} in here. How could this ever happen?
|
||||||
# Cruft?
|
# Cruft?
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue