http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54012
--- Comment #9 from Sergey Rodionov <astroseger at gmail dot com> 2012-10-30 19:35:15 UTC --- > > This does not look like a libgfortran issue. Do you have > valgrind on your system? Can you run the good and bad > executable under valgrind? This appears to be a buffer > issue in your libc. 1. I have this bug on 3 different computers with installed magiea 2 x86_64 2. Yes, it is very strange. It not look like libgfortran issue, but if I compile without -l gfortran it works. 3. If I compile with -static it always works. 4. Just in case "ldd good" looks like: linux-vdso.so.1 => (0x00007fffe4f54000) libc.so.6 => /lib64/libc.so.6 (0x00007fc68961c000) /lib64/ld-linux-x86-64.so.2 (0x00007fc6899a8000) "ldd bad": linux-vdso.so.1 => (0x00007fffd97ff000) libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007f74e86ad000) libc.so.6 => /lib64/libc.so.6 (0x00007f74e8321000) libquadmath.so.0 => /usr/lib64/libquadmath.so.0 (0x00007f74e80ec000) libm.so.6 => /lib64/libm.so.6 (0x00007f74e7e6a000) /lib64/ld-linux-x86-64.so.2 (0x00007f74e89c3000) so they use the same libc 5. valgrind with "bad" says: ==26497== Memcheck, a memory error detector ==26497== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==26497== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==26497== Command: ./a.out ==26497== ==26497== Invalid read of size 1 ==26497== at 0x51A58F2: __parse_one_specmb (in /lib64/libc-2.14.1.so) ==26497== by 0x518722F: vfprintf (in /lib64/libc-2.14.1.so) ==26497== by 0x5191178: printf (in /lib64/libc-2.14.1.so) ==26497== by 0x400519: main (in /home/seger/TEMP/a.out) ==26497== Address 0x4023b3 is not stack'd, malloc'd or (recently) free'd ==26497== ==26497== ==26497== Process terminating with default action of signal 11 (SIGSEGV) ==26497== Access not within mapped region at address 0x4023B3 ==26497== at 0x51A58F2: __parse_one_specmb (in /lib64/libc-2.14.1.so) ==26497== by 0x518722F: vfprintf (in /lib64/libc-2.14.1.so) ==26497== by 0x5191178: printf (in /lib64/libc-2.14.1.so) ==26497== by 0x400519: main (in /home/seger/TEMP/a.out) ==26497== If you believe this happened as a result of a stack ==26497== overflow in your program's main thread (unlikely but ==26497== possible), you can try to increase the size of the ==26497== main thread stack using the --main-stacksize= flag. ==26497== The main thread stack size used in this run was 16777216. ==26497== ==26497== HEAP SUMMARY: ==26497== in use at exit: 3,769 bytes in 15 blocks ==26497== total heap usage: 19 allocs, 4 frees, 11,909 bytes allocated ==26497== ==26497== LEAK SUMMARY: ==26497== definitely lost: 0 bytes in 0 blocks ==26497== indirectly lost: 0 bytes in 0 blocks ==26497== possibly lost: 0 bytes in 0 blocks ==26497== still reachable: 3,769 bytes in 15 blocks ==26497== suppressed: 0 bytes in 0 blocks ==26497== Rerun with --leak-check=full to see details of leaked memory ==26497== ==26497== For counts of detected and suppressed errors, rerun with: -v ==26497== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4) 6. valgrind with good says that all ok... quite strange :)