>From MandrakeLinux-9.0beta2-CD3.i586.iso
rpm: kernel-source-2.4.18-22mdk.i586.rpm

"make modules" doesn't work out of the box. I'm using Mandrake 8.1,
gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk) as my development
system.

After "make clean", "make depend", "make bzImage", "make modules", the build
fails at "drivers/atm/ambassador.c".  The build output is:

gcc -D__KERNEL__ -I/usr/src/linux-2.4.18-22mdk/include  -Wall -Wstrict-prototypes 
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe 
-mpreferred-stack-boundary=2 -march=i586 -DMODULE -DMODVERSIONS -include 
/usr/src/linux-2.4.18-22mdk/include/linux/modversions.h -g -nostdinc -I 
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include -DKBUILD_BASENAME=ambassador  -c 
-o ambassador.o ambassador.c
ambassador.c:301:22: atmsar11. start: No such file or directory
ambassador.c:305:24: atmsar11. regions: No such file or directory
ambassador.c:310:21: atmsar11. data: No such file or directory
ambassador.c:302: parse error before `;'
make[2]: *** [ambassador.o] Error 1
make[2]: Leaving directory `/usr/src/linux-2.4.18-22mdk/drivers/atm'

It looks like the macros used to build an include string don't use
preprocessor concatenation, and the resulting include file name is bogus.

I suggest that the attached patch be used.


*** ambassador.c~	Thu Aug  1 13:35:30 2002
--- ambassador.c	Thu Aug 15 10:50:13 2002
***************
*** 290,301 ****
  /********** microcode **********/
  
  #ifdef AMB_NEW_MICROCODE
! #define UCODE(x) UCODE1(atmsar12.,x)
  #else
! #define UCODE(x) UCODE1(atmsar11.,x)
  #endif
! #define UCODE2(x) #x
! #define UCODE1(x,y) UCODE2(x y)
  
  static u32 __initdata ucode_start = 
  #include UCODE(start)
--- 290,300 ----
  /********** microcode **********/
  
  #ifdef AMB_NEW_MICROCODE
! #define UCODE(x) UCODE1(atmsar12. ## x)
  #else
! #define UCODE(x) UCODE1(atmsar11. ## x)
  #endif
! #define UCODE1(x) #x
  
  static u32 __initdata ucode_start = 
  #include UCODE(start)

Reply via email to