Add support for the gnu ld -s (strip) option
authorChris Lattner <sabre@nondot.org>
Mon, 8 Apr 2002 05:18:12 +0000 (05:18 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 8 Apr 2002 05:18:12 +0000 (05:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2157 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gccld/gccld.cpp

index 4d369cdeba5a6214dc7b96fa2fef92d0e80677c9..66d1afb4f30f7e16323a5f63832512748e5cfcbc 100644 (file)
@@ -19,6 +19,7 @@
 #include "llvm/PassManager.h"
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Bytecode/WriteBytecodePass.h"
+#include "llvm/Transforms/SymbolStripping.h"
 #include "llvm/Transforms/CleanupGCCOutput.h"
 #include "llvm/Transforms/ConstantMerge.h"
 #include "llvm/Transforms/IPO/GlobalDCE.h"
@@ -36,7 +37,7 @@ cl::String OutputFilename("o", "Override output filename", cl::NoFlags,"a.out");
 cl::Flag   Verbose       ("v", "Print information about actions taken");
 cl::StringList LibPaths  ("L", "Specify a library search path", cl::ZeroOrMore);
 cl::StringList Libraries ("l", "Specify libraries to link to", cl::ZeroOrMore);
-
+cl::Flag       Strip     ("s", "Strip symbol info from executable");
 
 // FileExists - Return true if the specified string is an openable file...
 static inline bool FileExists(const std::string &FN) {
@@ -136,6 +137,13 @@ int main(int argc, char **argv) {
   //
   Passes.add(createCleanupGCCOutputPass());
 
+  // If the -s command line option was specified, strip the symbols out of the
+  // resulting program to make it smaller.  -s is a GCC option that we are
+  // supporting.
+  //
+  if (Strip)
+    Passes.add(createSymbolStrippingPass());
+
   // Now that composite has been compiled, scan through the module, looking for
   // a main function.  If main is defined, mark all other functions internal.
   //