Sergei Trofimovich <sly...@inbox.ru> skribis: >> Question time: >> >> - Is there a way to run 'guix environment --target=' in the same way as >> 'guix build --target=' >> sets it up? I'd like to see how both compilers are supposed to be present >> in there. >> >> - Why default g++ in PATH is the host g++ and not target g++? >> Target seems to make most sense if no explicit compiler is specified. >> >> - How to actually set CXX to point to target g++? >> It looks like implicitly there already both host (through native-inputs) >> and target (through build-inputs) compilers available. >> I would expect something like >> #:make-flags (list (string-append "CXX=" <.?.>)) >> What should be in place of that "<.?.>" to refer to target g++? > > I think I've found a workaround at least for my third question. > > Both host and target compilers are available as g++ and ${target}-g++. > > Thus the following workaround seems to work: > > diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm > index f04cba706..a8fa689ab 100644 > --- a/gnu/packages/regex.scm > +++ b/gnu/packages/regex.scm > @@ -20,11 +20,13 @@ > > (define-module (gnu packages regex) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix packages) > #:use-module (guix download) > - #:use-module (guix build-system gnu)) > + #:use-module (guix build-system gnu) > + #:use-module (guix utils) ; for %current-target-system > + ) > > (define-public re2 > (package > (name "re2") > (version "2017-01-01") > @@ -40,11 +42,15 @@ > "0yij1ajh66h3pj3kfz7y0ldrsww8rlpjzaavyr5lchl98as1jq74")))) > (build-system gnu-build-system) > (arguments > `(#:test-target "test" > ;; There is no configure step, but the Makefile respects a prefix. > - #:make-flags (list (string-append "prefix=" %output)) > + #:make-flags (list (string-append "prefix=" %output) > + (string-append "CXX=" ,(string-append (if > (%current-target-system) > + > (string-append (%current-target-system) "-") > + "") > + "g++")))
As John wrote, this is the right fix for this package. If you can send it with ‘git send-email’ (see <https://www.gnu.org/software/guix/manual/html_node/Submitting-Patches.html>), I’ll apply it right away. Otherwise I can do it on your behalf. Thanks! Ludo’.