This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36806] [4.4 Regression] Broken unformatted IOs at rev. 137644 on i686-apple-darwin9
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Jul 2008 22:10:05 -0000
- Subject: [Bug target/36806] [4.4 Regression] Broken unformatted IOs at rev. 137644 on i686-apple-darwin9
- References: <bug-36806-12313@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from dominiq at lps dot ens dot fr 2008-07-11 22:10 -------
The executable for the following code
open(unit=11,form='unformatted')
! print *, 'open'
end
also hangs. Stepping with gdb gives:
Breakpoint 1, main (argc=1, argv=0xbfffdb98) at
../../../gcc-4.4-work/libgfortran/fmain.c:11
11 {
(gdb) s
13 store_exe_path (argv[0]);
(gdb) s
*__gfortran_store_exe_path (argv0=0xbfffdd04
"/Volumes/MacBook/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out")
at ../../../gcc-4.4-work/libgfortran/runtime/main.c:114
114 if (argv0[0] == '/')
(gdb) s
103 {
(gdb) s
114 if (argv0[0] == '/')
(gdb) s
116 exe_path = argv0;
(gdb) s
117 please_free_exe_path_when_done = 0;
(gdb) s
133 }
(gdb) s
main (argc=1, argv=0xbfffdb98) at ../../../gcc-4.4-work/libgfortran/fmain.c:16
16 set_args (argc, argv);
(gdb) s
*__gfortran_set_args (argc=1, argv=0xbfffdb98) at
../../../gcc-4.4-work/libgfortran/runtime/main.c:82
82 argc_save = argc;
(gdb) s
83 argv_save = argv;
(gdb) s
84 }
(gdb) s
main (argc=1, argv=0xbfffdb98) at ../../../gcc-4.4-work/libgfortran/fmain.c:21
21 MAIN__ ();
(gdb) s
25 }
(gdb) s
0x00001ee6 in start ()
(gdb) s
Single stepping until exit from function start,
which has no line number information.
0x00003014 in dyld_stub_exit ()
(gdb) s
Single stepping until exit from function dyld_stub_exit,
which has no line number information.
0x8fe18b20 in __dyld_fast_stub_binding_helper_interface ()
(gdb) s
Single stepping until exit from function
__dyld_fast_stub_binding_helper_interface,
which has no line number information.
0x8fe18b22 in __dyld_stub_binding_helper_interface ()
(gdb) s
Single stepping until exit from function __dyld_stub_binding_helper_interface,
which has no line number information.
0x8fe18b42 in __dyld_misaligned_stack_error ()
(gdb) s
Single stepping until exit from function __dyld_misaligned_stack_error,
which has no line number information.
0x8fe18b5a in __dyld_stub_binding_helper_interface2 ()
(gdb) s
Single stepping until exit from function __dyld_stub_binding_helper_interface2,
which has no line number information.
0x8fe06e40 in __dyld__ZN4dyld14bindLazySymbolEPK11mach_headerPm ()
(gdb) s
Single stepping until exit from function
__dyld__ZN4dyld14bindLazySymbolEPK11mach_headerPm,
which has no line number information.
0x8fe0e430 in __dyld__ZNK11ImageLoader15containsAddressEPKv ()
(gdb) s
Single stepping until exit from function
__dyld__ZNK11ImageLoader15containsAddressEPKv,
which has no line number information.
0x8fe13250 in __dyld__ZNK16ImageLoaderMachO13beginSegmentsEv ()
(gdb) s
Single stepping until exit from function
__dyld__ZNK16ImageLoaderMachO13beginSegmentsEv,
which has no line number information.
0x8fe0e457 in __dyld__ZNK11ImageLoader15containsAddressEPKv ()
(gdb) s
Single stepping until exit from function
__dyld__ZNK11ImageLoader15containsAddressEPKv,
which has no line number information.
0x8fe06f22 in __dyld__ZN4dyld14bindLazySymbolEPK11mach_headerPm ()
(gdb) s
Single stepping until exit from function
__dyld__ZN4dyld14bindLazySymbolEPK11mach_headerPm,
which has no line number information.
0x8fe18b6f in __dyld_stub_binding_helper_interface2 ()
(gdb) s
Single stepping until exit from function __dyld_stub_binding_helper_interface2,
which has no line number information.
0x93b6aeaf in exit ()
(gdb) s
Single stepping until exit from function exit,
which has no line number information.
0xa0a74539 in dyld_stub___cxa_finalize ()
(gdb) s
Single stepping until exit from function dyld_stub___cxa_finalize,
which has no line number information.
0x93b6aeeb in __cxa_finalize ()
(gdb) s
Single stepping until exit from function __cxa_finalize,
which has no line number information.
0x8fe04ee0 in __dyld__ZN4dyld14runTerminatorsEPv ()
(gdb) s
Single stepping until exit from function __dyld__ZN4dyld14runTerminatorsEPv,
which has no line number information.
0x8fe12ee0 in
__dyld__ZN16ImageLoaderMachO13doTerminationERKN11ImageLoader11LinkContextE ()
(gdb) s
Single stepping until exit from function
__dyld__ZN16ImageLoaderMachO13doTerminationERKN11ImageLoader11LinkContextE,
which has no line number information.
cleanup () at ../../../gcc-4.4-work/libgfortran/runtime/main.c:174
174 {
(gdb) s
0x000fa493 in __i686.get_pc_thunk.bx ()
(gdb) s
Single stepping until exit from function __i686.get_pc_thunk.bx,
which has no line number information.
cleanup () at ../../../gcc-4.4-work/libgfortran/runtime/main.c:175
175 close_units ();
(gdb) s
*__gfortrani_close_units () at ../../../gcc-4.4-work/libgfortran/io/unit.c:688
688 __gthread_mutex_lock (&unit_lock);
(gdb) s
** Simulating stepping into inlined subroutine. **
694 if (__gthread_active_p ())
(gdb) p __gthread_active_p ()
No symbol "__gthread_active_p" in current context.
(gdb) s
689 while (unit_root != NULL)
(gdb) p unit_root
No symbol "unit_root" in current context.
(gdb) s
695 return __gthrw_(pthread_mutex_lock) (mutex);
(gdb) s
^C
Program received signal SIGINT, Interrupt.
0x93b424ee in semaphore_wait_signal_trap ()
If I uncomment the commented line I get:
Breakpoint 1, main (argc=1, argv=0xbfffdb98) at
../../../gcc-4.4-work/libgfortran/fmain.c:11
11 {
(gdb) s
13 store_exe_path (argv[0]);
(gdb) s
*__gfortran_store_exe_path (argv0=0xbfffdd04
"/Volumes/MacBook/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/a.out")
at ../../../gcc-4.4-work/libgfortran/runtime/main.c:114
114 if (argv0[0] == '/')
(gdb) s
103 {
(gdb) s
114 if (argv0[0] == '/')
(gdb) s
116 exe_path = argv0;
(gdb) s
117 please_free_exe_path_when_done = 0;
(gdb) s
133 }
(gdb) s
main (argc=1, argv=0xbfffdb98) at ../../../gcc-4.4-work/libgfortran/fmain.c:16
16 set_args (argc, argv);
(gdb) s
*__gfortran_set_args (argc=1, argv=0xbfffdb98) at
../../../gcc-4.4-work/libgfortran/runtime/main.c:82
82 argc_save = argc;
(gdb) s
83 argv_save = argv;
(gdb) s
84 }
(gdb) s
main (argc=1, argv=0xbfffdb98) at ../../../gcc-4.4-work/libgfortran/fmain.c:21
21 MAIN__ ();
(gdb) s
^C
Program received signal SIGINT, Interrupt.
0x93b424ee in semaphore_wait_signal_trap ()
>From pr30617 I noticed that the "mutex" behavior is not the same on Darwin and
on Linux, but I don't know anything about the whole stuff.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36806