From: Pavan Nikhilesh <pbhagavat...@marvell.com>

Fix extra_march_features not being added to
mcpu flags when SoC configuration advertises
them.

Fixes: c02c01dbf907 ("config/arm: prefer strict use of -mcpu if supported")

Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>
---
 config/arm/meson.build | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/config/arm/meson.build b/config/arm/meson.build
index dea329ceb7..7f85b088c9 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -841,6 +841,7 @@ if update_flags
         implementer_config = implementers[implementer_id]
         part_number = soc_config['part_number']
         soc_flags = soc_config.get('flags', [])
+        extra_features = soc_config.get('extra_march_features', [])
         if not soc_config.get('numa', true)
             has_libnuma = false
         endif
@@ -909,11 +910,15 @@ if update_flags
         machine_args += march
     else
         candidate_mcpu = '-mcpu=' + mcpu
-        if (cc.has_argument(candidate_mcpu))
-            machine_args += candidate_mcpu
-        else
+        if not cc.has_argument(candidate_mcpu)
             error('Compiler does not support -mcpu=@0@.'.format(mcpu))
         endif
+        foreach flag: extra_features
+            if cc.has_argument('+'.join([candidate_mcpu, flag]))
+                candidate_mcpu = '+'.join([candidate_mcpu, flag])
+            endif
+        endforeach
+        machine_args += candidate_mcpu
     endif
 
     # apply supported compiler options
-- 
2.43.0

Reply via email to