diff options
Diffstat (limited to 'tools/driver/NativeCompiler.h')
| -rw-r--r-- | tools/driver/NativeCompiler.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/driver/NativeCompiler.h b/tools/driver/NativeCompiler.h index 5e13c4d..ffc38f1 100644 --- a/tools/driver/NativeCompiler.h +++ b/tools/driver/NativeCompiler.h @@ -1,9 +1,21 @@ #pragma once #include "llvm/ADT/StringRef.h" +#include "llvm/ADT/StringSet.h" +#include <string> +#include <vector> namespace cps { class CodeGen; } // Generate a host executable without an external compiler, linker or SDK. // Failure leaves any existing output intact and reports a diagnostic. -bool compileNative(const cps::CodeGen &CG, llvm::StringRef OutputPath, const char *Argv0); +// Objects named by INCLUDE_OBJ are linked after the program object. +bool compileNative(const cps::CodeGen &CG, llvm::StringRef OutputPath, const char *Argv0, + const std::vector<std::string> &Objects); + +// Defined global C symbols of an INCLUDE_OBJ object file. Returns false with a +// message when the file cannot be read or is not an object file. +bool collectObjectSymbols(llvm::StringRef Path, llvm::StringSet<> &Out, std::string &Error); + +// Defined global symbols of the embedded C library (INCLUDE_OBJ "__libc"). +bool collectLibcSymbols(llvm::StringSet<> &Out); |
