mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ingo Oeser <ingo.oeser@informatik.tu-chemnitz.de>
To: "Eric S. Raymond" <esr@thyrsus.com>,
	CML2 <linux-kernel@vger.kernel.org>,
	kbuild-devel@lists.sourceforge.net
Subject: Re: Why recovering from broken configs is too hard
Date: Thu, 3 May 2001 10:45:11 +0200	[thread overview]
Message-ID: <20010503104511.C754@nightmaster.csn.tu-chemnitz.de> (raw)
In-Reply-To: <20010503034755.A27693@thyrsus.com>
In-Reply-To: <20010503034755.A27693@thyrsus.com>; from esr@thyrsus.com on Thu, May 03, 2001 at 03:47:55AM -0400

On Thu, May 03, 2001 at 03:47:55AM -0400, Eric S. Raymond wrote:
> OK, so you want CML2's "make oldconfig" to do something more graceful than
> simply say "Foo! You violated this constraint! Go fix it!"
 
Yes, that would be nice.

> The obvious thing to try is to start with the configuration you have
> and try mutating the variables that occur in the broken constraint(s).

No, that is not the obvious way for me.

> Have I got the point across yet?  There are *no* good solutions 
> to this problem.  There aren't even any clean ways to separate 
> easy cases from hard ones.  

There might be.

If the current dependencies of the symbols can be represented as
a tree (or can be topologically sorted, to be CS-correct), then I
would only care about the "leaves" of that tree.

Most added symbols in newer configs are added as leaves. So this
should suffice in most situations.

We also have defaults for all new values in our arch/$ARCH/defconfig.

So we read all symbols from .config and from defconfig into 2
flat tables (no constraints applied here!) together with their
values.

If we miss a symbol from .config, we ask the user, using the one
from defconfig as default, if we cannot derive its value from
our constraints.

If we have a symbol in .config, that we don't know about, we
simply ignore it (and tell the user that it's "obsolete or
renamed").

If the value for a symbol is there, but doesn't fit our
constraints: Ask the user or use the opposite (if it is boolean).

That was the 99% case: "leaves". They are easy.

Now the nodes. We can try fixing the config by changing the
symbols from leaves, to root (to save derives). 

But we only give this solution a certain amount of "tries" and
give up (or tell the user, that we have a hard time here and aks
for continue or abort and fixing by hand), if we either tried to
often or a certain amount of time has passed (30secs maximum
until next prompt).

This is no "perfect" solution, but it covers the common cases
well enough.

Eric, what do you think about that "dirty hack" variant? ;-)

And will the derivation be in nearly constant time, if I change
one symbol?

Regards

Ingo Oeser
-- 
10.+11.03.2001 - 3. Chemnitzer LinuxTag <http://www.tu-chemnitz.de/linux/tag>
         <<<<<<<<<<<<     been there and had much fun   >>>>>>>>>>>>

  parent reply	other threads:[~2001-05-03  8:45 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-03  7:47 Eric S. Raymond
2001-05-03  8:03 ` Jeff Garzik
2001-05-03  8:09   ` Eric S. Raymond
2001-05-03  8:29 ` Alexander Viro
2001-05-03  8:42 ` [kbuild-devel] " Greg Banks
2001-05-03  8:52   ` Eric S. Raymond
2001-05-03  8:45 ` Ingo Oeser [this message]
2001-05-03  9:14   ` Alexander Viro
2001-05-03  9:43     ` Eric S. Raymond
2001-05-03  9:56       ` Alan Cox
2001-05-03 10:00       ` Alexander Viro
2001-05-03 15:55         ` Eric S. Raymond
2001-05-03 18:36           ` Alexander Viro
2001-05-03 14:54       ` David Mansfield
2001-05-03 15:58         ` Eric S. Raymond
2001-05-03 18:13         ` John Stoffel
2001-05-03  9:32   ` Eric S. Raymond
2001-05-03 10:15 ` [kbuild-devel] " Keith Owens
2001-05-03 16:59   ` Eric S. Raymond
2001-05-03 17:48     ` Alan Cox
2001-05-03 18:30       ` Eric S. Raymond
2001-05-03 18:41         ` Alan Cox
2001-05-03 19:03           ` Device driver from kernel2.2.x to kernel2.4 jalaja devi
2001-05-04  1:39             ` Andrew Morton
2001-05-03 22:58     ` [kbuild-devel] Why recovering from broken configs is too hard Keith Owens
2001-05-03 19:20 ` Michal Jaegermann
2001-05-03 23:58 ` Albert D. Cahalan
2001-05-03 22:55   ` David Lang
2001-05-04  7:47   ` [kbuild-devel] " Eric S. Raymond

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=20010503104511.C754@nightmaster.csn.tu-chemnitz.de \
    --to=ingo.oeser@informatik.tu-chemnitz.de \
    --cc=esr@thyrsus.com \
    --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®