i686-linux-gnu cross-compiler cannot find libgcc_s [core-updates]

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maxime Devos
Owner
unassigned
Submitted by
Maxime Devos
Severity
normal
M
M
Maxime Devos wrote on 8 Jun 2021 10:41
(address . bug-guix@gnu.org)
87233e500b6fbde614181369dfdb4535b3471c4d.camel@telenet.be
I tested this on 683eb7c5b118440001b89944563603a39fc2ac05.
The problem does not occur on master.

How to reproduce:

# --target=aarch64-linux-gnu also fails, but that's another issue
./pre-inst-env guix build --target=i686-linux-gnu hello --keep-failed

Error message (during 'configure' phase):

checking for i686-linux-gnu-gcc... i686-linux-gnu-gcc
checking whether the C compiler works... no
configure: error: in `/tmp/guix-build-hello-2.10.drv-0/hello-2.10':
configure: error: C compiler cannot create executables
See `config.log' for more details
error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/kpkbyk7jlw6n5z3jkbia9mcr0bhflzbf-bash-minimal-5.1.8/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc"
"CONFIG_SHELL=/gnu/store/kpkbyk7jlw6n5z3jkbia9mcr0bhflzbf-bash-minimal-5.1.8/bin/bash" "SHELL=/gnu/store/kpkbyk7jlw6n5z3jkbia9mcr0bhflzbf-bash-minimal-5.1.8/bin/bash" "
--prefix=/gnu/store/wmkbla5nncld4rdyqkwc9lw9kzypvdab-hello-2.10" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=i686-linux-gnu") exit-status: 77 term-signal: #f stop-signal: #f>
phase `configure' failed after 3.1 seconds

From 'config.log':

configure:4014: checking whether the C compiler works
configure:4036: i686-linux-gnu-gcc conftest.c >&5
i686-linux-gnu-ld: cannot find -lgcc_s
i686-linux-gnu-ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
configure:4040: $? = 1
configure:4078: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Hello"
| #define PACKAGE_TARNAME "hello"
| #define PACKAGE_VERSION "2.10"
| #define PACKAGE_STRING "GNU Hello 2.10"
| #define PACKAGE_BUGREPORT "bug-hello@gnu.org"
| #define PACKAGE "hello"
| #define VERSION "2.10"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:4083: error: in `/tmp/guix-build-hello-2.10.drv-0/hello-2.10':
configure:4085: error: C compiler cannot create executables

Issue:

Somehow, the C cross-compiler does not find "libgcc_s".
Look at CROSS_LIBRARY_PATH and LIBRARY_PATH in /tmp/[...]/environment-variables,
we have (line breaks added):

export CROSS_LIBRARY_PATH=
/gnu/store/glc86jl13yj70k2h4mm3pqwff351mxav-glibc-cross-i686-linux-gnu-2.33/lib:
/gnu/store/wk761j8qqq7yf949wyxjgcbqxcx574nf-glibc-cross-i686-linux-gnu-2.33-static/lib
export LIBRARY_PATH=
/gnu/store/w6ydl1fjxhkc69cs90vmg3g48vwcy59w-binutils-cross-i686-linux-gnu-2.36.1/lib:
/gnu/store/lv8zj6sl3fc6db2ljq10haba3sfhvq6b-bzip2-1.0.8/lib:
/gnu/store/hhg5z17xyfj7zvg864br41nsj6g918ym-xz-5.2.5/lib:
/gnu/store/pnj9pzyk4ajs9a245krx5l4sp4p8xwyk-file-5.39/lib:
/gnu/store/0amam2n0vjb62zh6jssb9pjnwcf302hw-gawk-5.1.0/lib:
/gnu/store/3fasjd1jnnm6vhyff5wb3kkahnxzbl49-binutils-2.36.1/lib:
/gnu/store/mf4kmmhka2dagnna6a0h4fciz5ijaxsn-glibc-2.33/lib:
/gnu/store/dj2p4mwp6gwbx8fpd6gqsj2c307mm6sp-glibc-2.33-static/lib:
/gnu/store/dxplmvm0xf8z968m3lbwzizc95h9nldc-glibc-utf8-locales-2.33/lib

When I run "ls -l" on each of these directories, I notice none of these
have a "libgcc_s.so" file. So it's not very surprising GNU ld (via GCC) cannot find it.
Now, where could we find "libgcc_s.so"?

I found it in
/gnu/store/6b4sgmqd3nrajbx47zryi0n4s08sfrb6-gcc-cross-i686-linux-gnu-8.5.0/i686-linux-gnu/lib/

By explicitely passing "-L/gnu/store/6b4sgmqd3nrajbx47zryi0n4s08sfrb6-gcc-cross-i686-linux-gnu-8.5.0/i686-linux-gnu/lib/",
the C program compiles. So, I guess we need to add that directory to CROSS_LIBRARY_PATH. Or ...

* Shouldn't this be present in the spec file?

Let's test.

/gnu/store/6b4sgmqd3nrajbx47zryi0n4s08sfrb6-gcc-cross-i686-linux-gnu-8.5.0/bin/i686-linux-gnu-gcc -dumpspecs

Output (only a part shown)
*lib:
%{!mandroid|tno-android-ld:-L/gnu/store/glc86jl13yj70k2h4mm3pqwff351mxav-glibc-cross-i686-linux-gnu-2.33/lib %{!static:-rpath=/gnu/store/glc86jl13yj70k2h4mm3pqwff351mxav-glibc-cross-i686-linux-gnu-
2.33/lib %{!static-libgcc:-rpath=/gnu/store/53i7hxqwf3apvz77bsapjvrigjiimg29-gcc-cross-i686-linux-gnu-8.5.0-lib/i686-linux-gnu/lib -lgcc_s}} %{pthread:-lpthread} %{shared:-lc} %{!shared:%{profile:-
lc_p}%{!profile:-lc}};:%{shared:-lc} %{!shared:%{profile:-lc_p}%{!profile:-lc}} %{!static: -ldl}}

Curiously, /gnu/store/53i7hxqwf3apvz77bsapjvrigjiimg29-gcc-cross-i686-linux-gnu-8.5.0-lib/i686-linux-gnu/lib
is actualy present! Let's compile in verbose mode.

$ i686-linux-gnu-gcc -v conftest.o

Output:
Toggle quote (8 lines)
> Using built-in specs.
> COLLECT_GCC=i686-linux-gnu-gcc
> COLLECT_LTO_WRAPPER=/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/lto-wrapper
> Target: i686-linux-gnu
> Configured with:
> Thread model: posix
> gcc version 8.5.0 (GCC)
> COMPILER_PATH=/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/:/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/:/gnu/store/[...]-
gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/:/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-lib/lib/gcc/i686-linux-gnu/8.5.0/:/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-
lib/lib/gcc/i686-linux-gnu/
Toggle quote (1 lines)
> CROSS_LIBRARY_PATH=/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib/:/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33-static/lib/:/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-
lib/lib/gcc/i686-linux-gnu/8.5.0/:/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib
Toggle quote (2 lines)
> COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=pentiumpro'
> /gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/collect2 -plugin /gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/liblto_plugin.so
-plugin-opt=/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0/libexec/gcc/i686-linux-gnu/8.5.0/lto-wrapper -plugin-opt=-fresolution=/tmp/guix-build-hello-2.10.drv-0/ccxP5sep.res -plugin-opt=-pass-
through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --eh-
frame-hdr -m elf_i386 -dynamic-linker /gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib/ld-linux.so.2 /gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib/crt1.o /gnu/store/[...]-glibc-cross-i686-
linux-gnu-2.33/lib/crti.o /gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-lib/lib/gcc/i686-linux-gnu/8.5.0/crtbegin.o -L/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib -L/gnu/store/[...]-glibc-
cross-i686-linux-gnu-2.33-static/lib -L/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-lib/lib/gcc/i686-linux-gnu/8.5.0 -L/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib conftest.o -lgcc --as-
needed -lgcc_s --no-as-needed -L/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib -rpath=/gnu/store/[...]-glibc-cross-i686-linux-gnu-2.33/lib -rpath=/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-
lib/i686-linux-gnu/lib -lgcc_s -lc -lgcc --as-needed -lgcc_s --no-as-needed /gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-lib/lib/gcc/i686-linux-gnu/8.5.0/crtend.o /gnu/store/[...]-glibc-cross-i686-
linux-gnu-2.33/lib/crtn.o
Toggle quote (3 lines)
> i686-linux-gnu-ld: cannot find -lgcc_s
> i686-linux-gnu-ld: cannot find -lgcc_s

What went wrong here? I took a look at the folowing entry in CROSS_LIBRARY_PATH:
/gnu/store/[...]-gcc-cross-i686-linux-gnu-8.5.0-lib/lib/gcc/i686-linux-gnu/8.5.0/.
In this directory, there is a "libgcc.a", but not a "libgcc_s.so"! So, we have
a static libgcc library, but not a dynamic libgcc_s library!

To be investigated ... or worked around by tweaking CROSS_LIBRARY_PATH ...
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYL8tJxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7helAQCyUSYOPOf54oX8+OrGRe9jGO8Y
Yjcoafxon5Cw5TAQuwEAyilTvHmorq3t+cKXUgKwcC4bAYn3SGyPHebOeCOhUQU=
=r5OK
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 8 Jun 2021 16:23
(address . 48913@debbugs.gnu.org)
3eab25f1bb94305603a494a240c30e00b228576a.camel@telenet.be
Some digging.

Currently, there exists a gcc-7-cross-toolexeclibdir.patch.
It is applied to gcc 6 and gcc 7 but not gcc 8.

Looking at 'cross-gcc' in 'gnu/packages/cross-base.scm',
we have

(patches
(append
(origin-patches (package-source xgcc))
(append (cond
((version>=? (package-version xgcc) "8.0")
(search-patches "gcc-8-cross-environment-variables.patch"))
((version>=? (package-version xgcc) "6.0")
(search-patches "gcc-7-cross-toolexeclibdir.patch"
"gcc-6-cross-environment-variables.patch"))
(else
(search-patches "gcc-cross-environment-variables.patch")))
(cross-gcc-patches xgcc target))))

The patches for gcc-8+ were introduced in 83b0a7f41bccb7b46f1d443e80a22c61a3ff92bc.
Seems like we forgot to include gcc-7-cross-toolexeclibdir.patch!
I tried to add this patch, but the patch doesn't apply to the gcc 8 code,
so I guess I'll have to port it to gcc 8.

So I cloned the git repository of GCC, and it appears toolexeclibdir is currently
in GCC 8! But perhaps a mistake has been made somewhere ... to be investigated.

(Now looking at libgcc/configure.ac)
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYL99WhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uLgAQC9gS++kNlCtlXJesWhuA1O8CDf
PSkVypyBiNJ2t6ZbEgEAqCHhPQZaCX2vok24BSAFPUMmDPJ6o+kvGkp66SKnWgA=
=Ls+6
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 8 Jun 2021 17:25
(address . 48913@debbugs.gnu.org)
7bf9667b405c900fb484521964c10d0a718fab04.camel@telenet.be
Maxime Devos schreef op di 08-06-2021 om 10:41 [+0200]:
Toggle quote (8 lines)
> I tested this on 683eb7c5b118440001b89944563603a39fc2ac05.
> The problem does not occur on master.
>
> How to reproduce:
>
> # --target=aarch64-linux-gnu also fails, but that's another issue
> ./pre-inst-env guix build --target=i686-linux-gnu hello --keep-failed

I have found a solution: passing --with-slibdir to GCC's configure
script. Not sure if that's the proper solution though. GNU Hello
now builds succesfully! I'll test with a few more packages later
and then ‘formally’ submit the patch (after writing a commit message).

Greetings,
Maxime.
Toggle diff (37 lines)
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 9487ac9238..6e64450b13 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Carl Dong <contact@carldong.me>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -169,12 +170,23 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
))
;; Install cross-built libraries such as libgcc_s.so in
- ;; the "lib" output.
+ ;; the "lib" output. (But see below.)
,@(if libc
`((string-append "--with-toolexeclibdir="
(assoc-ref %outputs "lib")
"/" ,target "/lib"))
'())
+ ;; At least for GCC 8.0, libgcc_s.so and libstdc++.so
+ ;; are not installed in the location specified in
+ ;; --with-toolexeclibdir so GCC will not find it
+ ;; when cross-compiling, say, GNU Hello.
+ ;;
+ ;; Work-around by specifying slibdir.
+ ,@(if (and libc (version>=? (package-version xgcc) "8.0"))
+ `((string-append "--with-slibdir="
+ (assoc-ref %outputs "lib")
+ "/" ,target "/lib"))
+ '())
;; For a newlib (non-glibc) target
,@(if (cross-newlib? target)
'("--with-newlib")
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYL+L5hccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7nxvAQClpnJxAgVmRB9XIPCZHVSu/+BY
ySFsKr7vqdqpp/9GLAD/WBz0pOJYWWy16I81f5SyAE6YNr+XIj6TcDMJDFEpbQc=
=rO0A
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 18 Jun 2021 11:32
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48913@debbugs.gnu.org)
87a6nnikm8.fsf@gnu.org
Hi,

Maxime Devos <maximedevos@telenet.be> skribis:

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

“i686-linux-gnu” is not among the supported cross-compilation triplets,
which are roughly those that appears in (@ (gnu ci) %cross-targets).

It’s rarely useful to cross-compile to i686-linux-gnu because you can
just build natively on an x86_64-linux-gnu machine:

guix build -s i686-linux hello

All this to say, I don’t think we should spend energy on the
i686-linux-gnu cross toolchain.

WDYT?

Ludo’.
L
L
Ludovic Courtès wrote on 18 Jun 2021 11:33
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 48913@debbugs.gnu.org)
875yybikkc.fsf@gnu.org
Maxime Devos <maximedevos@telenet.be> skribis:

Toggle quote (5 lines)
> I have found a solution: passing --with-slibdir to GCC's configure
> script. Not sure if that's the proper solution though. GNU Hello
> now builds succesfully! I'll test with a few more packages later
> and then ‘formally’ submit the patch (after writing a commit message).

Could you check whether aarch64-linux-gnu or armhf-linux-gnueabihf (say)
have the problem, and whether this patch addresses it?

Thanks,
Ludo’.
M
M
Maxime Devos wrote on 19 Jun 2021 09:37
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48913@debbugs.gnu.org)
f711a176b3b78939fd2199efbbc415327d077e3e.camel@telenet.be
Ludovic Courtès schreef op vr 18-06-2021 om 11:33 [+0200]:
Toggle quote (10 lines)
> Maxime Devos <maximedevos@telenet.be> skribis:
>
> > I have found a solution: passing --with-slibdir to GCC's configure
> > script. Not sure if that's the proper solution though. GNU Hello
> > now builds succesfully! I'll test with a few more packages later
> > and then ‘formally’ submit the patch (after writing a commit message).
>
> Could you check whether aarch64-linux-gnu or armhf-linux-gnueabihf (say)
> have the problem, and whether this patch addresses it?

This patch (passing --with-slibdir) doesn't actualy fully work
(when cross-compiling to i686-linux-gnu from a x86_64-linux),
as libstdc++ is not installed in the right place
(and other stuff like libusan, but those are less critical IMHO).

I sent a more complete (and hackier) patch as part of the
patch series for implementing cross-compilation in Meson
(not really the right place, I know, but it's hard to test
cross-compilation when the cross-compiler is broken),
see [PATCH v3 core-updates 36/37: Fix cross-compiler for i686-linux-gnu]

I'll send a mail to bug#49025 asking people to respond about
that patch at bug#48913, to keep things separate.

I'll test whether aarch64-linux-gnu and armhf-linux-gnueabihf
have the same problem and whether the patch (from bug#48913)
addresses it.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYM2eqxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7moJAQCXkiwPTb6TkalWdyOxdscB65+4
9fYiOx6EbCtIOpQwvgEAtwmwNGPCwkRr0lvEYKgRhvhChsFqYE7E9Y0bkecD9wk=
=CeF3
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jun 2021 13:05
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48913@debbugs.gnu.org)
b8be73284dcf792b196daafe1d987cc0e6f00ef9.camel@telenet.be
Ludovic Courtès schreef op vr 18-06-2021 om 11:33 [+0200]:
Toggle quote (3 lines)
> Could you check whether aarch64-linux-gnu or armhf-linux-gnueabihf (say)
> have the problem, and whether this patch addresses it?

The second triplet appears to be invalid.

$ ./pre-inst-env guix build hello --target=armhf-linux-gnueabihf
Toggle quote (3 lines)
> checking target system type... Invalid configuration `armhf-linux-gnueabihf': machine `armhf-unknown' not recognized
> configure: error: /gnu/store/yqmhgw1fwmb9x498d4mpq5y046zcv3lw-bash-minimal-5.1.8/bin/bash ./config.sub armhf-linux-gnueabihf failed
> error: in phase 'configure': uncaught exception: [...]
(during the build of binutils-cross-armhf-linux-gnuabihf)

$ ./pre-inst-env guix build hello --target=arm-linux-gnueabihf
# ^ replacing armhf with arm
Toggle quote (2 lines)
> [ plenty of output, not yet completed ]

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYM3PfBccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7iJ/AP9O0uf57fsN/hR8I483veNTJbkS
PKbhKhPxprZzeEW7WgD/UK2R/Ebpv1ggWnnmtJamChA6itZUffExqU9a7pwoMQo=
=YMvE
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jun 2021 13:59
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48913@debbugs.gnu.org)
3dbf1da0ed5925483e972b0367b745ca895278c3.camel@telenet.be
Ludovic Courtès schreef op vr 18-06-2021 om 11:33 [+0200]:
Toggle quote (3 lines)
> Could you check whether aarch64-linux-gnu or armhf-linux-gnueabihf (say)
> have the problem, and whether this patch addresses it?

I tried
./pre-inst-env guix build hello --target=arm-linux-gnueabihf

with the revised patch, but it fails building
/gnu/store/l6yhx9axhfbdmk7cm8cf9mql4h8mrqmc-glibc-cross-arm-linux-gnueabihf-2.33.drv.
I'll update to latest core-updates and retry with and without the patch.

Build log attached. There is an ICE, and dmesg doesn't note any OOM errors.

Greetings,
Maxime.
Attachment: file
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYM3cChccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7rz7AP4n6G4LDmAhEQVYfl4qKvDnGopT
L2VpFC3FzaJuyw4G/QEA4kSQ075vF37orA5sKOKzHe22HGEBnU+mN0btr98bCQg=
=0sWY
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 3 Jul 2021 15:40
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48913-done@debbugs.gnu.org)
4bd12f1821cff943921a892876ef5ff616bc91eb.camel@telenet.be
Ludovic Courtès schreef op vr 18-06-2021 om 11:32 [+0200]:
Toggle quote (19 lines)
> Hi,
>
> Maxime Devos <maximedevos@telenet.be> skribis:
>
> > ./pre-inst-env guix build --target=i686-linux-gnu hello --keep-failed
>
> “i686-linux-gnu” is not among the supported cross-compilation triplets,
> which are roughly those that appears in (@ (gnu ci) %cross-targets).
>
> It’s rarely useful to cross-compile to i686-linux-gnu because you can
> just build natively on an x86_64-linux-gnu machine:
>
> guix build -s i686-linux hello
>
> All this to say, I don’t think we should spend energy on the
> i686-linux-gnu cross toolchain.
>
> WDYT?

Agreed, closing. Though if someone has the same issue when building
a cross-compiler from, say, aarch64 to i686, then I'd recommend reopening
it.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYOBoxRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7tyJAQClaJZZhiKyEvVNkIH0M5+tYVOJ
hGwVZA4MLjvwUr+uwQD/QvTtlnJtBtxQBRjYKzibDl0eY6B84iaMEbwdbw1oAQk=
=kHiD
-----END PGP SIGNATURE-----


Closed
?