Subject: bug#37550: [core-updates] [PATCH] gnu: gcc: Fix i686-linux cross compiler.

From: Marius Bakke <[email-masked]>
Date: Sun, 29 Sep 2019 14:15:15 +0200

Jan Nieuwenhuizen <[email-masked]> writes:

> Running
>
>     ./pre-inst-env guix build --target=i686-unknown-linux-gnu hello
>
> on core-updates (and similarly on core-updates-next) fails with
>
> --8<---------------cut here---------------start------------->8---
> checking for i686-unknown-linux-gnu-gcc... /tmp/guix-build-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0.drv-0/build/./gcc/xgcc -B/tmp/guix-build-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0.drv-0/build/./gcc/ -B/gnu/store/p4x4981zidgq36rjkx0bxb466s81xk2z-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0/i686-unknown-linux-gnu/bin/ -B/gnu/store/p4x4981zidgq36rjkx0bxb466s81xk2z-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0/i686-unknown-linux-gnu/lib/ -isystem /gnu/store/p4x4981zidgq36rjkx0bxb466s81xk2z-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0/i686-unknown-linux-gnu/include -isystem /gnu/store/p4x4981zidgq36rjkx0bxb466s81xk2z-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0/i686-unknown-linux-gnu/sys-include   
> checking for C compiler default output file name... 
> configure: error: in `/tmp/guix-build-gcc-cross-sans-libc-i686-unknown-linux-gnu-7.4.0.drv-0/build/i686-unknown-linux-gnu/libmpx':
> configure: error: C compiler cannot create executables
> See `config.log' for more details.
> --8<---------------cut here---------------end--------------->8---
>
> The attached patch fixes this.
>
> I stumbled upon this while working to fix #37549.  Where should this
> patch land?

This patch should be safe for 'core-updates'.  Please double check that
it does not rebuild the world, though.  :-)

> From 522aac698a66ca8ab73ac3827c61cb65627684d3 Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen <[email-masked]>
> Date: Sun, 29 Sep 2019 13:08:01 +0200
> Subject: [PATCH] gnu: gcc: Fix i686-linux cross compiler.
>
> This resurrects
>
>     ./pre-inst-env guix build --target=i686-unknown-linux-gnu hello
>
> * gnu/packages/cross-base.scm (cross-gcc-arguments): Do not build libmpx;
> does not cross-configure.

libmpx does not build natively either (see 01e8263febb) and has been
removed from GCC entirely in version 9.

> diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
> index 7108000f06..fab4636450 100644
> --- a/gnu/packages/cross-base.scm
> +++ b/gnu/packages/cross-base.scm
> @@ -144,6 +144,7 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
>                                 "--disable-libatomic"
>                                 "--disable-libmudflap"
>                                 "--disable-libgomp"
> +                               "--disable-libmpx" ; C compiler cannot create executables

IMO the comment is unnecessary.  LGTM!