Bug in "select" dependency checking?

From: Andreas Gruenbacher
Date: Thu Feb 05 2004 - 19:41:42 EST


Hello,

I think the dependency check in scripts/kconfig/symbol.c has a bug
related to "select", but possibly it's only a misunderstanding what
select is supposed to do. I have the following symbols and dependencies
(simplified):


config NFS_ACL_SUPPORT
tristate

config NFSD
tristate "..."
select NFS_ACL_SUPPORT if NFSD_ACL

config NFSD_V3
bool "..."
depends on NFSD

config NFSD_ACL
bool "..."
depends on NFSD_V3

config NFS_FS
tristate "..."
select NFS_ACL_SUPPORT if NFS_ACL

config NFS_V3
bool "..."
depends on NFS_FS

config NFS_ACL
bool "..."
depends on NFS_V3


The intention of this is as follows: NFS_ACL_SUPPORT is a symbol without
menu entry. It activates an object which is either a module or linked
into the kernel. It is needed if NFSD_ACL is y or NFS_ACL is y. When it
is needed, it should have max(NFSD,NFS_FS).

With this configuration, menuconf gives me this message (among others):

Warning! Found recursive dependency: NFSD_V3 NFSD_ACL NFSD NFSD_V3

In my understanding, the select statement does not cause a dependency of
NFSD on NFSD_ACL. I can write the same thing without selects as follows:

config NFS_ACL_SUPPORT
tristate
default y if (NFSD=y || NFS_FS=y) && (NFSD_ACL || NFS_ACL)
default m if (NFSD!=y && NFS_FS!=y) && (NFSD=m || NFS_FS=m) &&
(NFSD_ACL || NFS_ACL)

Any thoughts?


Cheers,
--
Andreas Gruenbacher <agruen@xxxxxxx>
SUSE Labs, SUSE LINUX AG

-
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/