Subject: Re: randconfig build errors with next-20130620, in several drivers/media

From: Randy Dunlap <[email-masked]>
Date: Fri, 21 Jun 2013 18:42:25 -0700

On 06/21/13 17:27, Laurent Pinchart wrote:
> Hi,
> 
> On Thursday 20 June 2013 11:52:44 Jim Davis wrote:
>> Building with the attached random configuration file generates errors in
>> both
>>

> [snip]
> 
> The issue seem to be caused by USB_VIDEO_CLASS=y and VIDEO_V4L2=m && USB=m. 
> I'm not sure what made that combination possible, but I haven't been able to 
> reproduce it locally on next-20130620. Running make with the attached config 
> turns USB_VIDEO_CLASS=y into USB_VIDEO_CLASS=m.

Yes, same for me:  USB_VIDEO_CLASS=m instead of =y.

However, please check the attached config file (as reported on June 17).

On linux-next of 20130621 it still produces:

CONFIG_USB_VIDEO_CLASS=y
CONFIG_VIDEO_V4L2=m
CONFIG_USB=m

drivers/built-in.o: In function `vb2_fop_mmap':
(.text+0xb8188): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_streamoff':
(.text+0xb8901): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_streamon':
(.text+0xb8a75): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_expbuf':
(.text+0xb8c71): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_querybuf':
(.text+0xb8df5): undefined reference to `video_devdata'
drivers/built-in.o:(.text+0xb95c9): more undefined references to `video_devdata' follow
drivers/built-in.o: In function `vb2_fop_release':
(.text+0xb9a1b): undefined reference to `v4l2_fh_release'
drivers/built-in.o: In function `vb2_ioctl_qbuf':
(.text+0xb9fb0): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_prepare_buf':
(.text+0xba359): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_poll':
(.text+0xba4ce): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_poll':
(.text+0xba500): undefined reference to `v4l2_event_pending'
drivers/built-in.o: In function `vb2_fop_poll':
(.text+0xba6fe): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_ioctl_dqbuf':
(.text+0xbabe4): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_fop_write':
(.text+0xbafcc): undefined reference to `video_devdata'
drivers/built-in.o: In function `vb2_fop_read':
(.text+0xbb0b6): undefined reference to `video_devdata'
drivers/built-in.o: In function `uvc_delete':
uvc_driver.c:(.text+0xbb835): undefined reference to `v4l2_device_unregister'
uvc_driver.c:(.text+0xbb880): undefined reference to `video_device_release'
drivers/built-in.o: In function `uvc_unregister_video':
uvc_driver.c:(.text+0xbb938): undefined reference to `video_unregister_device'
drivers/built-in.o: In function `uvc_probe':
uvc_driver.c:(.text+0xbd38d): undefined reference to `v4l2_device_register'
uvc_driver.c:(.text+0xbd42a): undefined reference to `v4l2_prio_init'
uvc_driver.c:(.text+0xbd954): undefined reference to `video_device_alloc'
uvc_driver.c:(.text+0xbd9f5): undefined reference to `__video_register_device'
uvc_driver.c:(.text+0xbda19): undefined reference to `video_device_release'
drivers/built-in.o: In function `uvc_v4l2_ioctl':
uvc_v4l2.c:(.text+0xbe346): undefined reference to `v4l_printk_ioctl'
uvc_v4l2.c:(.text+0xbe369): undefined reference to `video_usercopy'
drivers/built-in.o: In function `uvc_v4l2_open':
uvc_v4l2.c:(.text+0xbe8b8): undefined reference to `video_devdata'
uvc_v4l2.c:(.text+0xbe97e): undefined reference to `v4l2_fh_init'
uvc_v4l2.c:(.text+0xbe986): undefined reference to `v4l2_fh_add'
drivers/built-in.o: In function `uvc_v4l2_release':
uvc_v4l2.c:(.text+0xbea20): undefined reference to `v4l2_fh_del'
uvc_v4l2.c:(.text+0xbea28): undefined reference to `v4l2_fh_exit'
drivers/built-in.o: In function `uvc_v4l2_do_ioctl':
uvc_v4l2.c:(.text+0xbeaa3): undefined reference to `video_devdata'
uvc_v4l2.c:(.text+0xbee15): undefined reference to `v4l2_prio_max'
uvc_v4l2.c:(.text+0xbee33): undefined reference to `v4l2_prio_check'
uvc_v4l2.c:(.text+0xbee58): undefined reference to `v4l2_prio_change'
uvc_v4l2.c:(.text+0xbeecd): undefined reference to `v4l2_prio_check'
uvc_v4l2.c:(.text+0xbefcf): undefined reference to `v4l2_prio_check'
uvc_v4l2.c:(.text+0xbf210): undefined reference to `v4l2_prio_check'
uvc_v4l2.c:(.text+0xbf33a): undefined reference to `v4l2_prio_check'
uvc_v4l2.c:(.text+0xbf621): undefined reference to `v4l2_prio_check'
drivers/built-in.o:uvc_v4l2.c:(.text+0xbf6d8): more undefined references to `v4l2_prio_check' follow
drivers/built-in.o: In function `uvc_v4l2_do_ioctl':
uvc_v4l2.c:(.text+0xbf880): undefined reference to `v4l2_event_subscribe'
uvc_v4l2.c:(.text+0xbf890): undefined reference to `v4l2_event_unsubscribe'
uvc_v4l2.c:(.text+0xbf8ab): undefined reference to `v4l2_event_dequeue'
drivers/built-in.o: In function `uvc_ctrl_add_event':
uvc_ctrl.c:(.text+0xc2526): undefined reference to `v4l2_event_queue_fh'
drivers/built-in.o: In function `uvc_ctrl_send_event':
uvc_ctrl.c:(.text+0xc25c5): undefined reference to `v4l2_event_queue_fh'
drivers/built-in.o:(.rodata+0xfe20): undefined reference to `v4l2_ctrl_replace'
drivers/built-in.o:(.rodata+0xfe28): undefined reference to `v4l2_ctrl_merge'

-- 
~Randy