>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)