summaryrefslogtreecommitdiffstats
path: root/clang/tools/ccc/ccclib/Tools.py
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-01-12 03:33:58 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-01-12 03:33:58 +0000
commit02cd7e40709ddb6e7f470fc669200e4401c6a66c (patch)
treec938526edb67e66bddb4459d7ff080d06d4cd8b1 /clang/tools/ccc/ccclib/Tools.py
parentb2c42c648d5a9116bac5a2602a14d9d5c1b1aa7e (diff)
downloadbcm5719-llvm-02cd7e40709ddb6e7f470fc669200e4401c6a66c.tar.gz
bcm5719-llvm-02cd7e40709ddb6e7f470fc669200e4401c6a66c.zip
ccc: Support arguments which behave like linker inputs.
- Support comma joined options which magically turn into multiple value arguments (e.g., -Wl,) - Split out separate Arg::render routine for when an argument is being rendered as an input (as opposed to in its original form). - Add option flag for options which should be rendered without the option when they are used as an input (e.g., -Xlinker or -o). - Support -weak-l..., -weak_framework, and -weak_library. llvm-svn: 62075
Diffstat (limited to 'clang/tools/ccc/ccclib/Tools.py')
-rw-r--r--clang/tools/ccc/ccclib/Tools.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/tools/ccc/ccclib/Tools.py b/clang/tools/ccc/ccclib/Tools.py
index 17a9ce822a9..100344131fb 100644
--- a/clang/tools/ccc/ccclib/Tools.py
+++ b/clang/tools/ccc/ccclib/Tools.py
@@ -52,7 +52,13 @@ class GCC_Common_Tool(Tool):
if isinstance(input.source, Jobs.PipedJob):
cmd_args.append('-')
else:
- cmd_args.append(arglist.getValue(input.source))
+ assert isinstance(input.source, Arguments.Arg)
+ # If this is a linker input then assume we can forward
+ # just by rendering.
+ if input.source.opt.isLinkerInput:
+ cmd_args.extend(arglist.render(input.source))
+ else:
+ cmd_args.extend(arglist.renderAsInput(input.source))
jobs.addJob(Jobs.Command('gcc', cmd_args))
@@ -113,7 +119,7 @@ class DarwinAssembleTool(Tool):
if isinstance(input.source, Jobs.PipedJob):
cmd_args.append('-')
else:
- cmd_args.append(arglist.getValue(input.source))
+ cmd_args.extend(arglist.renderAsInput(input.source))
jobs.addJob(Jobs.Command('as', cmd_args))
class GCC_AssembleTool(GCC_Common_Tool):
@@ -471,7 +477,7 @@ class Darwin10_X86_LinkTool(Tool):
"-L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.."])
for input in inputs:
- cmd_args.append(arglist.getValue(input.source))
+ cmd_args.extend(arglist.renderAsInput(input.source))
if (arglist.getLastArg(arglist.parser.f_profileArcsOption) or
arglist.getLastArg(arglist.parser.f_profileGenerateOption) or
@@ -548,5 +554,5 @@ class LipoTool(Tool):
cmd_args = ['-create']
cmd_args.extend(arglist.render(output))
for input in inputs:
- cmd_args.append(arglist.getValue(input.source))
+ cmd_args.extend(arglist.renderAsInput(input.source))
jobs.addJob(Jobs.Command('lipo', cmd_args))
OpenPOWER on IntegriCloud