Dne 22.12.2011 17:57, Michal Marek napsal(a): > Dne 22.12.2011 06:58, Stephen Rothwell napsal(a): >> Hi , >> >> After merging the final tree, today's linux-next build (powerpc >> allyesconfig) failed like this: >> >> drivers/net/wireless/ath/ath6kl/cfg80211.c:27:1: error: expected ')' before 'KBUILD_MODNAME' >> drivers/net/wireless/ath/ath6kl/cfg80211.c:27:1: error: 'KBUILD_MODNAME' undeclared here (not in a function) > [...] >> >> I can't figure out what goes wrong here. On the compile command line, >> KBUILD_MODNAME is not defined, but KBUILD_BASE_NAME is. > > scripts/Makefile.lib says > # Note: It's possible that one object gets potentially linked into more > # than one module. In that case KBUILD_MODNAME will be set to foo_bar, > # where foo and bar are the name of the modules. > > but reality does not match this comment: > modname_flags = $(if $(filter 1,$(words $(modname))),\ > -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") Thinking about this more, the comment is wrong. The reason is that with the the modules builtin, KBUILD_MODNAME is needed to generate names of commandline options to set module parameters: <module name>.<param name>. And ath6kl_sdio_ath6kl_usb.<param> would first look silly, second the name would change if we disabled one of the drivers. > But I wonder why you need to link all the object files twice? Usually, > drivers have a foo_common.ko and foo_{usb,pci,whatever}.ko that provide > the pci/usb/whatever driver. Another option is to build both drivers in a single module. Or, as a band-aid, make the two drivers module-only, by adding 'depends on m' to their Kconfig entries. Michal -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html