tags 358568 +pending
thanks
I think I've found the reason.
Jari, the test for "some 2.6 kernels need # character in
KBUILD_BASENAME and KBUILD_MODNAME" returns true for Debian
2.6.16 kernels, where it used to return false for 2.6.15.
(I have not checked vanilla kernels yet)
Makefile then does
ifeq ($(SR1),y)
EF += -D"KBUILD_STR(s)=\#s"
which apparently gets evaluated by shell twice and causes
the quoting to fail. It results in a syntax error:
[...] -D"KBUILD_STR(s)=# [...]
I'm considering to change it to the following, but first
wanted to ask if you know whether the change could then
break builds for other kernels:
ifeq ($(SR1),y)
EF += -D"KBUILD_STR(s)=\\\#s"
The full bug report is quoted below.
cheers,
Max
On Thu, Mar 23, 2006 at 11:01:07AM +0100, Csillag Kristóf wrote:
> Package: loop-aes-source
> Version: 3.1c-3
> Severity: important
> Justification: fails to build from source
>
> When I try to build the sources with make-kpkg for 2.6.16,
> i get the following: (this applies to both 2.6.16-1 and 2.6.16-2)
>
> make-kpkg --added-modules loop-aes modules_image
>
> [...]
> make[4]: Entering directory `/usr/src/linux-source-2.6.16'
> /bin/sh: -c: line 1: syntax error near unexpected token `('
> /bin/sh: -c: line 1: `set -e; echo ' CC [M]
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.o'; gcc-4.0
> -Wp,-MD,/usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.d
> -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__
> -Iinclude -include include/linux/autoconf.h -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
> -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float
> -mpreferred-stack-boundary=2 -march=i686 -mtune=pentium3
> -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement
> -Wno-pointer-sign -D"KBUILD_STR(s)= -DMODULE -D"KBUILD_STR(s)=#s"
> -D"KBUILD_BASENAME=KBUILD_STR(patched_loop)"
> -D"KBUILD_MODNAME=KBUILD_STR(loop)" -c -o
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.o
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.c;
> scripts/basic/fixdep
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.d
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.o 'gcc-4.0
> -Wp,-MD,/usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.d
> -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -D__KERNEL__
> -Iinclude -include include/linux/autoconf.h -Wall -Wundef
> -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
> -ffreestanding -O2 -fomit-frame-pointer -pipe -msoft-float
> -mpreferred-stack-boundary=2 -march=i686 -mtune=pentium3
> -Iinclude/asm-i386/mach-default -Wdeclaration-after-statement
> -Wno-pointer-sign -D"KBUILD_STR(s)= -DMODULE -D"KBUILD_STR(s)=#s"
> -D"KBUILD_BASENAME=KBUILD_STR(patched_loop)"
> -D"KBUILD_MODNAME=KBUILD_STR(loop)" -c -o
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.o
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.c' >
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.tmp; rm -f
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.d; mv -f
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.tmp
> /usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/.patched-loop.o.cmd'
> make[5]: *** [/usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild/patched-loop.o]
> Error 2
> make[4]: *** [_module_/usr/src/modules/loop-aes/loop-AES/tmp-d-kbuild] Error 2
> make[4]: Leaving directory `/usr/src/linux-source-2.6.16'
> make[3]: *** [all] Error 2
> make[3]: Leaving directory `/usr/src/modules/loop-aes/loop-AES'
> make[2]: *** [build-stamp] Error 2
> make[2]: Leaving directory `/usr/src/modules/loop-aes'
> make[1]: *** [kdist_build] Error 2
> make[1]: Leaving directory `/usr/src/modules/loop-aes'
> Module /usr/src/modules/loop-aes failed.
> This is new; for 2.6.15, this used to work.
>
> Please let me know how can I help you to debug this!