4 ms·
To be fair, the reason is certainly not apparent.
by tspike 6y ago
To be fair, the reason is certainly not apparent.
- plorkyeran 6y agoThe reason is immediately apparent. They're eliminating a redundant copy of the libraries to save disk space.
- majewsky 6y agoThat's definitely not the reason, given that symlinks are still a thing.
- plorkyeran 6y agoYou can't symlink into a byte range of a file. All of the system dylibs are stored in a single file.
- comex 6y agoAlso, the dyld shared cache isn’t just some archive containing exact copies of the dylib files. Among other things, the cache builder pre-resolves references between different dylibs in the cache. This saves time on process startup, and also allows pages to be shared between multiple processes even if they contain relocations, saving memory. But it means that even if you could symlink to a byte range, you couldn’t just have the original dylib paths be symlinks to parts of the cache. (It might be possible to make this work with enough effort, but it would be very nontrivial.) Note that the dyld shared cache itself has existed for a long time; the only change here is removing the original copy of the dylibs to save disk space.