R_VAX_RELATIVE *ABS*+0x676cf
My knowledge of VAX addressing modes is tiny, so [...]
I'm not sure I understand the problem. This has nothing to do with
VAX addressing modes, but is a question of how relocatable symbols
are handled in the compiler, object file and linker.
The part after the first comma is true - but relocations for a given
architecture do have _something_ to do with the addressing modes that
architecture makes available. For example, you won't find a
high-22-bits or low-10-bits relocation in a VAX file - but you may in a
SPARC file, because of the SPARC sethi paradigm.
(No, I can't speak to the original question, which is why I didn't
respond. I know the VAX addressing modes fairly well, but I know next
to nothing about the relocations supported by the VAX toolchain. The
quoted relocation looks inconsistent to me, calling itself RELATIVE but
describing the target as *ABS*, which looks like `absolute' to me. So
either it's broken, in which case I have no idea why or how it's
broken, or it's not, in which case I don't understand VAX relocations
enough to say anything useful.)