GNU bug report logs -
#40839
Shepherd activation .GO files are not cross-compiled ... and the Hurd
Previous Next
Full log
Message #17 received at 40839 <at> debbugs.gnu.org (full text, mbox):
Hey ho!
Mathieu Othacehe <m.othacehe <at> gmail.com> skribis:
> That would look like:
>
> (if target
> (with-target target
> (compile-file #$file #:output-file #$output
> #:env env))
> (compile-file #$file #:output-file #$output
> #:env env))
>
>
> Now, the tricky part is the value of target, because
> #$(%current-target-system) might not be correct in that context.
Yes, that brings us back to <https://issues.guix.gnu.org/issue/29296>.
Time flies! But now we really need to address it.
Jan Nieuwenhuizen <janneke <at> gnu.org> skribis:
> + (let ((target (%current-target-system)))
> + (with-extensions (list shepherd)
> + (computed-file (string-append (basename (scheme-file-name file) ".scm")
> + ".go")
> + #~(begin
The problem here is that ‘%current-target-system’ is not resolved in the
right context. Though in practice, it’s “good enough” when using ‘guix
system build --target’ though, because ‘%current-target-system’ is bound
once and for all at the beginning.
What about applying this patch, but adding a FIXME comment above ‘let’
pointing at <https://bugs.gnu.org/29296>?
Also, you can avoid duplicating the ‘compile-file’ call by writing it
like this:
(with-target #$(or target #~%host-type)
(compile-file …))
Thanks!
Ludo’.
This bug report was last modified 5 years and 78 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.