with the latest svn, I can't compile kernel with options ATA_CAM: ... linking kernel.debug ata-disk.o(.text+0x93): In function `ad_init': /r+d/stable/8.3/sys/dev/ata/ata-disk.c:389: undefined reference to `ata_setmode' ata-disk.o(.text+0xaa):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:397: undefined reference to `ata_wc' ata-disk.o(.text+0xc5):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:398: undefined reference to `ata_controlcmd' ata-disk.o(.text+0x113):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:400: undefined reference to `ata_controlcmd' ata-disk.o(.text+0x133):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:393: undefined reference to `ata_controlcmd' ata-disk.o(.text+0x16d):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:407: undefined reference to `ata_controlcmd' ata-disk.o(.text+0x21a): In function `ad_shutdown': /r+d/stable/8.3/sys/dev/ata/ata-disk.c:196: undefined reference to `ata_controlcmd' ata-disk.o(.text+0x45c): In function `ad_detach': /r+d/stable/8.3/sys/dev/ata/ata-disk.c:182: undefined reference to `ata_fail_requests' ... danny
On Fri, Apr 06, 2012 at 10:48:13AM +0300, Daniel Braniss wrote:> with the latest svn, I can't compile kernel with options ATA_CAM: > > ... > linking kernel.debug > ata-disk.o(.text+0x93): In function `ad_init': > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:389: undefined reference to > `ata_setmode' > ata-disk.o(.text+0xaa):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:397: undefined > reference to `ata_wc' > ata-disk.o(.text+0xc5):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:398: undefined > reference to `ata_controlcmd' > ata-disk.o(.text+0x113):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:400: undefined > reference to `ata_controlcmd' > ata-disk.o(.text+0x133):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:393: undefined > reference to `ata_controlcmd' > ata-disk.o(.text+0x16d):/r+d/stable/8.3/sys/dev/ata/ata-disk.c:407: undefined > reference to `ata_controlcmd' > ata-disk.o(.text+0x21a): In function `ad_shutdown': > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:196: undefined reference to > `ata_controlcmd' > ata-disk.o(.text+0x45c): In function `ad_detach': > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:182: undefined reference to > `ata_fail_requests' > ... >You seem to be using a mutually exclusive set of ata(4) options and devices (previously, this erroneously wasn't a bug). When including options ATA_CAM you do _not_ want to also include any of the following devices: device atapicam device atadisk device ataraid device atapicd device atapifd device atapist Instead you need the corresponding driver from the following set: device scbus device ch device da device sa device cd device pass Marius
On Apr 6, 2012, at 0:48, Daniel Braniss wrote:> with the latest svn, I can't compile kernel with options ATA_CAM: > > ... > linking kernel.debug > ata-disk.o(.text+0x93): In function `ad_init': > /r+d/stable/8.3/sys/dev/ata/ata-disk.c:389: undefined reference to > `ata_setmode'I ran into this, too (on 9.0). In my kernel config I include GENERIC and then have a bunch of (mostly) nooptions, nodevice to get a smaller kernel. To make it compile after updating /usr/src to the latest STABLE (from 9.0-RELEASE) I added option ATA_CAM device da nodevice ata nodevice atadisk ... but this makes the boot loader unable to find/see any partitions at all. What devices am I missing? I am booting from a compact flash ata interface on Soekris and PCEngines Alix boards. Ask