Subject: [patch] DLM: fix kconfig dependency

Avoid kernel build error (as DLM depends on SYSFS)

LD vmlinux
fs/built-in.o: In function `dlm_lockspace_init':
: undefined reference to `kernel_subsys'
fs/built-in.o: In function `configfs_init':
mount.c:(.init.text+0xef4): undefined reference to `kernel_subsys'

Signed-off-by: Andreas Herrmann <[email protected]>

diff --git a/fs/dlm/Kconfig b/fs/dlm/Kconfig
index 69a9469..c0e4c59 100644
--- a/fs/dlm/Kconfig
+++ b/fs/dlm/Kconfig
@@ -1,5 +1,5 @@
menu "Distributed Lock Manager"
- depends on EXPERIMENTAL && INET
+ depends on EXPERIMENTAL && INET && SYSFS

config DLM
tristate "Distributed Lock Manager (DLM)"




2007-06-22 18:07:28

by David Teigland

[permalink] [raw]
Subject: Re: [patch] DLM: fix kconfig dependency

On Fri, Jun 22, 2007 at 04:06:15PM +0200, Andreas Herrmann wrote:
> Avoid kernel build error (as DLM depends on SYSFS)
>
> LD vmlinux
> fs/built-in.o: In function `dlm_lockspace_init':
> : undefined reference to `kernel_subsys'
> fs/built-in.o: In function `configfs_init':
> mount.c:(.init.text+0xef4): undefined reference to `kernel_subsys'
>
> Signed-off-by: Andreas Herrmann <[email protected]>
>
> diff --git a/fs/dlm/Kconfig b/fs/dlm/Kconfig
> index 69a9469..c0e4c59 100644
> --- a/fs/dlm/Kconfig
> +++ b/fs/dlm/Kconfig
> @@ -1,5 +1,5 @@
> menu "Distributed Lock Manager"
> - depends on EXPERIMENTAL && INET
> + depends on EXPERIMENTAL && INET && SYSFS
>
> config DLM
> tristate "Distributed Lock Manager (DLM)"

There's a been a lot of back and forth on this from a number of different
people:

1/18/06 depends on SYSFS
4/25/06 - depends on SYSFS
2/05/07 + select SYSFS
2/05/07 - select SYSFS
+ depends on SYSFS
5/01/07 - depends on SYSFS

It looks like the last removal was in error and it should be added back.

Dave

2007-06-22 18:35:29

by Satyam Sharma

[permalink] [raw]
Subject: Re: [patch] DLM: fix kconfig dependency

On 6/22/07, David Teigland <[email protected]> wrote:
> On Fri, Jun 22, 2007 at 04:06:15PM +0200, Andreas Herrmann wrote:
> > Avoid kernel build error (as DLM depends on SYSFS)
> >
> > LD vmlinux
> > fs/built-in.o: In function `dlm_lockspace_init':
> > : undefined reference to `kernel_subsys'
> > fs/built-in.o: In function `configfs_init':
> > mount.c:(.init.text+0xef4): undefined reference to `kernel_subsys'
> >
> > Signed-off-by: Andreas Herrmann <[email protected]>
> >
> > diff --git a/fs/dlm/Kconfig b/fs/dlm/Kconfig
> > index 69a9469..c0e4c59 100644
> > --- a/fs/dlm/Kconfig
> > +++ b/fs/dlm/Kconfig
> > @@ -1,5 +1,5 @@
> > menu "Distributed Lock Manager"
> > - depends on EXPERIMENTAL && INET
> > + depends on EXPERIMENTAL && INET && SYSFS
> >
> > config DLM
> > tristate "Distributed Lock Manager (DLM)"
>
> There's a been a lot of back and forth on this from a number of different
> people:
>
> 1/18/06 depends on SYSFS
> 4/25/06 - depends on SYSFS
> 2/05/07 + select SYSFS
> 2/05/07 - select SYSFS
> + depends on SYSFS
> 5/01/07 - depends on SYSFS
>
> It looks like the last removal was in error and it should be added back.

DLM needs to depend on SYSFS for another reason: it directly
"select"s CONFIGFS_FS when configfs itself "depends on SYSFS".
I suspect it selects configfs directly to make it easier to pick DLM,
by not forcing users to first go and pick configfs just to make DLM
visible in menuconfig, but such usage of select is generally "evil".

There was a thread started by Al Viro some time back which
started discussions on possible kbuild-solutions to this "select
of a symbol that itself depends on another" problem, but I'm not
sure what happened of that ...

Satyam