mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Samuelson <peter@cadcamlab.org>
To: Greg Banks <gnb@alphalink.com.au>
Cc: Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>,
	linux-kernel@vger.kernel.org, kbuild-devel@lists.sourceforge.net
Subject: Re: [patch] config language dep_* enhancements
Date: Mon, 12 Aug 2002 22:39:51 -0500	[thread overview]
Message-ID: <20020813033951.GF761@cadcamlab.org> (raw)
In-Reply-To: <3D587483.1C459694@alphalink.com.au>


[Greg Banks]
> Ah.  If you're willing to knowingly feed Linus with patches that
> break current config behaviour, then OK we have a way to proceed.

Things knowingly break in 2.5 all the time.  I for one have no problem
with this.  Especially since the breakage is so easy to pinpoint,
thanks to your script.

> I don't think there's any value to gratuitously breaking 2.4's
> config.  That's the point of a "stable" series right?

Correct.  I for one have no intention of changing 2.4 semantics,
except to expand them to allow '!' syntax, if I can finish that up.

> Ah, glad you asked, see attached output from the latest version of gcml2
> (not yet released).

Thank you thank you thank you!  Exactly what I wanted!

Now, while some (perhaps a lot) of these instances will break with the
proposed new semantics, many will not.  Starting from the top:

> =====alpha
> warning:drivers/pcmcia/Config.in:22:forward declared symbol "CONFIG_ARCH_SA1100" used in dependency list for "CONFIG_PCMCIA_SA1100"

In context:

   if [ "$CONFIG_ARM" = "y" ]; then
      dep_tristate '  SA1100 support' CONFIG_PCMCIA_SA1100 $CONFIG_ARCH_SA1100 $CONFIG_PCMCIA
   fi

With the new semantics, there would be no need for the 'if' statement.
CONFIG_ARCH_SA1100 is a sufficient guard, since non-ARM machines will
never define it.

The next 7 lines are similar, with CONFIG_PPC, CONFIG_MIPS and
CONFIG_ARM as the guards.

> warning:drivers/block/Config.in:38:forward declared symbol "CONFIG_SCSI" used in dependency list for "CONFIG_CISS_SCSI_TAPE"

This one is legit.  It's a weird case where a single driver can be
built with or without using the SCSI subsystem - in effect, two
drivers sharing a single piece of hardware and presenting two views of
it.

My preferred "fix" is to move the 'tristate CONFIG_SCSI' to early in
the Block Devices menu.  ATA should be under Block Devices too, come
to think of it, and perhaps a generic guard for non-IDE-non-SCSI RAID
cards.  The actual menus could come later under toplevel, or be nested
within "Block Devices".

> warning:drivers/ide/Config.in:21:forward declared symbol "CONFIG_SCSI" used in dependency list for "CONFIG_BLK_DEV_IDESCSI"

See above.

> warning:drivers/ide/Config.in:84:forward declared symbol "CONFIG_ARCH_ACORN" used in dependency list for "CONFIG_BLK_DEV_IDE_ICSIDE"
> warning:drivers/ide/Config.in:88:forward declared symbol "CONFIG_ARCH_ACORN" used in dependency list for "CONFIG_BLK_DEV_IDE_RAPIDE"
> warning:drivers/ide/Config.in:91:forward declared symbol "CONFIG_AMIGA" used in dependency list for "CONFIG_BLK_DEV_GAYLE"
> warning:drivers/ide/Config.in:95:forward declared symbol "CONFIG_ZORRO" used in dependency list for "CONFIG_BLK_DEV_BUDDHA"
> warning:drivers/ide/Config.in:98:forward declared symbol "CONFIG_ATARI" used in dependency list for "CONFIG_BLK_DEV_FALCON_IDE"
> warning:drivers/ide/Config.in:101:forward declared symbol "CONFIG_MAC" used in dependency list for "CONFIG_BLK_DEV_MAC_IDE"
> warning:drivers/ide/Config.in:104:forward declared symbol "CONFIG_Q40" used in dependency list for "CONFIG_BLK_DEV_Q40IDE"
> warning:drivers/ide/Config.in:107:forward declared symbol "CONFIG_8xx" used in dependency list for "CONFIG_BLK_DEV_MPC8xx_IDE"
> warning:drivers/net/Config.in:28:forward declared symbol "CONFIG_ARCH_EBSA110" used in dependency list for "CONFIG_ARM_AM79C961A"
> warning:drivers/net/Config.in:34:forward declared symbol "CONFIG_ALL_PPC" used in dependency list for "CONFIG_MACE"
> warning:drivers/net/Config.in:38:forward declared symbol "CONFIG_ALL_PPC" used in dependency list for "CONFIG_BMAC"
> warning:drivers/net/Config.in:48:forward declared symbol "CONFIG_GSC_LASI" used in dependency list for "CONFIG_LASI_82596"
> warning:drivers/net/Config.in:239:forward declared symbol "CONFIG_PPC_ISERIES" used in dependency list for "CONFIG_VETH"

All obviously tied to a specific arch.  Most but not all are guarded
by ARCH_* symbols, but that doesn't matter - with the new semantics
they work with or without extra guards.


All in all, by asserting that 'n' == '', you can drop all the
'define_bool FOO n' from the arch/*/config.in files (like CONFIG_SBUS
on i386 or CONFIG_PCI on s390), and you can drop a *lot* of guard 'if'
statements.  A few things would actually break, like not defining
CONFIG_SCSI soon enough.

I think it's worth it.  It will take some time to go through your 260
unique warnings (984 total), of course.

BTW - speaking of the length of your warnings list - 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".
That would eliminate most of the false positives.  If for example we
can determine that we will never define CONFIG_ZORRO on this arch, we
can safely assume that anything which depends on CONFIG_ZORRO *should*
be suppressed.  (Modulo outright bugs where someone wrote
$CONFIG_ZORRO for something that does not in fact require zorro.)

Peter

  parent reply	other threads:[~2002-08-13  3:36 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200208062329.g76NTqP30962@devserv.devel.redhat.com.suse.lists.linux.kernel>
2002-08-07 10:01 ` Linux 2.4.20-pre1 Andi Kleen
2002-08-07 11:50   ` Alan Cox
2002-08-07 10:41     ` 64bit clean drivers was " Andi Kleen
2002-08-07 12:16       ` Alan Cox
2002-08-07 11:04         ` Andi Kleen
2002-08-07 11:10           ` Alan Cox
2002-08-07 11:18             ` Andi Kleen
2002-08-07 11:51               ` Alan Cox
2002-08-07 11:56                 ` Andi Kleen
2002-08-07 13:26                   ` Alan Cox
2002-08-07 16:28                     ` Jeff Garzik
2002-08-08 15:14         ` Peter Samuelson
2002-08-08 16:49           ` Kai Germaschewski
2002-08-08 16:47             ` Peter Samuelson
2002-08-09  4:15               ` [patch] config language dep_* enhancements Peter Samuelson
2002-08-09 14:43                 ` [kbuild-devel] " Greg Banks
2002-08-09 15:38                   ` Andreas Schwab
2002-08-12 10:38                     ` Greg Banks
2002-08-09 16:10                   ` Peter Samuelson
2002-08-12 11:04                     ` Greg Banks
2002-08-12 14:46                       ` Kai Germaschewski
2002-08-12 19:45                         ` Roman Zippel
2002-08-12 21:40                           ` [kbuild-devel] " Tom Rini
2002-08-12 22:13                             ` Roman Zippel
2002-08-12 22:15                               ` Tom Rini
2002-08-12 22:32                                 ` Roman Zippel
2002-08-12 22:47                                   ` Tom Rini
2002-08-12 23:17                                     ` Roman Zippel
2002-08-12 23:32                                       ` Tom Rini
2002-08-13  3:35                                       ` Greg Banks
2002-08-13  0:03                           ` Peter Samuelson
2002-08-13  7:54                             ` Roman Zippel
2002-08-13  3:33                           ` Greg Banks
2002-08-13  9:32                             ` Roman Zippel
2002-08-13 10:32                               ` [kbuild-devel] " Greg Banks
     [not found]                         ` <3D587483.1C459694@alphalink.com.au>
2002-08-13  3:39                           ` Peter Samuelson [this message]
2002-08-13  4:31                             ` Greg Banks
2002-08-13 14:00                             ` [kbuild-devel] " Greg Banks
2002-08-13 15:53                               ` Peter Samuelson
2002-08-13 18:48                                 ` Kai Germaschewski
2002-08-14  1:13                                 ` Greg Banks
2002-08-14  3:28                                   ` Peter Samuelson
2002-08-14  4:35                                     ` [patch] kernel config 3/N - move sound into drivers/media Peter Samuelson
2002-08-14  5:08                                       ` Kai Germaschewski
2002-08-14  5:49                                         ` Peter Samuelson
2002-08-14 10:56                                           ` [kbuild-devel] " Arnd Bergmann
2002-08-14 12:20                                             ` S390 vs S390x, was " Christoph Hellwig
2002-08-14 17:21                                               ` Arnd Bergmann
2002-08-14 18:16                                                 ` Christoph Hellwig
2002-08-14 21:18                                                   ` Arnd Bergmann
2002-08-14 19:22                                                     ` Christoph Hellwig
2002-08-14 22:52                                                       ` Arnd Bergmann
2002-08-14  6:14                                         ` Greg Banks
2002-08-14  6:31                                       ` Greg Banks
2002-08-14  8:16                                       ` Russell King
2002-08-14  6:01                                     ` [kbuild-devel] Re: [patch] config language dep_* enhancements Greg Banks
2002-08-14  8:18                                       ` Russell King
2002-08-14 14:22                                       ` Peter Samuelson
2002-08-15  1:28                                         ` Greg Banks
2002-08-15  2:33                                           ` Peter Samuelson
2002-08-15  3:27                                             ` Greg Banks
2002-08-13 18:43                           ` Kai Germaschewski
2002-08-13 20:48                             ` Peter Samuelson
2002-08-14  1:27                               ` Greg Banks
2002-08-14  1:42                                 ` Peter Samuelson
2002-08-14  2:27                                   ` Greg Banks
2002-08-14  2:57                                     ` Peter Samuelson
2002-08-14  4:39                                     ` Kai Germaschewski
2002-08-14  5:35                                       ` Greg Banks
2002-08-14 11:40                               ` Roman Zippel
2002-08-15  1:52                                 ` [kbuild-devel] " Greg Banks
2002-08-15  3:30                                   ` John Alvord
2002-08-16  2:24                                     ` Peter Samuelson
2002-08-15  9:46                                   ` Roman Zippel
2002-08-15 14:43                                     ` Kai Germaschewski
2002-08-15 20:12                                       ` Roman Zippel
2002-08-16  2:08                                     ` Greg Banks
2002-08-16 10:54                                       ` Roman Zippel
2002-08-19  9:27                                         ` Greg Banks
2002-08-19 10:20                                           ` Roman Zippel
2002-08-20 14:10                                             ` Greg Banks
2002-08-20 17:51                                               ` Roman Zippel
2002-08-19 20:30                                           ` Sam Ravnborg
2002-08-20 14:28                                           ` David Woodhouse
2002-08-23 15:18                                           ` Kai Germaschewski
2002-08-23 23:03                                             ` Roman Zippel
2002-08-24 12:43                                               ` Greg Banks
2002-08-14  1:19                             ` Greg Banks
2002-08-12 15:47                       ` Peter Samuelson
2002-08-13  3:23                         ` [kbuild-devel] " Greg Banks
2002-08-13 16:04                           ` Sam Ravnborg
2002-08-13 16:20                             ` [kbuild-devel] " Peter Samuelson
2002-08-14  0:22                             ` Greg Banks
2002-08-14 20:14                               ` Get rid of shell based Config.in parsers? Sam Ravnborg
2002-08-14 22:21                                 ` [kbuild-devel] " Peter Samuelson
2002-08-15 17:51                                 ` Linus Torvalds
2002-08-08 23:57             ` 64bit clean drivers was Re: Linux 2.4.20-pre1 Thunder from the hill
2002-08-08 19:23           ` Roman Zippel
2002-08-08 20:03             ` Andi Kleen
2002-08-08 20:19               ` Roman Zippel
2002-08-08 17:42                 ` Peter Samuelson
2002-08-09 10:21                   ` Roman Zippel
2002-08-09 11:47                     ` Peter Samuelson
2002-08-09 12:07                       ` Russell King
2002-08-09 12:49                         ` Peter Samuelson
2002-08-09 14:53                           ` [kbuild-devel] " Greg Banks
2002-08-09 22:37                             ` Thunder from the hill
2002-08-08 20:37                 ` Andi Kleen
2002-08-08 20:51                   ` Roman Zippel
2002-08-07 17:31       ` Thunder from the hill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020813033951.GF761@cadcamlab.org \
    --to=peter@cadcamlab.org \
    --cc=gnb@alphalink.com.au \
    --cc=kai@tp1.ruhr-uni-bochum.de \
    --cc=kbuild-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®