diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 18:13:00 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 18:13:00 +0000 |
commit | 978d498e401c292b6be5248abaf828b66739bcb8 (patch) | |
tree | 3486bcca95b0057240108c540cde0af192a59c81 /tools/llvmc2 | |
parent | 895820da243713e78ff3ee66ba54c4db4ee121ac (diff) | |
download | llvm-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.td | 9 | ||||
-rw-r--r-- | tools/llvmc2/Tools.td | 25 |
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 |