4 ms·
I wonder why they wrote their own linker instead of improving gold.
by wereHamster 13y ago
I wonder why they wrote their own linker instead of improving gold.
- axman6 13y agoIsn't gold specifically targetted at x86 and/or linux only (I can't remember which)? Having it as part of the LLVM project means they can use a lot of the infrastructure that already exists, and exists to used as libraries, and also allows them to write the code as another set of libraries for use in other unforseen systems. It's also aimed at being a generic linker for use on many different platforms. I don't think gold has these goals; from I remember they were just after speed on their target platform.
- wereHamster 13y agoThe PS4 is x86. And I wouldn't be surprised if it used ELF (like the PS2/3). Though I can't find any mention of the format that's being used.
- deleted 13y ago[deleted]
- pmjordan 13y agoThe executable binary generally dwarfs the assets (textures, models, level data, audio, etc.) so I doubt it makes sense to defer downloading code. If anything, you'd put any level-specific native code (rare these days - it's mainly scripts) into dynamically loaded libraries.
- malkia 13y agoThe executable has to be read from the disk, and until it's fully loaded nothing would show. Since startup time must be minimized it's good to keep your executable size small. Also newer versions would be smaller for updates off the internet. Most of all the executable has to be linked over and over again (by developers) and then copied or written to the some kind of disk/drive somewhere to start it. But as you've said, maybe moving some big clunky parts to dll would help.
- Someone 13y agoI don't know whether they do, but if you mmap the executable, it doesn't have to be completely read from disk before execution can start.
- deleted 13y ago[deleted]