Hello. On arm64 architecture branch islands are needed only if the total size of the executable code in a binary exceeds 128mb. How many islands will be effectively inserted depends on the exact code layout, and that'll also be a contributing factor to the potentially non-deterministic output. It is supposed to be deterministic, but it sounds like you might be hitting some edge cases. It'd be great if you could file a feedback report with your sample, so that we could try to reproduce it. You can add a -debug_snapshot option (-Wl,-debug_snapshot in Xcode's other linker flags build setting) to create a minimal linker reproducer that'll be saved in a /tmp/*.ld-snapshot directory. One note, in Xcode 26, we've made significant underlying changes to how linker snapshots are generated. There were cases where snapshots created by older ld versions weren't quite complete. So upgrading your toolchain might be helpful, but we can also try first with a snapshot from Xcode 16.4.
Topic:
Developer Tools & Services
SubTopic:
General
Tags: