On Thu, Oct 10, 2024 at 07:50:17PM +0200, Ard Biesheuvel wrote: > On Thu, 10 Oct 2024 at 14:28, Ard Biesheuvel <ardb+...@google.com> wrote: > > > > From: Ard Biesheuvel <a...@kernel.org> > > > > Jump table handling has faded into the background a little due to the > > fact that jump tables are [currently] disabled when enabling retpoline > > mitigations and/or IBT on x86. > > > > However, this is likely to come back and bite us later, so it still > > needs to be addressed. Given the difficulty in identifying jump tables > > from .rodata references and indirect jump instructions that often have > > no obvious correlation, it would be better to do this in the compiler. > > > > This series implements [on the objtool side] the suggestion made at GNU > > Cauldron this year to annotate the indirect jump with a R_X86_64_NONE > > relocation that refers to the jump table, and ensure that it is covered > > by a STT_OBJECT symbol whose size accurately reflects the size of the > > jump table. > > > > For the adventurous, I have a branch [0] that implements the first > part of this in Clang. > > Getting the jump table emitted as a STT_OBJECT with a proper size > shouldn't be too hard either, but I'll look into that later. > > > [0] https://github.com/ardbiesheuvel/llvm-project/tree/jump-table-annotations
That was fast! This is good stuff, thank you for working on this. -- Josh