Re: Kconfig circular dependency question

From: Paul Bolle
Date: Mon Apr 07 2014 - 13:11:08 EST


On Sun, 2014-04-06 at 17:51 -0500, Larry Finger wrote:
> No problem - it is attached. The problem I was trying to solve was reported by
> the kbuild test robot. To get the driver r8723au, you will need the staging-next
> tree.

0) I couldn't reproduce your error with this config file (and the
next-20140407 tree). But I could reproduce by cbobbling together a
single rudimentary Kconfig file with the six symbols mentioned in the
error you had copied. And then I could cut things down to this minimal
test case:
$ cat Kconfig.recursive
# test with 'yes "" | make KBUILD_KCONFIG=Kconfig.recursive oldconfig'
mainmenu "Recursive dependency test case"

config DRIVER1
bool "Driver 1"
select SUBSYSTEM2
depends on SUBSYSTEM1

config DRIVER2
bool "Driver 2"
select SUBSYSTEM1
depends on SUBSYSTEM2

config SUBSYSTEM1
bool "Subsystem 1"

config SUBSYSTEM2
bool "Subsystem 2"

1) This made zero sense, until I realized that "select" statements are
treated as reverse dependencies in the kconfig code. And if you look at
these two select statements as reverse dependencies than, yes, this is a
Kconfig with a recursive dependency.

2) But the fact is that I actually don't think of "select" statements as
reverse dependencies. And in the Kconfig files they are not used as
reverse dependencies. See, for example, all the
select USB

statements in the tree. I think there are many similar uses of "select".

3) So I think it makes no sense to treat "select" relations as reverse
dependencies. But perhaps I am missing something here.


Paul Bolle

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/