2020-08-10 16:01:42

by Daniel Díaz

[permalink] [raw]
Subject: [PATCH] x86/defconfigs/32: Unset 64BIT

A recent refresh of the defconfigs got rid of the following
(unset) config:

# CONFIG_64BIT is not set

Innocuous as it seems, when the config file is saved again the
behavior is changed so that CONFIG_64BIT=y.

Currently,

$ make i386_defconfig
$ grep CONFIG_64BIT .config
CONFIG_64BIT=y

whereas previously (and with this patch now):

$ make i386_defconfig
$ grep CONFIG_64BIT .config
# CONFIG_64BIT is not set

This was found with weird compiler errors on OpenEmbedded
builds, as the compiler was unable to cope with 64-bits data
types:

NOTE: make -j1 bzImage CC=i686-linaro-linux-gcc -fuse-ld=bfd -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0=/usr/src/debug/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0 -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot= -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot-native= -fdebug-prefix-map=/oe/build/tmp/work-shared/intel-core2-32/kernel-source=/usr/src/kernel -ffile-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/git=/kernel-source/ LD=i686-linaro-linux-ld.bfd
GEN Makefile
CC scripts/mod/empty.o
cc1: error: code model 'kernel' not supported in the 32 bit mode
cc1: sorry, unimplemented: 64-bit mode not compiled in
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/scripts/Makefile.build:280: recipe for target 'scripts/mod/empty.o' failed
make[2]: *** [scripts/mod/empty.o] Error 1
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:1174: recipe for target 'prepare0' failed
make[1]: *** [prepare0] Error 2
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:185: recipe for target '__sub-make' failed
make: *** [__sub-make] Error 2

Fixes: 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")

Signed-off-by: Daniel Díaz <[email protected]>
---
arch/x86/configs/i386_defconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index d7577fece9eb..4cfdf5755ab5 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -19,6 +19,7 @@ CONFIG_CGROUP_CPUACCT=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
+# CONFIG_64BIT is not set
CONFIG_SMP=y
CONFIG_X86_GENERIC=y
CONFIG_HPET_TIMER=y
--
2.25.1


2020-08-10 16:18:10

by Sedat Dilek

[permalink] [raw]
Subject: Re: [PATCH] x86/defconfigs/32: Unset 64BIT

On Mon, Aug 10, 2020 at 5:59 PM Daniel Díaz <[email protected]> wrote:
>
> A recent refresh of the defconfigs got rid of the following
> (unset) config:
>
> # CONFIG_64BIT is not set
>
> Innocuous as it seems, when the config file is saved again the
> behavior is changed so that CONFIG_64BIT=y.
>
> Currently,
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> CONFIG_64BIT=y
>
> whereas previously (and with this patch now):
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> # CONFIG_64BIT is not set
>
> This was found with weird compiler errors on OpenEmbedded
> builds, as the compiler was unable to cope with 64-bits data
> types:
>
> NOTE: make -j1 bzImage CC=i686-linaro-linux-gcc -fuse-ld=bfd -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0=/usr/src/debug/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0 -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot= -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot-native= -fdebug-prefix-map=/oe/build/tmp/work-shared/intel-core2-32/kernel-source=/usr/src/kernel -ffile-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/git=/kernel-source/ LD=i686-linaro-linux-ld.bfd
> GEN Makefile
> CC scripts/mod/empty.o
> cc1: error: code model 'kernel' not supported in the 32 bit mode
> cc1: sorry, unimplemented: 64-bit mode not compiled in
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/scripts/Makefile.build:280: recipe for target 'scripts/mod/empty.o' failed
> make[2]: *** [scripts/mod/empty.o] Error 1
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:1174: recipe for target 'prepare0' failed
> make[1]: *** [prepare0] Error 2
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:185: recipe for target '__sub-make' failed
> make: *** [__sub-make] Error 2
>
> Fixes: 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")
>

Hey cool and Thanks Daniel.

I feel over this "CONFIG_64BIT not set" when I wanted to test the
patchset [0] in ClangBuiltLinux issue #194 ... but never did :-(.

I never reported upstream - it is good you sent out a patch with
explicitly setting CONFIG_64BIT=n when using i386_defconfig.

At least I send a patch to remove a leftover [4].

- Sedat -

[0] https://lore.kernel.org/lkml/[email protected]/T/#u
[1] https://git.kernel.org/linus/ba77c568f3160657a5f7905289c07d18c2dfde78
[2] https://github.com/ClangBuiltLinux/linux/issues/194#issuecomment-662620461
[3] https://git.kernel.org/linus/6526b12de07588253a52577f42ec99fc7ca26a1f

> Signed-off-by: Daniel Díaz <[email protected]>
> ---
> arch/x86/configs/i386_defconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
> index d7577fece9eb..4cfdf5755ab5 100644
> --- a/arch/x86/configs/i386_defconfig
> +++ b/arch/x86/configs/i386_defconfig
> @@ -19,6 +19,7 @@ CONFIG_CGROUP_CPUACCT=y
> CONFIG_BLK_DEV_INITRD=y
> # CONFIG_COMPAT_BRK is not set
> CONFIG_PROFILING=y
> +# CONFIG_64BIT is not set
> CONFIG_SMP=y
> CONFIG_X86_GENERIC=y
> CONFIG_HPET_TIMER=y
> --
> 2.25.1
>

2020-08-10 17:03:27

by Sedat Dilek

[permalink] [raw]
Subject: Re: [PATCH] x86/defconfigs/32: Unset 64BIT

On Mon, Aug 10, 2020 at 5:59 PM Daniel Díaz <[email protected]> wrote:
>
> A recent refresh of the defconfigs got rid of the following
> (unset) config:
>
> # CONFIG_64BIT is not set
>
> Innocuous as it seems, when the config file is saved again the
> behavior is changed so that CONFIG_64BIT=y.
>
> Currently,
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> CONFIG_64BIT=y
>
> whereas previously (and with this patch now):
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> # CONFIG_64BIT is not set
>
> This was found with weird compiler errors on OpenEmbedded
> builds, as the compiler was unable to cope with 64-bits data
> types:
>
> NOTE: make -j1 bzImage CC=i686-linaro-linux-gcc -fuse-ld=bfd -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0=/usr/src/debug/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0 -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot= -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot-native= -fdebug-prefix-map=/oe/build/tmp/work-shared/intel-core2-32/kernel-source=/usr/src/kernel -ffile-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/git=/kernel-source/ LD=i686-linaro-linux-ld.bfd
> GEN Makefile
> CC scripts/mod/empty.o
> cc1: error: code model 'kernel' not supported in the 32 bit mode
> cc1: sorry, unimplemented: 64-bit mode not compiled in
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/scripts/Makefile.build:280: recipe for target 'scripts/mod/empty.o' failed
> make[2]: *** [scripts/mod/empty.o] Error 1
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:1174: recipe for target 'prepare0' failed
> make[1]: *** [prepare0] Error 2
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:185: recipe for target '__sub-make' failed
> make: *** [__sub-make] Error 2
>
> Fixes: 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")
>
> Signed-off-by: Daniel Díaz <[email protected]>

As a suggestion for the name of the patch:

x86/defconfigs: Explicitly unset CONFIG_64BIT in i386_defconfig

- Sedat -

> ---
> arch/x86/configs/i386_defconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
> index d7577fece9eb..4cfdf5755ab5 100644
> --- a/arch/x86/configs/i386_defconfig
> +++ b/arch/x86/configs/i386_defconfig
> @@ -19,6 +19,7 @@ CONFIG_CGROUP_CPUACCT=y
> CONFIG_BLK_DEV_INITRD=y
> # CONFIG_COMPAT_BRK is not set
> CONFIG_PROFILING=y
> +# CONFIG_64BIT is not set
> CONFIG_SMP=y
> CONFIG_X86_GENERIC=y
> CONFIG_HPET_TIMER=y
> --
> 2.25.1
>

2020-08-19 17:36:58

by Daniel Díaz

[permalink] [raw]
Subject: [PATCH v2] x86/defconfigs: Explicitly unset CONFIG_64BIT in i386_defconfig

A recent refresh of the defconfigs got rid of the following
(unset) config:

# CONFIG_64BIT is not set

Innocuous as it seems, when the config file is saved again the
behavior is changed so that CONFIG_64BIT=y.

Currently,

$ make i386_defconfig
$ grep CONFIG_64BIT .config
CONFIG_64BIT=y

whereas previously (and with this patch):

$ make i386_defconfig
$ grep CONFIG_64BIT .config
# CONFIG_64BIT is not set

This was found with weird compiler errors on OpenEmbedded
builds, as the compiler was unable to cope with 64-bits data
types:

NOTE: make -j1 bzImage CC=i686-linaro-linux-gcc -fuse-ld=bfd -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0=/usr/src/debug/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0 -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot= -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot-native= -fdebug-prefix-map=/oe/build/tmp/work-shared/intel-core2-32/kernel-source=/usr/src/kernel -ffile-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/git=/kernel-source/ LD=i686-linaro-linux-ld.bfd
GEN Makefile
CC scripts/mod/empty.o
cc1: error: code model 'kernel' not supported in the 32 bit mode
cc1: sorry, unimplemented: 64-bit mode not compiled in
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/scripts/Makefile.build:280: recipe for target 'scripts/mod/empty.o' failed
make[2]: *** [scripts/mod/empty.o] Error 1
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:1174: recipe for target 'prepare0' failed
make[1]: *** [prepare0] Error 2
/oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:185: recipe for target '__sub-make' failed
make: *** [__sub-make] Error 2

Fixes: 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")

Signed-off-by: Daniel Díaz <[email protected]>
---
v1 -> v2: Clarify subject

arch/x86/configs/i386_defconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index d7577fece9eb..4cfdf5755ab5 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -19,6 +19,7 @@ CONFIG_CGROUP_CPUACCT=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
+# CONFIG_64BIT is not set
CONFIG_SMP=y
CONFIG_X86_GENERIC=y
CONFIG_HPET_TIMER=y
--
2.25.1

2020-08-19 18:27:56

by Sedat Dilek

[permalink] [raw]
Subject: Re: [PATCH v2] x86/defconfigs: Explicitly unset CONFIG_64BIT in i386_defconfig

On Wed, Aug 19, 2020 at 7:32 PM Daniel Díaz <[email protected]> wrote:
>
> A recent refresh of the defconfigs got rid of the following
> (unset) config:
>
> # CONFIG_64BIT is not set
>
> Innocuous as it seems, when the config file is saved again the
> behavior is changed so that CONFIG_64BIT=y.
>
> Currently,
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> CONFIG_64BIT=y
>
> whereas previously (and with this patch):
>
> $ make i386_defconfig
> $ grep CONFIG_64BIT .config
> # CONFIG_64BIT is not set
>
> This was found with weird compiler errors on OpenEmbedded
> builds, as the compiler was unable to cope with 64-bits data
> types:
>
> NOTE: make -j1 bzImage CC=i686-linaro-linux-gcc -fuse-ld=bfd -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0=/usr/src/debug/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0 -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot= -fdebug-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/recipe-sysroot-native= -fdebug-prefix-map=/oe/build/tmp/work-shared/intel-core2-32/kernel-source=/usr/src/kernel -ffile-prefix-map=/oe/build/tmp/work/intel_core2_32-linaro-linux/linux-generic-mainline/5.8+gitAUTOINC+1d0e12fd3a-r0/git=/kernel-source/ LD=i686-linaro-linux-ld.bfd
> GEN Makefile
> CC scripts/mod/empty.o
> cc1: error: code model 'kernel' not supported in the 32 bit mode
> cc1: sorry, unimplemented: 64-bit mode not compiled in
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/scripts/Makefile.build:280: recipe for target 'scripts/mod/empty.o' failed
> make[2]: *** [scripts/mod/empty.o] Error 1
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:1174: recipe for target 'prepare0' failed
> make[1]: *** [prepare0] Error 2
> /oe/build/tmp/work-shared/intel-core2-32/kernel-source/Makefile:185: recipe for target '__sub-make' failed
> make: *** [__sub-make] Error 2
>
> Fixes: 1d0e12fd3a84 ("x86/defconfigs: Refresh defconfig files")
>
> Signed-off-by: Daniel Díaz <[email protected]>

Thanks for v2 of your patch.

Tested-by: Sedat Dilek <[email protected]>

- Sedat -

> ---
> v1 -> v2: Clarify subject
>
> arch/x86/configs/i386_defconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
> index d7577fece9eb..4cfdf5755ab5 100644
> --- a/arch/x86/configs/i386_defconfig
> +++ b/arch/x86/configs/i386_defconfig
> @@ -19,6 +19,7 @@ CONFIG_CGROUP_CPUACCT=y
> CONFIG_BLK_DEV_INITRD=y
> # CONFIG_COMPAT_BRK is not set
> CONFIG_PROFILING=y
> +# CONFIG_64BIT is not set
> CONFIG_SMP=y
> CONFIG_X86_GENERIC=y
> CONFIG_HPET_TIMER=y
> --
> 2.25.1
>