(+ Thomas) On 16 March 2018 at 17:13, Mark Rutland <mark.rutland@xxxxxxx> wrote: > On Fri, Mar 16, 2018 at 04:52:08PM +0000, Nick Desaulniers wrote: >> + Sami (Google), Takahiro (Linaro) >> >> Just so I fully understand the problem enough to articulate it, we'd be >> looking for the compiler to keep the jump tables for speed (I would guess >> -fno-jump-tables would emit an if-else chain) but only emit relative jumps >> (not absolute jumps)? > > Our main concern is that there is no absolute addressing. If that rules > out using a relative jump table, that's ok. > > We want to avoid the fragility of collecting -f-no-* options as future > compiler transformations end up introducing absolute addressing. > This all comes back to the assumptions made by the compiler when building PIC/PIE code, i.e., that symbols should be preemptible and thus all references should be indirected via GOT entries, and that text relocations should be avoided. If we had a way to tell the compiler that these concerns do not apply for us, we could use -fpic/-fpie in the kernel and be done with it. -fvisibility=hidden *almost* gives us what we need, but in practice, only the #pragma variant (#pragma GCC visibility push (hidden)) makes -fpic behave in a sensible way for freestanding builds, and gets rid of absolute references where possible (note that statically initialized pointer variables always involve absolute relocations) _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm