Subject: [PATCH 3/5] gnu: gcc: Add compiler-cpu-architectures for aarch64.

From: Efraim Flashner <[email-masked]>
Date: Wed, 9 Feb 2022 12:21:49 +0200

* gnu/packages/gcc.scm (%gcc-7.5-aarch64-micro-architectures,
%gcc-10-aarch64-micro-architectures): New variables.
(gcc-7, gcc-10)[properties]: Add aarch64 compiler-cpu-architectures.
---
 gnu/packages/gcc.scm | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index efa0baeaa1..726c0eed89 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2015 Andreas Enge <[email-masked]>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Efraim Flashner <[email-masked]>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016 Carlos Sánchez de La Lama <[email-masked]>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2018, 2020 Marius Bakke <[email-masked]>
@@ -525,6 +525,11 @@ (define-public gcc-6
 
        ,@(package-inputs gcc-4.7)))))
 
+(define %gcc-7.5-aarch64-micro-architectures
+  ;; Suitable '-march' values for GCC 7.5.
+  ;; TODO: Allow dynamically adding feature flags.
+  '("armv8-a" "armv8.1-a" "armv8.2-a" "armv8.3-a"))
+
 (define %gcc-7.5-x86_64-micro-architectures
   ;; Suitable '-march' values for GCC 7.5 (info "(gcc) x86 Options").
   '("core2" "nehalem" "westmere" "sandybridge" "ivybridge"
@@ -536,6 +541,12 @@ (define %gcc-7.5-x86_64-micro-architectures
     "znver1"
     "btver1" "btver2" "geode"))
 
+(define %gcc-10-aarch64-micro-architectures
+  ;; Suitable '-march' values for GCC 10.
+  ;; TODO: Allow dynamically adding feature flags.
+  (append %gcc-7.5-aarch64-micro-architectures
+          '("armv8.4-a" "armv8.5-a" "armv8.6-a")))
+
 (define %gcc-10-x86_64-micro-architectures
   ;; Suitable '-march' values for GCC 10.
   (append %gcc-7.5-x86_64-micro-architectures
@@ -545,7 +556,6 @@ (define %gcc-10-x86_64-micro-architectures
 
         "znver2" "znver3")))
 
-
 (define-public gcc-7
   (package
     (inherit gcc-6)
@@ -566,6 +576,7 @@ (define-public gcc-7
 It also includes runtime support libraries for these languages.")
     (properties
      `((compiler-cpu-architectures
+        ("aarch64" ,@%gcc-7.5-aarch64-micro-architectures)
         ("x86_64" ,@%gcc-7.5-x86_64-micro-architectures))))))
 
 (define-public gcc-8
@@ -619,6 +630,7 @@ (define-public gcc-10
             (snippet gcc-canadian-cross-objdump-snippet)))
    (properties
     `((compiler-cpu-architectures
+       ("aarch64" ,@%gcc-10-aarch64-micro-architectures)
        ("x86_64" ,@%gcc-10-x86_64-micro-architectures))))))
 
 (define-public gcc-11
-- 
2.34.0