mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -35,8 +35,6 @@ def OptList : OptionList<[ | |||||||
|     (help "Stop after compilation, do not assemble")), |     (help "Stop after compilation, do not assemble")), | ||||||
|  (switch_option "c", |  (switch_option "c", | ||||||
|     (help "Compile and assemble, but do not link")), |     (help "Compile and assemble, but do not link")), | ||||||
|  (switch_option "pthread", |  | ||||||
|     (help "Enable threads")), |  | ||||||
|  (switch_option "m32", |  (switch_option "m32", | ||||||
|     (help "Generate code for a 32-bit environment"), (hidden)), |     (help "Generate code for a 32-bit environment"), (hidden)), | ||||||
|  (switch_option "m64", |  (switch_option "m64", | ||||||
| @@ -45,18 +43,10 @@ def OptList : OptionList<[ | |||||||
|     (help "Relocation model: PIC"), (hidden)), |     (help "Relocation model: PIC"), (hidden)), | ||||||
|  (switch_option "mdynamic-no-pic", |  (switch_option "mdynamic-no-pic", | ||||||
|     (help "Relocation model: dynamic-no-pic"), (hidden)), |     (help "Relocation model: dynamic-no-pic"), (hidden)), | ||||||
|  (switch_option "shared", |  | ||||||
|      (help "Create a DLL instead of the regular executable")), |  | ||||||
|  (parameter_option "linker", |  (parameter_option "linker", | ||||||
|     (help "Choose linker (possible values: gcc, g++)")), |     (help "Choose linker (possible values: gcc, g++)")), | ||||||
|  (parameter_option "mtune", |  (parameter_option "mtune", | ||||||
|     (help "Target a specific CPU type"), (hidden), (forward_not_split)), |     (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", |  (parameter_option "march", | ||||||
|     (help "A synonym for -mtune"), (hidden), (forward_not_split)), |     (help "A synonym for -mtune"), (hidden), (forward_not_split)), | ||||||
|  (parameter_option "mcpu", |  (parameter_option "mcpu", | ||||||
| @@ -73,14 +63,6 @@ def OptList : OptionList<[ | |||||||
|  (parameter_list_option "iquote", |  (parameter_list_option "iquote", | ||||||
|     (help "Search dir only for files requested with #inlcude \"file\""), |     (help "Search dir only for files requested with #inlcude \"file\""), | ||||||
|     (hidden)), |     (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", |  (prefix_list_option "I", | ||||||
|     (help "Add a directory to include path")), |     (help "Add a directory to include path")), | ||||||
|  (prefix_list_option "D", |  (prefix_list_option "D", | ||||||
| @@ -93,10 +75,6 @@ def OptList : OptionList<[ | |||||||
|     (help "Pass options to assembler")), |     (help "Pass options to assembler")), | ||||||
|  (prefix_list_option "Wllc,", (comma_separated), |  (prefix_list_option "Wllc,", (comma_separated), | ||||||
|     (help "Pass options to llc")), |     (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,", |  (prefix_list_option "Wl,", | ||||||
|     (help "Pass options to linker")), |     (help "Pass options to linker")), | ||||||
|  (parameter_list_option "Xlinker", (hidden), |  (parameter_list_option "Xlinker", (hidden), | ||||||
| @@ -105,7 +83,56 @@ def OptList : OptionList<[ | |||||||
|     (help "Pass options to opt")), |     (help "Pass options to opt")), | ||||||
|  (prefix_list_option "m", |  (prefix_list_option "m", | ||||||
|      (help "Enable or disable various extensions (-mmmx, -msse, etc.)"), |      (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), |  (switch_option "dynamiclib", (hidden), | ||||||
|      (help "Produce a dynamic library")), |      (help "Produce a dynamic library")), | ||||||
|  (switch_option "prebind", (hidden), |  (switch_option "prebind", (hidden), | ||||||
| @@ -137,12 +164,12 @@ def Preprocess : OptionPreprocessor< | |||||||
|  |  | ||||||
| // Tools | // 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< |                       string E_ext, string out_lang> : Tool< | ||||||
| [(in_language in_lang), | [(in_language in_lang), | ||||||
|  (out_language "llvm-bitcode"), |  (out_language "llvm-bitcode"), | ||||||
|  (output_suffix out_lang), |  (output_suffix out_lang), | ||||||
|  (command cmd_prefix), |  (command cmd), | ||||||
|  (actions |  (actions | ||||||
|      (case |      (case | ||||||
|          (and (not_empty "o"), |          (and (not_empty "o"), | ||||||
| @@ -261,11 +288,11 @@ def llc : Tool< | |||||||
| ]>; | ]>; | ||||||
|  |  | ||||||
| // Base class for linkers | // 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"]), | [(in_language ["object-code", "static-library", "dynamic-library"]), | ||||||
|  (out_language "executable"), |  (out_language "executable"), | ||||||
|  (output_suffix "out"), |  (output_suffix "out"), | ||||||
|  (command cmd_prefix), |  (command cmd), | ||||||
|  (works_on_empty (case (and (not_empty "filelist"), on_empty), true, |  (works_on_empty (case (and (not_empty "filelist"), on_empty), true, | ||||||
|                        (default), false)), |                        (default), false)), | ||||||
|  (join), |  (join), | ||||||
| @@ -282,7 +309,18 @@ class llvm_gcc_based_linker <string cmd_prefix, dag on_empty> : Tool< | |||||||
|           (not_empty "l"), (forward "l"), |           (not_empty "l"), (forward "l"), | ||||||
|           (not_empty "Xlinker"), (forward "Xlinker"), |           (not_empty "Xlinker"), (forward "Xlinker"), | ||||||
|           (not_empty "Wl,"), (forward "Wl,"), |           (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"), (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 "dynamiclib"), (forward "dynamiclib"), | ||||||
|           (switch_on "prebind"), (forward "prebind"), |           (switch_on "prebind"), (forward "prebind"), | ||||||
|           (switch_on "dead_strip"), (forward "dead_strip"), |           (switch_on "dead_strip"), (forward "dead_strip"), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user