extern const char* version();
+extern unsigned int runtime_api_version();
+
+extern unsigned int static_api_version();
+
extern bool libLTOisLoaded();
extern const char* archName(const uint8_t* fileContent, uint64_t fileLength);
extern bool isObjectFile(const uint8_t* fileContent, uint64_t fileLength, cpu_type_t architecture, cpu_subtype_t subarch);
-extern ld::relocatable::File* parse(const uint8_t* fileContent, uint64_t fileLength,
+extern bool hasObjCCategory(const uint8_t* fileContent, uint64_t fileLength);
+
+extern ld::relocatable::File* parse(const uint8_t* fileContent, uint64_t fileLength,
const char* path, time_t modTime, ld::File::Ordinal ordinal,
cpu_type_t architecture, cpu_subtype_t subarch, bool logAllFiles,
bool verboseOptimizationHints);
struct OptimizeOptions {
const char* outputFilePath;
const char* tmpObjectFilePath;
+ const char* ltoCachePath;
+ int ltoPruneInterval;
+ int ltoPruneAfter;
+ unsigned ltoMaxCacheSize;
bool preserveAllGlobals;
bool verbose;
bool saveTemps;
bool pie;
bool mainExecutable;
bool staticExecutable;
+ bool preload;
bool relocatable;
bool allowTextRelocs;
bool linkerDeadStripping;
bool simulator;
bool ignoreMismatchPlatform;
bool bitcodeBundle;
+ uint8_t maxDefaultCommonAlignment;
cpu_type_t arch;
const char* mcpu;
Options::Platform platform;
+ uint32_t minOSVersion;
const std::vector<const char*>* llvmOptions;
const std::vector<const char*>* initialUndefines;
};