From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760867AbYEMPrf (ORCPT ); Tue, 13 May 2008 11:47:35 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1758152AbYEMPrO (ORCPT ); Tue, 13 May 2008 11:47:14 -0400 Received: from bombadil.infradead.org ([18.85.46.34]:54658 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758008AbYEMPrN (ORCPT ); Tue, 13 May 2008 11:47:13 -0400 Date: Tue, 13 May 2008 12:46:30 -0300 From: Mauro Carvalho Chehab To: "Michael Krufky" Cc: "Ingo Molnar" , linux-kernel@vger.kernel.org, "Guennadi Liakhovetski" , "Mike Isely" Subject: Re: [patch] video: build fix for drivers/media/video/pvrusb2/ Message-ID: <20080513124630.111c465b@gaivota> In-Reply-To: <37219a840805122103u2a74b050h95c006f99ff8690f@mail.gmail.com> References: <20080511072137.GA16772@elte.hu> <37219a840805110534r4865623y6f9510554e2716ac@mail.gmail.com> <20080512235445.3a56cea0@gaivota> <37219a840805122103u2a74b050h95c006f99ff8690f@mail.gmail.com> X-Mailer: Claws Mail 3.4.0 (GTK+ 2.12.9; x86_64-mandriva-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 13 May 2008 00:03:02 -0400 "Michael Krufky" wrote: > On Mon, May 12, 2008 at 10:54 PM, Mauro Carvalho Chehab > wrote: > > > > On Sun, 11 May 2008 08:34:06 -0400 > > "Michael Krufky" wrote: > > > > > On Sun, May 11, 2008 at 3:21 AM, Ingo Molnar wrote: > > > > > > > > x86.git testing found the following build failure: > > > > > > > > drivers/built-in.o: In function `pvr2_dvb_feed_thread': > > > > pvrusb2-dvb.c:(.text+0x127e78): undefined reference to `dvb_dmx_swfilter' > > > > drivers/built-in.o: In function `pvr2_dvb_adapter_exit': > > > > pvrusb2-dvb.c:(.text+0x128357): undefined reference to `dvb_net_release' > > > > pvrusb2-dvb.c:(.text+0x12836f): undefined reference to `dvb_dmxdev_release' > > > > [...] > > > > > > > > with this config: > > > > > > > > http://redhat.com/~mingo/misc/config-Sun_May_11_07_06_35_CEST_2008.bad > > > > > > > > the reason for the missing symbols is this combination: > > > > > > > > CONFIG_VIDEO_PVRUSB2=y > > > > CONFIG_DVB_CORE=m > > > > > > > > i.e. pvrusb2 is built-in, dvb-core is modular. > > > > > > > > This patch solves the problem by adding a dependency on DVB_CORE - this > > > > is used by other drivers such as au0828 as well. This way the pvrusb2 > > > > driver can still be built, but if dvb-core is a module then it will > > > > correctly be a module as well and cannot be built-in. > > > > > > > > Signed-off-by: Ingo Molnar > > > > --- > > > > drivers/media/video/pvrusb2/Kconfig | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > Index: linux/drivers/media/video/pvrusb2/Kconfig > > > > =================================================================== > > > > --- linux.orig/drivers/media/video/pvrusb2/Kconfig > > > > +++ linux/drivers/media/video/pvrusb2/Kconfig > > > > @@ -1,6 +1,6 @@ > > > > config VIDEO_PVRUSB2 > > > > tristate "Hauppauge WinTV-PVR USB2 support" > > > > - depends on VIDEO_V4L2 && I2C > > > > + depends on VIDEO_V4L2 && I2C && DVB_CORE > > > > select FW_LOADER > > > > select MEDIA_TUNER > > > > select VIDEO_TVEEPROM > > > > > > > > > > Ingo, > > > > > > VIDEO_PVRUSB2 should not depend on DVB_CORE unless VIDEO_PVRUSB2_DVB > > > is selected, which already depends on DVB_CORE. > > > > > > For example, if a user has VIDEO_PVRUSB2_DVB not selected, then your > > > patch would generate a false dependency on DVB_CORE. > > > > Maybe we can make pvrusb2 dependent of VIDEO_MEDIA. This is a DVB_CORE || > > VIDEO_DEV. So, pvrusb should be 'm' in this case. > > That sounds like it would be OK, although something like this would > probably be better: > > config VIDEO_PVRUSB2 > tristate "Hauppauge WinTV-PVR USB2 support" > - depends on VIDEO_V4L2 && I2C > + depends on VIDEO_V4L2 && I2C && (DVB_CORE if VIDEO_PVRUSB2_DVB) > select FW_LOADER > select MEDIA_TUNER > select VIDEO_TVEEPROM This doesn't look to be a good idea, since VIDEO_PVRUSB2_DVB depends on VIDEO_PVRUSB2. So, you'll create a circular dependency. The syntax I've proposed seems cleaner. Of course, it needs to be tested. IMO, all hybrid devices should be dependent of VIDEO_MEDIA. This will help to avoid this kind of issue. > I don't know if that syntax works for "depends on" , but it does work > for select. > > if "depends on FOO if BAR" doesnt work, would adding "select DVB_CORE > if VIDEO_PVRUSB2_DVB" solve the problem? Also, this leads into a circular reference. Cheers, Mauro