Thread (12 messages) 12 messages, 4 authors, 2021-01-04

Re: BTFIDS: FAILED unresolved symbol udp6_sock

From: Jiri Olsa <hidden>
Date: 2020-12-30 13:30:42
Also in: bpf, lkml

On Wed, Dec 30, 2020 at 02:28:02PM +0100, Jiri Olsa wrote:
On Wed, Dec 30, 2020 at 10:03:37AM +0100, Jiri Olsa wrote:
quoted
On Tue, Dec 29, 2020 at 11:28:35PM +0000, Qais Yousef wrote:
quoted
Hi Jiri

On 12/29/20 18:34, Jiri Olsa wrote:
quoted
On Tue, Dec 29, 2020 at 03:13:52PM +0000, Qais Yousef wrote:
quoted
Hi

When I enable CONFIG_DEBUG_INFO_BTF I get the following error in the BTFIDS
stage

	FAILED unresolved symbol udp6_sock

I cross compile for arm64. My .config is attached.

I managed to reproduce the problem on v5.9 and v5.10. Plus 5.11-rc1.

Have you seen this before? I couldn't find a specific report about this
problem.

Let me know if you need more info.
hi,
this looks like symptom of the gcc DWARF bug we were
dealing with recently:

  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97060
  https://lore.kernel.org/lkml/CAE1WUT75gu9G62Q9uAALGN6vLX=o7vZ9uhqtVWnbUV81DgmFPw@mail.gmail.com/#r (local)

what pahole/gcc version are you using?
I'm on gcc 9.3.0

	aarch64-linux-gnu-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

I was on pahole v1.17. I moved to v1.19 but I still see the same problem.
I can reproduce with your .config, but make 'defconfig' works,
so I guess it's some config option issue, I'll check later today
so your .config has
  CONFIG_CRYPTO_DEV_BCM_SPU=y

and that defines 'struct device_private' which
clashes with the same struct defined in drivers/base/base.h

so several networking structs will be doubled, like net_device:

	$ bpftool btf dump file ../vmlinux.config | grep net_device\' | grep STRUCT
	[2731] STRUCT 'net_device' size=2240 vlen=133
	[113981] STRUCT 'net_device' size=2240 vlen=133

each is using different 'struct device_private' when it's unwinded

and that will confuse BTFIDS logic, becase we have multiple structs
with the same name, and we can't be sure which one to pick

perhaps we should check on this in pahole and warn earlier with
better error message.. I'll check, but I'm not sure if pahole can
survive another hastab ;-)

Andrii, any ideas on this? ;-)

easy fix is the patch below that renames the bcm's structs,
it makes the kernel to compile.. but of course the new name
is probably wrong and we should push this through that code
authors
also another quick fix is to switch it to module

jirka
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help