Skip to contentSkip to conversation

drivers/media/video build fix for certain modular builds

PATCH In review Ingo Molnar 2 participants 4 messages May 16, 2008 – May 20, 2008 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers/media/video build fix for certain modular builds

testing of the -tip tree found the following missing symbols build bug:

LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `vidioc_g_ctrl':
radio-maxiradio.c:(.text+0xd3337): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_g_frequency':
radio-maxiradio.c:(.text+0xd3368): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_s_ctrl':
[...]

which happens if certain media drivers are modular:

    http://redhat.com/~mingo/misc/config-Thu_May_15_18_10_27_CEST_2008.bad

the problem is:

    CONFIG_VIDEO_MEDIA=m
    CONFIG_VIDEO_DEV=y
    CONFIG_RADIO_MAXIRADIO=y
    CONFIG_VIDEO_V4L2=y

Connecting the build dependencies tree from drivers/media/ to drivers/media/video/ allows the built-in drivers(s) to pick up the CONFIG_VIDEO_DEV=y symbols.

---
 drivers/media/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/media/Makefile +1 -1
Index: linux/drivers/media/Makefile
===================================================================
@@ -2,7 +2,7 @@
 # Makefile for the kernel multimedia device drivers.
 #
 
-obj-y := common/
+obj-y := common/ video/
 
 obj-$(CONFIG_VIDEO_MEDIA) += common/
 
#1 lore raw
Quoted 36 lines · Ingo Molnar

testing of the -tip tree found the following missing symbols build bug:

LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `vidioc_g_ctrl':
radio-maxiradio.c:(.text+0xd3337): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_g_frequency':
radio-maxiradio.c:(.text+0xd3368): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_s_ctrl':
[...]

which happens if certain media drivers are modular:

    http://redhat.com/~mingo/misc/config-Thu_May_15_18_10_27_CEST_2008.bad

the problem is:

    CONFIG_VIDEO_MEDIA=m
    CONFIG_VIDEO_DEV=y
    CONFIG_RADIO_MAXIRADIO=y
    CONFIG_VIDEO_V4L2=y

Connecting the build dependencies tree from drivers/media/ to drivers/media/video/ allows the built-in drivers(s) to pick up the CONFIG_VIDEO_DEV=y symbols.

---
 drivers/media/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/media/Makefile
===================================================================

drivers/media/Makefile line 8

Quoted 8 lines
drivers/media/Makefile +1 -1
@@ -2,7 +2,7 @@
 # Makefile for the kernel multimedia device drivers.
 #
 
-obj-y := common/
+obj-y := common/ video/
 
 obj-$(CONFIG_VIDEO_MEDIA) += common/
 

Adrian just posted a similar fix that I like better because it cleans up the Makefile a bit.
The obj-$(CONFIG_VIDEO_MEDIA) += common/ assignment in the above is for example now redundant.

But otherwise obviously correct.

Sam

author Acked-by
#2 lore raw
Quoted 51 lines · Sam Ravnborg
Quoted 36 lines · Ingo Molnar

testing of the -tip tree found the following missing symbols build bug:

LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `vidioc_g_ctrl':
radio-maxiradio.c:(.text+0xd3337): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_g_frequency':
radio-maxiradio.c:(.text+0xd3368): undefined reference to video_devdata' drivers/built-in.o: In function vidioc_s_ctrl':
[...]

which happens if certain media drivers are modular:

    http://redhat.com/~mingo/misc/config-Thu_May_15_18_10_27_CEST_2008.bad

the problem is:

    CONFIG_VIDEO_MEDIA=m
    CONFIG_VIDEO_DEV=y
    CONFIG_RADIO_MAXIRADIO=y
    CONFIG_VIDEO_V4L2=y

Connecting the build dependencies tree from drivers/media/ to drivers/media/video/ allows the built-in drivers(s) to pick up the CONFIG_VIDEO_DEV=y symbols.

---
 drivers/media/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/media/Makefile
===================================================================

drivers/media/Makefile line 8

Quoted 8 lines
drivers/media/Makefile +1 -1
@@ -2,7 +2,7 @@
 # Makefile for the kernel multimedia device drivers.
 #
 
-obj-y := common/
+obj-y := common/ video/
 
 obj-$(CONFIG_VIDEO_MEDIA) += common/
 

Adrian just posted a similar fix that I like better because it cleans up the Makefile a bit.
The obj-$(CONFIG_VIDEO_MEDIA) += common/ assignment in the above is for example now redundant.

Quoted 1 line

But otherwise obviously correct.

sure enough, i went for the minimal fix. Adrian's patch looks good too.

Ingo

#3 lore raw

PATCH 1/1 dvb/usb: input layer dependency fixes

In reply to Ingo Molnar

testing of the -tip tree found the following build failures on 2.6.26-rc3:

drivers/built-in.o: In function `ttusb_dec_disconnect':
ttusb_dec.c:(.text+0xa2c95): undefined reference to `input_unregister_device'

drivers/built-in.o: In function `dvb_usb_read_remote_control':
dvb-usb-remote.c:(.text+0xa6a94): undefined reference to `input_event'

with this config:

http://redhat.com/~mingo/misc/config-Tue_May_20_03_48_57_CEST_2008.bad

these are due to the media/dvb/usb layer having dependencies on INPUT functionality, without having that spelled out in the Kconfig file.

this patch makes that dependency explicit (for the drivers affected), which solves the build error.

---
 drivers/media/dvb/dvb-usb/Kconfig   |    2 +-
 drivers/media/dvb/ttusb-dec/Kconfig |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
drivers/media/dvb/dvb-usb/Kconfig +1 -1
Index: linux/drivers/media/dvb/dvb-usb/Kconfig
===================================================================
@@ -1,6 +1,6 @@
 config DVB_USB
 	tristate "Support for various USB DVB devices"
-	depends on DVB_CORE && USB && I2C
+	depends on DVB_CORE && USB && I2C && INPUT
 	depends on HOTPLUG	# due to FW_LOADER
 	select FW_LOADER
 	help
drivers/media/dvb/ttusb-dec/Kconfig +1 -1
Index: linux/drivers/media/dvb/ttusb-dec/Kconfig
===================================================================
@@ -1,6 +1,6 @@
 config DVB_TTUSB_DEC
 	tristate "Technotrend/Hauppauge USB DEC devices"
-	depends on DVB_CORE && USB
+	depends on DVB_CORE && USB && INPUT
 	depends on HOTPLUG	# due to FW_LOADER
 	select FW_LOADER
 	select CRC32