[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v16 93/99] meson: Introduce target-specific Kconfig
From: |
Alex Bennée |
Subject: |
Re: [PATCH v16 93/99] meson: Introduce target-specific Kconfig |
Date: |
Fri, 18 Jun 2021 17:31:34 +0100 |
User-agent: |
mu4e 1.5.13; emacs 28.0.50 |
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?
--
Alex Bennée