From: Pavan Nikhilesh <pbhagavat...@marvell.com> Some ARM CPUs have specific march requirements and are not compatible with the supported march list. Add fallback march in case the mcpu and the march advertised in the part_number_config are not supported by the compiler.
Example mcpu = neoverse-n2 march = armv9-a fallback_march = armv8.5-a mcpu, march not supported machine_args = ['-march=armv8.5-a'] mcpu, march, fallback_march not supported least march supported = armv8-a machine_args = ['-march=armv8-a'] Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> --- config/arm/meson.build | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/config/arm/meson.build b/config/arm/meson.build index ba859bd060..6f2308f2fa 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -94,6 +94,7 @@ part_number_config_arm = { '0xd49': { 'march': 'armv9-a', 'march_features': ['sve2'], + 'fallback_march': 'armv8.5-a', 'mcpu': 'neoverse-n2', 'flags': [ ['RTE_MACHINE', '"neoverse-n2"'], @@ -708,6 +709,7 @@ if update_flags # probe supported archs and their features candidate_march = '' + fallback_march = '' if part_number_config.has_key('march') if part_number_config.get('force_march', false) or candidate_mcpu != '' if cc.has_argument('-march=' + part_number_config['march']) @@ -728,10 +730,17 @@ if update_flags # highest supported march version found break endif + if (supported_march == part_number_config['fallback_march'] + and cc.has_argument('-march=' + supported_march)) + fallback_march = supported_march + endif endforeach endif if candidate_march != part_number_config['march'] + if fallback_march != '' + candidate_march = fallback_march + endif warning('Configuration march version is @0@, not supported.' .format(part_number_config['march'])) if candidate_march != '' -- 2.25.1