Hi,
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 relocation-model
of 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_ABS32
or 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!