On 29/06/2024 17:48, Sedat Dilek wrote: > On Sat, Jun 29, 2024 at 10:13 AM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote: >> >> Hi, >> >> I wanted to test the impact on build-time with Linux v6.9.7. >> >> The motivation was to build with and without this revert: >> >> $ git revert f1feed67c79e >> ( Revert "kbuild: Remove support for Clang's ThinLTO caching" ) >> >> As I read about pahole issues with LLVM/Clang and LTO in the >> ClangBuiltLinux BTS I used pahole/next.git. >> >> $ git log --oneline tags/v1.27.. >> 693522ee3a94 (HEAD -> pahole-next-v1.27-7-g693522ee3a94, >> origin/tmp.master, origin/next, next) core: Ignore DW_TAG_inheritance >> with byte_size zero when finding holes >> 43f9515d8211 dwarf_loader: Print the DWARF offset in >> tag__print_unsupported_tag() >> e82a0fdcfb8e dwarf_loader: Simplify tag__print_not_supported() >> f7e3f0942fed pahole: Bail out when not finding debug anywhere >> 94a01bde592c dwarf_loader: Add missing cus__add(cus, cu) to >> cus__merge_and_process_cu() >> 6a2b27c0f512 core: Initialize cu->node with INIT_LIST_HEAD() >> 0ce7745fa46d PKG-MAINTAINERS: Add maintainer for nixpkgs package >> >> DWARF-v5 was enabled. >> >> The slim LLVM toolchain version 18.1.8 from kernel.org was used (Thanks Nathan). >> Link: https://mirrors.edge.kernel.org/pub/tools/llvm/ >> >> This constellation is BROKEN in the modfinal/BTF section: >> >> # BTF [M] drivers/gpu/drm/i915/i915.ko >> if [ ! -f vmlinux ]; then printf "Skipping BTF generation for %s due >> to unavailability of vmlinux >> " drivers/gpu/drm/i915/i915.ko 1>&2; else LLVM_OBJCOPY="llvm-objcopy" >> /opt/pahole/bin/pahole -J --btf_gen_floats -j --lang_exclude=rust >> --skip_encoding_btf_inconsistent_proto --btf_gen_optimized --btf_base >> vmlinux drivers/gpu/drm/i915/i915.ko; >> ./tools/bpf/resolve_btfids/resolve_btfids -b vmlinux >> drivers/gpu/drm/i915/i915.ko; fi; >> ld.lld: error: drivers/gpu/drm/nouveau/nouveau.o:(.debug_str): offset >> is outside the section >> make[5]: *** [scripts/Makefile.modfinal:57: >> drivers/gpu/drm/nouveau/nouveau.ko] Error 1 >> make[5]: *** Waiting for unfinished jobs.... >> ld.lld: error: drivers/gpu/drm/amd/amdgpu/amdgpu.o:(.debug_info+0x7d117f5): >> unknown relocation (33554442) against symbol >> make[5]: *** [scripts/Makefile.modfinal:56: >> drivers/gpu/drm/amd/amdgpu/amdgpu.ko] Error 1 >> make[4]: *** [Makefile:1852: modules] Error 2c >> make[3]: *** [debian/rules:74: build-arch] Error 2 >> dpkg-buildpackage: error: make -f debian/rules binary subprocess >> returned exit status 2 >> make[2]: *** [scripts/Makefile.package:121: bindeb-pkg] Error 2 >> make[1]: *** [/home/dileks/src/linux/git/Makefile:1541: bindeb-pkg] Error 2 >> make: *** [Makefile:240: __sub-make] Error 2 >> >> Before doing wild experiments I like to see a confirmation of >> reproducing the ERROR. >> Nathan, can you support me? >> My last successful build: Linux-kernel version 6.8.10 using Debian's >> pahole version 1.26. >> >> Attached is my linux-config which is based on Debian's kernel v6.9.7. >> >> Thanks. >> >> Best regards, >> -Sedat- > > [ Add some BPF/BTF folks ] > > I found upstream commit fcd1ed89a0439c45e1336bd9649485c44b7597c7 > ("kbuild,bpf: Switch to using --btf_features for pahole v1.26 and later") > > Can BPF/BTF folk comment? > Hmm, the above commit doesn't look relevant to me; it just switches to using a different way of expressing command-line parameters for BTF generation. From the snippet above you either don't have that commit or are using a pahole < 1.27 since if you had the commit you'd have "--btf_features=..." on the commandline instead of "--skip_encoding_btf_inconsistent_proto --btf_gen_optimized". The relevant errors from the snippet above appear to be >> ld.lld: error: drivers/gpu/drm/nouveau/nouveau.o:(.debug_str): offset >> is outside the section >> make[5]: *** [scripts/Makefile.modfinal:57: >> drivers/gpu/drm/nouveau/nouveau.ko] Error 1 >> make[5]: *** Waiting for unfinished jobs.... >> ld.lld: error: drivers/gpu/drm/amd/amdgpu/amdgpu.o:(.debug_info+0x7d117f5): >> unknown relocation (33554442) against symbol >> make[5]: *** [scripts/Makefile.modfinal:56: ...neither of which originate in the BTF generation pahole does; this looks like a linking issue with ld.lld. Now insofar as such an issue messes up debug info generation it could certainly impact BTF generation in turn, but I don't see any output that suggest that is happening above (BTF generation operates upon .debug_info sections once they are generated but doesn't actually generate them itself). Is there additional info that points at BTF generation as being the problem here? Thanks! Alan