qemu-riscv
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]