Re: building in 32bit chroot on x86_64 host broken

From: Thomas Backlund
Date: Tue Jun 05 2018 - 14:23:13 EST



Den 2018-06-05 kl. 21:11, skrev Linus Torvalds:
On Tue, Jun 5, 2018 at 10:51 AM Thomas Backlund <tmb@xxxxxxxxxx> wrote:
Is this intentional ? If so, why ? If not, how can I fix it ?
It shouldn't be intentional. And I don't see anythin ghaving changed
in this area. We still have

config 64BIT
bool "64-bit kernel" if ARCH = "x86"
default ARCH != "i386"

which is what it was in 4.16 too.

Of course, we also have (in the main Makefile)

SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \

and

ARCH ?= $(SUBARCH)

so if you don't set ARCH explicitly, it will always translate "i686"
into "x86", so it will default to 64-bit.

None of this is new to 4.17, though. Are you sure you didn't use to
have an ARCH=i386 somewhere?

Because this works for me:

make ARCH=i386 oldconfig

and it's how I have done cross-builds before (although honestly, I
don't do them very often).

But adding Masahiro to the cc in case he sees something I've missed.

Of course, doing a bisect on *when* it broke for you would be good
too. You don't need to actually build the kernel, you can just bisect
the configuration phase (and even automate it with "git bisect run" if
you want to).

Linus


Taking back the earlier " IGNORE " part...

This happends on the 64bit host:

# make ARCH=i386 oldconfig

--- .config.old 2018-06-05 21:17:07.829954548 +0300
+++ .configÂÂÂÂ 2018-06-05 21:17:43.367487580 +0300
@@ -1,8 +1,7 @@
Â#
Â# Automatically generated file; DO NOT EDIT.
-# Linux/i386 4.16.12 Kernel Configuration
+# Linux/i386 4.17.0 Kernel Configuration
Â#
-# CONFIG_64BIT is not set




So something _does_ strip away the needed config bit

So any ideas, or should I start bisecting ?

--
Thomas