2003-02-11 11:04:29

by Guennadi Liakhovetski

[permalink] [raw]
Subject: 2.5.60 linking error with IDE-DMA disabled

Hello

If I try to compile the kernel with IDE bus-mastering disabled (which,
IIRC, worked on 2.4.x), I get the following error:

ld -m elf_i386 -e stext -T arch/i386/vmlinux.lds.s
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/built-in.o
--start-group usr/built-in.o arch/i386/kernel/built-in.o
arch/i386/mm/built-in.o arch/i386/mach-default/built-in.o
kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o
security/built-in.o crypto/built-in.o lib/lib.a arch/i386/lib/lib.a
drivers/built-in.o sound/built-in.o arch/i386/pci/built-in.o
net/built-in.o --end-group -o .tmp_vmlinux1
drivers/built-in.o: In function `init_dma_generic':
drivers/built-in.o(.text+0x28dce): undefined reference to `ide_setup_dma'
drivers/built-in.o: In function `ide_hwif_setup_dma':
drivers/built-in.o(.text+0x357c8): undefined reference to `ide_setup_dma'
make[1]: *** [.tmp_vmlinux1] Error 1

The relevant section of .config:

#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
CONFIG_BLK_DEV_IDECS=m
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=m
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
# CONFIG_BLK_DEV_CMD640 is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_IDEDMA_PCI is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_BLK_DEV_ADMA is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_IDE_CHIPSETS is not set

Thanks
Guennadi
---------------------------------
Guennadi Liakhovetski, Ph.D.
DSA Daten- und Systemtechnik GmbH
Pascalstr. 28
D-52076 Aachen
Germany


2003-02-11 21:04:08

by Alan

[permalink] [raw]
Subject: Re: 2.5.60 linking error with IDE-DMA disabled

On Tue, 2003-02-11 at 11:12, Guennadi Liakhovetski wrote:
> Hello
>
> If I try to compile the kernel with IDE bus-mastering disabled (which,
> IIRC, worked on 2.4.x), I get the following error:
>

Looks like the 2.5 makefile is broken. If you didnt include any IDE DMA
support them ide-dma.c should not have been linked into the kernel. 2.4.x
seems to get this right (though I have to fix modular IDE there yet).
I'll have a look at the rest when I try and get 2.5.60 IDE back in sync
with the newer 2.4 code.

Alan

2003-02-12 15:30:36

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.5.60 linking error with IDE-DMA disabled

On Tue, Feb 11, 2003 at 01:02:23PM +0000, Alan Cox wrote:
> On Tue, 2003-02-11 at 11:12, Guennadi Liakhovetski wrote:
> > Hello
> >
> > If I try to compile the kernel with IDE bus-mastering disabled (which,
> > IIRC, worked on 2.4.x), I get the following error:
> >
>
> Looks like the 2.5 makefile is broken. If you didnt include any IDE DMA
> support them ide-dma.c should not have been linked into the kernel. 2.4.x
> seems to get this right (though I have to fix modular IDE there yet).
> I'll have a look at the rest when I try and get 2.5.60 IDE back in sync
> with the newer 2.4 code.

It isn't ide-dma.c. The error messages talk about the functions
init_dma_generic and ide_hwif_setup_dma and these are in pci/generic.c
and setup-pci.c, respectively.

These are included since he has CONFIG_BLK_DEV_IDEPCI and
CONFIG_BLK_DEV_GENERIC enabled.

> Alan

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed