3 ms·
Ninja is neat. I wonder if a) this is still possible with Chromium today, and b) if/how it might be possible to incrementally build changed functions into new
by exikyut 6y ago
Ninja is neat.
I wonder if a) this is still possible with Chromium today, and b) if/how it might be possible to incrementally build changed functions into new .so files, rewrite the symbol tables in the old .so files to garbage (if needed?), then relink (either incrementally/in-place or from-scratch) the executable. Dependency analysis and garbage collection could delete fully-superceded .so files.
- evmar 6y agoI haven't touched it in many years, but: I think (a) it's still possible, per https://chromium.googlesource.com/chromium/src/+/master/docs/component_build.md https://chromium.googlesource.com/chromium/src/+/master/docs... . (b) Creating new .so files that shadow functions in others is an interesting idea! I think you're implying that the executable wouldn't pick them up for free, which I think is true, but I'm not actually sure. I forget the details of how this works but it might be that you could just play tricks with the order of the files to make them shadow. In practice with a fast linker (I used gold at the time, but I think lld is even faster than gold now) it doesn't matter so much as long as you keep the component libraries small enough. But my info is also nearly a decade out of date now...