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