Hi all,
Using clangd-10 on a cross-compiled kernel with yocto I can’t figure what prevent clangd to index the sources.
Here is a snapshot of some errors I can get:
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] | “rpc” | “clangd” | “stderr” | ‘I[13:59:07.059] Updating file /home/seb/git/dn_industry_linux/drivers/net/ethernet/freescale/fec_main.c with command \n[/home/seb/git/dn_industry_linux]\naarch64-poky-linux-gcc -target aarch64-poky-linux -Wp,-MD,drivers/net/ethernet/freescale/.fec_main.o.d -nostdinc -isystem /home/seb/build/toolchains/zeus_5.4_aarch64/sysroots/x86_64-pokysdk-linux/usr/lib/aarch64-poky-linux/gcc/aarch64-poky-linux/9.2.0/include -I./arch/arm64/include -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./arch/arm64/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -DKASAN_SHADOW_SCALE_SHIFT=3 -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -std=gnu89 -mgeneral-regs-only -DCONFIG_AS_LSE=1 -DCONFIG_CC_HAS_K_CONSTRAINT=1 -fno-asynchronous-unwind-tables -Wno-psabi -mabi=lp64 -DKASAN_SHADOW_SCALE_SHIFT=3 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wimplicit-fallthrough -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned --sysroot=/home/seb/build/toolchains/zeus_5.4_aarch64/sysroots/aarch64-poky-linux -mstack-protector-guard=sysreg -mstack-protector-guard-reg=sp_el0 -mstack-protector-guard-offset=1152 -DKBUILD_BASENAME=“fec_main” -DKBUILD_MODNAME=“fec” -c -o drivers/net/ethernet/freescale/fec_main.o drivers/net/ethernet/freescale/fec_main.c -fsyntax-only -resource-dir=/usr/lib/llvm-10/lib/clang/10.0.0\n’ |
---|---|---|---|---|
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] | “rpc” | “clangd” | “stderr” | “E[13:59:07.091] Could not build a preamble for file /home/seb/git/dn_industry_linux/drivers/net/ethernet/freescale/fec_main.c\n” |
Then indexing keeps failing:
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.543] Indexing net/mac80211/ht.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.543] Indexing kernel/locking/rtmutex.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.547] Indexing kernel/sched/wait_bit.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.547] Indexing drivers/input/keyboard/adc-keys.mod.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.564] Indexing net/bluetooth/af_bluetooth.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.568] Indexing lib/syscall.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.572] Indexing net/ipv6/route.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:07+0200 ] …ount_vidyVHHo/usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:428 ] “rpc” “clangd” “stderr” “E[13:59:07.575] Indexing fs/ext2/super.c failed: Couldn’t build compiler instance\n”
[ ERROR ] 2020-10-22T13:59:
I’m using a compile_commands.json generated using the ./scripts/gen_compile_commands.py and it seems ok, here is an entry on which indexing fails:
{
“command”: “aarch64-poky-linux-gcc -Wp,-MD,arch/arm64/kvm/.regmap.o.d -nostdinc -isystem /home/seb/build/toolchains/zeus_5.4_aarch64/sysroots/x86_64-pokysdk-linux/usr/lib/aarch64-poky-linux/gcc/aarch64-poky-linux/9.2.0/include -I./arch/arm64/include -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./arch/arm64/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -DKASAN_SHADOW_SCALE_SHIFT=3 -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -std=gnu89 -mgeneral-regs-only -DCONFIG_AS_LSE=1 -DCONFIG_CC_HAS_K_CONSTRAINT=1 -fno-asynchronous-unwind-tables -Wno-psabi -mabi=lp64 -DKASAN_SHADOW_SCALE_SHIFT=3 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -Wimplicit-fallthrough -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -g -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -fmacro-prefix-map=./= -Wno-packed-not-aligned --sysroot=/home/seb/build/toolchains/zeus_5.4_aarch64/sysroots/aarch64-poky-linux -mstack-protector-guard=sysreg -mstack-protector-guard-reg=sp_el0 -mstack-protector-guard-offset=1152 -I ./arch/arm64/kvm -I ./virt/kvm/arm/vgic -DKBUILD_BASENAME=‘"regmap"’ -DKBUILD_MODNAME=‘"kvm"’ -c -o arch/arm64/kvm/regmap.o arch/arm64/kvm/regmap.c”,
“directory”: “/home/seb/git/dn_industry_linux”,
“file”: “arch/arm64/kvm/regmap.c”
},
FYI, I use neovim with built-in LSP support. It works w/o issues in other cross-compiled projects but fails with linux kernel/yocto.
Thanks,
Seb