2005-03-13 06:10:24

by Ryan Anderson

[permalink] [raw]
Subject: [KBUILD] Bug in make deb-pkg when using seperate source and object directories

Sam,

When running "make O=something deb-pkg", I get a failure that claims I
haven't configured my kernel (I have). Running it a second time tells
me to run "make mrproper" (include/linux/version.h got built on the
first run)

I did some preliminary poking around, but kbuild is still, well, mostly
magic to me - I can't see where the object directory is getting lost.

Think you can take a look? (Note, this failure shouldn't require
anything Debian specific on your system to trigger - it's failing, as
far as I can tell, on the $(MAKE) right before the call build the
builddeb script, so it should be easy to reproduce)

The log of when I run it follows:

ryan@mythryan2 ~/dev/linux/local-quilt$ blocal deb-pkg
make
make -C /home/ryan/dev/linux/local-quilt
O=/home/ryan/dev/linux/output/local
Makefile:487: .config: No such file or directory
Using /home/ryan/dev/linux/local-quilt as source for kernel
CHK include/linux/version.h
UPD include/linux/version.h
SYMLINK include/asm -> include/asm-i386
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
SHIPPED scripts/kconfig/zconf.tab.h
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s arch/i386/Kconfig
***
*** You have not yet configured your kernel!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[6]: *** [silentoldconfig] Error 1
make[5]: *** [silentoldconfig] Error 2
make[4]: *** [include/linux/autoconf.h] Error 2
make[3]: *** [all] Error 2
make[2]: *** [deb-pkg] Error 2
make[1]: *** [deb-pkg] Error 2
make: *** [deb-pkg] Error 2

"blocal" is a simple wrapper to cut down on retyping things, it's just
this:

ryan@mythryan2 ~/dev/linux/local-quilt$ cat /home/ryan/bin/blocal
#!/bin/bash -e

PWD=`pwd`

if [ "$PWD" != "/home/ryan/dev/linux/local-quilt" ]; then
cd /home/ryan/dev/linux/local-quilt
fi

make O=../output/local/ -j4 CC="ccache distcc" $*



--

Ryan Anderson
sometimes Pug Majere


2005-03-15 03:06:41

by Ajay Patel

[permalink] [raw]
Subject: Re: [KBUILD] Bug in make deb-pkg when using seperate source and object directories

Sam,

I had a similar problem building binrpm-pkg.
Try following patch. It worked for me.

Thanks
Ajay

Index: Makefile
===================================================================
RCS file: ./scripts/package/Makefile,v
retrieving revision 1.2
diff -d -c -5 -p -r1.2 Makefile
*** Makefile 25 Feb 2005 22:35:22 -0000 1.2
--- Makefile 14 Mar 2005 19:56:06 -0000
*************** clean-files := $(objtree)/kernel.spec
*** 57,67 ****
.PHONY: binrpm-pkg
$(objtree)/binkernel.spec: $(MKSPEC) $(srctree)/Makefile
$(CONFIG_SHELL) $(MKSPEC) prebuilt > $@

binrpm-pkg: $(objtree)/binkernel.spec
! $(MAKE)
set -e; \
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
set -e; \
mv -f $(objtree)/.tmp_version $(objtree)/.version
-@[ -d $(objtree)/../../pkgdir ] || mkdir -p $(objtree)/../../pkgdir
--- 57,67 ----
.PHONY: binrpm-pkg
$(objtree)/binkernel.spec: $(MKSPEC) $(srctree)/Makefile
$(CONFIG_SHELL) $(MKSPEC) prebuilt > $@

binrpm-pkg: $(objtree)/binkernel.spec
! $(MAKE) KBUILD_SRC=
set -e; \
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
set -e; \
mv -f $(objtree)/.tmp_version $(objtree)/.version
-@[ -d $(objtree)/../../pkgdir ] || mkdir -p $(objtree)/../../pkgdir
*************** clean-files += $(objtree)/binkernel.spec
*** 74,84 ****
# Deb target
# ---------------------------------------------------------------------------
#
.PHONY: deb-pkg
deb-pkg:
! $(MAKE)
$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb

clean-dirs += $(objtree)/debian/


--- 74,84 ----
# Deb target
# ---------------------------------------------------------------------------
#
.PHONY: deb-pkg
deb-pkg:
! $(MAKE) KBUILD_SRC=
$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb

clean-dirs += $(objtree)/debian/
$(MAKE)

========================================================

On Sun, 13 Mar 2005 01:09:41 -0500, Ryan Anderson <[email protected]> wrote:
> Sam,
>
> When running "make O=something deb-pkg", I get a failure that claims I
> haven't configured my kernel (I have). Running it a second time tells
> me to run "make mrproper" (include/linux/version.h got built on the
> first run)
>
> I did some preliminary poking around, but kbuild is still, well, mostly
> magic to me - I can't see where the object directory is getting lost.
>
> Think you can take a look? (Note, this failure shouldn't require
> anything Debian specific on your system to trigger - it's failing, as
> far as I can tell, on the $(MAKE) right before the call build the
> builddeb script, so it should be easy to reproduce)
>
> The log of when I run it follows:
>
> ryan@mythryan2 ~/dev/linux/local-quilt$ blocal deb-pkg
> make
> make -C /home/ryan/dev/linux/local-quilt
> O=/home/ryan/dev/linux/output/local
> Makefile:487: .config: No such file or directory
> Using /home/ryan/dev/linux/local-quilt as source for kernel
> CHK include/linux/version.h
> UPD include/linux/version.h
> SYMLINK include/asm -> include/asm-i386
> HOSTCC scripts/basic/fixdep
> HOSTCC scripts/basic/split-include
> HOSTCC scripts/basic/docproc
> SHIPPED scripts/kconfig/zconf.tab.h
> SHIPPED scripts/kconfig/zconf.tab.c
> SHIPPED scripts/kconfig/lex.zconf.c
> HOSTCC scripts/kconfig/conf.o
> HOSTCC scripts/kconfig/mconf.o
> HOSTCC scripts/kconfig/zconf.tab.o
> HOSTLD scripts/kconfig/conf
> scripts/kconfig/conf -s arch/i386/Kconfig
> ***
> *** You have not yet configured your kernel!
> ***
> *** Please run some configurator (e.g. "make oldconfig" or
> *** "make menuconfig" or "make xconfig").
> ***
> make[6]: *** [silentoldconfig] Error 1
> make[5]: *** [silentoldconfig] Error 2
> make[4]: *** [include/linux/autoconf.h] Error 2
> make[3]: *** [all] Error 2
> make[2]: *** [deb-pkg] Error 2
> make[1]: *** [deb-pkg] Error 2
> make: *** [deb-pkg] Error 2
>
> "blocal" is a simple wrapper to cut down on retyping things, it's just
> this:
>
> ryan@mythryan2 ~/dev/linux/local-quilt$ cat /home/ryan/bin/blocal
> #!/bin/bash -e
>
> PWD=`pwd`
>
> if [ "$PWD" != "/home/ryan/dev/linux/local-quilt" ]; then
> cd /home/ryan/dev/linux/local-quilt
> fi
>
> make O=../output/local/ -j4 CC="ccache distcc" $*
>
> --
>
> Ryan Anderson
> sometimes Pug Majere
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2005-03-20 00:28:24

by Ryan Anderson

[permalink] [raw]
Subject: Re: [KBUILD] Bug in make deb-pkg when using seperate source and object directories

On Mon, Mar 14, 2005 at 11:59:26AM -0800, Ajay Patel wrote:
> I had a similar problem building binrpm-pkg.
> Try following patch. It worked for me.

My problem wasn't actually resolved by this - the make in builddeb still
caused issues.

So, a normal, unified diff form of the patch, fixed up, is attached.

Signed-off-By: Ryan Anderson <[email protected]>

Index: local-quilt/scripts/package/Makefile
===================================================================
--- local-quilt.orig/scripts/package/Makefile 2005-03-19 19:25:03.000000000 -0500
+++ local-quilt/scripts/package/Makefile 2005-03-19 19:25:06.000000000 -0500
@@ -59,7 +59,7 @@ $(objtree)/binkernel.spec: $(MKSPEC) $(s
$(CONFIG_SHELL) $(MKSPEC) prebuilt > $@

binrpm-pkg: $(objtree)/binkernel.spec
- $(MAKE)
+ $(MAKE) KBUILD_SRC=
set -e; \
$(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
set -e; \
@@ -74,7 +74,7 @@ clean-files += $(objtree)/binkernel.spec
#
.PHONY: deb-pkg
deb-pkg:
- $(MAKE)
+ $(MAKE) KBUILD_SRC=
$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb

clean-dirs += $(objtree)/debian/
Index: local-quilt/scripts/package/builddeb
===================================================================
--- local-quilt.orig/scripts/package/builddeb 2005-03-19 19:25:03.000000000 -0500
+++ local-quilt/scripts/package/builddeb 2005-03-19 19:25:27.000000000 -0500
@@ -25,7 +25,7 @@ cp .config "$tmpdir/boot/config-$version
cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"

if grep -q '^CONFIG_MODULES=y' .config ; then
- INSTALL_MOD_PATH="$tmpdir" make modules_install
+ INSTALL_MOD_PATH="$tmpdir" make KBUILD_SRC= modules_install
fi

# Install the maintainer scripts

--

Ryan Anderson
sometimes Pug Majere

2005-04-03 19:44:48

by Sam Ravnborg

[permalink] [raw]
Subject: Re: [KBUILD] Bug in make deb-pkg when using seperate source and object directories

On Sat, Mar 19, 2005 at 07:28:00PM -0500, Ryan Anderson wrote:
> On Mon, Mar 14, 2005 at 11:59:26AM -0800, Ajay Patel wrote:
> > I had a similar problem building binrpm-pkg.
> > Try following patch. It worked for me.
>
> My problem wasn't actually resolved by this - the make in builddeb still
> caused issues.
>
> So, a normal, unified diff form of the patch, fixed up, is attached.
>
> Signed-off-By: Ryan Anderson <[email protected]>

Applied.

Sam