I'm working on bringing up a new Arm target and I'm trying to figure out where and how some symbol relocations are getting generated. I know I can control options passed to the cross-compiling compiler/linker for the final linking using the
*-link-args options in the target specification, but what I'm really interested in is how to influence the generation of the Rust library (or archive?) rlib files. These files currently carry a type of relocation (
R_ARM_GOT_PREL) which seems to be incompatible with my target.
The default target
pic seems to be the direction I'd like, however the default target2 relocation type under that model appears to be
R_ARM_GOT_PREL and I would like to modify that. The LLVM linker has a known
--target2 flag which can be used to change target2 relocations to either
R_ARM_REL32. However it is not clear if that flag is even applicable to the
.rlib generation process.
Any direction on where
.rlibs are generated/emitted, what options are available to modify this process, or thoughts on their symbol relocations would be much appreciated!