Page-in Linking flag

Hi everyone,

Our app runs on iOS deployment target 15.0.

As per the WWDC 2022 session, page-in linking should be enabled for apps where chained-fixups is enabled.

Since chained fixups are enabled from iOS deployment target 13.4+ which is true for our app, will page-in linking be applied to it?

Is there some flag which we can use to confirm if it is applied for our app or not?

We have tried using dyld_info tool but could not find a command which can provide this information.

Replies

AFAICT page-in linking is not enabled by a flag in the Mach-O but rather by a survey of the Mach-O’s structure. On the Mac you can check its state by setting DYLD_PRINT_SEGMENTS:

% DYLD_PRINT_SEGMENTS=1 ./Test749569
…
dyld[99403]: Setting up kernel page-in linking for …/Test749569
dyld[99403]:   __DATA_CONST (rw.) 0x0001003D8000->0x0001003DC000 (fileOffset=0x4000, size=16KB)
dyld[99403]: mprotect 0x0001003D8000->0x0001003DC000 to read-only (Test749569)
Hello Cruel World!

The origin of this message is in the Darwin open source, so if you’re super curious you could pull on that thread.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

  • Hey Eskimo, we have an iOS application, how do we test if page-linking is enabled for it ? What should be the command for that ?

Add a Comment