# Kernel 3.5.4-Gentoo fails to compile

## Clad in Sky

Hello,

I've just configured a new kernel based on my previous one. Somehow, though, it does not compile and fails due to the UVC driver having undefined reverences to several usb related functions.

```

drivers/built-in.o: In function `uvc_delete':

uvc_driver.c:(.text+0x18f98b): undefined reference to `usb_put_intf'

uvc_driver.c:(.text+0x18f993): undefined reference to `usb_put_dev'

uvc_driver.c:(.text+0x18fa40): undefined reference to `usb_driver_release_interface'

uvc_driver.c:(.text+0x18fa4a): undefined reference to `usb_put_intf'

drivers/built-in.o: In function `uvc_probe':

uvc_driver.c:(.text+0x19012f): undefined reference to `usb_get_dev'

uvc_driver.c:(.text+0x19013e): undefined reference to `usb_get_intf'

uvc_driver.c:(.text+0x190424): undefined reference to `usb_ifnum_to_if'

uvc_driver.c:(.text+0x1904aa): undefined reference to `usb_driver_claim_interface'

uvc_driver.c:(.text+0x190500): undefined reference to `usb_driver_release_interface'

uvc_driver.c:(.text+0x19052c): undefined reference to `usb_get_intf'

uvc_driver.c:(.text+0x190f4e): undefined reference to `usb_driver_release_interface'

uvc_driver.c:(.text+0x190f57): undefined reference to `usb_put_intf'

uvc_driver.c:(.text+0x1912a3): undefined reference to `usb_string'

uvc_driver.c:(.text+0x19146c): undefined reference to `usb_string'

uvc_driver.c:(.text+0x1915c5): undefined reference to `usb_string'

uvc_driver.c:(.text+0x191e11): undefined reference to `usb_enable_autosuspend'

drivers/built-in.o: In function `uvc_v4l2_release':

uvc_v4l2.c:(.text+0x192756): undefined reference to `usb_autopm_put_interface'

drivers/built-in.o: In function `uvc_v4l2_open':

uvc_v4l2.c:(.text+0x193f42): undefined reference to `usb_autopm_get_interface'

uvc_v4l2.c:(.text+0x193f6a): undefined reference to `usb_autopm_put_interface'

uvc_v4l2.c:(.text+0x193fa2): undefined reference to `usb_autopm_put_interface'

drivers/built-in.o: In function `uvc_uninit_video':

uvc_video.c:(.text+0x194031): undefined reference to `usb_kill_urb'

uvc_video.c:(.text+0x194039): undefined reference to `usb_free_urb'

uvc_video.c:(.text+0x194082): undefined reference to `usb_free_coherent'

drivers/built-in.o: In function `uvc_alloc_urb_buffers':

uvc_video.c:(.text+0x1941b8): undefined reference to `usb_alloc_coherent'

uvc_video.c:(.text+0x1941f5): undefined reference to `usb_free_coherent'

drivers/built-in.o: In function `uvc_init_video':

uvc_video.c:(.text+0x194416): undefined reference to `usb_set_interface'

uvc_video.c:(.text+0x194493): undefined reference to `usb_alloc_urb'

uvc_video.c:(.text+0x194603): undefined reference to `usb_alloc_urb'

uvc_video.c:(.text+0x19468b): undefined reference to `usb_submit_urb'

drivers/built-in.o: In function `uvc_video_complete':

uvc_video.c:(.text+0x19478f): undefined reference to `usb_submit_urb'

drivers/built-in.o: In function `uvc_video_decode_start':

uvc_video.c:(.text+0x194b33): undefined reference to `usb_get_current_frame_number'

drivers/built-in.o: In function `__uvc_query_ctrl.clone.7':

uvc_video.c:(.text+0x194f93): undefined reference to `usb_control_msg'

drivers/built-in.o: In function `uvc_video_suspend':

(.text+0x195e04): undefined reference to `usb_set_interface'

drivers/built-in.o: In function `uvc_video_resume':

(.text+0x195e29): undefined reference to `usb_set_interface'

drivers/built-in.o: In function `uvc_video_init':

(.text+0x195ef3): undefined reference to `usb_set_interface'

drivers/built-in.o: In function `uvc_video_enable':

(.text+0x196035): undefined reference to `usb_set_interface'

drivers/built-in.o: In function `uvc_video_enable':

(.text+0x196123): undefined reference to `usb_set_interface'

drivers/built-in.o: In function `uvc_ctrl_init_xu_ctrl':

uvc_ctrl.c:(.text+0x196ea8): undefined reference to `usb_match_one_id'

drivers/built-in.o: In function `uvc_ctrl_init_device':

(.text+0x197c19): undefined reference to `usb_match_one_id'

drivers/built-in.o: In function `uvc_status_complete':

uvc_status.c:(.text+0x19806f): undefined reference to `usb_submit_urb'

drivers/built-in.o: In function `uvc_status_init':

(.text+0x1980f1): undefined reference to `usb_alloc_urb'

drivers/built-in.o: In function `uvc_status_cleanup':

(.text+0x1981c9): undefined reference to `usb_kill_urb'

drivers/built-in.o: In function `uvc_status_cleanup':

(.text+0x1981d5): undefined reference to `usb_free_urb'

drivers/built-in.o: In function `uvc_status_start':

(.text+0x198201): undefined reference to `usb_submit_urb'

drivers/built-in.o: In function `uvc_status_stop':

(.text+0x198213): undefined reference to `usb_kill_urb'

drivers/built-in.o: In function `uvc_status_suspend':

(.text+0x19822c): undefined reference to `usb_kill_urb'

drivers/built-in.o: In function `uvc_status_resume':

(.text+0x198256): undefined reference to `usb_submit_urb'

drivers/built-in.o: In function `uvc_debugfs_init':

(.text+0x198661): undefined reference to `usb_debug_root'

drivers/built-in.o: In function `uvc_init':

uvc_driver.c:(.init.text+0x8c8e): undefined reference to `usb_register_driver'

drivers/built-in.o: In function `uvc_cleanup':

uvc_driver.c:(.exit.text+0xada): undefined reference to `usb_deregister'

make: *** [vmlinux] Error 1

```

I'm not really sure I need this UVC driver, so I'll try without it for the time being. I just wonder if there might something wrong in another part of my kernel. If you want to take a look at the .config, you can find it here:

http://xpbecker.bplaced.net/config

EDIT: I realized that it is not only UVC input events device support but the UVC driver itself. Well, I'd like to have THAT  :Very Happy: . Trying to build it as a module.

EDIT II: Worked building it as a module :shrug:

----------

## Bones McCracker

Looks like a bug to me (a missing include statement or similar).

----------

## roarinelk

either build uvcvideo as a module or make USB support built-in.

This looks like a dependecy bug in the uvcvideo Kconfig.

----------

## toralf

 *Clad in Sky wrote:*   

> 
> 
> EDIT II: Worked building it as a module :shrug:

 Instead of shrugging you should send an email to LKML with a description of the bug  :Smile: 

----------

## adsicks

Has this been reported? If so can you link it? If not, let me know there is no report and I will report it? Hit this exact same bug today...I'd prefer to build in as much of the base hardware of my laptop in as possible.....

----------

## Bones McCracker

 *adsicks wrote:*   

> Has this been reported? If so can you link it? If not, let me know there is no report and I will report it? Hit this exact same bug today...I'd prefer to build in as much of the base hardware of my laptop in as possible.....

 

Bugzilla has a search function.

----------

## adsicks

Do I report it to gentoo or upstream? Nothing on this thread said Bugzilla:

 *Quote:*   

> Instead of shrugging you should send an email to LKML with a description of the bug

 

 send an email to LKML 

Sorry, my mind kinda works like a compiler:

********   Missing Symbol 'Bugzilla' in thread....expected 'e-mail'

 :Very Happy: 

Probably you should have responded google uvc:lkml.org.....

Anyway, I sent it on up there...I just realized this thread is a year old...lol

----------

## Bones McCracker

I would say submit a bug at gentoo level first and see what kind of feedback you get from our maintainers/developers.  They may suggest you take it upstream, or they may do that themselves (or may already have).  There may be other people with related issues, and it might be best to have a unified voice from the distro addressing it upstream.

https://bugs.gentoo.org/

----------

