On a related note, I need help with getting relocations to work with
COFF weak symbols. When generating relocations, GAS needs to treat weak
symbols as undefined symbols, not as defined symbols, which is what it
presently does. It gets it halfway right, and knows to generate
relocations for weak symbols where a defined symbol wouldn't need one,
but the fixup to the frag and the relocation itself don't create correct
results when linked. All of the obvious places to add this sort of
logic are places I am very hesitant to add changes, such as in
bfd_perform_relocations.