Re: linux-next: build failure after merge of the block tree

Fabian Frederick
2014-11-11T11:20:27Z

> On 11 November 2014 at 03:12 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
>
> Hi Jens,
>
> After merging the block tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> drivers/built-in.o: In function `cdrom_sysctl_handler':
> cdrom_sysctl.c:(.text+0x156d92): undefined reference to `cdrom_mutex'
> cdrom_sysctl.c:(.text+0x156da0): undefined reference to `cdrom_autoclose'
> cdrom_sysctl.c:(.text+0x156dae): undefined reference to `cdrom_autoeject'
> cdrom_sysctl.c:(.text+0x156dbc): undefined reference to `cdrom_debug'
> cdrom_sysctl.c:(.text+0x156dca): undefined reference to `cdrom_lockdoor'
> cdrom_sysctl.c:(.text+0x156dd8): undefined reference to
> `cdrom_check_media_type'
> cdrom_sysctl.c:(.text+0x156e0b): undefined reference to `cdrom_list'
> cdrom_sysctl.c:(.text+0x156e37): undefined reference to `cdrom_autoclose'
> cdrom_sysctl.c:(.text+0x156e57): undefined reference to `cdrom_autoeject'
> cdrom_sysctl.c:(.text+0x156e77): undefined reference to
> `cdrom_check_media_type'
> cdrom_sysctl.c:(.text+0x156ea4): undefined reference to `cdrom_lockdoor'
> cdrom_sysctl.c:(.text+0x156eb5): undefined reference to `cdrom_list'
> cdrom_sysctl.c:(.text+0x15702e): undefined reference to `cdrom_mutex'
> drivers/built-in.o: In function `cdrom_print_info.constprop.0':
> cdrom_sysctl.c:(.text+0x1570f3): undefined reference to `cdrom_list'
> cdrom_sysctl.c:(.text+0x157189): undefined reference to `cdrom_list'
> drivers/built-in.o: In function `cdrom_sysctl_info':
> cdrom_sysctl.c:(.text+0x1572c3): undefined reference to `cdrom_mutex'
> cdrom_sysctl.c:(.text+0x1576dc): undefined reference to `cdrom_mutex'
> drivers/built-in.o: In function `cdrom_sysctl_register':
> (.text+0x157765): undefined reference to `cdrom_autoclose'
> drivers/built-in.o: In function `cdrom_sysctl_register':
> (.text+0x157781): undefined reference to `cdrom_autoeject'
> drivers/built-in.o: In function `cdrom_sysctl_register':
> (.text+0x15778e): undefined reference to `cdrom_debug'
> drivers/built-in.o: In function `cdrom_sysctl_register':
> (.text+0x15779b): undefined reference to `cdrom_lockdoor'
> drivers/built-in.o: In function `cdrom_sysctl_register':
> (.text+0x1577a8): undefined reference to `cdrom_check_media_type'
>
> Probably caused by commit d01681d1457c ("cdrom: export sysctl code").
> This build has CONFIG_SYSCTL=y, CONFIG_BLK_DEV_IDECD=m,
> CONFIG_BLK_DEV_SR=m, CONFIG_PARIDE_PCD=m, CONFIG_CDROM_PKTCDVD=m,
> CONFIG_GDROM=n.
>
> I have used the block tree from next-20141110 for today.
> --
> Cheers,
> Stephen Rothwell                    sfr@canb.auug.org.au

Hi Stephen,

Problem is in Makefile:

obj-$(CONFIG_BLK_DEV_SR) += cdrom.o
obj-$(CONFIG_PARIDE_PCD) += cdrom.o
obj-$(CONFIG_CDROM_PKTCDVD) += cdrom.o
+obj-$(CONFIG_SYSCTL) += cdrom_sysctl.o

I tried cdrom-$(CONFIG_SYSCTL)  += cdrom_sysctl.o
to add sysctl only when cdrom.o is created

but now

drivers/scsi/sr_mod.ko
drivers/ide/ide-cd_mod.ko
drivers/ide/ide-cd_mod.ko

can't find cdrom.c functions ...

Is there another way to do it ?

Regards,
Fabian