unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
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 --]

  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).