mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-23 12:08:25 +00:00
llvmc: put linker options in a separate OptList.
llvm-svn: 114427
This commit is contained in:
parent
b68bd70665
commit
2294629636
@ -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"),
|
||||
|
Loading…
Reference in New Issue
Block a user