Thiago Jung Bauermann writes: Hello Thiago, > This is great work! Thanks! > This is not an area I have experience in, so I didn't read it closely, > at least as of yet. I have only one minor comment: >> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm >> index 663ffacd56..24e1e6ec8c 100644 >> --- a/gnu/packages/commencement.scm >> +++ b/gnu/packages/commencement.scm [..] >> + (stage0-cpu >> + (cond >> + ((or (string-prefix? "x86_64-linux" target) > > IMHO the code is clearer and less error prone if the (guix utils) > convenience functions are used to test the target rather than directly > doing string pattern matching. > > In this case, ‘target-x86-64?’ is the one. There's no need to even pass > an argument to it since the default is what you need. > > The check for Linux could be done separately in the body of the builder > with ‘target-linux?’. What do you think? > >> + (string-prefix? "i686-linux" target)) > > Here it would be ‘target-x86-32?’. > >> + "x86") >> + ((or (string-prefix? "aarch64-linux" target) >> + (string-prefix? "armhf-linux" target)) > > This is a good case in point. There's a bug above: “armhf-linux” matches > 32-bit ARM when building natively because that's what's in > %current-target, but when cross-building %current-target-system will > contain “arm-unknown-linux-gnueabihf” and this branch won't be taken. > > Using ‘target-arm32?’ avoids the bug. Nice catch and good suggestion. Find a new version attached. Greetings Janneke