You could try LD_DEBUG=reloc
or LD_DEBUG=all
to debug relocation processing & combine with readelf
to investigate further.
But Vivado is extremely huge/complicated - this is going to be a long ride. I do hope you’re aware of that and have already seen Fhs env for installing xilinx - #2 by Mic92 for hints on getting it to ‘just work’ in a FHSEnv.