public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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