Maxim Cournoyer schreef op ma 07-03-2022 om 23:38 [-0500]: > +              (define (gnu-triplet->machine target) > +                (letrec-syntax > +                    ((matches (syntax-rules (=>) > +                                ((_ (target-prefix => machine) rest ...) > +                                 (if (string-prefix? target-prefix target) > +                                     machine > +                                     (matches rest ...))) > +                                ((_) > +                                 (error "unsupported target" target))))) > +                  ;; This basically reproduces the logic handling the > +                  ;; PLATFORM variable in the configure script. > +                  (matches ("x86_64"      => "x86_64") > +                           ("i586"        => "x86") > +                           ("i686"        => "x86") > +                           ("aarch64"     => "aarch64") > +                           ("arm"         => "arm") > +                           ("ppc64"       => "ppc64") > +                           ("ppc"         => "ppc") > +                           ("s390x"       => "s390x") > +                           ("sparc64"     => "sparcv9")))) I would move this outside the build code, such that new targets can be added without having to rebuild ck and dependents. Also, there are a few 'target-foo?' procedures in (guix utils) that can be used here (if it were moved outisde the build code). Greetings, Maxime.