I am trying to build a sparc toolkit on an AMD64 machine using crossdev it fails when trying to emerge glibc: checking whether x86_64-pc-linux-gnu-gcc -pipe -fcall-used-g6 -O2 -fno-strict-aliasing -fno-unwind-tables supports -mlong-double-128... no configure: error: this configuration requires -mlong-double-128 support Reproducible: Always Steps to Reproduce: 1. crossdev --l 2.11.2 --k 2.6.36.1 --g 4.4.5 --b 2.20.1-r1 --without-headers -t sparc Actual Results: the log from glibc: ... checking size of long double... 16 running configure fragment for sysdeps/sparc/sparc32/elf checking for sparc32 TLS support... no checking for sparc32 ld WDISP22 handling... unknown running configure fragment for sysdeps/ieee754/ldbl-opt checking whether x86_64-pc-linux-gnu-gcc -pipe -fcall-used-g6 -O2 -fno-strict-aliasing -fno-unwind-tables supports -mlong-double-128... no configure: error: this configuration requires -mlong-double-128 support * ERROR: cross-sparc-unknown-linux-gnu/glibc-2.12.2 failed (compile phase): * failed to configure glibc * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 3773: Called eblit-run 'src_compile' * environment, line 1183: Called eblit-glibc-src_compile * src_compile.eblit, line 204: Called src_compile * environment, line 3773: Called eblit-run 'src_compile' * environment, line 1183: Called eblit-glibc-src_compile * src_compile.eblit, line 212: Called toolchain-glibc_src_compile * src_compile.eblit, line 123: Called glibc_do_configure 'nptl' * src_compile.eblit, line 99: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "failed to configure glibc" * * If you need support, post the output of 'emerge --info =cross-sparc-unknown-linux-gnu/glibc-2.12.2', * the complete build log and the output of 'emerge -pqv =cross-sparc-unknown-linux-gnu/glibc-2.12.2'. * This ebuild is from an overlay named 'x-crossdev': '/usr/local/overlays/crossdev/' * The complete build log is located at '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/temp/environment'. * S: '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/work/glibc-2.12.2' >>> Failed to emerge cross-sparc-unknown-linux-gnu/glibc-2.12.2, Log file: >>> '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/temp/build.log' * Messages for package cross-sparc-unknown-linux-gnu/glibc-2.12.2: * ERROR: cross-sparc-unknown-linux-gnu/glibc-2.12.2 failed (compile phase): * failed to configure glibc * * Call stack: * ebuild.sh, line 56: Called src_compile * environment, line 3773: Called eblit-run 'src_compile' * environment, line 1183: Called eblit-glibc-src_compile * src_compile.eblit, line 204: Called src_compile * environment, line 3773: Called eblit-run 'src_compile' * environment, line 1183: Called eblit-glibc-src_compile * src_compile.eblit, line 212: Called toolchain-glibc_src_compile * src_compile.eblit, line 123: Called glibc_do_configure 'nptl' * src_compile.eblit, line 99: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "failed to configure glibc" * * If you need support, post the output of 'emerge --info =cross-sparc-unknown-linux-gnu/glibc-2.12.2', * the complete build log and the output of 'emerge -pqv =cross-sparc-unknown-linux-gnu/glibc-2.12.2'. * This ebuild is from an overlay named 'x-crossdev': '/usr/local/overlays/crossdev/' * The complete build log is located at '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/temp/environment'. * S: '/var/tmp/portage/cross-sparc-unknown-linux-gnu/glibc-2.12.2/work/glibc-2.12.2' * glibc failed :( * If you file a bug, please attach the following logfiles: * /var/log/portage/cross-sparc-unknown-linux-gnu-info.log * /var/log/portage/cross-sparc-unknown-linux-gnu-glibc.log Expected Results: success, in the form of a cross-compiler
Just tested the same thing on another linux box I have (very similar to this one) and it produced the same results.
Through further research, I found that the -mlong-double-128 flag is not supported on the x86_64 architecture. However, that flag forces a type of "long double" to take up bits, which is the default anyways for x86_64, so theoretically, if the can get that configure file to ignore the fact that that flag isn't supported, it should compile fine. I tried modifying the configure.in file in the source to ignore this check, but crossdev insists on downloading the sources fresh whenever it is run. Are there any ways around this?
s/up bits/up 128 bits/
*** This bug has been marked as a duplicate of bug 361779 ***