Massive failures

Steve Kargl sgk@troutmask.apl.washington.edu
Thu Apr 13 03:58:00 GMT 2006


On Wed, Apr 12, 2006 at 12:50:39PM -0700, DeLisle, Jerry V wrote:
> I don't think its anything Jakub and I have done.  I won't have time to
> look around until tonight.  Any more data available on this?
> 
> I am at work so must keep this brief.
> 

I think I've come to some conclusion with the massive regressions.
A new memory allocator was committed to FreeBSD in mid-January,
and this is the first time I've updated since that allocator was
available.  This allocator has the feature that all newly allocated
or freed bytes of memory are set to 0xa5.  It appears that libgfortran
is making some really bad assumptions with regards to whether
memory is explicitly or implicitly bzero'd.

With the following patch:

Index: transfer.c
===================================================================
--- transfer.c	(revision 112881)
+++ transfer.c	(working copy)
@@ -2353,9 +2353,11 @@ st_write_done (st_parameter_dt *dtp)
 
       case NO_ENDFILE:
 	/* Get rid of whatever is after this record.  */
+#if 0
 	flush (dtp->u.p.current_unit->s);
 	if (struncate (dtp->u.p.current_unit->s) == FAILURE)
 	  generate_error (&dtp->common, ERROR_OS, NULL);
+#endif
 
 	dtp->u.p.current_unit->endfile = AT_ENDFILE;
 	break;

I get the expected testsuite result:

		=== gfortran Summary ===

# of expected passes		12202
# of unexpected failures	8
# of expected failures		8
# of unsupported tests		56
/usr/home/sgk/gcc/obj41/gcc/testsuite/gfortran/../../gfortran  version 4.1.1 20060412 (prerelease)

instead of the 560 unexpected failures.  Can others on the list
test other OS's with electric fence or dmalloc or some other 
strict memory allocator.

-- 
Steve



More information about the Fortran mailing list