Subject: Re: linux-next: build failure after merge of the final tree (net tree related)

From: "John W. Linville" <[email-masked]>
Date: Mon, 27 Sep 2010 15:44:08 -0400

On Mon, Sep 27, 2010 at 09:06:09PM +0200, Ohad Ben-Cohen wrote:
> On Mon, Sep 27, 2010 at 9:01 PM, Ohad Ben-Cohen <[email-masked]> wrote:
> > On Mon, Sep 27, 2010 at 8:44 PM, John W. Linville
> > <[email-masked]> wrote:
> >> On Mon, Sep 27, 2010 at 08:38:50PM +0200, Ohad Ben-Cohen wrote:
> >>> On Mon, Sep 27, 2010 at 8:25 PM, John W. Linville
> >>> <[email-masked]> wrote:
> >>> >> BTW, if this fuglet going to work if the driver is built modular?
> >>> >>
> >>> >> The idea of this things seems to be to allow arch platform code to call
> >>> >> into it to set things.  Such calls from arch platform code are going
> >>> >> to be "obj-y"
> >>> >>
> >>> >> So if this is built into the modular driver, I can't see how it
> >>> >> can work.
> >>> >
> >>> > Dave is right -- these Kconfig dependencies (or lack thereof) seem
> >>> > to be wrong.
> >>>
> >>> This is why I had to put it in drivers/net/wireless/Makefile (in both
> >>> the original patch and in the fix I sent earlier) and not in
> >>> drivers/net/wireless/wl12xx/Makefile (as it was in the fix that Dave
> >>> was referring to).
> >>>
> >>> This way it works with a modular driver.
> >>
> >> That doesn't seem very helpful if someone selects
> >>
> >> CONFIG_MACH_OMAP_ZOOM2=y
> >> CONFIG_WL12XX_PLATFORM_DATA=n
> 
> 
> That's a good point (it's a separate issue); we need to have a select there.
> 
> I'll send a patch.

No, maybe you don't need it -- the bool line by itself means there
is no menu item.  So the default y does the job of selecting it all
the time (which kinda sucks for non-OMAP)...

> >>
> >
> > CONFIG_WL12XX_PLATFORM_DATA is selected automatically if the relevant
> > driver is selected (this is independent of the underlying arch/board):
> >
> > config WL12XX_PLATFORM_DATA
> >        bool
> >        depends on WL1271_SDIO != n
> >        default y
> >
> > All we have to make sure is that it will be compiled built-in. If we
> > use drivers/net/wireless/wl12xx/Makefile, and we build a modular
> > wl1271_sdio, it won't (despite it being selected as y).

I don't understand this part.  FWIW, Kconfig is not a strength for me.
But...

> > That's why I put it in drivers/net/wireless/Makefile.

Can't we do this?  It seems to work (i.e. the symbols from
wl12xx_platform_data.o end-up in built-in.o).

From d8ddd0ebe8ae3791ba9c76a506bfcdd60be40f5b Mon Sep 17 00:00:00 2001
From: John W. Linville <[email-masked]>
Date: Mon, 27 Sep 2010 14:00:51 -0400
Subject: [PATCH] wl12xx: fix separate-object-folder builds

Make this go away (happens when building with a separate object
directory):

Assembler messages:
Fatal error: can't create drivers/net/wireless/wl12xx/.tmp_wl12xx_platform_data.o: No such file or directory
drivers/net/wireless/wl12xx/wl12xx_platform_data.c: In function 'wl12xx_get_platform_data':
drivers/net/wireless/wl12xx/wl12xx_platform_data.c:28: error: cannot open drivers/net/wireless/wl12xx/.tmp_wl12xx_platform_data.gcno
drivers/net/wireless/wl12xx/wl12xx_platform_data.c:28: confused by earlier errors, bailing out

Signed-off-by: John W. Linville <[email-masked]>
Reported-by: Stephen Rothwell <[email-masked]>
Cc: Signed-off-by: Ohad Ben-Cohen <[email-masked]>
---
 drivers/net/wireless/Makefile        |    3 +--
 drivers/net/wireless/wl12xx/Makefile |    3 +++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index 85af697..a13a602 100644
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -50,7 +50,6 @@ obj-$(CONFIG_ATH_COMMON)	+= ath/
 obj-$(CONFIG_MAC80211_HWSIM)	+= mac80211_hwsim.o
 
 obj-$(CONFIG_WL12XX)	+= wl12xx/
-# small builtin driver bit
-obj-$(CONFIG_WL12XX_PLATFORM_DATA)	+= wl12xx/wl12xx_platform_data.o
+obj-$(CONFIG_WL12XX_PLATFORM_DATA)	+= wl12xx/
 
 obj-$(CONFIG_IWM)	+= iwmc3200wifi/
diff --git a/drivers/net/wireless/wl12xx/Makefile b/drivers/net/wireless/wl12xx/Makefile
index 078b439..0d334d6 100644
--- a/drivers/net/wireless/wl12xx/Makefile
+++ b/drivers/net/wireless/wl12xx/Makefile
@@ -16,3 +16,6 @@ wl1271-$(CONFIG_NL80211_TESTMODE)	+= wl1271_testmode.o
 obj-$(CONFIG_WL1271)	+= wl1271.o
 obj-$(CONFIG_WL1271_SPI)	+= wl1271_spi.o
 obj-$(CONFIG_WL1271_SDIO)	+= wl1271_sdio.o
+
+# small builtin driver bit
+obj-$(CONFIG_WL12XX_PLATFORM_DATA)	+= wl12xx_platform_data.o
-- 
1.7.2.3

-- 
John W. Linville		Someday the world will need a hero, and you
[email-masked]			might be all we have.  Be ready.