As some closure:

There no automation of this
LD's plugin system is basically useless for anything other than the one purpose it was invented for, so you can't write a plugin to do it
Linker scripts can write the exe header details, but they can only produce new symbols to link to, not read vslues or addresses of existing ones so that's no good either

Essentially you have to produce a map file, parse that and then edit the exe header yourself. Not the biggest job known to mankind but disappointing that there's no ability for a self-contained solution