fix: built-in lttng with kernel >= v6.1
authorMichael Jeanson <mjeanson@efficios.com>
Fri, 18 Aug 2023 15:28:30 +0000 (11:28 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 18 Aug 2023 17:54:59 +0000 (13:54 -0400)
In kernel v6.1 the list of subdirectories was moved from Makefile to
Kbuild. Adjust our built-in.sh script to detect this change and use the
appropriate file to graft ourself to the kernel build system.

Thanks to Richa Bharti for the initial patch.

See upstream commit:

  commit 5750121ae7382ebac8d47ce6d68012d6cd1d7926
  Author: Masahiro Yamada <masahiroy@kernel.org>
  Date:   Sun Sep 25 03:19:10 2022 +0900

    kbuild: list sub-directories in ./Kbuild

    Use the ordinary obj-y syntax to list subdirectories.

Change-Id: Ifc0f1bdea5ee59b0e0b96cdb31c9c689deb20559
Reported-by: Richa Bharti <Richa.Bharti@siemens.com>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
scripts/built-in.sh

index f0594eccdba217157bd016a2e75ad84805243333..5c58042263ae768378c6cee3e08f0b8628d7458e 100755 (executable)
@@ -16,7 +16,13 @@ ln -sf "$(pwd)" "${KERNEL_DIR}/lttng"
 
 # Graft ourself to the kernel build system
 echo 'source "lttng/src/Kconfig"' >> "${KERNEL_DIR}/Kconfig"
-sed -i 's#+= kernel/#+= kernel/ lttng/#' "${KERNEL_DIR}/Makefile"
+
+# In kernel v6.1, subdirectories were moved to Kbuild
+if grep -qE '^obj-y[[:space:]]+\+= kernel/' "${KERNEL_DIR}/Kbuild"; then
+       echo 'obj-y += lttng/' >> "${KERNEL_DIR}/Kbuild"
+else
+       sed -i 's#+= kernel/#+= kernel/ lttng/#' "${KERNEL_DIR}/Makefile"
+fi
 
 echo >&2
 echo "    $0: done." >&2
This page took 0.028168 seconds and 4 git commands to generate.