This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Take 2: Fix PR37216 [cygming] Invalid alignment for SSE store to .comm data generated with -O3


Dave Korn wrote:

>   This is the revised version of the patch to fix PR32716, with all
> considerations from the threads earlier today about tests and zero-length
> commons(*) taken into account.  Now going for a full bootstrap and test,
> results in a couple of days.

  The tests completed.  The results are nice :)

                === gcc Summary ===

-# of expected passes           60491
-# of unexpected failures       246
+# of expected passes           60687
+# of unexpected failures       53
 # of unexpected successes      4
 # of expected failures         146
-# of unresolved testcases      1
 # of unsupported tests         631
-/gnu/gcc/obj/gcc/xgcc  version 4.5.0 20090519 (experimental) (GCC)
+/gnu/gcc/obj-patched2b/gcc/xgcc  version 4.5.0 20090519 (experimental) (GCC)


  There were 8 new fortran FAILs, all excess-error tests:

+FAIL: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
 [ snip 7 repeats ]

... and a larger number of libgomp FAILs likewise:

+FAIL: libgomp.fortran/omp_parse2.f90 (test for excess errors)
 [ snip 7 repeats ]
+FAIL: libgomp.fortran/omp_parse3.f90 (test for excess errors)
 [ snip 7 repeats ]
+FAIL: libgomp.fortran/omp_parse4.f90 (test for excess errors)
 [ snip 7 repeats ]
+FAIL: libgomp.fortran/pr25162.f (test for excess errors)
 [ snip 7 repeats ]
+FAIL: libgomp.fortran/threadprivate2.f90 (test for excess errors)
 [ snip 7 repeats ]
+FAIL: libgomp.fortran/threadprivate3.f90 (test for excess errors)
 [ snip 7 repeats ]

... all of which were caused by an error message from the linker, which got
confused by the presence of periods in fortran symbols.  This is a binutils
problem, not a GCC problem or a problem with the patch; I have a fix for it,
which I am about to apply upstream:

  http://sourceware.org/ml/binutils/2009-05/msg00436.html

  I have installed the fix locally and rerun the failing tests and verified
that they no longer FAIL and the linker aligns common symbols correctly:

  There was also some noise in the libstdc++ testsuite:

+FAIL: 20_util/shared_ptr/thread/mutex_weaktoshared.cc execution test
 FAIL: 22_locale/ctype/scan/wchar_t/1.cc execution test
 FAIL: 22_locale/ctype/scan/wchar_t/1.cc execution test
 FAIL: 22_locale/ctype/scan/wchar_t/1.cc execution test
@@ -386,8 +358,6 @@ FAIL: 27_io/basic_ostream/inserters_arit
 FAIL: 27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc execution
 FAIL: ext/bitmap_allocator/variadic_construct.cc execution test
 FAIL: ext/codecvt/wchar_t.cc execution test
-WARNING: program timed out.
-FAIL: ext/rope/pthread7-rope.cc execution test

  There is always noise in the libstdc++ testsuite in the mutex_weaktoshared
tests, and I have now traced this to a bug in Cygwin's pthread implementation
which I will also fix upstream.

  Apart from that, there were no changes in the test results before and after,
so, contingent on the upstream binutils fix going in, OK to apply?

    cheers,
      DaveK
-- 

Output follows from running these commands with new binutils to verify it
fixed the fails:

$ make -k check-gcc-fortran RUNTESTFLAGS="-all \
	dg.exp=gfortran.dg/module_equivalence_1*"
$ make -k check-target-libgomp RUNTESTFLAGS="-all \
	fortran.exp=libgomp.fortran/omp_parse*"
$ make -k check-target-libgomp RUNTESTFLAGS="-all \
	fortran.exp=libgomp.fortran/pr25162*"
$ make -k check-target-libgomp RUNTESTFLAGS="-all \
	fortran.exp=libgomp.fortran/threadprivate*"

WARNING: Couldn't find the global config file.
Test Run By DKAdmin on Wed May 27 15:23:24 2009
Native configuration is i686-pc-cygwin

		=== gfortran tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /gnu/gcc/gcc-patched/gcc/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /gnu/gcc/gcc-patched/gcc/testsuite/gfortran.dg/dg.exp ...
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test
PASS: gfortran.dg/module_equivalence_1.f90 (test for excess errors)
PASS: gfortran.dg/module_equivalence_1.f90 execution test

		=== gfortran Summary ===

# of expected passes		16
/gnu/gcc/obj-patched2b/gcc/testsuite/gfortran/../../gfortran  version 4.5.0
20090519 (experimental) (GCC)

		=== libgomp tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /gnu/gcc/gcc-patched/libgomp/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /gnu/gcc/gcc-patched/libgomp/testsuite/libgomp.fortran/fortran.exp ...
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse1.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse1.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse2.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse2.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse3.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse3.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test
PASS: libgomp.fortran/omp_parse4.f90 (test for excess errors)
PASS: libgomp.fortran/omp_parse4.f90 execution test

		=== libgomp Summary ===

# of expected passes		64
make[3]: Leaving directory
`/gnu/gcc/obj-patched2b/i686-pc-cygwin/libgomp/testsuite'

		=== libgomp tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /gnu/gcc/gcc-patched/libgomp/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /gnu/gcc/gcc-patched/libgomp/testsuite/libgomp.fortran/fortran.exp ...
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test
PASS: libgomp.fortran/pr25162.f (test for excess errors)
PASS: libgomp.fortran/pr25162.f execution test

		=== libgomp Summary ===

# of expected passes		16
make[3]: Leaving directory
`/gnu/gcc/obj-patched2b/i686-pc-cygwin/libgomp/testsuite'


		=== libgomp tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /gnu/gcc/gcc-patched/libgomp/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /gnu/gcc/gcc-patched/libgomp/testsuite/libgomp.fortran/fortran.exp ...
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate1.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate1.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate2.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate2.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test
PASS: libgomp.fortran/threadprivate3.f90 (test for excess errors)
PASS: libgomp.fortran/threadprivate3.f90 execution test

		=== libgomp Summary ===

# of expected passes		48


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]