[PATCH] kbuild/builddeb: Fix building .deb packages out-of-tree

From: Borislav Petkov
Date: Thu Nov 08 2018 - 14:56:36 EST


From: Borislav Petkov <bp@xxxxxxx>

When building a .deb package with

make O=/tmp/b oldconfig
cd /tmp/b
make bindeb-pkg

the build fails with

fakeroot -u debian/rules binary
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[12]: *** [/mnt/kernel/kernel/linux/scripts/kconfig/Makefile:69: syncconfig] Error 1
make[11]: *** [/mnt/kernel/kernel/linux/Makefile:544: syncconfig] Error 2
make[10]: *** [Makefile:640: include/config/auto.conf] Error 2
make[9]: *** [Makefile:15: __sub-make] Error 2

because ($MAKE -s image_name) in the subshell is missing KBUILD_SRC and
cannot find .config. Passing in KBUILD_SRC= for the current pwd fixes
the build.

Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
Cc: Michal Marek <michal.lkml@xxxxxxxxxxx>
Cc: <linux-kbuild@xxxxxxxxxxxxxxx>
---
scripts/package/builddeb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 90c9a8ac7adb..149bbbd8e98d 100755
--- a/scripts/package/builddeb
+++ b/scripts/package/builddeb
@@ -81,7 +81,7 @@ else
cp System.map "$tmpdir/boot/System.map-$version"
cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
fi
-cp "$($MAKE -s image_name)" "$tmpdir/$installed_image_path"
+cp "$($MAKE KBUILD_SRC= -s image_name)" "$tmpdir/$installed_image_path"

if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then
# Only some architectures with OF support have this target
--
2.19.1