https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64123
Bug ID: 64123 Summary: [5 Regression] Instrumented Firefox segfaults on start Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: gcov-profile Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Building Firefox with PGO results in a segfault in the instrumented browser: markus@x4 bin % gdb ./firefox Reading symbols from ./firefox...done. (gdb) set follow-fork-mode parent (gdb) run Starting program: /var/tmp/moz-build-dir/dist/bin/firefox [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Loading JavaScript value pretty-printers; see js/src/gdb/README. If they cause trouble, type: disable pretty-printer .* SpiderMonkey [New Thread 0x7fffe7caa700 (LWP 17887)] [Thread 0x7fffe7caa700 (LWP 17887) exited] Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7429fdd in fread () from /lib/libc.so.6 (gdb) bt #0 0x00007ffff7429fdd in fread () from /lib/libc.so.6 #1 0x00007ffff7feff59 in gcov_read_words (words=words@entry=2) at ../../../gcc/libgcc/../gcc/gcov-io.c:518 #2 0x00007ffff7ff055e in __gcov_read_counter () at ../../../gcc/libgcc/../gcc/gcov-io.c:555 #3 0x00007ffff7fefc8d in gcov_get_counter () at ../../../gcc/libgcc/libgcov.h:316 #4 __gcov_merge_add (counters=0x7ffff7ff4a10 <__gcov0._Z30mozalloc_set_oom_abort_handlerPFvmE>, n_counters=<optimized out>) at ../../../gcc/libgcc/libgcov-merge.c:56 #5 0x00007ffff1f2a736 in merge_one_data (crc32=3590671895, eof_pos_p=<synthetic pointer>, summary_pos_p=<synthetic pointer>, this_prg=0x7fffffff8620, prg_p=0x7fffffff9df0, gi_ptr=0x7ffff7ff4540, filename=0x48fb70 "/var/tmp/moz-build-dir/memory/mozalloc/Unified_cpp_memory_mozalloc0.gcda") at ../../../gcc/libgcc/libgcov-driver.c:472 #6 dump_one_gcov (all_prg=<synthetic pointer>, this_prg=0x7fffffff8620, crc32=3590671895, run_counted=0, gf=<synthetic pointer>, gi_ptr=0x7ffff7ff4540) at ../../../gcc/libgcc/libgcov-driver.c:787 #7 gcov_do_dump (list=<optimized out>, run_counted=0) at ../../../gcc/libgcc/libgcov-driver.c:846 #8 0x00007ffff1f2aab2 in __gcov_dump_one (root=root@entry=0x7ffff7ff5a80 <__gcov_root>) at ../../../gcc/libgcc/libgcov-driver.c:858 #9 0x00007ffff1f2acd8 in __gcov_dump_int () at ../../../gcc/libgcc/libgcov-interface.c:164 #10 0x00007ffff1f2ab7f in __gcov_flush () at ../../../gcc/libgcc/libgcov-interface.c:88 #11 0x00007ffff1f28bc6 in __gcov_fork () at ../../../gcc/libgcc/libgcov-interface.c:179 #12 0x00007ffff0fc4698 in fire_glxtest_process() () from /var/tmp/moz-build-dir/dist/bin/libxul.so #13 0x00007ffff0fb7ab2 in XREMain::XRE_mainInit(bool*) () from /var/tmp/moz-build-dir/dist/bin/libxul.so #14 0x00007ffff0fbdda3 in XREMain::XRE_main(int, char**, nsXREAppData const*) () from /var/tmp/moz-build-dir/dist/bin/libxul.so #15 0x00007ffff0fbe47b in XRE_main () from /var/tmp/moz-build-dir/dist/bin/libxul.so #16 0x0000000000404e59 in do_main(int, char**, nsIFile*) [clone .constprop.0] () #17 0x0000000000403b2f in main () (gdb) up #1 0x00007ffff7feff59 in gcov_read_words (words=words@entry=2) at ../../../gcc/libgcc/../gcc/gcov-io.c:518 518 excess = fread (gcov_var.buffer + gcov_var.length, (gdb) l 513 #else 514 if (gcov_var.length + words > gcov_var.alloc) 515 gcov_allocate (gcov_var.length + words); 516 excess = gcov_var.alloc - gcov_var.length; 517 #endif 518 excess = fread (gcov_var.buffer + gcov_var.length, 519 1, excess << 2, gcov_var.file) >> 2; 520 gcov_var.length += excess; 521 if (gcov_var.length < words) 522 {