From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.2.1) Gecko/20021130 Description of problem: errata kernel source (2.4.18-19.7.x and 2.4.18-24.7.x) fails to compile. fresh installation of redhat 7.3, gcc upgraded to 2.96-113, glibc 2.2.5-42. use default kernel configuration (configs/kernel-2.4.18-i686.config), "make modules" fails on drm char drivers sis_mm.c. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. rm -fr /usr/src/linux-* 2. rpm -i kernel-source-2.4.18-24.7.x.i386.rpm 3. cd /usr/src/linux-2.4 4. cp configs/kernel-2.4.18-i686.config .config 5. make dep 6. make bzImage 7. make modules Actual Results: make[3]: Entering directory `/usr/src/linux-2.4.18-24.7.x/drivers/char/drm' gcc -D__KERNEL__ -I/usr/src/linux-2.4.18-24.7.x/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.18-24.7.x/include/linux/modversions.h -nostdinc -I /usr/lib/gcc-lib/i386-redhat-linux/2.96/include -DKBUILD_BASENAME=sis_mm -c -o sis_mm.o sis_mm.c In file included from sis_mm.c:33: /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:116: floating constant exponent has no digits /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:116: missing white space after number `5e' /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:116: parse error before `5e' /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:116: warning: function declaration isn't a prototype /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:118: `sis_malloc_R_ver_str' declared as function returning a function /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:118: warning: parameter names (without types) in function declaration /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:119: `sis_free_R_ver_str' declared as function returning a function /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:119: warning: parameter names (without types) in function declaration /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:120: nondigits in number andnot hexadecimal /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:120: nondigits in number andnot hexadecimal /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:120: parse error before `601b25a5' /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:120: `sis_dispinfo_R_ver_str' declared as function returning a function /usr/src/linux-2.4.18-24.7.x/include/linux/sisfb.h:120: warning: function declaration isn't a prototype sis_mm.c: In function `sis_fb_alloc': sis_mm.c:87: warning: implicit declaration of function `sis_malloc_Ra3329ed5' sis_mm.c:94: warning: implicit declaration of function `sis_free_Rced25333' make[3]: *** [sis_mm.o] Error 1 make[3]: Leaving directory `/usr/src/linux-2.4.18-24.7.x/drivers/char/drm' make[2]: *** [_modsubdir_drm] Error 2 make[2]: Leaving directory `/usr/src/linux-2.4.18-24.7.x/drivers/char' make[1]: *** [_modsubdir_char] Error 2 make[1]: Leaving directory `/usr/src/linux-2.4.18-24.7.x/drivers' make: *** [_mod_drivers] Error 2 Expected Results: successful compilation Additional info:
Insert "make mrproper" between steps 3 and 4. Insert "make oldconfig" between steps 4 and 5.
It doesn't make for me either. I used the standard i686 config file, selected using make xconfig and then picking out that config file. The Makefile was edited to get rid of the "custom" and then make dep was run. The problem I noticed was that no kernel modules seemed to want to compile against this setup. ALSA failed, as did the ltmodem drivers, and then the vmware modules. All of those gave errors like: gcc -D__KERNEL__ -DMODULE=1 -I/opt/local/src/Sound/alsa/rc8/alsa-driver-0.9.0rc8b/include -I/lib/modules/2.4.18-26.7.x/build/include -O2 -mpreferred-stack-boundary=2 -march=i686 -DLINUX -Wall -Wstrict-prototypes -fomit-frame-pointer -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe -DALSA_BUILD -DEXPORT_SYMTAB -c hwdep.c In file included from /lib/modules/2.4.18-26.7.x/build/include/linux/prefetch.h:13, from /lib/modules/2.4.18-26.7.x/build/include/linux/list.h:6, from /lib/modules/2.4.18-26.7.x/build/include/linux/module.h:12, from /opt/local/src/Sound/alsa/rc8/alsa-driver-0.9.0rc8b/include/adriver.h:49, from /opt/local/src/Sound/alsa/rc8/alsa-driver-0.9.0rc8b/include/sound/driver.h:43, from ../alsa-kernel/core/hwdep.c:22, from hwdep.c:1: /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:51: warning: parameter names (without types) in function declaration /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:51: field `loops_per_jiffy_R_ver_str' declared as a function /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:73: nondigits in number and not hexadecimal /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:73: parse error before `0657d037' which are truly weird because the string 0657d037 is not in that file. gcc -D__KERNEL__ -I/lib/modules/2.4.18-26.7.x/build/include -Wall -Wstrict-prototypes -O3 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DLT_VERSION=8.26a9 -DLINUX -DNO_EEPROM -DLT_SERIAL_MODULE=lt_serial -c -o ltmodem.a ltmodem.c In file included from /lib/modules/2.4.18-26.7.x/build/include/linux/prefetch.h:13, from /lib/modules/2.4.18-26.7.x/build/include/linux/list.h:6, from /lib/modules/2.4.18-26.7.x/build/include/linux/module.h:12, from ltmodem.c:34: /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:51: warning: parameter names (without types) in function declaration /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:51: field `loops_per_jiffy_R_ver_str' declared as a function /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:73: nondigits in number and not hexadecimal /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:73: parse error before `0657d037' /lib/modules/2.4.18-26.7.x/build/include/asm/processor.h:73: warning: function declaration isn't a prototype and Building for VMware Workstation 3.2.x make: Entering directory `/tmp/vmware-config0/vmmon-only' make[1]: Entering directory `/tmp/vmware-config0/vmmon-only' make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.4.18-26.7.x'make[2]: Leaving directory `/tmp/vmware-config0/vmmon-only/driver-2.4.18-26.7.x' make[2]: Entering directory `/tmp/vmware-config0/vmmon-only/driver-2.4.18-26.7.x'In file included from .././linux/driver.c:43: /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:60: nondigits in number and not hexadecimal /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:60: nondigits in number and not hexadecimal /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:60: parse error before `01075bf0' /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:61: `panic_R_ver_str' declared as function returning a function /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:61: warning: function declaration isn't a prototype /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:67: parse error before `20000329' /lib/modules/2.4.18-26.7.x/build/include/linux/kernel.h:67: `simple_strtoul_R_ver_str' declared as function returning a function Even a straight compile of the kernel barfed with the message: kallsyms pass 1 ld -m elf_i386 -T /usr/src/linux-2.4.18-26.7.x/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/drm/drm.o drivers/net/fc/fc.o drivers/net/appletalk/appletalk.o drivers/net/tokenring/tr.o drivers/net/wan/wan.o drivers/atm/atm.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/pci/driver.o drivers/net/pcmcia/pcmcia_net.o drivers/net/wireless/wireless_net.o drivers/pnp/pnp.o drivers/video/video.o drivers/md/mddev.o drivers/isdn/vmlinux-obj.o drivers/sensors/sensor.o net/network.o crypto/crypto.o abi/abi.o /usr/src/linux-2.4.18-26.7.x/arch/i386/lib/lib.a /usr/src/linux-2.4.18-26.7.x/lib/lib.a /usr/src/linux-2.4.18-26.7.x/arch/i386/lib/lib.a --end-group -o .tmp_vmlinux1 fs/fs.o: In function `zisofs_readpage': fs/fs.o(.text+0x2e19c): undefined reference to `zlib_inflateInit_' fs/fs.o(.text+0x2e2e2): undefined reference to `zlib_inflate' fs/fs.o(.text+0x2e4a9): undefined reference to `zlib_inflateEnd' fs/fs.o: In function `mnt_init': fs/fs.o(.text.init+0x93c): undefined reference to `init_rootfs' fs/fs.o: In function `zisofs_init': fs/fs.o(.text.init+0xc89): undefined reference to `zlib_inflate_workspacesize' make[1]: *** [kallsyms] Error 1 make[1]: Leaving directory `/usr/src/linux-2.4.18-26.7.x' make: *** [vmlinux] Error 2 So something is messed up here. The kernel RPMS had correct MD5 hashes.
1) you forgot make mrproper too and 2) if you want to compile external modules for the kernel binary RH ships, you should NOT run make dep, because that destroys the information needed for that.
> fs/fs.o(.text+0x2e19c): undefined reference to `zlib_inflateInit_' Additionally, don't use "make xconfig". Use "make menuconfig". xconfig is known to create bad kernel configs. This particular one (zlib) is documented in bugzilla somewhere else.