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!


Reply via email to