> -----Original Message-----
> From: Akihiko Odaki <akihiko.od...@daynix.com>
> Sent: Friday, April 14, 2023 8:42 PM
> To: Ruifeng Wang <ruifeng.w...@arm.com>; Bruce Richardson 
> <bruce.richard...@intel.com>
> Cc: dev@dpdk.org; Akihiko Odaki <akihiko.od...@daynix.com>
> Subject: [PATCH 1/2] config/arm: Do not require processor information
> 
> DPDK can be built even without exact processor information for x86 and ppc so 
> allow to
> build for Arm even if we don't know the targeted processor is unknown.
Hi Akihiko,

The design idea was to require an explicit generic build.
Default/native build doesn't fall back to generic build when SoC info is not on 
the list.
So the user has less chance to generate a suboptimal binary by accident.

> 
> Signed-off-by: Akihiko Odaki <akihiko.od...@daynix.com>
> ---
>  config/arm/meson.build | 36 +++++++++++++++++++-----------------
>  1 file changed, 19 insertions(+), 17 deletions(-)
> 
> diff --git a/config/arm/meson.build b/config/arm/meson.build index 
> 6442ec9596..724c00ad7e
> 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -582,29 +582,31 @@ if update_flags
>          enable_drivers += ',' + soc_config.get('enable_drivers', '')
>      endif
> 
> -    if implementers.has_key(implementer_id)
> +    if not implementers.has_key(implementer_id)
> +        implementer_id = 'generic'
> +    endif
> +
> +    implementer_config = implementers[implementer_id]
> +    part_number_config = implementer_config['part_number_config']
> +
> +    if not part_number_config.has_key(part_number)
> +        implementer_id = 'generic'
> +
> +        if dpdk_conf.get('RTE_ARCH_32')
> +            part_number = 'generic_aarch32'
> +        else
> +            part_number = 'generic'
> +        endif
> +
>          implementer_config = implementers[implementer_id]
> -    else
> -        error('Unsupported Arm implementer: @0@. '.format(implementer_id) +
> -              'Please add support for it or use the generic ' +
> -              '(-Dplatform=generic) build.')
> +        part_number_config = implementer_config['part_number_config']
>      endif
> 
> +    part_number_config = part_number_config[part_number]
> +
>      message('Arm implementer: ' + implementer_config['description'])
>      message('Arm part number: ' + part_number)
> 
> -    part_number_config = implementer_config['part_number_config']
> -    if part_number_config.has_key(part_number)
> -        # use the specified part_number machine args if found
> -        part_number_config = part_number_config[part_number]
> -    else
> -        # unknown part number
> -        error('Unsupported part number @0@ of implementer @1@. '
> -              .format(part_number, implementer_id) +
> -              'Please add support for it or use the generic ' +
> -              '(-Dplatform=generic) build.')
> -    endif
> -
>      # add/overwrite flags in the proper order
>      dpdk_flags = flags_common + implementer_config['flags'] +
> part_number_config.get('flags', []) + soc_flags
> 
> --
> 2.40.0

Reply via email to