Description of problem: While linking coreutils' src/group from two concurrent processes on F17, I got this: /usr/bin/ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. Version-Release number of selected component (if applicable): binutils-2.22.52.0.1-10.fc17.x86_64 How reproducible: about 1 in 10-20 trials, when running this command: rm -f src/{users,groups}{.o,}; make -j20 CFLAGS= WARN_CFLAGS= WERROR_CFLAGS= syntax-check Here is sample output from a few of the failing runs: useless_cpp_parens vulnerable_makefile_CVE-2009-4029 CC groups.o CC uname-arch.o CC hostname.o CC groups.o CC groups.o CCLD arch CC hostname.o CCLD arch CCLD arch CC hostname.o CCLD hostname CCLD groups /usr/bin/ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status mv: cannot stat `.deps/groups.Tpo': No such file or directory CCLD hostname make[1]: *** [groups] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: *** [groups.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [sc_check-AUTHORS] Error 2 make: *** Waiting for unfinished jobs.... CCLD groups make: *** [sc_option_desc_uppercase] Error 2 CCLD hostname ========================================================== 0.66 prohibit_canonicalize_without_use CCLD groups 0.66 prohibit_emacs__indent_tabs_mode__setting 0.66 prohibit_cloexec_without_use 0.67 prohibit_c_ctype_without_use CCLD groups 0.67 prohibit_cvs_keyword 0.67 prohibit_empty_lines_at_EOF 0.67 prohibit_fail_0 0.67 prohibit_dirent_without_use 0.68 prohibit_have_config_h 0.67 prohibit_error_without_use 0.68 prohibit_intprops_without_use 0.68 prohibit_hash_pjw_without_use 0.67 prohibit_framework_failure 0.67 prohibit_getopt_without_use 0.69 prohibit_long_options_without_use 0.68 prohibit_hash_without_use 0.69 prohibit_jm_in_m4 /usr/bin/0.70 prohibit_quote_without_use 0.69 prohibit_magic_number_exit ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status make[1]: *** [groups] Error 1 ========================================================== useless_cpp_parens vulnerable_makefile_CVE-2009-4029 CC groups.o CC groups.o CC groups.o 0.57 GFDL_version 0.58 NEWS_two_empty_lines 0.57 GPL_version 0.59 Wundef_boolean 0.60 cast_of_alloca_return_value 0.60 bindtextdomain 0.59 cast_of_argument_to_free 0.60 avoid_if_before_free 0.60 changelog 0.60 copyright_check CCLD groups 0.60 cast_of_x_alloc_return_value 0.60 const_long_option 0.60 dd_max_sym_length 0.61 error_message_uppercase 0.61 error_exit_success 0.61 error_message_warn_fatal 0.61 dd_O_FLAGS 0.61 m4_quote_check 0.61 error_message_period 0.61 makefile_TAB_only_indentation 0.61 file_system 0.61 makefile_at_at_check 0.61 makefile_path_separator_check 0.62 cross_check_PATH_usage_in_tests 0.61 immutable_NEWS 0.61 obsolete_symbols 0.61 no_exec_perl_coreutils /usr/bin/ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status 0.61 preprocessor_indentation 0.62 program_name make[1]: *** [groups] Error 1 0.62 prohibit_HAVE_MBRTOWC make: *** [sc_check-AUTHORS] Error 2 make: *** Waiting for unfinished jobs.... 0.62 prohibit_always_true_header_tests 0.62 prohibit_S_IS_definition 0.62 prohibit_argmatch_without_use CCLD groups 0.63 prohibit_assert_without_use 0.63 prohibit_c_ctype_without_use 0.63 prohibit_atoi_atof 0.63 prohibit_canonicalize_without_use 0.63 prohibit_cloexec_without_use 0.63 prohibit_backup_files 0.63 prohibit_continued_string_alpha_in_column_1 0.63 prohibit_close_stream_without_use /usr/bin/ld: can not read symbols: File truncated /usr/bin/ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status make[1]: *** [groups] Error 1 make: *** [sc_man_file_correlation] Error 2 CCLD groups ================================================================== unmarked_diagnostics useless_cpp_parens vulnerable_makefile_CVE-2009-4029 CC groups.o CC groups.o CC groups.o CCLD groups groups.o: file not recognized: File truncated collect2: error: ld returned 1 exit status make[1]: *** [groups] Error 1 make: *** [sc_check-AUTHORS] Error 2 make: *** Waiting for unfinished jobs.... CCLD groups /usr/bin/ld: BFD version 2.22.52.0.1-10.fc17 20120131 internal error, aborting at merge.c line 877 in _bfd_merged_section_offset /usr/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status make[1]: *** [groups] Error 1 make: *** [sc_option_desc_uppercase] Error 2 CCLD groups
Yes, I know that coreutils' "make syntax-check" rule should not be running multiple concurrent jobs that may build the same files in parallel. This might be the impetus finally to fix that buglet.
I've seen this running the mainline binutils testsuite on my x86_64 box, and with the system (Ubuntu 11.10) binutils. Like Jim, I saw it only with make -j. I modified merge.c to execute an illegal instruction rather than aborting, to generate a core. The core dump of .debug_str shows what looks very much like a memory bit flip, a string terminating \000 being replaced with \001. This code in _bfd_merged_section_offset p = secinfo->contents + offset - 1; while (p >= secinfo->contents && *p) --p; ++p; steps back over the flipped terminator, you look up the wrong string, eventually resulting in the abort. Possibly a random failure, but this particular abort is reported fairly regularly so I find it hard to discount. Another possibility is http://it.slashdot.org/story/12/03/06/0136243/amd-confirms-cpu-bug-found-by-dragonfly-bsds-matt-dillon A few more core files might help nail down the problem.
This message is a reminder that Fedora 17 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 17. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '17'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 17's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 17 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior to Fedora 17's end of life. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 17 changed to end-of-life (EOL) status on 2013-07-30. Fedora 17 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.
I just ran into something like this. It started happening when I started invoking make -j with two targets instead of one, on a Makefile generated by cmake. Evidently cmake's dependencies are not correct enough, and it ran the linker twice at the same time with the same commandline. This jibes with comment #1. See http://www.cmake.org/pipermail/cmake/2014-June/057897.html