This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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: 200.sixtrack is miscomparing on x86_64 and i686 (-O2) since Mar 19th


On Thu, 22 Mar 2007, Richard Guenther wrote:

> On Wed, 21 Mar 2007, Jerry DeLisle wrote:
> 
> > Richard Guenther wrote:
> > > The regression was introduced between rev 123033 and 123047.  The likely
> > > offender is
> > > 
> > > Index: libgfortran/ChangeLog
> > > ===================================================================
> > > --- libgfortran/ChangeLog       (revision 123033)
> > > +++ libgfortran/ChangeLog       (revision 123047)
> > > @@ -1,3 +1,15 @@
> > > +2007-03-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
> > > +
> > > +       PR libgfortran/31052
> > > +       * io/file_position (st_rewind): Fix comments. Remove use of
> > > +       test_endfile. Don't seek if already at 0 position.  Use new 
> > 
> > Richard,
> > 
> > Can you confirm that this occurs only with -O2 ?
> 
> No, it occurs also with -O3 (but -O2 is the lowest level I have checked).
> 
> > Can you revert the patch on a local tree and confirm this is it?
> 
> I'll do so later today.

I can confirm reverting the patch fixes the problem.  (Just exchanging
the libgfortran runtime library to a one with the patch reverted fixes
the problem)

> > Would you be willing to help me debug this, the patch is not that complicated?
> > 
> > If not is there anyone with SPEC that I can work with?
> > 
> > Also, I do work out of my home and a Non-Disclosure Agreement is no problem to
> > me.
> 
> I don't think a NDA will help here.  I'll see if there's something 
> obvious.

An strace difference shows (diff from good to bad)

@@ -80532,6096 +80531,28 @@
 write(1, "           Alignment errors read"..., 54) = 54
 write(1, "\n", 1)                       = 1
 write(1, "\n", 1)                       = 1
-write(1, "         From file fort.8 :     "..., 56) = 56
+read(6, "", 8192)                       = 0
+read(6, "", 8192)                       = 0
 write(1, "\n", 1)                       = 1
 write(1, "\n", 1)                       = 1
-lseek(8, 0, SEEK_SET)                   = 0
-lseek(8, 0, SEEK_SET)                   = 0
-ftruncate(8, 0)                         = 0
-write(8, "\'QF9.R1\'  63.279998             "..., 161) = 161
...


Richard.

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex


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