[PATCH v4 1/3] config/arm: avoid mcpu and march conflicts
Juraj Linkeš
juraj.linkes at pantheon.tech
Thu Feb 22 10:37:11 CET 2024
> diff --git a/config/arm/meson.build b/config/arm/meson.build
> index 36f21d2259..e77b696d8e 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
<snip>
> @@ -695,13 +698,31 @@ if update_flags
>
> machine_args = [] # Clear previous machine args
>
> + candidate_mcpu = ''
> + if part_number_config.has_key('mcpu')
> + mcpu = part_number_config['mcpu']
> + if (cc.has_argument('-mcpu=' + mcpu))
> + candidate_mcpu = mcpu
> + endif
> + endif
> +
> + march_features = []
> + if part_number_config.has_key('march_features')
> + march_features += part_number_config['march_features']
> + endif
> + if soc_config.has_key('extra_march_features')
> + march_features += soc_config['extra_march_features']
> + endif
> +
> # probe supported archs and their features
> candidate_march = ''
> - if part_number_config.has_key('march')
> + if part_number_config.has_key('march') and candidate_mcpu == ''
If we reorganize the code a bit it would read better I think:
if candidate_mcpu != ''
<mcpu code>
elif part_number_config.has_key('march')
<march code>
else
error(no mcpu and no march) # not sure whether this is needed or
wanted though
This would also match the order before - first process mcpu, then
march. Come to think of it, maybe we should put the march_features
code before the candidate_mcpu code since that is common code and
would thus also read a bit better (common, then mcpu, then march).
> if part_number_config.get('force_march', false)
> - candidate_march = part_number_config['march']
> + if cc.has_argument('-march=' + part_number_config['march'])
> + candidate_march = part_number_config['march']
> + endif
> else
> - supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
> + supported_marchs = ['armv9-a', 'armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a',
> 'armv8.2-a', 'armv8.1-a', 'armv8-a']
> check_compiler_support = false
> foreach supported_march: supported_marchs
More information about the dev
mailing list