"llvm/test/lit.cfg.py" did not exist on "7d50c389c4d46ccd3b4f06d09f32202f9ae94bc9"
[JITLink][AArch64] Use R-X permissions for the GOT.
This consistent with ld64's treatment of the GOT, but the main aim here is a short-term workaround for a bad interaction between stub code sequences and memory layout: Stubs use LDRLiteral19 relocations to reference the GOT, but BasicLayout currently puts RW- segments between R-- and R-X segments -- a large RW- segment (or a large R-- for that matter) can cause the relocation to fail with an out-of-range error. Putting the GOT in R-X fixes this efficiently in practice. A more robust fix will be to use a longer code sequence to materialize the GOT pointer and then rewrite the stub to use a shorter sequence where possible.
Loading
Please sign in to comment