ld(1) string table merging could be much faster
The string table merging in ld is currently quadratic in the number of sections and relocations in the input objects. This is usually not noticeable, but objects produced with -fdata-sections (or equivalent) can quickly cause this to be meaningfully problematic.
We should store affected relocations and symbols per output section to speed this up considerably.
Similarly, if a given output section has only one mergable input section, we can skip processing entirely and trust in whatever produced the object to have merged already.