Your message dated Sat, 24 Apr 2021 23:41:35 -0700 (PDT) with message-id <60850f1f.1c69fb81.fda96.7...@mx.google.com> and subject line Closing this bug (BTS maintenance for src:linux bugs) has caused the Debian Bug report #744904, regarding KBUILD_OUTPUT setting not respected for (at least) one component of "make deb-pkg" to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact ow...@bugs.debian.org immediately.) -- 744904: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=744904 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems
--- Begin Message ---Package: linux-source-3.2 Version: 3.2.54-2 When attempting to build a kernel package with "make deb-pkg" and specifying KBUILD_OUTPUT, the build process (attempts to) write to the source directory rather than the build directory, at some point during the make process. I am attempting to build a clean amd64/x86_64 kernel directly from the Debian-provided source, with only the EXTRAVERSION and KBUILD_OUTPUT variables set directly in the top-level Makefile (and also KBUILD_VERBOSE=1 on the command line for the log below, in an attempt to get more information). The source resides on a read-only filesystem; the output directory is (obviously) on a read-write filesystem. The initial steps of "make menuconfig" and "make" succeed without error, but "make deb-pkg" fails when it cannot write a particular file into the read-only filesystem. The last several lines of output from the make are copied below (-j16 specified to the make command in this instance): make -f /path/to/source/linux-3.2.54-custom/scripts/Makefile.fwinst obj=firmware __fw_modinst /bin/bash /path/to/source/linux-3.2.54-custom/scripts/depmod.sh /sbin/depmod 3.2.54-custom make[3]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. set -e; : ' CHK include/linux/version.h'; mkdir -p include/linux/; (echo \#define LINUX_VERSION_CODE 197174; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) < /path/to/source/linux-3.2.54-custom/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else : ' UPD include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi /bin/sh: 1: cannot create include/linux/version.h.tmp: Read-only file system make[4]: *** [include/linux/version.h] Error 2 make[3]: *** [all] Error 2 make[2]: *** [deb-pkg] Error 2 make[1]: *** [deb-pkg] Error 2 make: *** [sub-make] Error 2 Apparently, somewhere in the kbuild process, KBUILD_OUTPUT is not being passed along correctly, and this particular component of the build process is being run from the source directory (since the "> include/linux/version.h.tmp" portion is whatseems to be failing). Additional details from my own investigation: - When I build from a non-read-only filesystem and without KBUILD_OUTPUT specified, the build process completes normally and the kernel package works as expected. - I inserted a "pwd" command into the "filechk" definition (in scripts/KBuild.include) to verify that the working directory had not been changed in that particular instance where the make failed -- and indeed it had not. - Kernel version 3.13.7 (again, the version directly from the Debian-provided source) builds cleanly when the source is on a read-only filesystem and KBUILD_OUTPUT is set. Comparing the build logs, I see the following from the 3.13.7 build (keeping in mind that version.h has been moved between kernel versions): make -f /path/to/source/test-linux-3.13.7/scripts/Makefile.fwinst obj=firmware __fw_modinst /bin/bash /path/to/source/test-linux-3.13.7/scripts/depmod.sh /sbin/depmod 3.13.7-custom "" make[3]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. make -C /path/to/output_directory/test-linux-3.13.7 \ KBUILD_SRC=/path/to/source/test-linux-3.13.7 \ KBUILD_EXTMOD="" -f /path/to/source/test-linux-3.13.7/Makefile \ headers_check set -e; : ' CHK include/generated/uapi/linux/version.h'; mkdir -p include/generated/uapi/linux/; (echo \#define LINUX_VERSION_CODE 199943; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) < /path/to/source/test-linux-3.13.7/Makefile > include/generated/uapi/linux/version.h.tmp; if [ -r include/generated/uapi/linux/version.h ] && cmp -s include/generated/uapi/linux/version.h include/generated/uapi/linux/version.h.tmp; then rm -f include/generated/uapi/linux/version.h.tmp; else : ' UPD include/generated/uapi/linux/version.h'; mv -f include/generated/uapi/linux/version.h.tmp include/generated/uapi/linux/version.h; fi make -f /path/to/source/test-linux-3.13.7/scripts/Makefile.build obj=scripts/basic [...continues...] It appears as if the 3.2.54 version doesn't have that "make -C /path/to/output_directory/ [etc.]" command in the sequence. However, in my exploration of the comparative source trees for the two kernel versions, I haven't managed to figure out the exact path by which that point is reached, so I can't suggest a fix. Thanks.
--- End Message ---
--- Begin Message ---Hi This bug was filed for a very old kernel or the bug is old itself without resolution. If you can reproduce it with - the current version in unstable/testing - the latest kernel from backports please reopen the bug, see https://www.debian.org/Bugs/server-control for details. Regards, Salvatore
--- End Message ---