Re: linux-parisc compile failure in current git

From: Helge Deller
Date: Fri Aug 19 2022 - 14:10:00 EST


* Masahiro Yamada <masahiroy@xxxxxxxxxx>:
> > > The reason is 64BIT depends on PA8X00.
> > >
> > > allmodconfig chooses PA7000 instead of PA8X00
> > > in the "Processor type" choice since
> > > PA7000 is the default.
> > >
> > >
> > > If you apply this patch,
> > >
> > >
> > >
> > > diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
> > > index 7f059cd1196a..458b8e22e240 100644
> > > --- a/arch/parisc/Kconfig
> > > +++ b/arch/parisc/Kconfig
> > > @@ -146,7 +146,7 @@ menu "Processor type and features"
> > >
> > > choice
> > > prompt "Processor type"
> > > - default PA7000
> > > + default PA8X00
> > >
> > > config PA7000
> > > bool "PA7000/PA7100"
> > >
> > > allmodconfig will start enabling CONFIG_64BIT,
> > > but it is up to Helge.
> >
> > That patch "partly" works, in the sense that with:
> > make ARCH=parisc64 randconfig
> >
> > you randomly end up with a 32- or 64-bit kernel.
> > Since "ARCH=parisc64" was given, one probably would expect a 64-bit-enabled kernel randconfig,
> > and with "ARCH=parisc" a 32-bit randconfig.
> > But, I'm not sure if this intended or not and works that way on other arches as well.
>
>
> Ah, OK.
>
> Then, you can mimic sparc code.
>
> In the top Makefile:
>
>
> ifeq ($(ARCH),sparc32)
> SRCARCH := sparc
> endif
> ifeq ($(ARCH),sparc64)
> SRCARCH := sparc
> endif
>
>
>
>
> In arch/sparc/Kconfig:
>
>
> config 64BIT
> bool "64-bit kernel" if "$(ARCH)" = "sparc"
> default "$(ARCH)" = "sparc64"
>
> "make ARCH=sparc32 randconfig" always disables
> CONFIG_64BIT, and randomizes the rest of options.
>
>
> "make ARCH=sparc64 randconfig" always enables
> CONFIG_64BIT, and randomizes the rest of options.
>
>
> "make ARCH=sparc randconfig" randomizes all options,
> including CONFIG_64BIT.

Ah, cool.
Thank you!

> I suggest to introduce ARCH=parisc32

No need. We already have ARCH=parisc64 or ARCH=parisc.

The patch below fixes it nicely and I've pushed it into the parisc
for-next git tree.

@Randy: Maybe you could try it as well. With that approach
you get what you want. Maybe that's a better approach for riscv64 as
well?

Helge



From a529c0a388f74a243363976af8535b10d3d69d20 Mon Sep 17 00:00:00 2001
From: Helge Deller <deller@xxxxxx>
Date: Fri, 19 Aug 2022 19:30:50 +0200
Subject: [PATCH] parisc: Enable CONFIG_64BIT for ARCH=parisc64 only

With this patch the ARCH= parameter decides if the
CONFIG_64BIT option will be set or not. This means, the
ARCH= parameter will give:

ARCH=parisc -> 32-bit kernel
ARCH=parisc64 -> 64-bit kernel

This simplifies the usage of the other config options like
randconfig, allmodconfig and allyesconfig a lot and produces
the output which is expected for parisc64 (64-bit) vs. parisc (32-bit).

Suggested-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
Signed-off-by: Helge Deller <deller@xxxxxx>

diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 7f059cd1196a..9aede2447011 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -146,10 +146,10 @@ menu "Processor type and features"

choice
prompt "Processor type"
- default PA7000
+ default PA7000 if "$(ARCH)" = "parisc"

config PA7000
- bool "PA7000/PA7100"
+ bool "PA7000/PA7100" if "$(ARCH)" = "parisc"
help
This is the processor type of your CPU. This information is
used for optimizing purposes. In order to compile a kernel
@@ -160,21 +160,21 @@ config PA7000
which is required on some machines.

config PA7100LC
- bool "PA7100LC"
+ bool "PA7100LC" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-L processor, as used in the
712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748,
D200, D210, D300, D310 and E-class

config PA7200
- bool "PA7200"
+ bool "PA7200" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-T' processor, as used in the
C100, C110, J100, J110, J210XC, D250, D260, D350, D360,
K100, K200, K210, K220, K400, K410 and K420

config PA7300LC
- bool "PA7300LC"
+ bool "PA7300LC" if "$(ARCH)" = "parisc"
help
Select this option for the PCX-L2 processor, as used in the
744, A180, B132L, B160L, B180L, C132L, C160L, C180L,
@@ -224,17 +224,8 @@ config MLONGCALLS
Enabling this option will probably slow down your kernel.

config 64BIT
- bool "64-bit kernel"
+ def_bool "$(ARCH)" = "parisc64"
depends on PA8X00
- help
- Enable this if you want to support 64bit kernel on PA-RISC platform.
-
- At the moment, only people willing to use more than 2GB of RAM,
- or having a 64bit-only capable PA-RISC machine should say Y here.
-
- Since there is no 64bit userland on PA-RISC, there is no point to
- enable this option otherwise. The 64bit kernel is significantly bigger
- and slower than the 32bit one.

choice
prompt "Kernel page size"