>> Finally, my question is whether our assembler code is buggy
>> (although the bfd linker could deal with it), whether this is a
>> missing gold feature or a whether this is a gold bug.
>
> First, since relocations are per-cpu, you'll need to tell us which CPU
> type you are working on.
Looks like it may be SPARC -- reloc 11 is R_SPARC_13, which is not
supported by gold. I'd say that a conditional branch to a global
symbol is not something we expect a compiler to generate. Try putting
a local label immediately after the global and use that for the target
of the bne instruction.
-cary