Richard Henderson <richard.hender...@linaro.org> writes:
> On 6/4/21 8:53 AM, Alex Bennée wrote: >> From: Philippe Mathieu-Daudé <f4...@amsat.org> >> Add a target-specific Kconfig. >> Target foo now has CONFIG_FOO defined. >> Two architecture have a particularity, ARM and MIPS: >> their 64-bit version include the 32-bit subset. >> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >> Message-Id: <20210131111316.232778-6-f4...@amsat.org> >> --- >> meson.build | 3 ++- >> Kconfig | 1 + >> target/Kconfig | 23 +++++++++++++++++++++++ >> target/alpha/Kconfig | 2 ++ >> target/arm/Kconfig | 6 ++++++ >> target/avr/Kconfig | 2 ++ >> target/cris/Kconfig | 2 ++ >> target/hppa/Kconfig | 2 ++ >> target/i386/Kconfig | 5 +++++ >> target/lm32/Kconfig | 2 ++ >> target/m68k/Kconfig | 2 ++ >> target/microblaze/Kconfig | 2 ++ >> target/mips/Kconfig | 6 ++++++ >> target/moxie/Kconfig | 2 ++ >> target/nios2/Kconfig | 2 ++ >> target/openrisc/Kconfig | 2 ++ >> target/ppc/Kconfig | 5 +++++ >> target/riscv/Kconfig | 5 +++++ >> target/rx/Kconfig | 2 ++ >> target/s390x/Kconfig | 2 ++ >> target/sh4/Kconfig | 2 ++ >> target/sparc/Kconfig | 5 +++++ >> target/tilegx/Kconfig | 2 ++ >> target/tricore/Kconfig | 2 ++ >> target/unicore32/Kconfig | 2 ++ >> target/xtensa/Kconfig | 2 ++ >> 26 files changed, 92 insertions(+), 1 deletion(-) >> create mode 100644 target/Kconfig >> create mode 100644 target/alpha/Kconfig >> create mode 100644 target/arm/Kconfig >> create mode 100644 target/avr/Kconfig >> create mode 100644 target/cris/Kconfig >> create mode 100644 target/hppa/Kconfig >> create mode 100644 target/i386/Kconfig >> create mode 100644 target/lm32/Kconfig >> create mode 100644 target/m68k/Kconfig >> create mode 100644 target/microblaze/Kconfig >> create mode 100644 target/mips/Kconfig >> create mode 100644 target/moxie/Kconfig >> create mode 100644 target/nios2/Kconfig >> create mode 100644 target/openrisc/Kconfig >> create mode 100644 target/ppc/Kconfig >> create mode 100644 target/riscv/Kconfig >> create mode 100644 target/rx/Kconfig >> create mode 100644 target/s390x/Kconfig >> create mode 100644 target/sh4/Kconfig >> create mode 100644 target/sparc/Kconfig >> create mode 100644 target/tilegx/Kconfig >> create mode 100644 target/tricore/Kconfig >> create mode 100644 target/unicore32/Kconfig >> create mode 100644 target/xtensa/Kconfig > > I guess you haven't rebased since unicore, moxie et al were removed? Ahh it happily rebased them without realising their superfluousness. > >> --- a/meson.build >> +++ b/meson.build >> @@ -1359,7 +1359,8 @@ foreach target : target_dirs >> command: [minikconf, >> get_option('default_devices') ? '--defconfig' : >> '--allnoconfig', >> config_devices_mak, '@DEPFILE@', '@INPUT@', >> - host_kconfig, accel_kconfig]) >> + host_kconfig, accel_kconfig, >> + 'CONFIG_' + config_target['TARGET_ARCH'].to_upper() + '=y']) > > I can understand this, > >> config_devices_data = configuration_data() >> config_devices = keyval.load(config_devices_mak) >> diff --git a/Kconfig b/Kconfig >> index d52ebd839b..fb6a24a2de 100644 >> --- a/Kconfig >> +++ b/Kconfig >> @@ -1,5 +1,6 @@ >> source Kconfig.host >> source backends/Kconfig >> source accel/Kconfig >> +source target/Kconfig >> source hw/Kconfig >> source semihosting/Kconfig >> diff --git a/target/Kconfig b/target/Kconfig >> new file mode 100644 >> index 0000000000..a6f719f223 >> --- /dev/null >> +++ b/target/Kconfig >> @@ -0,0 +1,23 @@ >> +source alpha/Kconfig >> +source arm/Kconfig >> +source avr/Kconfig >> +source cris/Kconfig >> +source hppa/Kconfig >> +source i386/Kconfig >> +source lm32/Kconfig >> +source m68k/Kconfig >> +source microblaze/Kconfig >> +source mips/Kconfig >> +source moxie/Kconfig >> +source nios2/Kconfig >> +source openrisc/Kconfig >> +source ppc/Kconfig >> +source riscv/Kconfig >> +source rx/Kconfig >> +source s390x/Kconfig >> +source sh4/Kconfig >> +source sparc/Kconfig >> +source tilegx/Kconfig >> +source tricore/Kconfig >> +source unicore32/Kconfig >> +source xtensa/Kconfig >> diff --git a/target/alpha/Kconfig b/target/alpha/Kconfig >> new file mode 100644 >> index 0000000000..267222c05b >> --- /dev/null >> +++ b/target/alpha/Kconfig >> @@ -0,0 +1,2 @@ >> +config ALPHA >> + bool > > But not these. I guess the whole Kconfig thing is processed > unconditionally, and there must be some definition? Pretty much - otherwise you get the Kconfig generator complaining: Configuring aarch64-softmmu-config-target.h using configuration Configuring aarch64-softmmu-config-devices.mak with command ../../meson.build:1372:4: ERROR: Running configure command failed. undefined symbol AARCH64 Traceback (most recent call last): File "/home/alex/lsrc/qemu.git/scripts/minikconf.py", line 703, in <module> config = data.compute_config() File "/home/alex/lsrc/qemu.git/scripts/minikconf.py", line 222, in compute_config raise KconfigDataError("there were undefined symbols") __main__.KconfigDataError: there were undefined symbols A full log can be found at /home/alex/lsrc/qemu.git/builds/arm.all/meson-logs/meson-log.txt ninja: error: rebuilding 'build.ninja': subcommand failed FAILED: build.ninja /usr/bin/python3 /home/alex/lsrc/qemu.git/meson/meson.py --internal regenerate /home/alex/lsrc/qemu.git /home/alex/lsrc/qemu.git/builds/arm.all --backend ninja make: *** [Makefile:154: run-ninja] Error 1 I guess we can tweak minikconf to accept the symbol? Paolo? -- Alex Bennée