[PATCH] D102712: BPF: Add more relocation kinds

Yonghong Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 18 12:46:58 PDT 2021


yonghong-song added a comment.

This patch will require bpf-next libbpf patch like below:

  diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_internal.h
  index ee426226928f..ccc5d4591801 100644
  --- a/tools/lib/bpf/libbpf_internal.h
  +++ b/tools/lib/bpf/libbpf_internal.h
  @@ -28,6 +28,12 @@
   #ifndef R_BPF_64_64
   #define R_BPF_64_64 1
   #endif
  +#ifndef R_BPF_64_LD64
  +#define R_BPF_64_LD64 2
  +#endif
  +#ifndef R_BPF_64_PC32
  +#define R_BPF_64_PC32 3
  +#endif
   #ifndef R_BPF_64_32
   #define R_BPF_64_32 10
   #endif
  diff --git a/tools/lib/bpf/linker.c b/tools/lib/bpf/linker.c
  index b594a88620ce..3e3cd64025dd 100644
  --- a/tools/lib/bpf/linker.c
  +++ b/tools/lib/bpf/linker.c
  @@ -892,7 +892,8 @@ static int linker_sanity_check_elf_relos(struct src_obj *obj, struct src_sec *se
                  size_t sym_idx = ELF64_R_SYM(relo->r_info);
                  size_t sym_type = ELF64_R_TYPE(relo->r_info);
   
  -               if (sym_type != R_BPF_64_64 && sym_type != R_BPF_64_32) {
  +               if (sym_type != R_BPF_64_64 && sym_type != R_BPF_64_32 &&
  +                    sym_type != R_BPF_64_LD64 && sym_type != R_BPF_64_PC32) {
                          pr_warn("ELF relo #%d in section #%zu has unexpected type %zu in %s\n",
                                  i, sec->sec_idx, sym_type, obj->filename);
                          return -EINVAL;


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102712/new/

https://reviews.llvm.org/D102712



More information about the llvm-commits mailing list