On Fri, Jun 3, 2022 at 4:00 AM Yonghong Song <yhs@xxxxxx> wrote: > + > +SEC("raw_tracepoint/sys_enter") > +int test_core_enum64val(void *ctx) > +{ > +#if __has_builtin(__builtin_preserve_enum_value) > + struct core_reloc_enum64val_output *out = (void *)&data.out; > + enum named_unsigned_enum64 named_unsigned = 0; > + enum named_signed_enum64 named_signed = 0; libbpf: prog 'test_core_enum64val': relo #0: unexpected insn #0 (LDIMM64) value: got 8589934591, exp 18446744073709551615 -> 18446744073709551615 libbpf: prog 'test_core_enum64val': relo #0: failed to patch insn #0: -22 libbpf: failed to perform CO-RE relocations: -22 libbpf: failed to load object 'test_core_reloc_enum64val.o' Is it failing in CI because clang is too old? CI will pick up newer clang sooner or later, but the users will be confused. The patch 17/18 that updates README certainly helps, but I was wondering whether we can do a similar trick to what Andrii did in libbpf and make the error more human readable?