[llvm-commits] [llvm] r114427 - /llvm/trunk/tools/llvmc/src/Base.td.in

Mikhail Glushenkov foldr at codedgers.com
Tue Sep 21 04:57:04 PDT 2010


Author: foldr
Date: Tue Sep 21 06:57:04 2010
New Revision: 114427

URL: http://llvm.org/viewvc/llvm-project?rev=114427&view=rev
Log:
llvmc: put linker options in a separate OptList.

Modified:
    llvm/trunk/tools/llvmc/src/Base.td.in

Modified: llvm/trunk/tools/llvmc/src/Base.td.in
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvmc/src/Base.td.in?rev=114427&r1=114426&r2=114427&view=diff
==============================================================================
--- llvm/trunk/tools/llvmc/src/Base.td.in (original)
+++ llvm/trunk/tools/llvmc/src/Base.td.in Tue Sep 21 06:57:04 2010
@@ -35,8 +35,6 @@
     (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 @@
     (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 @@
  (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 @@
     (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 @@
     (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 @@
 
 // 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 @@
 ]>;
 
 // 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 @@
           (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"),





More information about the llvm-commits mailing list