[Bug libfortran/27046] gfortran print flush in dll

2006-04-25 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2006-04-25 06:04 
---
(In reply to comment #2)
 This was fixed for the non windows case for sure.

Yes:

$ cat ftesti.f90 
subroutine print_from_gfortran(txt)
  implicit none
  character :: txt
  print *,txt
end subroutine print_from_gfortran
$ ./bin/gfortran -shared -o ftesti.so ftesti.f90 
$ cat ctesti.c #include stdio.h
#include dlfcn.h

void print_from_gcc(char* txt) {
  printf(%s\n,txt);
}

int main(int argc, char** argv) {
  void * hdl = dlopen(./ftesti.so, RTLD_LAZY);
  void (*print_from_gfortran)(char *) = dlsym(hdl, print_from_gfortran_);

  print_from_gcc (c);
  (*print_from_gfortran)(f);
  print_from_gcc (c);
  (*print_from_gfortran)(f);
  dlclose (hdl);

  return 0;
}
$ gcc -o ctesti.exe ctesti.c -ldl
$ ./ctesti.exe 
c
 f
c
 f

And this even works when libgfortran is only available as a static library (as
is the case on mingw32). I'll try to look deeper into this, but it looks very
strange...


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org


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



[Bug libfortran/27046] gfortran print flush in dll

2006-04-05 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2006-04-05 16:08 ---
This was fixed for the non windows case for sure.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |libfortran
   GCC host triplet|i686-pc-mingw32 |
 GCC target triplet||i686-pc-mingw32


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