diff mbox series

kbuild: deb-pkg: fix bindeb-pkg breakage when O= is used

Message ID 1541404354-30331-1-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit 02826a6ba301b72461c3706e1cc66d5571cd327e
Headers show
Series kbuild: deb-pkg: fix bindeb-pkg breakage when O= is used | expand

Commit Message

Masahiro Yamada Nov. 5, 2018, 7:52 a.m. UTC
Ard Biesheuvel reports bindeb-pkg with O= option is broken in the
following way:

  ...
    LD [M]  sound/soc/rockchip/snd-soc-rk3399-gru-sound.ko
    LD [M]  sound/soc/rockchip/snd-soc-rockchip-pcm.ko
    LD [M]  sound/soc/rockchip/snd-soc-rockchip-rt5645.ko
    LD [M]  sound/soc/rockchip/snd-soc-rockchip-spdif.ko
    LD [M]  sound/soc/sh/rcar/snd-soc-rcar.ko
   fakeroot -u debian/rules binary
  make KERNELRELEASE=4.19.0-12677-g19beffaf7a99-dirty ARCH=arm64 KBUILD_SRC= intdeb-pkg
  /bin/bash /home/ard/linux/scripts/package/builddeb
  Makefile:600: include/config/auto.conf: No such file or directory
  ***
  *** Configuration file ".config" not found!
  ***
  *** Please run some configurator (e.g. "make oldconfig" or
  *** "make menuconfig" or "make xconfig").
  ***
  make[12]: *** [syncconfig] Error 1
  make[11]: *** [syncconfig] Error 2
  make[10]: *** [include/config/auto.conf] Error 2
  make[9]: *** [__sub-make] Error 2
  ...

Prior to commit 80463f1b7bf9 ("kbuild: add --include-dir flag only
for out-of-tree build"), both objtree and srctree were added to
--include-dir, and the wrong code '$MAKE image_name' was working
relying on that. Now, the potential issue that had previously been
hidden just showed up.

'$MAKE image_name' recurses to the generated $(objtree)/Makefile and
ends up with running in srctree, which is incorrect. It should be
invoked with '-f $srctree/Makefile' (or KBUILD_SRC=) to be executed
in objtree.

Fixes: 80463f1b7bf9 ("kbuild: add --include-dir flag only for out-of-tree build")
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 scripts/package/builddeb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

Comments

Ard Biesheuvel Nov. 5, 2018, 11:06 a.m. UTC | #1
On 5 November 2018 at 08:52, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> Ard Biesheuvel reports bindeb-pkg with O= option is broken in the

> following way:

>

>   ...

>     LD [M]  sound/soc/rockchip/snd-soc-rk3399-gru-sound.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-pcm.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-rt5645.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-spdif.ko

>     LD [M]  sound/soc/sh/rcar/snd-soc-rcar.ko

>    fakeroot -u debian/rules binary

>   make KERNELRELEASE=4.19.0-12677-g19beffaf7a99-dirty ARCH=arm64 KBUILD_SRC= intdeb-pkg

>   /bin/bash /home/ard/linux/scripts/package/builddeb

>   Makefile:600: include/config/auto.conf: No such file or directory

>   ***

>   *** Configuration file ".config" not found!

>   ***

>   *** Please run some configurator (e.g. "make oldconfig" or

>   *** "make menuconfig" or "make xconfig").

>   ***

>   make[12]: *** [syncconfig] Error 1

>   make[11]: *** [syncconfig] Error 2

>   make[10]: *** [include/config/auto.conf] Error 2

>   make[9]: *** [__sub-make] Error 2

>   ...

>

> Prior to commit 80463f1b7bf9 ("kbuild: add --include-dir flag only

> for out-of-tree build"), both objtree and srctree were added to

> --include-dir, and the wrong code '$MAKE image_name' was working

> relying on that. Now, the potential issue that had previously been

> hidden just showed up.

>

> '$MAKE image_name' recurses to the generated $(objtree)/Makefile and

> ends up with running in srctree, which is incorrect. It should be

> invoked with '-f $srctree/Makefile' (or KBUILD_SRC=) to be executed

> in objtree.

>

> Fixes: 80463f1b7bf9 ("kbuild: add --include-dir flag only for out-of-tree build")

> Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>


This fixes the issue I was seeing

Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


Thanks.

> ---

>

>  scripts/package/builddeb | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/scripts/package/builddeb b/scripts/package/builddeb

> index 90c9a8a..0b31f4f 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 -s -f $srctree/Makefile 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.7.4

>
Masahiro Yamada Nov. 9, 2018, 4:17 p.m. UTC | #2
On Mon, Nov 5, 2018 at 4:53 PM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>

> Ard Biesheuvel reports bindeb-pkg with O= option is broken in the

> following way:

>

>   ...

>     LD [M]  sound/soc/rockchip/snd-soc-rk3399-gru-sound.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-pcm.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-rt5645.ko

>     LD [M]  sound/soc/rockchip/snd-soc-rockchip-spdif.ko

>     LD [M]  sound/soc/sh/rcar/snd-soc-rcar.ko

>    fakeroot -u debian/rules binary

>   make KERNELRELEASE=4.19.0-12677-g19beffaf7a99-dirty ARCH=arm64 KBUILD_SRC= intdeb-pkg

>   /bin/bash /home/ard/linux/scripts/package/builddeb

>   Makefile:600: include/config/auto.conf: No such file or directory

>   ***

>   *** Configuration file ".config" not found!

>   ***

>   *** Please run some configurator (e.g. "make oldconfig" or

>   *** "make menuconfig" or "make xconfig").

>   ***

>   make[12]: *** [syncconfig] Error 1

>   make[11]: *** [syncconfig] Error 2

>   make[10]: *** [include/config/auto.conf] Error 2

>   make[9]: *** [__sub-make] Error 2

>   ...

>

> Prior to commit 80463f1b7bf9 ("kbuild: add --include-dir flag only

> for out-of-tree build"), both objtree and srctree were added to

> --include-dir, and the wrong code '$MAKE image_name' was working

> relying on that. Now, the potential issue that had previously been

> hidden just showed up.

>

> '$MAKE image_name' recurses to the generated $(objtree)/Makefile and

> ends up with running in srctree, which is incorrect. It should be

> invoked with '-f $srctree/Makefile' (or KBUILD_SRC=) to be executed

> in objtree.

>

> Fixes: 80463f1b7bf9 ("kbuild: add --include-dir flag only for out-of-tree build")

> Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---


Applied to linux-kbuild/fixes.


>  scripts/package/builddeb | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/scripts/package/builddeb b/scripts/package/builddeb

> index 90c9a8a..0b31f4f 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 -s -f $srctree/Makefile 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.7.4

>



-- 
Best Regards
Masahiro Yamada
diff mbox series

Patch

diff --git a/scripts/package/builddeb b/scripts/package/builddeb
index 90c9a8a..0b31f4f 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 -s -f $srctree/Makefile image_name)" "$tmpdir/$installed_image_path"
 
 if grep -q "^CONFIG_OF=y" $KCONFIG_CONFIG ; then
 	# Only some architectures with OF support have this target