From b4c7a12aeae6283916c6e03a9bd625e54ffbeafd Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov Date: Tue, 21 Sep 2010 11:57:04 +0000 Subject: 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 --- tools/llvmc/src/Base.td.in | 92 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 65 insertions(+), 27 deletions(-) (limited to 'tools') 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 : 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 : Tool< +class llvm_gcc_based_linker : 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 : 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"), -- cgit v1.2.3