public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/35632]  New: [Regression] stream io broken on FreeBSD due to ftruncate changes.
@ 2008-03-19  3:32 kargl at gcc dot gnu dot org
  2008-03-19  3:47 ` [Bug fortran/35632] " jvdelisle at gcc dot gnu dot org
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: kargl at gcc dot gnu dot org @ 2008-03-19  3:32 UTC (permalink / raw)
  To: gcc-bugs

This commit:

2008-03-05  Hans-Peter Nilsson  <hp@axis.com>

        PR libfortran/35293
        * io/unix.c (fd_truncate): Fold s->special_file case into
        success case of ftruncate/chsize call instead of the failure case.
        Make failure case actually return failure.  Properly update stream
        pointers on failure.  Call runtime_error for targets without
        neither ftruncate nor chsize where such a call would be needed.

leads to

WARNING: program timed out.
FAIL: gfortran.dg/streamio_4.f90  -O0  execution test
WARNING: program timed out.
FAIL: gfortran.dg/streamio_4.f90  -O1  execution test

WARNING: program timed out.
FAIL: gfortran.dg/streamio_4.f90  -O2  execution test
WARNING: program timed out.
FAIL: gfortran.dg/streamio_4.f90  -O3 -fomit-frame-pointer  execution test

A ktrace on one of the failing cases shows

 19649 streamio_4.exe RET   ftruncate 0
 19649 streamio_4.exe CALL  sigprocmask(SIG_BLOCK,0,0xbfbfd7a8)
 19649 streamio_4.exe RET   sigprocmask 0
 19649 streamio_4.exe CALL  lseek(0x3,0x188b2,SEEK_SET,0)
 19649 streamio_4.exe RET   lseek 100530/0x188b2
 19649 streamio_4.exe CALL  ftruncate(0x3,0x188b2,0)
 19649 streamio_4.exe RET   ftruncate 0
 19649 streamio_4.exe CALL  sigprocmask(SIG_BLOCK,0,0xbfbfd7a8)
 19649 streamio_4.exe RET   sigprocmask 0
 19649 streamio_4.exe CALL  lseek(0x3,0x188b8,SEEK_SET,0)
 19649 streamio_4.exe RET   lseek 100536/0x188b8
 19649 streamio_4.exe CALL  ftruncate(0x3,0x188b8,0)
 19649 streamio_4.exe RET   ftruncate 0
 19649 streamio_4.exe CALL  sigprocmask(SIG_BLOCK,0,0xbfbfd7a8)
 19649 streamio_4.exe RET   sigprocmask 0
 19649 streamio_4.exe CALL  lseek(0x3,0x188be,SEEK_SET,0)
 19649 streamio_4.exe RET   lseek 100542/0x188be
 19649 streamio_4.exe CALL  ftruncate(0x3,0x188be,0)
 19649 streamio_4.exe RET   ftruncate 0
 19649 streamio_4.exe CALL  sigprocmask(SIG_BLOCK,0,0xbfbfd7a8)
 19649 streamio_4.exe RET   sigprocmask 0
 19649 streamio_4.exe CALL  lseek(0x3,0x188c4,SEEK_SET,0)
 19649 streamio_4.exe RET   lseek 100548/0x188c4
 19649 streamio_4.exe CALL  ftruncate(0x3,0x188c4,0)
 19649 streamio_4.exe RET   ftruncate 0
 19649 streamio_4.exe CALL  sigprocmask(SIG_BLOCK,0,0xbfbfd7a8)
 19649 streamio_4.exe RET   sigprocmask 0
 19649 streamio_4.exe CALL  lseek(0x3,0x188ca,SEEK_SET,0)
 19649 streamio_4.exe RET   lseek 100554/0x188ca
 19649 streamio_4.exe CALL  ftruncate(0x3,0x188ca,0)
 19649 streamio_4.exe RET   ftruncate 0

ad nausem.

Please revert your patch.


-- 
           Summary: [Regression] stream io broken on FreeBSD due to
                    ftruncate changes.
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kargl at gcc dot gnu dot org
GCC target triplet:  i386-unknown-freebsd8.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
@ 2008-03-19  3:47 ` jvdelisle at gcc dot gnu dot org
  2008-03-19  4:10 ` kargl at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-19  3:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jvdelisle at gcc dot gnu dot org  2008-03-19 03:46 -------
*** Bug 35633 has been marked as a duplicate of this bug. ***


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
  2008-03-19  3:47 ` [Bug fortran/35632] " jvdelisle at gcc dot gnu dot org
@ 2008-03-19  4:10 ` kargl at gcc dot gnu dot org
  2008-03-19  4:44 ` hp at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: kargl at gcc dot gnu dot org @ 2008-03-19  4:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from kargl at gcc dot gnu dot org  2008-03-19 04:09 -------
Hmmm, reverting Hans-Peter's patch does not fix the problem. Apologies
to Hans-Peter for jumping the gun.

Going back further in time, reverting r132512 fixes the problem with
streamio_4.f90, but
leads to 

Running /usr/home/kargl/gcc/trunk/gcc/testsuite/gfortran.dg/dg.exp ...
FAIL: gfortran.dg/streamio_15.f90  -O0  execution test
FAIL: gfortran.dg/streamio_15.f90  -O1  execution test
FAIL: gfortran.dg/streamio_15.f90  -O2  execution test
FAIL: gfortran.dg/streamio_15.f90  -O3 -fomit-frame-pointer  execution test
FAIL: gfortran.dg/streamio_15.f90  -O3 -fomit-frame-pointer -funroll-loops 
execution test
FAIL: gfortran.dg/streamio_15.f90  -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions  execution test
FAIL: gfortran.dg/streamio_15.f90  -O3 -g  execution test
FAIL: gfortran.dg/streamio_15.f90  -Os  execution test

This revision is 2008-02-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35132
        * io/transfer.c (next_record_w): Truncate after the last record for
        STREAM I/O.

        PR libfortran/34954
        * io/transfer.c (data_transfer_init): Initialize dtp->rec if writing.

        PR libfortran/34974
        * io/transfer.c (formatted_transfer_scalar): Flush the buffer if skips
        is less than zero. (next_record_w): Use sseek to position the file to
        the max position reached.


-- 

kargl at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|hp at axis dot com          |
 GCC target triplet| i386-unknown-freebsd8.0    |i386-unknown-freebsd8.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
  2008-03-19  3:47 ` [Bug fortran/35632] " jvdelisle at gcc dot gnu dot org
  2008-03-19  4:10 ` kargl at gcc dot gnu dot org
@ 2008-03-19  4:44 ` hp at gcc dot gnu dot org
  2008-03-19  5:25 ` jvdelisle at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: hp at gcc dot gnu dot org @ 2008-03-19  4:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from hp at gcc dot gnu dot org  2008-03-19 04:43 -------
(In reply to comment #2)
> Hmmm, reverting Hans-Peter's patch does not fix the problem. Apologies
> to Hans-Peter for jumping the gun.

Apology accepted. FWIW, looking at your strace output and streamio_4.f90, it
seems this fd 0x3 isn't a special file and the ftruncate calls succeed, so my
patch shouldn't have had any effect.  But you know that now.  I did a similar
strace for streamio_4 on x86_64-unknown-linux-gnu with r132965 and came to the
same conclusions; the lots-of-small-increment ftruncate-calls were introduced
with r132512 and not affected by my patch.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-03-19  4:44 ` hp at gcc dot gnu dot org
@ 2008-03-19  5:25 ` jvdelisle at gcc dot gnu dot org
  2008-03-19  5:41 ` jvdelisle at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-19  5:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jvdelisle at gcc dot gnu dot org  2008-03-19 05:25 -------
Since I do not have access to this system, can you try this:

Index: transfer.c
===================================================================
--- transfer.c  (revision 133275)
+++ transfer.c  (working copy)
@@ -2604,7 +2604,8 @@ next_record_w (st_parameter_dt *dtp, int
          if (is_stream_io (dtp))
            {
              dtp->u.p.current_unit->strm_pos += len;
-             struncate(dtp->u.p.current_unit->s);
+             if (done)
+               struncate(dtp->u.p.current_unit->s);
            }
        }

streamio_15.f90 passes with this and it should reduce the number of calls to
truncate.  If this fixes it, then I would think we have some other latent bug
and not really fixed it.


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-03-19 05:25:01
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-03-19  5:25 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-19  5:41 ` jvdelisle at gcc dot gnu dot org
  2008-03-20  0:56 ` kargl at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-19  5:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-03-19 05:40 -------
Steve, also please replace the aborts in the test case and see what is really
happening. streamio_4.f90 is doing a large number of individual WRITEs in the
loop and your ktrace shows no failure of truncate.  This test case also
exercises the buffering and it could be a READ error as well.  Need more data. 
Thanks


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-03-19  5:41 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-20  0:56 ` kargl at gcc dot gnu dot org
  2008-03-20  3:36 ` kargl at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: kargl at gcc dot gnu dot org @ 2008-03-20  0:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from kargl at gcc dot gnu dot org  2008-03-20 00:56 -------
(In reply to comment #4)
> Since I do not have access to this system, can you try this:
> 
> Index: transfer.c
> ===================================================================
> --- transfer.c  (revision 133275)
> +++ transfer.c  (working copy)
> @@ -2604,7 +2604,8 @@ next_record_w (st_parameter_dt *dtp, int
>           if (is_stream_io (dtp))
>             {
>               dtp->u.p.current_unit->strm_pos += len;
> -             struncate(dtp->u.p.current_unit->s);
> +             if (done)
> +               struncate(dtp->u.p.current_unit->s);
>             }
>         }
> 
> streamio_15.f90 passes with this and it should reduce the number of calls to
> truncate.  If this fixes it, then I would think we have some other latent bug
> and not really fixed it.
> 

The patch does not fix the problem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-03-20  0:56 ` kargl at gcc dot gnu dot org
@ 2008-03-20  3:36 ` kargl at gcc dot gnu dot org
  2008-03-20 14:48 ` tkoenig at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: kargl at gcc dot gnu dot org @ 2008-03-20  3:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from kargl at gcc dot gnu dot org  2008-03-20 03:36 -------
With a clean trunk as of 2 minutes ago, this program 

program streamtest
  implicit none
  character(1)   :: lf = char(10)
  character(1)   :: tchar
  integer        :: i,j,k
  integer, parameter :: lines = 5231
  open(10, file="teststream", access="stream", form="formatted")
  do i=1,lines
    do j=0,9
      write(10,"(i5)") j
    end do
    if (mod(i,23) == 0) print *, 'i = ', i
  end do
  close(10)
  close(10,status="delete")
end program streamtest

yields

~/work/bin/gfortran -static -O -o z streamio_4.f90
time ./z
      158.72 real         0.46 user         5.90 sys

If I revert Jerry's commit,

svn merge -r 132512:132511 .

I then see

~/work/bin/gfortran -static -O -o z streamio_4.f90
time ./z
        0.94 real         0.64 user         0.26 sys

158.72 / 0.94 = 169

Any chance, you'll revert the offending patch?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-03-20  3:36 ` kargl at gcc dot gnu dot org
@ 2008-03-20 14:48 ` tkoenig at gcc dot gnu dot org
  2008-03-21  0:17 ` kargl at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-03-20 14:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from tkoenig at gcc dot gnu dot org  2008-03-20 14:47 -------
(In reply to comment #7)
>
> Any chance, you'll revert the offending patch?
> 

The patch fixed a wrong-code PR, so by reverting the patch, we would
introduce a wrong-code regression.  I think it would be better to see what
the underlying issue is for FreeBSD, then fix that. 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-03-20 14:48 ` tkoenig at gcc dot gnu dot org
@ 2008-03-21  0:17 ` kargl at gcc dot gnu dot org
  2008-03-21  0:41 ` jvdelisle at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: kargl at gcc dot gnu dot org @ 2008-03-21  0:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from kargl at gcc dot gnu dot org  2008-03-21 00:16 -------
(In reply to comment #8)
> (In reply to comment #7)
> >
> > Any chance, you'll revert the offending patch?
> > 
> 
> The patch fixed a wrong-code PR, so by reverting the patch, we would
> introduce a wrong-code regression.  I think it would be better to see what
> the underlying issue is for FreeBSD, then fix that. 

Your first sentence is also illogical.  gfortran 4.2 and 4.3 work fine on
FreeBSD.  This patch breaks gfortran on FreeBSD.  It is therefore a regression.
The patch should be reverted and the wrong-code PR re-opened.  You can't have
a regression within trunk.

If I understood Jerry correctly on IRC, the committed code actually
addresses 3 independent issues, which makes it rather hard for me to
undo only portions of what was committed because I don't know which
parts address which problem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-03-21  0:17 ` kargl at gcc dot gnu dot org
@ 2008-03-21  0:41 ` jvdelisle at gcc dot gnu dot org
  2008-03-22 21:14 ` jvdelisle at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-21  0:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jvdelisle at gcc dot gnu dot org  2008-03-21 00:41 -------
I have been working with Steve on IRC in the evenings when we can.  We are
attempting to isolate this issue.  Stay tuned.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-03-21  0:41 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-22 21:14 ` jvdelisle at gcc dot gnu dot org
  2008-03-22 22:04 ` jvdelisle at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-22 21:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jvdelisle at gcc dot gnu dot org  2008-03-22 21:14 -------
I think this patch solves this issue.  Regression tested on x86-64.  Waiting
for Steve to confirm on FreeBSD.

Index: transfer.c
===================================================================
--- transfer.c  (revision 133436)
+++ transfer.c  (working copy)
@@ -1985,12 +1985,12 @@ data_transfer_init (st_parameter_dt *dtp
       if (dtp->u.p.mode == READING
          && dtp->u.p.current_unit->mode == WRITING
          && !is_internal_unit (dtp))
-        flush(dtp->u.p.current_unit->s);
+       flush(dtp->u.p.current_unit->s);

       /* Check whether the record exists to be read.  Only
         a partial record needs to exist.  */

-      if (dtp->u.p.mode == READING && (dtp->rec -1)
+      if (dtp->u.p.mode == READING && (dtp->rec - 1)
          * dtp->u.p.current_unit->recl >= file_length
(dtp->u.p.current_unit->s))
        {
          generate_error (&dtp->common, LIBERROR_BAD_OPTION,
@@ -2604,7 +2604,9 @@ next_record_w (st_parameter_dt *dtp, int
          if (is_stream_io (dtp))
            {
              dtp->u.p.current_unit->strm_pos += len;
-             struncate(dtp->u.p.current_unit->s);
+             if (dtp->u.p.current_unit->strm_pos
+                 < file_length (dtp->u.p.current_unit->s))
+               struncate (dtp->u.p.current_unit->s);
            }
        }



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-03-22 21:14 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-22 22:04 ` jvdelisle at gcc dot gnu dot org
  2008-03-23 17:15 ` jvdelisle at gcc dot gnu dot org
  2008-05-16 17:38 ` jb at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-22 22:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from jvdelisle at gcc dot gnu dot org  2008-03-22 22:03 -------
Subject: Bug 35632

Author: jvdelisle
Date: Sat Mar 22 22:03:13 2008
New Revision: 133454

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133454
Log:
2008-03-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/35632
        * io/transfer.c (data_transfer_init):  Fix whitespace.
        (next_record_w): Truncate the file only if the stream
        position is short of the file end.

Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/transfer.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-03-22 22:04 ` jvdelisle at gcc dot gnu dot org
@ 2008-03-23 17:15 ` jvdelisle at gcc dot gnu dot org
  2008-05-16 17:38 ` jb at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-03-23 17:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jvdelisle at gcc dot gnu dot org  2008-03-23 17:15 -------
Fixed on trunk.  No need to back port. The struncate in question is not in 4.3

For the record.  The code before the patch was fine except it called struncate
more often then needed.  On most systems, this was not noticeable.  However, on
FreeBSD, the ftruncate is performed sychronously and there for took too long to
do for the streamio_4.90 test case.  The patch avoids the issue by only calling
struncate when necessary.  Overall performance is improved.


-- 

jvdelisle at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug fortran/35632] [Regression] stream io broken on FreeBSD due to ftruncate changes.
  2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2008-03-23 17:15 ` jvdelisle at gcc dot gnu dot org
@ 2008-05-16 17:38 ` jb at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: jb at gcc dot gnu dot org @ 2008-05-16 17:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from jb at gcc dot gnu dot org  2008-05-16 17:38 -------
Subject: Bug 35632

Author: jb
Date: Fri May 16 17:37:30 2008
New Revision: 135432

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=135432
Log:
Fix fallout from part 1 of PR25561 patch.

2008-05-16  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/35632
        * io/open.c (new_unit): Set stream position to correct value.

Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/open.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35632


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-05-16 17:38 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-19  3:32 [Bug fortran/35632] New: [Regression] stream io broken on FreeBSD due to ftruncate changes kargl at gcc dot gnu dot org
2008-03-19  3:47 ` [Bug fortran/35632] " jvdelisle at gcc dot gnu dot org
2008-03-19  4:10 ` kargl at gcc dot gnu dot org
2008-03-19  4:44 ` hp at gcc dot gnu dot org
2008-03-19  5:25 ` jvdelisle at gcc dot gnu dot org
2008-03-19  5:41 ` jvdelisle at gcc dot gnu dot org
2008-03-20  0:56 ` kargl at gcc dot gnu dot org
2008-03-20  3:36 ` kargl at gcc dot gnu dot org
2008-03-20 14:48 ` tkoenig at gcc dot gnu dot org
2008-03-21  0:17 ` kargl at gcc dot gnu dot org
2008-03-21  0:41 ` jvdelisle at gcc dot gnu dot org
2008-03-22 21:14 ` jvdelisle at gcc dot gnu dot org
2008-03-22 22:04 ` jvdelisle at gcc dot gnu dot org
2008-03-23 17:15 ` jvdelisle at gcc dot gnu dot org
2008-05-16 17:38 ` jb at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).