> How are these assumptions hardcoded by GCC? Most of the instructions > should be > relocatable straight away, as most call/jump/branch instructions are > RIP-relative. > > I.e. is there no GCC code generation mode where code can be placed > anywhere in the > canonical address space, yet call and jump distance is within 31 bits > so that the > generated code is fast?
That's what PIE is meant to do. However, not disabling support for lazy linking (-fno-plt) / symbol interposition (-Bsymbolic) is going to cause it to add needless overhead. arm64 is using -pie -shared -Bsymbolic in arch/arm64/Makefile for their CONFIG_RELOCATABLE option. See 08cc55b2afd97a654f71b3bebf8bb0ec89fdc498. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel