Mercurial > projects > ldc
view gen/cl_options.h @ 1404:11b122f92136
Now that templates instantiations are no longer emitted for all modules that
even blink at them they seem to break due to being linkonce (if compiled with
any optimization level > 0), so let's give them weak linkage instead.
The difference is that unreferenced linkonce symbols can be deleted, while
weak symbols need to be preserved.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Thu, 21 May 2009 15:23:28 +0200 |
parents | 1311dabc6a1f |
children | 8863cf7236e6 |
line wrap: on
line source
#ifndef LDC_CL_OPTIONS_H #define LDC_CL_OPTIONS_H #include "mars.h" #include <deque> #include <vector> #include "llvm/Support/RegistryParser.h" #include "llvm/Target/TargetMachineRegistry.h" #include "llvm/Support/CommandLine.h" namespace opts { namespace cl = llvm::cl; /* Mostly generated with the following command: egrep -e '^(cl::|#if|#e)' gen/cl_options.cpp \ | sed -re 's/^(cl::.*)\(.*$/ extern \1;/' */ extern cl::list<std::string> fileList; extern cl::list<std::string> runargs; extern cl::opt<bool> compileOnly; extern cl::opt<bool> noAsm; extern cl::opt<bool> dontWriteObj; extern cl::opt<std::string> objectFile; extern cl::opt<std::string> objectDir; extern cl::opt<bool> output_bc; extern cl::opt<bool> output_ll; extern cl::opt<bool> output_s; extern cl::opt<cl::boolOrDefault> output_o; extern cl::opt<std::string> ddocDir; extern cl::opt<std::string> ddocFile; #ifdef _DH extern cl::opt<std::string> hdrDir; extern cl::opt<std::string> hdrFile; #endif extern cl::list<std::string> versions; extern cl::opt<std::string> moduleDepsFile; extern cl::opt<const llvm::TargetMachineRegistry::entry*, false, llvm::RegistryParser<llvm::TargetMachine> > mArch; extern cl::opt<bool> m32bits; extern cl::opt<bool> m64bits; extern cl::opt<std::string> mCPU; extern cl::list<std::string> mAttrs; extern cl::opt<std::string> mTargetTriple; extern cl::opt<bool> singleObj; // Arguments to -d-debug extern std::vector<std::string> debugArgs; // Arguments to -run } #endif