Message ID | 20210604155312.15902-94-alex.bennee@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm tcg/kvm refactor and split with kvm only support | expand |
On 6/4/21 8:53 AM, Alex Bennée wrote: > From: Philippe Mathieu-Daudé <f4bug@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é <f4bug@amsat.org> > Message-Id: <20210131111316.232778-6-f4bug@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? > --- 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? r~
Richard Henderson <richard.henderson@linaro.org> writes: > On 6/4/21 8:53 AM, Alex Bennée wrote: >> From: Philippe Mathieu-Daudé <f4bug@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é <f4bug@amsat.org> >> Message-Id: <20210131111316.232778-6-f4bug@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?
diff --git a/meson.build b/meson.build index e2a22984b8..09c7809d6b 100644 --- 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']) 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 diff --git a/target/arm/Kconfig b/target/arm/Kconfig new file mode 100644 index 0000000000..3f3394a22b --- /dev/null +++ b/target/arm/Kconfig @@ -0,0 +1,6 @@ +config ARM + bool + +config AARCH64 + bool + select ARM diff --git a/target/avr/Kconfig b/target/avr/Kconfig new file mode 100644 index 0000000000..155592d353 --- /dev/null +++ b/target/avr/Kconfig @@ -0,0 +1,2 @@ +config AVR + bool diff --git a/target/cris/Kconfig b/target/cris/Kconfig new file mode 100644 index 0000000000..3fdc309fbb --- /dev/null +++ b/target/cris/Kconfig @@ -0,0 +1,2 @@ +config CRIS + bool diff --git a/target/hppa/Kconfig b/target/hppa/Kconfig new file mode 100644 index 0000000000..395a35d799 --- /dev/null +++ b/target/hppa/Kconfig @@ -0,0 +1,2 @@ +config HPPA + bool diff --git a/target/i386/Kconfig b/target/i386/Kconfig new file mode 100644 index 0000000000..ce6968906e --- /dev/null +++ b/target/i386/Kconfig @@ -0,0 +1,5 @@ +config I386 + bool + +config X86_64 + bool diff --git a/target/lm32/Kconfig b/target/lm32/Kconfig new file mode 100644 index 0000000000..09de5b703a --- /dev/null +++ b/target/lm32/Kconfig @@ -0,0 +1,2 @@ +config LM32 + bool diff --git a/target/m68k/Kconfig b/target/m68k/Kconfig new file mode 100644 index 0000000000..23debad519 --- /dev/null +++ b/target/m68k/Kconfig @@ -0,0 +1,2 @@ +config M68K + bool diff --git a/target/microblaze/Kconfig b/target/microblaze/Kconfig new file mode 100644 index 0000000000..a5410d9218 --- /dev/null +++ b/target/microblaze/Kconfig @@ -0,0 +1,2 @@ +config MICROBLAZE + bool diff --git a/target/mips/Kconfig b/target/mips/Kconfig new file mode 100644 index 0000000000..6adf145354 --- /dev/null +++ b/target/mips/Kconfig @@ -0,0 +1,6 @@ +config MIPS + bool + +config MIPS64 + bool + select MIPS diff --git a/target/moxie/Kconfig b/target/moxie/Kconfig new file mode 100644 index 0000000000..52391bbd28 --- /dev/null +++ b/target/moxie/Kconfig @@ -0,0 +1,2 @@ +config MOXIE + bool diff --git a/target/nios2/Kconfig b/target/nios2/Kconfig new file mode 100644 index 0000000000..1529ab8950 --- /dev/null +++ b/target/nios2/Kconfig @@ -0,0 +1,2 @@ +config NIOS2 + bool diff --git a/target/openrisc/Kconfig b/target/openrisc/Kconfig new file mode 100644 index 0000000000..e0da4ac1df --- /dev/null +++ b/target/openrisc/Kconfig @@ -0,0 +1,2 @@ +config OPENRISC + bool diff --git a/target/ppc/Kconfig b/target/ppc/Kconfig new file mode 100644 index 0000000000..3ff152051a --- /dev/null +++ b/target/ppc/Kconfig @@ -0,0 +1,5 @@ +config PPC + bool + +config PPC64 + bool diff --git a/target/riscv/Kconfig b/target/riscv/Kconfig new file mode 100644 index 0000000000..b9e5932f13 --- /dev/null +++ b/target/riscv/Kconfig @@ -0,0 +1,5 @@ +config RISCV32 + bool + +config RISCV64 + bool diff --git a/target/rx/Kconfig b/target/rx/Kconfig new file mode 100644 index 0000000000..aceb5ed28f --- /dev/null +++ b/target/rx/Kconfig @@ -0,0 +1,2 @@ +config RX + bool diff --git a/target/s390x/Kconfig b/target/s390x/Kconfig new file mode 100644 index 0000000000..72da48136c --- /dev/null +++ b/target/s390x/Kconfig @@ -0,0 +1,2 @@ +config S390X + bool diff --git a/target/sh4/Kconfig b/target/sh4/Kconfig new file mode 100644 index 0000000000..2397c86028 --- /dev/null +++ b/target/sh4/Kconfig @@ -0,0 +1,2 @@ +config SH4 + bool diff --git a/target/sparc/Kconfig b/target/sparc/Kconfig new file mode 100644 index 0000000000..70cc0f3a21 --- /dev/null +++ b/target/sparc/Kconfig @@ -0,0 +1,5 @@ +config SPARC + bool + +config SPARC64 + bool diff --git a/target/tilegx/Kconfig b/target/tilegx/Kconfig new file mode 100644 index 0000000000..aad882826a --- /dev/null +++ b/target/tilegx/Kconfig @@ -0,0 +1,2 @@ +config TILEGX + bool diff --git a/target/tricore/Kconfig b/target/tricore/Kconfig new file mode 100644 index 0000000000..9313409309 --- /dev/null +++ b/target/tricore/Kconfig @@ -0,0 +1,2 @@ +config TRICORE + bool diff --git a/target/unicore32/Kconfig b/target/unicore32/Kconfig new file mode 100644 index 0000000000..62c9d10b38 --- /dev/null +++ b/target/unicore32/Kconfig @@ -0,0 +1,2 @@ +config UNICORE32 + bool diff --git a/target/xtensa/Kconfig b/target/xtensa/Kconfig new file mode 100644 index 0000000000..a3c8dc7f6d --- /dev/null +++ b/target/xtensa/Kconfig @@ -0,0 +1,2 @@ +config XTENSA + bool