|
From: Mark W. <mj...@re...> - 2015-09-12 14:37:34
|
On Fri, 2015-09-11 at 21:05 +0200, Mark Wielaard wrote:
> ppc64, kernel-2.6.32, gcc-4.8.3, glibc-2.17, binutils-2.23.52.0.1,
> gdb-7.6.1
> == 620 tests, 38 stderr failures, 34 stdout failures, 1 stderrB
> failure, 1 stdoutB failure, 0 post failures ==
> gdbserver_tests/hginfo (stderrB)
> gdbserver_tests/hgtls (stdoutB)
> memcheck/tests/bug340392 (stderr)
> memcheck/tests/leak_cpp_interior (stderr)
> memcheck/tests/ppc32/power_ISA2_05 (stdout)
> memcheck/tests/ppc32/power_ISA2_05 (stderr)
> none/tests/allexec32 (stdout)
> none/tests/allexec32 (stderr)
> none/tests/allexec64 (stdout)
> none/tests/allexec64 (stderr)
> none/tests/ppc32/bug129390-ppc32 (stdout)
> none/tests/ppc32/bug129390-ppc32 (stderr)
> none/tests/ppc32/bug139050-ppc32 (stdout)
> none/tests/ppc32/bug139050-ppc32 (stderr)
> none/tests/ppc32/data-cache-instructions (stdout)
> none/tests/ppc32/data-cache-instructions (stderr)
> none/tests/ppc32/jm-fp (stdout)
> none/tests/ppc32/jm-fp (stderr)
> none/tests/ppc32/jm-int (stdout)
> none/tests/ppc32/jm-int (stderr)
> none/tests/ppc32/jm-misc (stdout)
> none/tests/ppc32/jm-misc (stderr)
> none/tests/ppc32/jm-vmx (stdout)
> none/tests/ppc32/jm-vmx (stderr)
> none/tests/ppc32/ldst_multiple (stdout)
> none/tests/ppc32/ldst_multiple (stderr)
> none/tests/ppc32/ldstrev (stdout)
> none/tests/ppc32/ldstrev (stderr)
> none/tests/ppc32/lsw (stdout)
> none/tests/ppc32/lsw (stderr)
> none/tests/ppc32/mcrfs (stdout)
> none/tests/ppc32/mcrfs (stderr)
> none/tests/ppc32/mftocrf (stdout)
> none/tests/ppc32/mftocrf (stderr)
> none/tests/ppc32/power5+_round (stdout)
> none/tests/ppc32/power5+_round (stderr)
> none/tests/ppc32/power6_bcmp (stderr)
> none/tests/ppc32/round (stdout)
> none/tests/ppc32/round (stderr)
> none/tests/ppc32/test_dfp1 (stdout)
> none/tests/ppc32/test_dfp1 (stderr)
> none/tests/ppc32/test_dfp2 (stdout)
> none/tests/ppc32/test_dfp2 (stderr)
> none/tests/ppc32/test_dfp3 (stdout)
> none/tests/ppc32/test_dfp3 (stderr)
> none/tests/ppc32/test_dfp4 (stdout)
> none/tests/ppc32/test_dfp4 (stderr)
> none/tests/ppc32/test_dfp5 (stdout)
> none/tests/ppc32/test_dfp5 (stderr)
> none/tests/ppc32/test_fx (stdout)
> none/tests/ppc32/test_fx (stderr)
> none/tests/ppc32/test_gx (stdout)
> none/tests/ppc32/test_gx (stderr)
> none/tests/ppc32/test_isa_2_06_part1 (stdout)
> none/tests/ppc32/test_isa_2_06_part1 (stderr)
> none/tests/ppc32/test_isa_2_06_part2 (stdout)
> none/tests/ppc32/test_isa_2_06_part2 (stderr)
> none/tests/ppc32/test_isa_2_06_part3 (stdout)
> none/tests/ppc32/test_isa_2_06_part3 (stderr)
> none/tests/ppc32/testVMX (stdout)
> none/tests/ppc32/testVMX (stderr)
> none/tests/ppc32/tw (stdout)
> none/tests/ppc32/tw (stderr)
> none/tests/ppc32/twi (stdout)
> none/tests/ppc32/twi (stderr)
> none/tests/ppc32/xlc_dbl_u32 (stdout)
> none/tests/ppc32/xlc_dbl_u32 (stderr)
> none/tests/ppc64/jm-fp (stdout)
> none/tests/ppc64/jm-fp (stderr)
> none/tests/ppc64/jm-int (stdout)
> none/tests/ppc64/jm-int (stderr)
> none/tests/ppc64/jm-vmx (stdout)
> none/tests/ppc64/jm-vmx (stderr)
> helgrind/tests/tc06_two_races_xml (stderr)
>
> [The large number of ppc32 failures seem to come from the usage of
> a 64bit only instruction in the 32bit ld.so index function.]
I tried with a slightly newer glibc version and couldn't replicate the
ppc32 failures. The results now look like:
== 634 tests, 6 stderr failures, 3 stdout failures, 0 stderrB failures,
1 stdoutB failure, 0 post failures ==
gdbserver_tests/hgtls (stdoutB)
memcheck/tests/bug340392 (stderr)
memcheck/tests/leak_cpp_interior (stderr)
none/tests/ppc64/jm-fp (stdout)
none/tests/ppc64/jm-fp (stderr)
none/tests/ppc64/jm-int (stdout)
none/tests/ppc64/jm-int (stderr)
none/tests/ppc64/jm-vmx (stdout)
none/tests/ppc64/jm-vmx (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
The jm-fp, jm-int and jm-vmx tests all fail because they crash (also
when running natively) inside this code:
Program received signal SIGSEGV, Segmentation fault.
init_function (func_buf=0x3fffb7d70000,
p_func_F=@0x1001e328: 0x10000bd4 <.test_lfs>) at jm-insns.c:4875
4875 descr[0] = (uint64_t)&func_buf[0];
4868 /* p_func points to a function descriptor, the first word of which
4869 points to the real code. Copy the code itself but not the
4870 descriptor, and just swizzle the descriptor's entry pointer. */
4871 uint64_t* descr = (uint64_t*)p_func;
4872 uint32_t* entry = (uint32_t*)(descr[0]);
4873 func_buf[0] = entry[0];
4874 func_buf[1] = entry[1];
4875 descr[0] = (uint64_t)&func_buf[0];
4876 return (test_func_t)descr;
4877 #endif // #ifndef __powerpc64__
|