On 1/14/20 6:23 AM, Alexei Starovoitov wrote:
On Sun, Jan 12, 2020 at 8:33 PM Zong Li<zong.li@xxxxxxxxxx> wrote:
I'm not quite familiar with btf, so I have no idea why there are two
weak symbols be added in 8580ac9404f6 ("bpf: Process in-kernel BTF")
I can explain what these weak symbols are for, but that won't change
the fact that compiler or linker are buggy. The weak symbols should work
in all cases and compiler should pick correct relocation.
In this case it sounds that compiler picked relative relocation and failed
to reach zero from that address.
Sorry for the response delay: I now agree that there is nothing weird
about those
relocations. All compiler/linker I took a look at (arm64, ppc64 and
riscv64) correctly
emit an absolute relocation to the address 0 in case of a weak
unresolved symbol,
so there's no buggy compiler/linker.
And regarding ppc warning, the kernel being compiled as -pie, the
scripts looks
for absolute relocations which it considers as "bad", except for one
that is known
to be weak and that is ignored: I have just sent a patch to fix this
script so that weak
undefined symbol relocations are not considered as bad.
Thanks,
Alex