2002-08-13 13:56:16

by Greg Banks

[permalink] [raw]
Subject: Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

Peter Samuelson wrote:
>
> [...] what would be
> *really* nice would be a way to determine that a particular "forward
> declared symbol" is actually a "never-in-this-arch declared symbol".

Ok, here it is.

Greg.
--
the price of civilisation today is a courageous willingness to prevail,
with force, if necessary, against whatever vicious and uncomprehending
enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001.


Attachments:
forward-deps2.txt.gz (3.18 kB)

2002-08-13 15:53:11

by Peter Samuelson

[permalink] [raw]
Subject: Re: [kbuild-devel] Re: [patch] config language dep_* enhancements


[Greg Banks]
> Ok, here it is.

Thanks again. It will take some time to double-check what I termed
the "false positives", but now you've reduced the "interesting cases"
down to 30 symbols.

(BTW, the format is great - I can use 'M-x compile' and 'M-x
next-error' and Emacs pulls up files and lines for me.)

Here are the problem cases - things known to break with my proposed
'n'=='' - and my proposed solutions. I'll see if I can roll a patch
later today:


CONFIG_SCSI should be defined earlier, like in the "Block Devices"
menu. Then again, 'sg' is not a block device so this isn't strictly
correct. Perhaps a "kernel subsystems" submenu under "general setup",
or even as a toplevel menu.

CONFIG_I2C and CONFIG_USB are also widely used outside their own
subtrees. They should probably go in with the "kernel subsystems"
menu along with CONFIG_SCSI.

CONFIG_PROC_FS is needed by ISDN hysdn. That's actually in my opinion
more of a "general kernel facility" than a filesystem. Eh?

Then again it could be said that requiring CONFIG_PROC_FS is actually
a design bug in hysdn - does the driver *really* need CONFIG_PROC_FS?
Everything else in the kernel seems to cope without it. Granted,
non-/proc kernels are not widely tested.... Kai?

CONFIG_ISDN_CAPI - interestingly, CONFIG_HYSDN_CAPI, which is under
the menu "Old ISDN4Linux (obsolete)" seems to require CAPI 2.0. I
suppose the CAPI stuff should come first in drivers/isdn/Config.in.
Kai?

CONFIG_SOUND_ACI_MIXER - the miroSOUND radio driver wants something
from OSS sound. Really I think sound/Config.in "Sound Card Support"
should be moved to a sub-menu of drivers/media/Config.in "Multimedia
Devices".

CONFIG_INPUT - arch/{alpha,mips,mips64}/config.in are broken. There's
a comment in other arch/*/config.in files to the effect that
drivers/input/Config.in must come before drivers/usb/input/Config.in.
These 3 explicitly do the opposite.

CONFIG_SOUND_GAMEPORT - defined in drivers/input/gameport/, used only
in sound/oss/. I'm not sure what's going on here - why a separate
define (there is also CONFIG_GAMEPORT), and why do some sound cards
require its presence? Also I'm a bit suspicious of the logic in
drivers/input/gameport/ - it's either buggy, or way too clever.

This one is just confusing. Not sure what to recommend. I'll
probably have to stare at the Makefiles and the C for awhile to see
what's actually going on.

2002-08-13 18:44:20

by Kai Germaschewski

[permalink] [raw]
Subject: Re: [kbuild-devel] Re: [patch] config language dep_* enhancements

On Tue, 13 Aug 2002, Peter Samuelson wrote:

> CONFIG_PROC_FS is needed by ISDN hysdn. That's actually in my opinion
> more of a "general kernel facility" than a filesystem. Eh?

Well, the use in hysdn can (and should) die, possibly by adding an
#ifndef CONFIG_PROC_FS
#error This driver won't work without procfs
#endif
until fixed properly.

> Then again it could be said that requiring CONFIG_PROC_FS is actually
> a design bug in hysdn - does the driver *really* need CONFIG_PROC_FS?
> Everything else in the kernel seems to cope without it. Granted,
> non-/proc kernels are not widely tested.... Kai?

I don't know, I suspect it needs it for something like firmware loading or
so. But since that's obviously an abuse of /proc, it's okay to have it
break IMO.

> CONFIG_ISDN_CAPI - interestingly, CONFIG_HYSDN_CAPI, which is under
> the menu "Old ISDN4Linux (obsolete)" seems to require CAPI 2.0. I
> suppose the CAPI stuff should come first in drivers/isdn/Config.in.
> Kai?

Yes. I'll look into that and fix it properly - I think just exchanging
probably gives the same kind of problem for CONFIG_ISDN ;(

--Kai