With 2.4.7-6, I did my standard make mrproper make menuconfig make dep make clean MAKE="make -j2" make -j2 bzImage # my machine is SMP and the compile failed in the tulip driver. Just to make sure I didn't forget Mr. Proper, I did that again and tried a second time. It still failed in the same place. ld -m elf_i386 -r -o net.o tulip/tulip.o tulip_old/tulip_old.o Space.o setup.o net_init.o loopback.o auto_irq.o make -j2 all_targets tulip_old/tulip_old.o: In function `tulip_refill_rx': tulip_old/tulip_old.o(.text+0x630): multiple definition of `tulip_refill_rx' tulip/tulip.o(.text+0x640): first defined here tulip_old/tulip_old.o: In function `pnic_do_nway': tulip_old/tulip_old.o(.text+0x53c0): multiple definition of `pnic_do_nway' tulip/tulip.o(.text+0x5b30): first defined here ld: Warning: size of symbol `pnic_do_nway' changed from 330 to 292 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `tulip_mdio_read': tulip_old/tulip_old.o(.text+0x1220): multiple definition of `tulip_mdio_read' tulip/tulip.o(.text+0x12c0): first defined here tulip_old/tulip_old.o: In function `tulip_parse_eeprom': tulip_old/tulip_old.o(.text+0x0): multiple definition of `tulip_parse_eeprom' tulip/tulip.o(.text+0x0): first defined here ld: Warning: size of symbol `tulip_parse_eeprom' changed from 1395 to 1379 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `pnic_lnk_change': tulip_old/tulip_old.o(.text+0x5690): multiple definition of `pnic_lnk_change' tulip/tulip.o(.text+0x5c80): first defined here ld: Warning: size of symbol `pnic_lnk_change' changed from 268 to 272 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `tulip_check_duplex': tulip_old/tulip_old.o(.text+0x1e50): multiple definition of `tulip_check_duplex' tulip/tulip.o(.text+0x1f50): first defined here ld: Warning: size of symbol `tulip_check_duplex' changed from 480 to 407 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `tulip_interrupt': tulip_old/tulip_old.o(.text+0xaf0): multiple definition of `tulip_interrupt' tulip/tulip.o(.text+0xb00): first defined here ld: Warning: size of symbol `tulip_interrupt' changed from 1983 to 1840 in tulip_old/tulip_old.o tulip_old/tulip_old.o(.data+0x264): multiple definition of `tulip_debug' tulip/tulip.o(.data+0x264): first defined here tulip_old/tulip_old.o(.data+0x604): multiple definition of `t21040_csr13' tulip/tulip.o(.data+0x620): first defined here tulip_old/tulip_old.o: In function `comet_timer': tulip_old/tulip_old.o(.text+0x2540): multiple definition of `comet_timer' tulip/tulip.o(.text+0x28e0): first defined here tulip_old/tulip_old.o: In function `t21142_start_nway': tulip_old/tulip_old.o(.text+0x4e90): multiple definition of `t21142_start_nway' tulip/tulip.o(.text+0x5580): first defined here tulip_old/tulip_old.o(.rodata+0x100): multiple definition of `tulip_media_cap' tulip/tulip.o(.rodata+0x160): first defined here ld: Warning: size of symbol `tulip_media_cap'changed from 32 to 16 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `pnic_timer': tulip_old/tulip_old.o(.text+0x57a0): multiple definition of `pnic_timer' tulip/tulip.o(.text+0x5d90): first defined here ld: Warning: size of symbol `pnic_timer' changed from 805 to 763 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `t21142_timer': tulip_old/tulip_old.o(.text+0x4c80): multiple definition of `t21142_timer' tulip/tulip.o(.text+0x5350): first defined here ld: Warning: size of symbol `t21142_timer' changed from 559 to 525 in tulip_old/tulip_old.o tulip_old/tulip_old.o(.data+0x628): multiple definition of `t21041_csr15' tulip/tulip.o(.data+0x644): first defined here tulip_old/tulip_old.o: In function `tulip_mdio_write': tulip_old/tulip_old.o(.text+0x13b0): multiple definition of `tulip_mdio_write' tulip/tulip.o(.text+0x1450): first defined here ld: Warning: size of symbol `tulip_mdio_write' changed from 389 to 341 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `tulip_timer': tulip_old/tulip_old.o(.text+0x1ff0): multiple definition of `tulip_timer' tulip/tulip.o(.text+0x23c0): first defined here ld: Warning: size of symbol `tulip_timer' changed from 1219 to 1272 in tulip_old/tulip_old.o tulip_old/tulip_old.o: In function `t21142_lnk_change': tulip_old/tulip_old.o(.text+0x4fa0): multiple definition of `t21142_lnk_change' tulip/tulip.o(.text+0x5700): first defined here ld: Warning: size of symbol `t21142_lnk_change' changed from 1071 to 1047 in tulip_old/tulip_old.o tulip_old/tulip_old.o(.rodata+0xc0): multiple definition of `medianame' tulip/tulip.o(.rodata+0xe0): first defined here ld: Warning: size of symbol `medianame' changed from 128 to 64 in tulip_old/tulip_old.o tulip_old/tulip_old.o(.data+0x68a): multiple definition of `t21142_csr14' tulip/tulip.o(.data+0x76a): first defined here tulip_old/tulip_old.o(.bss+0x4): multiple definition of `tulip_rx_copybreak' tulip/tulip.o(.bss+0x10): first defined here tulip_old/tulip_old.o(.bss+0x0): multiple definition of `tulip_max_interrupt_work' tulip/tulip.o(.bss+0xc): first defined here tulip_old/tulip_old.o(.data+0x61e): multiple definition of `t21041_csr14' tulip/tulip.o(.data+0x63a): first defined here tulip_old/tulip_old.o: In function `tulip_read_eeprom': tulip_old/tulip_old.o(.text+0x570): multiple definition of `tulip_read_eeprom' tulip/tulip.o(.text+0x580): first defined here tulip_old/tulip_old.o(.data+0x614): multiple definition of `t21041_csr13' tulip/tulip.o(.data+0x630): first defined here tulip_old/tulip_old.o: In function `tulip_select_media': tulip_old/tulip_old.o(.text+0x1510): multiple definition of `tulip_select_media' tulip/tulip.o(.text+0x15e0): first defined here ld: Warning: size of symbol `tulip_select_media' changed from 2411 to 2363 in tulip_old/tulip_old.o tulip_old/tulip_old.o(.data+0x268): multiple definition of `tulip_tbl' tulip/tulip.o(.data+0x268): first defined here tulip_old/tulip_old.o: In function `mxic_timer': tulip_old/tulip_old.o(.text+0x24f0): multiple definition of `mxic_timer' tulip/tulip.o(.text+0x2890): first defined here make[3]: *** [net.o] Error 1
Created attachment 30536 [details] kernel config
Um, I don't think you *can* compile tulip and tulip_old into the kernel and have it work - I'm not sure this is fixable. (of course, you could always fix this in the config stuff...)
Try looking at the .config file I attached. I didn't ask for it to compile the old tulip driver, yet it's trying to do so anyway.... BTW, I think at one point you could compile both, but they both had to be modules.
reproduced on another machine -- although I'm not configuring both tulip modules, both are attempting to compile, and failing
Still true with 2.4.7-10 2.4.7-2 did compile for me with the same .config
I finally got a chance to actually look at what's going on. Somewhere between 2.4.7-2 and 2.4.7-10, someone broke the tulip driver so that it will only compile as a module. This is a major regression from RH 7.1. As a matter of practice, I disable module support on firewalls. I can't do that with RH 7.2 without modifying kernel source because of this.... To reproduce: $ cd /usr/src/linux-2.4.7-10 $ make mrproper $ cp configs/kernel-2.4.7-i686-smp.config .config $ make menuconfig (make only one change: tulip from module to static) $ make dep ; make clean ; make bzImage and watch the compile fail.
Fixed in 2.4.18-3 from 7.3 gold