/* R_BPF_64_NODYLD32 is not used by GNU tools - but it is generated by LLVM.
We provide an entry here so that tools like strip can safely handle BPF
- binaries generated by other tools. */
+ binaries generated by other tools.
+ R_BPF_64_NODYLD32 should be fixed at linker like a R_BPF_64_ABS32.
+ The difference to ABS32 is that LLVM execution engine does not resolve
+ R_BPF_64_NODYLD32 relocations. */
BPF_HOWTO (R_BPF_64_NODYLD32, /* type */
0, /* rightshift */
- 0, /* size */
- 0, /* bitsize */
+ 4, /* size */
+ 32, /* bitsize */
false, /* pc_relative */
0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
+ complain_overflow_bitfield, /* complain_on_overflow */
bpf_elf_generic_reloc, /* special_function */
"R_BPF_64_NODYLD32", /* name */
false, /* partial_inplace */
- 0, /* src_mask */
- 0, /* dst_mask */
- false) /* pcrel_offset */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ true) /* pcrel_offset */