[core-updates] [PATCH] gnu: gcc: Fix i686-linux cross compiler.

  • Done
  • quality assurance status badge
Details
3 participants
  • Jan Nieuwenhuizen
  • Ludovic Courtès
  • Marius Bakke
Owner
unassigned
Submitted by
Jan Nieuwenhuizen
Severity
normal
J
J
Jan Nieuwenhuizen wrote on 29 Sep 2019 13:21
[core-updates] [PATCH] gnu: gcc: Fix i686-linux cross compiler.
(address . bug-guix@gnu.org)
8736gf4ac8.fsf@gnu.org
Running

./pre-inst-env guix build --target=i686-unknown-linux-gnu hello

on core-updates (and similarly on core-updates-next) fails with

Toggle snippet (7 lines)
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.

The attached patch fixes this.

I stumbled upon this while working to fix #37549. Where should this
patch land?

Greetings,
janneke
From 522aac698a66ca8ab73ac3827c61cb65627684d3 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
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.
---
gnu/packages/cross-base.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
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
"--disable-libssp"
"--disable-libquadmath"
"--disable-decimal-float" ;would need libc
--
2.23.0
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
M
M
Marius Bakke wrote on 29 Sep 2019 14:15
Re: bug#37550: [core-updates] [PATCH] gnu: gcc: Fix i686-linux cross compiler.
87sgof8fjg.fsf@devup.no
Jan Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (19 lines)
> 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. :-)

Toggle quote (12 lines)
> From 522aac698a66ca8ab73ac3827c61cb65627684d3 Mon Sep 17 00:00:00 2001
> From: Jan Nieuwenhuizen <janneke@gnu.org>
> 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.

Toggle quote (10 lines)
> 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!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl2QoFMACgkQoqBt8qM6
VPoePwf7BTtQTYKvuyNGDWJUW7GVXpkRFEgOdM5X12AmVuKlqXk/MyAH76W8OleY
VZYt9MbdUVCsdv7eZ7ydqPzQpfXkDpkpGfkudu6Wvn9mrXm+XF1CvhOgnbBANsWB
d9lm6E8cnc/irnplxH4iK0Y5McNUwg9SoAgBPMtpjIZmNNrpfERcE1AwqXJp8y+c
EOIn/QYOJSyy7zY7MHQsQhxIAPBFzb/PJmcOGb3/yqL0vtBRzeeRcyvruadDa4sY
JWrhMPUthmGPrDfXdzI2niukb6xIeK2ZWjBpiBI2iiAqEu1FdmxrTt3XeBJim98Z
qVj62ehBJvfOFeB43699NeacEf0j6A==
=6ZiE
-----END PGP SIGNATURE-----

J
J
Jan Nieuwenhuizen wrote on 29 Sep 2019 16:22
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 37550-done@debbugs.gnu.org)
87r23z2ne8.fsf@gnu.org
Marius Bakke writes:

Toggle quote (7 lines)
> Jan Nieuwenhuizen <janneke@gnu.org> writes:
>> 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. :-)

I was hesitating and re-checked on a fresh computer.

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

Ah, good to know. I was worrying about just dropping it.

Toggle quote (5 lines)
>> + "--disable-libmpx" ; C compiler cannot create executables
>
> IMO the comment is unnecessary. LGTM!
>

Removed, and pushed to core-updates as 43124a54744b64dcdbdd8f92d2a037bf8e0dd215

Thanks!
janneke

--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
Closed
L
L
Ludovic Courtès wrote on 1 Oct 2019 11:30
(name . Jan Nieuwenhuizen)(address . janneke@gnu.org)(address . 37550@debbugs.gnu.org)
87ftkcrewq.fsf@gnu.org
Hello,

Thanks for pushing this patch!

Jan Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (2 lines)
> ./pre-inst-env guix build --target=i686-unknown-linux-gnu hello

Note that on x86_64 you can perform native builds for i686 with
“guix build -s i686-linux hello”.

You probably already know it but I thought I’d mention it because native
builds are much easier. :-)

Ludo’.
?