Subject: [bug#64188] [PATCH 5/8] gnu: go: Add CPU tuning targets.

From: Efraim Flashner <[email-masked]>
Date: Tue, 20 Jun 2023 10:51:06 +0300

* gnu/packages/golang.scm (go-1.17)[properties]: New field.
(%go-1.17-arm-micro-architectures,
%go-1.17-powerpc64le-micro-architectures,
%go-1.18-x86_64-micro-architectures): New variables.
(go-1.18)[properties]: New field.
---
 gnu/packages/golang.scm | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index d51c023808..c3ea30becc 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -628,6 +628,13 @@ (define-public go-1.16
      `(("go-fix-script-tests.patch" ,(search-patch "go-fix-script-tests.patch"))
        ,@(package-native-inputs go-1.14)))))
 
+;; https://github.com/golang/go/wiki/MinimumRequirements#microarchitecture-support
+(define %go-1.17-arm-micro-architectures
+  (list "armv5" "armv6" "armv7"))
+
+(define %go-1.17-powerpc64le-micro-architectures
+  (list "power8" "power9"))
+
 (define-public go-1.17
   (package
     (inherit go-1.16)
@@ -844,7 +851,14 @@ (define-public go-1.17
                   "README.md" "SECURITY.md"))))))))
     (inputs (if (not (or (target-arm?) (target-ppc64le?)))
               (alist-delete "gcc:lib" (package-inputs go-1.16))
-              (package-inputs go-1.16)))))
+              (package-inputs go-1.16)))
+    (properties
+     `((compiler-cpu-architectures
+         ("armhf" ,@%go-1.17-arm-micro-architectures)
+         ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures))))))
+
+(define %go-1.18-x86_64-micro-architectures
+  (list "x86_64-v1" "x86_64-v2" "x86_64-v3" "x86_64-v4"))
 
 (define-public go-1.18
   (package
@@ -887,7 +901,12 @@ (define-public go-1.18
                            "ldflags, err := setextld(ldflags, compiler)\n"
                            "ldflags = append(ldflags, \"-r\")\n"
                            "ldflags = append(ldflags, \"" gcclib "\")\n")))))))
-               '())))))))
+               '())))))
+    (properties
+     `((compiler-cpu-architectures
+         ("armhf" ,@%go-1.17-arm-micro-architectures)
+         ("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures)
+         ("x86_64" ,@%go-1.18-x86_64-micro-architectures))))))
 
 (define-public go-1.19
   (package
-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted