Package: linux-kbuild-6.0
Version: 6.0.12-1~bpo11+1
Severity: important
Tags: patch

Dear Maintainer,

I tried to build my out-of-tree kernel module and noticed a message:
`Skipping BTF generation for PATH_TO_KO due to unavailability of vmlinux`.
After copying `/sys/kernel/btf/vmlinux` to corresponding position and with
`dwarves` installed, building the kernel module throws a error: 
`/bin/sh: 1: ./tools/bpf/resolve_btfids/resolve_btfids: not found`.

Besides I find that some useful scripts are not included in `linux-kbuild`
package such as `clang-tools/gen_compile_commands.py`, and I had to copy
it from kernel source tree.

I patched build scripts to contain those components locally with
following patches.

-- System Information:
Debian Release: 11.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.0.0-0.deb11.2-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages linux-kbuild-6.0 depends on:
ii  libc6      2.31-13+deb11u5
ii  libelf1    0.183-1
ii  libssl1.1  1.1.1n-0+deb11u3

linux-kbuild-6.0 recommends no packages.

linux-kbuild-6.0 suggests no packages.

-- no debconf information
>From 1b9e5fa40cc29bd9a8af9cd3355e65d88cd19a8e Mon Sep 17 00:00:00 2001
From: ur4t <46435411+u...@users.noreply.github.com>
Date: Thu, 29 Dec 2022 19:10:37 +0800
Subject: [PATCH 1/2] linux-kbuild: Add tools/bpf/resolve_btfids/resolve_btfids

This is a new dependency of OOT module builds with BTF enabled.
---
 debian/rules.d/tools/bpf/resolve_btfids/Makefile | 7 +++++++
 debian/rules.real                                | 2 ++
 2 files changed, 9 insertions(+)
 create mode 100644 debian/rules.d/tools/bpf/resolve_btfids/Makefile

diff --git a/debian/rules.d/tools/bpf/resolve_btfids/Makefile 
b/debian/rules.d/tools/bpf/resolve_btfids/Makefile
new file mode 100644
index 0000000000..8f5e4e0cb5
--- /dev/null
+++ b/debian/rules.d/tools/bpf/resolve_btfids/Makefile
@@ -0,0 +1,7 @@
+include $(top_rulesdir)/Makefile.inc
+
+all:
+       $(MAKE) -C $(top_srcdir)/tools/bpf/resolve_btfids O=$(CURDIR)
+
+install:
+       install -D -m755 resolve_btfids $(DESTDIR)/$(installdir)/resolve_btfids
diff --git a/debian/rules.real b/debian/rules.real
index 9bb0c617bd..98e8dd7999 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -560,6 +560,7 @@ build_kbuild: $(STAMPS_DIR)/build-tools-headers
        $(call make-tools,certs)
        $(call make-tools,scripts)
        $(call make-tools,tools/objtool)
+       $(call make-tools,tools/bpf/resolve_btfids)
 
 binary_kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME)
 binary_kbuild: build_kbuild
@@ -569,6 +570,7 @@ binary_kbuild: build_kbuild
        $(call make-tools,certs) install prefix=$(PREFIX_DIR)
        $(call make-tools,scripts) install prefix=$(PREFIX_DIR)
        $(call make-tools,tools/objtool) install prefix=$(PREFIX_DIR)
+       $(call make-tools,tools/bpf/resolve_btfids) install DESTDIR=$(DIR) 
prefix=$(PREFIX_DIR)
        dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME)
        dh_installchangelogs
 ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
-- 
2.30.2

>From fc0c873389031d1e2e068658d5464e7d70b6f142 Mon Sep 17 00:00:00 2001
From: ur4t <46435411+u...@users.noreply.github.com>
Date: Thu, 29 Dec 2022 19:19:08 +0800
Subject: [PATCH 2/2] linux-kbuild: Add missing upstream scripts

---
 debian/rules.d/scripts/Makefile             | 47 +++++++++++++--------
 debian/rules.d/scripts/clang-tools/Makefile |  4 ++
 2 files changed, 34 insertions(+), 17 deletions(-)
 create mode 100644 debian/rules.d/scripts/clang-tools/Makefile

diff --git a/debian/rules.d/scripts/Makefile b/debian/rules.d/scripts/Makefile
index bbfe9c0d10..2e803d1c9f 100644
--- a/debian/rules.d/scripts/Makefile
+++ b/debian/rules.d/scripts/Makefile
@@ -7,37 +7,50 @@ PROGS = \
 
 DATA = \
        Kbuild.include \
-       Makefile.* \
+       Makefile* \
        mkversion \
        module-common.lds \
        subarch.include
 
-SCRIPTS =  \
-       checkincludes.pl \
+SCRIPTS = \
+       *.pl \
+       *.py \
+       *.sh \
+       Lindent \
+       bloat-o-meter \
        check-local-export \
-       checkstack.pl \
-       checkversion.pl \
-       depmod.sh \
-       gcc-*.sh \
-       gen_initramfs_list.sh \
-       headers_install.sh \
+       check-sysctl-docs \
+       cleanfile \
+       cleanpatch \
+       coccicheck \
+       config \
+       decodecode \
+       diffconfig \
+       documentation-file-ref-check \
+       extract-ikconfig \
+       extract-vmlinux \
+       faddr2line \
+       get_dvb_firmware \
+       gfp-translate \
+       jobserver-exec \
        kernel-doc \
-       ld-version.sh \
-       Lindent \
        makelst \
+       mkcompile_h \
        mksysmap \
-       mkuboot.sh \
-       modules-check.sh \
-       namespace.pl \
-       pahole-flags.sh \
-       pahole-version.sh \
+       objdiff \
+       objdump-func \
        patch-kernel \
-       recordmcount.pl \
+       prune-kernel \
+       remove-stale-files \
        setlocalversion \
+       sphinx-pre-install \
+       stackdelta \
+       stackusage \
        ver_linux
 
 SUBDIRS = \
        basic \
+       clang-tools \
        genksyms \
        kconfig \
        mod
diff --git a/debian/rules.d/scripts/clang-tools/Makefile 
b/debian/rules.d/scripts/clang-tools/Makefile
new file mode 100644
index 0000000000..d41ca61b8e
--- /dev/null
+++ b/debian/rules.d/scripts/clang-tools/Makefile
@@ -0,0 +1,4 @@
+SCRIPTS = \
+       *
+
+include $(top_rulesdir)/Makefile.inc
-- 
2.30.2

Reply via email to