[PATCH] build: Add the BSP family to the enable set

Chris Johns chrisj at rtems.org
Wed Jul 21 00:51:56 UTC 2021



On 20/7/21 8:25 pm, Sebastian Huber wrote:
> On 15/07/2021 08:19, Sebastian Huber wrote:
>> This makes it possible to use the BSP family in expressions of the enabled-by
>> attribute.
>> ---
>>   wscript | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/wscript b/wscript
>> index 487951fdba..1331ae149e 100755
>> --- a/wscript
>> +++ b/wscript
>> @@ -1387,7 +1387,12 @@ def configure_variant(conf, cp, bsp_map, path_list,
>> top_group, variant):
>>         # For the enabled-by evaluation we have to use the base BSP defined by
>> the
>>       # build specification and not the BSP name provided by the user.
>> -    conf.env["ENABLE"] = [get_compiler(conf, cp, variant), arch, arch_bsp]
>> +    conf.env["ENABLE"] = [
>> +        get_compiler(conf, cp, variant),
>> +        arch,
>> +        arch_family,
>> +        arch_bsp,
>> +    ]
>>         conf.env["TOP"] = conf.path.abspath()
>>       conf.env["TOPGROUP"] = top_group
> 
> This actually broke some riscv BSPs which do not support SMP. We have
> 
> cat spec/build/cpukit/optsmp.yml
> SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
> actions:
> - get-boolean: null
> - env-enable: null
> - define-condition: null
> build-type: option
> copyrights:
> - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
> default: false
> default-by-family: []
> default-by-variant: []
> description: |
>   Enable the Symmetric Multiprocessing (SMP) support
> enabled-by:
> - arm/altcycv_devkit
> - arm/fvp_cortex_r52
> - arm/imx7
> - arm/raspberrypi2
> - arm/realview_pbx_a9_qemu
> - arm/xilinx_zynq_a9_qemu
> - arm/xilinx_zynqmp_ultra96
> - arm/xilinx_zynq_zc702
> - arm/xilinx_zynq_zc706
> - arm/xilinx_zynq_zedboard
> - powerpc/qoriq_e500
> - powerpc/qoriq_e6500_32
> - powerpc/qoriq_e6500_64
> - riscv/griscv
> - riscv/grv32imac
> - riscv/grv32imafdc
> - riscv/rv32iac
> - riscv/rv32imac
> - riscv/rv32imafc
> - riscv/rv32imafd
> - riscv/rv32imafdc
> - riscv/rv64imac
> - riscv/rv64imac_medany
> - riscv/rv64imafd
> - riscv/rv64imafdc
> - riscv/rv64imafdc_medany
> - riscv/rv64imafd_medany
> - sparc/erc32
> - sparc/gr712rc
> - sparc/gr740
> - sparc/leon3
> links: []
> name: RTEMS_SMP
> type: build
> 
> The problem is that one BSP which supports SMP "riscv/griscv" is identical to
> the family "riscv/griscv" which contains BSPs which do not support SMP
> ("riscv/grv32i" and riscv/grv32im").

Hmm, tricky. Can the BSPs that do not support SMP disable SMP in the BSP
specific config, ie override/specialise in the BSP?

Chris


More information about the devel mailing list