Yes, that is how I believe gold is doing it. It maps compressed
input
section names to their uncompressed output name counterpart, decompresses
the input section into the output section and applies the relocations on
the uncompressed output data.
But what about BFD-based stuff, like binutils readelf?