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);
+ 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 ltoCodegenOnly;
bool pie;
bool mainExecutable;
bool staticExecutable;
+ bool preload;
bool relocatable;
bool allowTextRelocs;
bool linkerDeadStripping;
bool needsUnwindInfoSection;
bool keepDwarfUnwind;
+ bool verboseOptimizationHints;
+ bool armUsesZeroCostExceptions;
+ 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;
};
extern bool optimize( const std::vector<const ld::Atom*>& allAtoms,