summaryrefslogtreecommitdiff
path: root/tools/llvmc2
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2008-05-06 18:13:00 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2008-05-06 18:13:00 +0000
commit978d498e401c292b6be5248abaf828b66739bcb8 (patch)
tree3486bcca95b0057240108c540cde0af192a59c81 /tools/llvmc2
parent895820da243713e78ff3ee66ba54c4db4ee121ac (diff)
downloadllvm-978d498e401c292b6be5248abaf828b66739bcb8.tar.gz
llvm-978d498e401c292b6be5248abaf828b66739bcb8.tar.bz2
llvm-978d498e401c292b6be5248abaf828b66739bcb8.tar.xz
Add a --linker command-line option, make all tests pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50755 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc2')
-rw-r--r--tools/llvmc2/Example.td9
-rw-r--r--tools/llvmc2/Tools.td25
2 files changed, 20 insertions, 14 deletions
diff --git a/tools/llvmc2/Example.td b/tools/llvmc2/Example.td
index 57629904d1..227090258a 100644
--- a/tools/llvmc2/Example.td
+++ b/tools/llvmc2/Example.td
@@ -33,6 +33,13 @@ def CompilationGraph : CompilationGraph<[
Edge<llc, llvm_gcc_assembler>,
Edge<llvm_gcc_assembler, llvm_gcc_linker>,
+ OptionalEdge<llvm_gcc_assembler, llvm_gcc_cpp_linker,
+ [(parameter_equals "linker", "g++"),
+ (parameter_equals "linker", "c++")]>,
- Edge<root, llvm_gcc_linker>
+
+ Edge<root, llvm_gcc_linker>,
+ OptionalEdge<root, llvm_gcc_cpp_linker,
+ [(parameter_equals "linker", "g++"),
+ (parameter_equals "linker", "c++")]>
]>;
diff --git a/tools/llvmc2/Tools.td b/tools/llvmc2/Tools.td
index 897892415e..e803915da6 100644
--- a/tools/llvmc2/Tools.td
+++ b/tools/llvmc2/Tools.td
@@ -81,19 +81,18 @@ def llvm_gcc_linker : Tool<
]>;
// Alternative linker for C++
-// TOTHINK: how to implement this best?
-// Something like input_file_language can only choose between two languages.
-// def llvm_gcc_cpp_linker : Tool<
-// [(in_language "object-code"),
-// (out_language "executable"),
-// (output_suffix "out"),
-// (cmd_line "llvm-g++ $INFILE -o $OUTFILE"),
-// (join),
-// //(input_file_language "c++"),
-// (prefix_list_option "L", (forward)),
-// (prefix_list_option "l", (forward)),
-// (prefix_list_option "Wl", (unpack_values))
-// ]>;
+def llvm_gcc_cpp_linker : Tool<
+[(in_language "object-code"),
+ (out_language "executable"),
+ (output_suffix "out"),
+ (cmd_line "llvm-g++ $INFILE -o $OUTFILE"),
+ (join),
+ (parameter_option "linker",
+ (help "Choose linker (possible values: gcc, g++)")),
+ (prefix_list_option "L", (forward)),
+ (prefix_list_option "l", (forward)),
+ (prefix_list_option "Wl", (unpack_values))
+]>;
// Language map