From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.1; DigExt; AIRF) Description of problem: When trying to rebuild the kernel it fails when trying to compile aic7xxx_drv.o for the scsi controller. I have a super micro 370dl3 motherboard with a Onboard Adaptec AIC-7892 single channel Ultra3/160 SCSI controller. I used kgcc to compile redhat 7.1 with the command make CC=kgcc bzImage.... How reproducible: Always Steps to Reproduce: 1. just load in the scsi low level driver aic7xxx_drv and use the default parameters. when trying to build a new kernel. 2. 3. Actual Results: last lines of compile drivers/scsi/aic7xxx_new/aic7xxx_drv.o(.text+0x118): multiple definition of 'ahc_dmamem_alloc' drivers/scsi/aic7xxx_new/scsi_drv.o(.text+0xa108): first defined here make: *** [vmlinux] Error 1 Expected Results: It should have continued compiling and made the bzImage file Additional info: One additional note. I am using the xfs file system by sgi. I do not think this has any relevance to this particular bug. However I do have to use the kgcc to compile because of it.
I just tried this, and for me it compiles fine. Maybe there's a bit more to this than just setting SCSI and aic7xxx from "M" to "Y", so could you attach your .config? Also, maybe SGI broke the kernel so please report this problem also to them. As for using kgcc; we (Red Hat) trust egcs less than gcc 2.96 for building kernels, and egcs is known to miscompile some codefragments; the kernel tries to avoid those but I can't guarantee there are none left.
I figured out my problem ... I needed to do a make mrproper first. I ran into another quirk. In order to make the initrd file I needed to compile aic as a module however in order to get it to boot the system it needed to be compiled into the kernel since I boot to a scsi drive. Here is how I solved the problem in case someone else experiences something similar. how to build a linux kernel with xfs and scsi drives. first must build kernel with aic7xxx module support then build with aic compiled in. when building kernel run a make mrproper first make xconfig then make sure enable xfs support enable scsi aic7xxx (this assumes you did a previous build as a module so you can use that directory to make an initrd) then save and exit make clean make dep make bzImage make modules install bzimage to /boot make modules_install (be sure to rename previous module install before you do this) now copy back the old /lib/modules directory with aic as a module go to /boot do a mkinitrd /boot/initrd-nameofkernel nameofkernel it should build the initrd and find the aic module which it needed to work then go back to the modules directory and but back the modules that you compiled for the current kernel. edit /etc/lilo.conf add new entry to lilo. do a lilo -t -v to test and make sure there are no problems. type lilo to commit changes reboot to new kernel....
Things is, if you build it in your kernel, you don't need a initrd at all, and if you build it as a module, you can boot BECAUSE of the initrd....