diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-09-13 01:27:53 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-09-13 01:27:53 +0000 |
commit | c0af3f00529eefd09c708e9ef6827f5199c4fd77 (patch) | |
tree | 57e6488ba7036c4e156fe6c058bfe576b3bc5c0d /tools/llvm-ld/llvm-ld.h | |
parent | 247384c0412758e1ab5f75fcc663944b61985c6f (diff) |
Initial implementation of llvm-ld: stolen from gccld.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16305 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ld/llvm-ld.h')
-rw-r--r-- | tools/llvm-ld/llvm-ld.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tools/llvm-ld/llvm-ld.h b/tools/llvm-ld/llvm-ld.h new file mode 100644 index 0000000000..85bf933a02 --- /dev/null +++ b/tools/llvm-ld/llvm-ld.h @@ -0,0 +1,67 @@ +//===- llvm-ld.h - Utility functions header file ----------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file contains function prototypes for the functions in util.cpp. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Module.h" + +#include <string> +#include <set> +#include <ostream> + +namespace llvm { + +void +GetAllDefinedSymbols (Module *M, std::set<std::string> &DefinedSymbols); + +void +GetAllUndefinedSymbols(Module *M, std::set<std::string> &UndefinedSymbols); + +int +GenerateBytecode (Module * M, + bool Strip, + bool Internalize, + std::ostream * Out); + +int +GenerateAssembly (const std::string & OutputFilename, + const std::string & InputFilename, + const std::string & llc, + char ** const envp); + +int GenerateCFile(const std::string &OutputFile, const std::string &InputFile, + const std::string &llc, char ** const envp); +int +GenerateNative (const std::string & OutputFilename, + const std::string & InputFilename, + const std::vector<std::string> & Libraries, + const std::vector<std::string> & LibPaths, + const std::string & gcc, + char ** const envp); + +std::auto_ptr<Module> +LoadObject (const std::string & FN, std::string &OutErrorMessage); + +std::string FindLib(const std::string &Filename, + const std::vector<std::string> &Paths, + bool SharedObjectOnly = false); + +void LinkLibraries (const char * progname, Module* HeadModule, + const std::vector<std::string> & Libraries, + const std::vector<std::string> & LibPaths, + bool Verbose, bool Native); +bool +LinkFiles (const char * progname, + Module * HeadModule, + const std::vector<std::string> & Files, + bool Verbose); + +} // End llvm namespace |