aboutsummaryrefslogtreecommitdiff
path: root/tools/driver/NativeCompiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/driver/NativeCompiler.h')
-rw-r--r--tools/driver/NativeCompiler.h14
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);