]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/parsers/lto_file.h
ld64-351.8.tar.gz
[apple/ld64.git] / src / ld / parsers / lto_file.h
index 4140a3ae4bc27944c6fbb8f4a9db6d02cc33e33d..a086548da109335baba59f284f30d3a951457cc6 100644 (file)
@@ -31,33 +31,55 @@ namespace lto {
 
 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,