I've been experimenting with chained fixups now that they're the default on iOS 15 and saw about 1.3mb reductions in app size because the data used by dyld to find fixup locations is much more compact. It looks like the -fixup_chains
linker flag enables LC_DYLD_CHAINED_FIXUPS
and LC_DYLD_EXPORTS_TRIE
even pre iOS 15. I was able to launch an app with this linker flag on iOS 14.6 and iOS 13.4.1 without a problem. However, the Xcode 13 release notes say
This uses different load commands and LINKEDIT data, and won’t run or load on older OS versions.
It appears that it actually does run on older OS versions, what problems (if any) are there with using these load commands as far back as iOS 13.0?