Loading...
--- dyld/dyld-750.6/dyld3/libdyldEntryVector.cpp
+++ dyld/dyld-852/dyld3/libdyldEntryVector.cpp
@@ -38,7 +38,8 @@
VIS_HIDDEN const char** appleParams;
-extern bool gUseDyld3;
+extern void* __ptrauth_dyld_address_auth gUseDyld3;
+extern bool gEnableSharedCacheDataConst;
namespace dyld3 {
@@ -57,7 +58,8 @@
return argv0;
}
-static void entry_setVars(const mach_header* mainMH, int argc, const char* argv[], const char* envp[], const char* apple[])
+static void entry_setVars(const mach_header* mainMH, int argc, const char* argv[], const char* envp[], const char* apple[],
+ bool keysOff, bool platformBinariesOnly, bool enableSharedCacheDataConst)
{
NXArgc = argc;
NXArgv = argv;
@@ -70,11 +72,13 @@
sVars.NXArgvPtr = &NXArgv;
sVars.environPtr = (const char***)&environ;
sVars.__prognamePtr = &__progname;
- gAllImages.setProgramVars(&sVars);
-
- gUseDyld3 = true;
+ gAllImages.setProgramVars(&sVars, keysOff, platformBinariesOnly);
+
+ gUseDyld3 = (void*)1;
setLoggingFromEnvs(envp);
+
+ gEnableSharedCacheDataConst = enableSharedCacheDataConst;
}
static void entry_setHaltFunction(void (*func)(const char* message) __attribute__((noreturn)) )
@@ -107,11 +111,12 @@
}
static void entry_setInitialImageList(const closure::LaunchClosure* closure,
- const DyldSharedCache* dyldCacheLoadAddress, const char* dyldCachePath,
- const Array<LoadedImage>& initialImages, LoadedImage& libSystem)
+ const DyldSharedCache* dyldCacheLoadAddress, const char* dyldCachePath,
+ const Array<LoadedImage>& initialImages, LoadedImage& libSystem,
+ mach_port_t mach_task_self)
{
gAllImages.init(closure, dyldCacheLoadAddress, dyldCachePath, initialImages);
- gAllImages.applyInterposingToDyldCache(closure);
+ gAllImages.applyInterposingToDyldCache(closure, mach_task_self);
// run initializer for libSytem.B.dylib
// this calls back into _dyld_initializer which calls gAllIimages.addImages()
@@ -150,8 +155,20 @@
static void entry_setProgramVars(ProgramVars* progVars)
{
- gAllImages.setProgramVars((AllImages::ProgramVars*)progVars);
-}
+ // this entry only called when running crt1.o based old macOS programs
+ gAllImages.setProgramVars((AllImages::ProgramVars*)progVars, false, false);
+}
+
+static void entry_setLaunchMode(uint32_t flags)
+{
+ gAllImages.setLaunchMode(flags);
+}
+
+static MainFunc entry_getDriverkitMain(void)
+{
+ return gAllImages.getDriverkitMain();
+}
+
static_assert((closure::kFormatVersion & LibDyldEntryVector::kBinaryFormatVersionMask) == closure::kFormatVersion, "binary format version overflow");
@@ -171,6 +188,8 @@
&entry_setNotifyMonitoringDyld,
&entry_setHasCacheOverrides,
&entry_setProgramVars,
+ &entry_setLaunchMode,
+ &entry_getDriverkitMain,
};
VIS_HIDDEN void _dyld_atfork_prepare()