summaryrefslogtreecommitdiff
path: root/tools/llvmc
diff options
context:
space:
mode:
authorMikhail Glushenkov <foldr@codedgers.com>2010-09-21 11:57:04 +0000
committerMikhail Glushenkov <foldr@codedgers.com>2010-09-21 11:57:04 +0000
commitb4c7a12aeae6283916c6e03a9bd625e54ffbeafd (patch)
tree3d2aa7ead1e577608e279b59e12fd40d46b5631f /tools/llvmc
parent85ca1066328639119f94c47a83b698c48b84ebb0 (diff)
downloadllvm-b4c7a12aeae6283916c6e03a9bd625e54ffbeafd.tar.gz
llvm-b4c7a12aeae6283916c6e03a9bd625e54ffbeafd.tar.bz2
llvm-b4c7a12aeae6283916c6e03a9bd625e54ffbeafd.tar.xz
llvmc: put linker options in a separate OptList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114427 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvmc')
-rw-r--r--tools/llvmc/src/Base.td.in92
1 files changed, 65 insertions, 27 deletions
diff --git a/tools/llvmc/src/Base.td.in b/tools/llvmc/src/Base.td.in
index 0c4de4c3fa..f82276c7c3 100644
--- a/tools/llvmc/src/Base.td.in
+++ b/tools/llvmc/src/Base.td.in
@@ -35,8 +35,6 @@ def OptList : OptionList<[
(help "Stop after compilation, do not assemble")),
(switch_option "c",
(help "Compile and assemble, but do not link")),
- (switch_option "pthread",
- (help "Enable threads")),
(switch_option "m32",
(help "Generate code for a 32-bit environment"), (hidden)),
(switch_option "m64",
@@ -45,18 +43,10 @@ def OptList : OptionList<[
(help "Relocation model: PIC"), (hidden)),
(switch_option "mdynamic-no-pic",
(help "Relocation model: dynamic-no-pic"), (hidden)),
- (switch_option "shared",
- (help "Create a DLL instead of the regular executable")),
(parameter_option "linker",
(help "Choose linker (possible values: gcc, g++)")),
(parameter_option "mtune",
(help "Target a specific CPU type"), (hidden), (forward_not_split)),
-
- // TODO: Add a conditional compilation mechanism to make Darwin-only options
- // like '-arch' really Darwin-only.
-
- (parameter_option "arch",
- (help "Compile for the specified target architecture"), (hidden)),
(parameter_option "march",
(help "A synonym for -mtune"), (hidden), (forward_not_split)),
(parameter_option "mcpu",
@@ -73,14 +63,6 @@ def OptList : OptionList<[
(parameter_list_option "iquote",
(help "Search dir only for files requested with #inlcude \"file\""),
(hidden)),
- (parameter_list_option "framework",
- (help "Specifies a framework to link against")),
- (parameter_list_option "weak_framework",
- (help "Specifies a framework to weakly link against"), (hidden)),
- (parameter_option "filelist", (hidden),
- (help "Link the files listed in file")),
- (prefix_list_option "F",
- (help "Add a directory to framework search path")),
(prefix_list_option "I",
(help "Add a directory to include path")),
(prefix_list_option "D",
@@ -93,10 +75,6 @@ def OptList : OptionList<[
(help "Pass options to assembler")),
(prefix_list_option "Wllc,", (comma_separated),
(help "Pass options to llc")),
- (prefix_list_option "L",
- (help "Add a directory to link path")),
- (prefix_list_option "l",
- (help "Search a library when linking")),
(prefix_list_option "Wl,",
(help "Pass options to linker")),
(parameter_list_option "Xlinker", (hidden),
@@ -105,7 +83,56 @@ def OptList : OptionList<[
(help "Pass options to opt")),
(prefix_list_option "m",
(help "Enable or disable various extensions (-mmmx, -msse, etc.)"),
- (hidden)),
+ (hidden))
+]>;
+
+def LinkerOptList : OptionList<[
+ (prefix_list_option "L",
+ (help "Add a directory to link path")),
+ (prefix_list_option "l",
+ (help "Search a library when linking")),
+ (parameter_option "filelist", (hidden),
+ (help "Link the files listed in file")),
+ (switch_option "nostartfiles",
+ (help "Do not use the standard system startup files when linking"),
+ (hidden)),
+ (switch_option "nodefaultlibs",
+ (help "Do not use the standard system libraries when linking"), (hidden)),
+ (switch_option "nostdlib",
+ (help
+ "Do not use the standard system startup files or libraries when linking"),
+ (hidden)),
+ (switch_option "pie",
+ (help "Produce a position independent executable"), (hidden)),
+ (switch_option "rdynamic",
+ (help "Add all symbols to the dynamic export table"), (hidden)),
+ (switch_option "s",
+ (help "Strip all symbols"), (hidden)),
+ (switch_option "static",
+ (help "Do not link against shared libraries"), (hidden)),
+ (switch_option "static-libgcc",
+ (help "Use static libgcc"), (hidden)),
+ (switch_option "shared",
+ (help "Create a DLL instead of the regular executable")),
+ (switch_option "shared-libgcc",
+ (help "Use shared libgcc"), (hidden)),
+ (parameter_option "T",
+ (help "Read linker script"), (hidden)),
+ (parameter_option "u",
+ (help "Start with undefined reference to SYMBOL"), (hidden)),
+ (switch_option "pthread",
+ (help "Enable threads")),
+
+ // TODO: Add a conditional compilation mechanism to make Darwin-only options
+ // like '-arch' really Darwin-only.
+ (parameter_option "arch",
+ (help "Compile for the specified target architecture"), (hidden)),
+ (prefix_list_option "F",
+ (help "Add a directory to framework search path")),
+ (parameter_list_option "framework",
+ (help "Specifies a framework to link against")),
+ (parameter_list_option "weak_framework",
+ (help "Specifies a framework to weakly link against"), (hidden)),
(switch_option "dynamiclib", (hidden),
(help "Produce a dynamic library")),
(switch_option "prebind", (hidden),
@@ -137,12 +164,12 @@ def Preprocess : OptionPreprocessor<
// Tools
-class llvm_gcc_based <string cmd_prefix, string in_lang,
+class llvm_gcc_based <string cmd, string in_lang,
string E_ext, string out_lang> : Tool<
[(in_language in_lang),
(out_language "llvm-bitcode"),
(output_suffix out_lang),
- (command cmd_prefix),
+ (command cmd),
(actions
(case
(and (not_empty "o"),
@@ -261,11 +288,11 @@ def llc : Tool<
]>;
// Base class for linkers
-class llvm_gcc_based_linker <string cmd_prefix, dag on_empty> : Tool<
+class llvm_gcc_based_linker <string cmd, dag on_empty> : Tool<
[(in_language ["object-code", "static-library", "dynamic-library"]),
(out_language "executable"),
(output_suffix "out"),
- (command cmd_prefix),
+ (command cmd),
(works_on_empty (case (and (not_empty "filelist"), on_empty), true,
(default), false)),
(join),
@@ -282,7 +309,18 @@ class llvm_gcc_based_linker <string cmd_prefix, dag on_empty> : Tool<
(not_empty "l"), (forward "l"),
(not_empty "Xlinker"), (forward "Xlinker"),
(not_empty "Wl,"), (forward "Wl,"),
+ (switch_on "nostartfiles"), (forward "nostartfiles"),
+ (switch_on "nodefaultlibs"), (forward "nodefaultlibs"),
+ (switch_on "nostdlib"), (forward "nostdlib"),
+ (switch_on "pie"), (forward "pie"),
+ (switch_on "rdynamic"), (forward "rdynamic"),
+ (switch_on "s"), (forward "s"),
+ (switch_on "static"), (forward "static"),
+ (switch_on "static-libgcc"), (forward "static-libgcc"),
(switch_on "shared"), (forward "shared"),
+ (switch_on "shared-libgcc"), (forward "shared-libgcc"),
+ (not_empty "T"), (forward "T"),
+ (not_empty "u"), (forward "u"),
(switch_on "dynamiclib"), (forward "dynamiclib"),
(switch_on "prebind"), (forward "prebind"),
(switch_on "dead_strip"), (forward "dead_strip"),