Makecheck for test-float for glibc-2.3.4.20040619 (and -r1) fails with all versions of gcc that I tried (3.3.3 hardened, 3.3.4 hardened and not hardened, and 3.4.1-r2 hardened). Reproducible: Always Steps to Reproduce: 1. USE="~x86 makecheck" emerge =glibc-2.3.4.20040619-r1 Actual Results: GCONV_PATH=/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/iconvdata LC_ALL=C /var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/elf/ld-linux.so.2 --library-path /var/tmp/portage/glibc-2.3.4.20040619-r1/work/build:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/math:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/elf:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/dlfcn:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/nss:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/nis:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/rt:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/resolv:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/crypt:/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/nptl /var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/math/test-float > /var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/math/test-float.out make[2]: *** [/var/tmp/portage/glibc-2.3.4.20040619-r1/work/build/math/test-float.out] Error 1 make[2]: Leaving directory `/var/tmp/portage/glibc-2.3.4.20040619-r1/work/glibc-2.3.2/math' make[1]: *** [math/tests] Error 2 make[1]: Leaving directory `/var/tmp/portage/glibc-2.3.4.20040619-r1/work/glibc-2.3.2' make: *** [check] Error 2 !!! ERROR: sys-libs/glibc-2.3.4.20040619-r1 failed. !!! Function do_makecheck, Line 235, Exitcode 2 !!! (no error message) Expected Results: makecheck succeeds kernel 2.6.7-gentoo-r11, CFLAGS="-march=athlon-xp -O2 -pipe -frename-registers -fomit-frame-pointer", CHOST="i686-pc-linux-gnu" relevant USE flags : "makecheck erandom hardened nls nptl pic"
same problem here, could only avoid it if i dont't use "makecheck" USE-flag or unset my CFLAGS to nothing so that defaults for glibc would be used. i tested this also on a lfs-machine same thing there when running make check. so i played with the flags an noticed that -march= set to pentium4, pentium3 and also athlon-xp make check failed, for other arch i had no chance to test.
I think the cause is 64bit vs 80bit double precision of 387 floating point unit. Using -ffloat-store or -mfpmath=sse should make the test pass (both force 64bit), as well as unsetting -march, which disables the use of floating point unit.
Actually, I think it's the other way around; the test result data assumes the system gives more accuracy than one should reasonably expect from 32-bit IEEE floating point operations. See bug #87249 where I've been working on this. Original report here had 'USE=hardened', so presumably used hardened compiler which highlights the bug. *** This bug has been marked as a duplicate of 87249 ***