From 2b59837f02350a0bd25bce93808bdb838cda0e08 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 8 Apr 2002 05:18:12 +0000 Subject: Add support for the gnu ld -s (strip) option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2157 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/gccld/gccld.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'tools/gccld') diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp index 4d369cd..66d1afb 100644 --- a/tools/gccld/gccld.cpp +++ b/tools/gccld/gccld.cpp @@ -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. // -- cgit v1.1