mbox

[bug#43679,v2,0/5] Add '--with-c-toolchain'

Message ID 20201009091231.26287-1-ludo@gnu.org
Headers show

Message

Ludovic Courtès Oct. 9, 2020, 9:12 a.m. UTC
Hi!

This is v2 of this patch, with these changes:

  1. ‘with-toolchain’ is replaced by ‘with-c-toolchain’ everywhere,
     with the understanding that it’s about the C/C++ toolchain
     in practice.  In the end I’m sympathetic with the argument
     that C/C++ don’t have a monopoly on toolchains.  ;-)

  2. ‘--with-c-toolchain=PACKAGE=TOOLCHAIN’ rebuilds not just
     PACKAGE with TOOLCHAIN, but also everything above PACKAGE
     with TOOLCHAIN (in v1, only PACKAGE was rebuilt with TOOLCHAIN
     but everything above it had to be rebuilt anyway.)

     The main motivation here is to reduce the changes that we’re
     introducing ABI incompatibilities that users would have to work
     around by passing on ‘--with-c-toolchain’ for each package in
     the chain.  I think it also more closely matches user
     expectations: when you see things are being rebuilt, you’re
     likely to think that’s because they’re rebuilt with the new
     toolchain, not the default one.

Feedback welcome!

Ludo’.

Ludovic Courtès (5):
  gnu: gcc-toolchain: Add 'GUIX_LOCPATH' to the search paths.
  gnu: clang-toolchain: Add 'GUIX_LOCPATH' to the search paths.
  gnu: clang-toolchain: Create 'cc' and 'c++' symlinks.
  packages: Add 'package-with-c-toolchain'.
  guix build: Add '--with-c-toolchain'.

 doc/guix.texi                 | 70 +++++++++++++++++++++++++++++
 gnu/packages/commencement.scm |  8 +++-
 gnu/packages/llvm.scm         | 12 ++++-
 guix/build-system.scm         | 35 ++++++++++++++-
 guix/packages.scm             |  9 ++++
 guix/scripts/build.scm        | 84 +++++++++++++++++++++++++++++++++++
 tests/packages.scm            | 20 +++++++++
 tests/scripts-build.scm       | 82 ++++++++++++++++++++++++++++++++++
 8 files changed, 315 insertions(+), 5 deletions(-)

Comments

Ludovic Courtès Oct. 12, 2020, 4:27 p.m. UTC | #1
Hi!

Ludovic Courtès <ludo@gnu.org> skribis:

> This is v2 of this patch, with these changes:
>
>   1. ‘with-toolchain’ is replaced by ‘with-c-toolchain’ everywhere,
>      with the understanding that it’s about the C/C++ toolchain
>      in practice.  In the end I’m sympathetic with the argument
>      that C/C++ don’t have a monopoly on toolchains.  ;-)
>
>   2. ‘--with-c-toolchain=PACKAGE=TOOLCHAIN’ rebuilds not just
>      PACKAGE with TOOLCHAIN, but also everything above PACKAGE
>      with TOOLCHAIN (in v1, only PACKAGE was rebuilt with TOOLCHAIN
>      but everything above it had to be rebuilt anyway.)
>
>      The main motivation here is to reduce the changes that we’re
>      introducing ABI incompatibilities that users would have to work
>      around by passing on ‘--with-c-toolchain’ for each package in
>      the chain.  I think it also more closely matches user
>      expectations: when you see things are being rebuilt, you’re
>      likely to think that’s because they’re rebuilt with the new
>      toolchain, not the default one.
>
> Feedback welcome!
>
> Ludo’.
>
> Ludovic Courtès (5):
>   gnu: gcc-toolchain: Add 'GUIX_LOCPATH' to the search paths.
>   gnu: clang-toolchain: Add 'GUIX_LOCPATH' to the search paths.
>   gnu: clang-toolchain: Create 'cc' and 'c++' symlinks.
>   packages: Add 'package-with-c-toolchain'.
>   guix build: Add '--with-c-toolchain'.

Pushed as a2ed00f79fd5bf69c6cca3fa7bdc62726bf848fa!

Ludo’.