From: Ingo Molnar <mingo@elte.hu>
To: David Woodhouse <dwmw2@infradead.org>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Fix corruption of CONFIG_X86_32 in 'make oldconfig'
Date: Mon, 30 May 2011 09:23:00 +0200 [thread overview]
Message-ID: <20110530072300.GA9802@elte.hu> (raw)
In-Reply-To: <1306707270.2029.377.camel@i7.infradead.org>
* David Woodhouse <dwmw2@infradead.org> wrote:
> I wasted a bunch of time today because I'd taken a .config from my
> test machine and tried to build it, and the existing setting of
> CONFIG_X86_32 got corrupted.
>
> This patch fixes that. Last time I tried to fix this bug, I had to
> contend with Ingo's objection that he didn't actually want 'make
> randconfig' to give him a random config... [...]
You thoroughly misunderstood my prior regression report, the problem
with your patch was that your patch actually *broke* existing
filtered-randconfig behavior, for example trying to get a 64-bit
randconfig:
make ARCH=x86_64 randconfig
... will today produce a 64-bit randconfig while with your old change
applied it produced a 32-bit randconfig 50% of the time.
That randconfig behavior is an entirely expected and intuitive: if
the ARCH=x86_64 condition is added to the command line then kconfig
should not ignore it - why should randconfig override the user's
wishes? Furthermore this behavior worked fine before your first patch
so not only did your first patch make kconfig behavior less
intuitive, it also caused a regression.
Similarly, "make ARCH=i386 randconfig" will produce a 32-bit
randconfig today, while with your old patch applied it produced a
64-bit randconfig 50% of the time.
As i said it two years ago when you first submitted this patch:
| I dont mind the change you are after, but randconfig should work as
| expected too: if ARCH=x86_64 is passed it should generate a 64-bit
| randconfig, not a 50% 32-bit one.
I still don't mind "make oldconfig" picking up the bitness of the
.config instead of the host system's (it is the more intuitive and
more correct behavior) - although note that me not minding it is not
enough: we still have to be on the lookout for people and tools
relying on that behavior.
So instead of complaining about my regression report i've updated the
changelog as attached below - if you are fine with that then i'll
commit and test it more widely.
Thanks,
Ingo
-------------->
Subject: x86, kconfig: Pick up the .config arch version in 'make oldconfig'
From: David Woodhouse <dwmw2@infradead.org>
Date: Sun, 29 May 2011 23:14:28 +0100
I wasted a bunch of time today because I'd taken a .config from my
test machine and tried to build it, and the existing setting of
CONFIG_X86_32 got changed to the host system's bitness which was
64-bit.
This patch fixes that. Last time I tried to fix this bug, I had
introduced a regression that broke:
make ARCH=x86_64 randconfig
make ARCH=i386 randconfig
type of filtered-randconfig behavior which restricted randconfigs to
64-bit and 32-bit configs, respectively.
This version fixes that so prior randconfig behavior is maintained.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Link: http://lkml.kernel.org/r/1306707270.2029.377.camel@i7.infradead.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
Makefile | 3 ++-
arch/x86/Kconfig | 2 +-
arch/x86/Makefile | 4 ++++
3 files changed, 7 insertions(+), 2 deletions(-)
Index: linux/Makefile
===================================================================
--- linux.orig/Makefile
+++ linux/Makefile
@@ -165,7 +165,8 @@ export srctree objtree VPATH
# then ARCH is assigned, getting whatever value it gets normally, and
# SUBARCH is subsequently ignored.
-SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
+SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \
+ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
Index: linux/arch/x86/Kconfig
===================================================================
--- linux.orig/arch/x86/Kconfig
+++ linux/arch/x86/Kconfig
@@ -1,7 +1,7 @@
# Select 32 or 64 bit
config 64BIT
bool "64-bit kernel" if ARCH = "x86"
- default ARCH = "x86_64"
+ default ARCH != "i386"
---help---
Say yes to build a 64-bit kernel - formerly known as x86_64
Say no to build a 32-bit kernel - formerly known as i386
Index: linux/arch/x86/Makefile
===================================================================
--- linux.orig/arch/x86/Makefile
+++ linux/arch/x86/Makefile
@@ -2,7 +2,11 @@
# select defconfig based on actual architecture
ifeq ($(ARCH),x86)
+ ifeq ($(shell uname -m),x86_64)
+ KBUILD_DEFCONFIG := x86_64_defconfig
+ else
KBUILD_DEFCONFIG := i386_defconfig
+ endif
else
KBUILD_DEFCONFIG := $(ARCH)_defconfig
endif
next prev parent reply other threads:[~2011-05-30 7:23 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-29 22:14 [PATCH] Fix corruption of CONFIG_X86_32 in 'make oldconfig' David Woodhouse
2011-05-30 7:23 ` Ingo Molnar [this message]
2011-05-30 8:57 ` David Woodhouse
2011-05-30 9:15 ` Ingo Molnar
2011-05-30 9:27 ` David Woodhouse
2011-05-30 9:53 ` Ingo Molnar
2011-05-30 10:06 ` David Woodhouse
2011-05-30 10:25 ` Ingo Molnar
2011-05-30 11:01 ` David Woodhouse
2011-05-30 11:04 ` Ingo Molnar
2011-05-30 11:12 ` David Woodhouse
2011-05-30 11:42 ` Ingo Molnar
2011-05-30 11:55 ` David Woodhouse
2011-05-30 12:11 ` Ingo Molnar
2011-05-31 8:53 ` Geert Uytterhoeven
2011-05-31 10:48 ` Ingo Molnar
2011-05-30 10:40 ` Alexey Dobriyan
2011-05-30 10:09 ` [PATCH v2] x86, kconfig: Pick up the .config arch version " David Woodhouse
2011-06-24 13:37 ` Michal Marek
2011-06-24 14:45 ` David Woodhouse
2011-05-30 10:42 ` [PATCH] Fix corruption of CONFIG_X86_32 " Ingo Molnar
2011-05-30 10:46 ` Ingo Molnar
2011-05-30 10:53 ` Theodore Tso
2011-05-30 10:58 ` Ingo Molnar
2011-05-30 11:04 ` Theodore Tso
2011-05-30 11:30 ` Ingo Molnar
2011-05-30 17:29 ` Randy Dunlap
2011-05-30 11:57 ` David Woodhouse
2011-05-30 12:14 ` Ingo Molnar
2011-05-30 19:03 ` David Woodhouse
2011-05-30 19:55 ` Ted Ts'o
2011-05-30 20:12 ` David Woodhouse
2011-05-30 22:39 ` [PATCH] Enable 'make CONFIG_FOO=y oldconfig' David Woodhouse
2011-05-31 0:24 ` Arnaud Lacombe
2011-05-31 15:48 ` David Woodhouse
2011-05-31 16:12 ` Arnaud Lacombe
2011-06-24 13:49 ` Michal Marek
2011-07-29 23:32 ` [PATCH v2] " David Woodhouse
2011-07-30 1:15 ` Arnaud Lacombe
2011-07-30 9:04 ` David Woodhouse
2011-07-30 0:49 ` [PATCH v3] x86, kconfig: Default to ARCH=x86 to avoid overriding CONFIG_64BIT David Woodhouse
2011-07-30 1:26 ` Arnaud Lacombe
2011-07-30 8:37 ` David Woodhouse
2011-07-30 15:21 ` Arnaud Lacombe
2011-07-30 15:52 ` Arnaud Lacombe
2011-07-30 16:19 ` David Woodhouse
2011-07-30 16:33 ` Arnaud Lacombe
2011-07-30 18:59 ` H. Peter Anvin
2011-07-30 20:58 ` David Woodhouse
2011-07-30 22:03 ` H. Peter Anvin
2011-07-30 22:17 ` David Woodhouse
2011-07-30 22:21 ` H. Peter Anvin
2011-07-30 22:24 ` Arnaud Lacombe
2011-07-30 22:34 ` David Woodhouse
2011-07-30 22:39 ` H. Peter Anvin
2011-07-30 22:21 ` Arnaud Lacombe
2011-07-30 22:57 ` David Woodhouse
2011-07-31 19:40 ` Arnaud Lacombe
2011-07-31 20:00 ` David Woodhouse
2011-07-31 20:24 ` Arnaud Lacombe
2011-07-31 20:51 ` David Woodhouse
2011-07-31 5:18 ` Arnaud Lacombe
2011-07-31 8:13 ` David Woodhouse
2011-07-31 21:47 ` Arnaud Lacombe
2011-07-31 21:51 ` Arnaud Lacombe
2011-05-31 1:44 ` [PATCH] Fix corruption of CONFIG_X86_32 in 'make oldconfig' Ted Ts'o
2011-05-31 8:37 ` David Woodhouse
2011-05-31 7:53 ` Ingo Molnar
2011-05-31 8:55 ` David Woodhouse
2011-05-31 10:41 ` Ingo Molnar
2011-05-31 11:43 ` David Woodhouse
2011-05-31 12:45 ` Ingo Molnar
2011-05-31 13:44 ` David Woodhouse
2011-05-31 13:56 ` Ingo Molnar
2011-05-31 14:31 ` David Woodhouse
2011-05-31 14:14 ` Geert Uytterhoeven
2011-05-31 12:12 ` Ted Ts'o
2011-05-31 12:32 ` David Woodhouse
2011-05-31 12:50 ` Ingo Molnar
2011-05-30 11:06 ` David Woodhouse
2011-05-30 11:34 ` Ingo Molnar
2011-05-30 11:05 ` Arnd Bergmann
2011-05-30 17:27 ` Randy Dunlap
2011-05-30 18:40 ` Arnd Bergmann
2011-05-30 20:01 ` Randy Dunlap
2011-05-30 20:30 ` Arnaud Lacombe
2011-05-30 21:04 ` Arnd Bergmann
2011-05-30 21:16 ` Randy Dunlap
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=20110530072300.GA9802@elte.hu \
--to=mingo@elte.hu \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=x86@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