Mathieu Othacehe schreef op ma 12-07-2021 om 14:42 [+0200]: > Hey, > > > This has been tested with: > > > > $ ./pre-inst-env guix build glib --target=aarch64-linux-gnu > > > > on a x86_64-linux system. ‘If it compiles, it should work.’ > > Nice you added aarch64 support :). > > > +(define (target-hurd? triplet) > > + (and (string-suffix? "-gnu" triplet) > > + (not (string-contains triplet "linux")))) > > Maybe it should go in the (guix utils) module. I placed it there, and adjusted (gnu packages hurd) and other modules to use it instead of hurd-triplet?. > > > + (cpu . ,(cond ((target-x86-32? triplet) ; i386, ..., i686 > > + (substring triplet 0 4)) > > + ((target-x86-64? triplet) "x86_64") > > + ((target-aarch64? triplet) "armv8-a") > > We could add: > > --8<---------------cut here---------------start------------->8--- > ((target-arm32? triplet) "armv7") > --8<---------------cut here---------------end--------------->8--- > > for arm32 support. Added in the v5! I assume arm32 is little-endian in Guix. > > + (call-with-output-file #$output > > + (lambda (f) > > + (parameterize ((configuration-port f)) > > Why don't you pass the port parameter to the build side procedures like > so: > > --8<---------------cut here---------------start------------->8--- > (call-with-output-file #$output > (lambda (port) > (write-section-header port "host_machine") > ... > --8<---------------cut here---------------end--------------->8--- No reason in particular. I'll eliminate the 'configuration-port' parameter in the v5. > > +(define* (make-machine-alist #:key system cpu-family cpu endian) > > + "Make an association list for the [host_machine] section." > > + `((system . ,system) > > + (cpu-family . ,cpu-family) > > + (cpu . ,cpu) > > + (endian . ,endian))) > > This one is unused, right? Yes. I'll remove it in the v5. I'll send the v5 once it is tested (with --target=armhf-linux-gnu). Greetings, Maxime.