mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 10:24:45 +01:00
A C jump table (such as the one used by the BPF interpreter) is a const
global array of absolute code addresses, and this means that the actual
values in the table may not be known until the kernel is booted (e.g.,
when using KASLR or when the kernel VA space is sized dynamically).
When using PIE codegen, the compiler will default to placing such const
global objects in .data.rel.ro (which is annotated as writable), rather
than .rodata (which is annotated as read-only). As C jump tables are
explicitly emitted into .rodata, this used to result in warnings for
LoongArch builds (which uses PIE codegen for the entire kernel) like
Warning: setting incorrect section attributes for .rodata..c_jump_table
due to the fact that the explicitly specified .rodata section inherited
the read-write annotation that the compiler uses for such objects when
using PIE codegen.
This warning was suppressed by explicitly adding the read-only
annotation to the __attribute__((section(""))) string, by commit
|
||
|---|---|---|
| .. | ||
| arch.h | ||
| builtin.h | ||
| cfi.h | ||
| check.h | ||
| elf.h | ||
| endianness.h | ||
| objtool.h | ||
| orc.h | ||
| special.h | ||
| warn.h | ||