From: Tobias Geerinckx-Rice <me@tobias.gr>
To: Thiago Jung Bauermann <bauermann@kolabnow.com>
Cc: help-guix@gnu.org
Subject: Re: Build Mesa with a different toolchain version
Date: Wed, 02 Jun 2021 11:42:41 +0200 [thread overview]
Message-ID: <87y2bszjou.fsf@nckx> (raw)
In-Reply-To: <3126247.iAZJFXckTJ@popigai>
[-- Attachment #1: Type: text/plain, Size: 2564 bytes --]
Thiago,
Thiago Jung Bauermann 写道:
> $ guix build --system=i686-linux \
> --with-input=gcc-toolchain=gcc-toolchain@10.3.0 mesa
> […]
> successfully built
> /gnu/store/bg01dw0178yb7v9xr4zmq5f05200f2ql-mesa-20.2.4.drv
> /gnu/store/mvy7pl73yqrd9pi3k3xq14i6dmnfbl8s-mesa-20.2.4-bin
> /gnu/store/ii8fbly1s19qwpnwv002fd2pxk2h96ba-mesa-20.2.4
--with-input=gcc-toolchain=… is a no-op: no package has a
‘gcc-toolchain’ input.
It exists only because people kept installing the ‘unwrapped’ (now
hidden) GCC package with ‘guix install gcc’ and expecting a
working compiler. gcc-toolchain wraps the entire toolchain so ‘$
gcc my.c’ produces working binaries. It is not used internally by
Guix.
> So aparently it worked.
It worked in the sense that the package was built successfully
with gcc@7.5. If your undescribed issue was a build issue, it's
not deterministic. If it's a run-time bug, whatever it is will
still happen.
> And surprisingly, when changing the requested gcc-toolchain
> version,
> guix doesn't attempt to build anything and just returns the same
> store items from the “10.3.0” build:
It's not surprising, it's proof that your transformation's a
no-op. Guix is very good at hashing changes; it doesn't ‘miss’ or
cache stale things.
Two things that work (but read both):
~$ guix build --with-input=gcc=gcc@10 mesa
guix build: package 'gcc' has been superseded by 'gcc-toolchain'
Is this why you tried =gcc-toolchain= above? :-) The hint isn't
relevant in this edge case, you can ignore it for once.
I've included this option because it's the working variant of your
first command. However, it rebuilds the *entire* dependency chain
of Mesa with GCC 10: glibc, bash, ed, python-minimal, guile…
It's cool that Guix makes this task so easy, but you probably want
just
~$ guix build --with-c-toolchain=mesa=gcc-toolchain@10 mesa
This special-case option will do the right things to rebuild
(only) mesa with the toolchain of your choice. Note the =mesa=
difference in syntax: the package you want to rebuild, not the one
you want to replace:
[…]
C compiler for the host machine: gcc (gcc 10.3.0 "gcc (GCC)
10.3.0")
C linker for the host machine: gcc ld.bfd 2.34
C++ compiler for the host machine: c++ (gcc 10.3.0 "c++ (GCC)
10.3.0")
C++ linker for the host machine: c++ ld.bfd 2.34
[…]
Not a user of PACKAGE-INPUT-REWRITING so I'll leave that to
someone else.
Kind regards,
T G-R
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]
next prev parent reply other threads:[~2021-06-02 9:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-02 0:46 Build Mesa with a different toolchain version Thiago Jung Bauermann
2021-06-02 1:53 ` Thiago Jung Bauermann
2021-06-02 9:44 ` Tobias Geerinckx-Rice
2021-06-02 9:22 ` Efraim Flashner
2021-06-03 5:14 ` Thiago Jung Bauermann
2021-06-02 9:42 ` Tobias Geerinckx-Rice [this message]
2021-06-02 11:13 ` Tobias Geerinckx-Rice
2021-06-03 5:35 ` Thiago Jung Bauermann
2021-06-03 5:17 ` Thiago Jung Bauermann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y2bszjou.fsf@nckx \
--to=me@tobias.gr \
--cc=bauermann@kolabnow.com \
--cc=help-guix@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).