- void setupLazyPointerHandler();
- void applyPrebindingToDATA(uint8_t* fileToPrebind);
- void applyPrebindingToLoadCommands(const LinkContext& context, uint8_t* fileToPrebind, time_t timestamp);
- void applyPrebindingToLinkEdit(const LinkContext& context, uint8_t* fileToPrebind);
-#if !__LP64__ // split segs not supported for 64-bits
- unsigned int getExtraZeroFillEntriesCount();
- int sharedRegionLoadFile(int fd, uint64_t offsetInFat, uint64_t lenInFat, uint64_t fileLen, const LinkContext& context);
- int sharedRegionMapFile(int fd, uint64_t offsetInFat, uint64_t lenInFat, uint64_t fileLen, const LinkContext& context);
- int sharedRegionMakePrivate(const LinkContext& context);
- int sharedRegionMapFilePrivate(int fd, uint64_t offsetInFat, uint64_t lenInFat, uint64_t fileLen, const LinkContext& context);
- int sharedRegionMapFilePrivateOutside(int fd, uint64_t offsetInFat, uint64_t lenInFat, uint64_t fileLen, const LinkContext& context);
- void initMappingTable(uint64_t offsetInFat, sf_mapping *mappingTable, uintptr_t baseAddress);
- void initMappingTable(uint64_t offsetInFat, _shared_region_mapping_np *mappingTable);
-#endif
- bool needsCoalescing() const;
-
- static bool symbolRequiresCoalescing(const struct macho_nlist* symbol);
- static uintptr_t bindLazySymbol(const mach_header*, uintptr_t* lazyPointer);
- static const struct macho_nlist* binarySearch(const char* key, const char stringPool[], const struct macho_nlist symbols[], uint32_t symbolCount);
- static const struct macho_nlist* binarySearchWithToc(const char* key, const char stringPool[], const struct macho_nlist symbols[],
- const struct dylib_table_of_contents toc[], uint32_t symbolCount, uint32_t hintIndex);
-
- const uint8_t* fMachOData;
- const uint8_t* fLinkEditBase; // add any internal "offset" to this to get actual address
- const struct macho_nlist* fSymbolTable;
- const char* fStrings;
- const struct dysymtab_command* fDynamicInfo;
- uintptr_t fSlide;
- bool fIsSplitSeg;
- bool fHasSubLibraries;
- bool fHasSubUmbrella;
- bool fTextSegmentHasFixups;
- const struct macho_routines_command* fDashInit;
- const struct macho_section* fModInitSection;
- const struct macho_section* fModTermSection;
- const struct macho_section* fDATAdyld;
- const struct macho_section* fImageNotifySection;
- const struct twolevel_hints_command* fTwoLevelHints;
- const struct dylib_command* fDylibID;
- const char* fReExportThruFramework;
- SegmentMachO* fTextSegmentWithFixups; // NULL unless __TEXT segment has fixups
-
- static uint32_t fgHintedBinaryTreeSearchs;
- static uint32_t fgUnhintedBinaryTreeSearchs;
-};