http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51113
Bug #: 51113 Summary: [4.7 regression] rev. 181105 causes Firefox profiledbuild failure Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: gcov-profile AssignedTo: unassig...@gcc.gnu.org ReportedBy: mar...@trippelsdorf.de Firefox fails to build during the -fprofile-generate phase of a "profiledbuild": c++ -o js -fno-rtti -pedantic -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -W no-invalid-offsetof -Wno-variadic-macros -Werror=return-type -Wno-long-long -march=native -fvisibility-inlines-hidden -Wno-delete-non-virtual-dtor -p thread -pipe -DNDEBUG -DTRIMMED -fprofile-generate -O3 -fomit-frame-pointer js.i_o jsworkers.i_o jsoptparse.i_o jsheaptools.i_o -lpthread -Wl,-O1, --hash-style=gnu,--as-needed,--no-keep-memory,--gc-sections -fprofile-generate -Wl,-rpath-link,../../../dist/bin -Wl,-rpath-link,/var/tmp/mozilla-ce ntral/moz-build-dir/dist/lib -Wl,--whole-archive ../../../dist/lib/libmozutils.a -Wl,--no-whole-archive -rdynamic -L../../../dist/bin -L../../../di st/lib -Wl,-R/usr/lib64 -L/usr/lib64 -lplds4 -lplc4 -lnspr4 -lpthread -ldl ../editline/libeditline.a ../libjs_static.a -ldl jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::StringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail12StringOptionD1Ev' is not defi ned locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::StringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail12StringOptionD0Ev' is not defi ned locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::StringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZNK2js3cli6detail12ValuedOption8isValuedEv' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::IntOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail9IntOptionD1Ev' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::IntOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail9IntOptionD0Ev' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::IntOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZNK2js3cli6detail12ValuedOption8isValuedEv' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::MultiStringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail17MultiStringOptionD1Ev' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::MultiStringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZN2js3cli6detail17MultiStringOptionD0Ev' is not defined locally jsoptparse.i_o:jsoptparse.cpp:function vtable for js::cli::detail::MultiStringOption: warning: relocation refers to discarded section /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0/../../../../x86_64-pc-linux-gnu/bin/ld: error: hidden symbol '_ZNK2js3cli6detail12ValuedOption8isValuedEv' is not defined locally ... I've git bisected this to the following commit: 5014df5d02d9d90bb0a749a035f86bbfbe94bfa4 is the first bad commit commit 5014df5d02d9d90bb0a749a035f86bbfbe94bfa4 Author: nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Mon Nov 7 18:14:46 2011 +0000 libgcc/ * libgcov.c (struct gcov_fn_buffer): New struct. (buffer_fn_data): New helper. (gcov_exit): Rework for new gcov data structures. gcc/ * gcov.c (object_summary): Replace with ... (object_runs): ... this. (process_file): Remove functions with no data. (generate_results): Ignore files with no lines. (release_function): New helper, broken out of ... (release_structures): ... here. Use it. (read_count_file): Adjust for new data file format. (output_lines): Use object_runs. * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete. (struct gcov_ctr_info): Move definition. (struct gcov_fn_info): Add key field, use gcov_ctr_info for trailing array. (struct gcov_info): Add merge function array, remove mask and counts. Trailing array is array of pointers to function info. * coverage.c (struct function_list): Replace counter numbers with counter arrays. Add fndecl field. GTYify. (counts_entry): Remove chain workspace. (functions_head): GTYify. (prg_n_ctrs): Remove. (fn_v_ctrs): New. (tree_ctr_tables): Remove. (read_counts_file): Cope with blank entries and expect program summaries before functions. Don't warn on missing entries. (coverage_counter_alloc): Allocate individual function arrays. (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust for individual function arrays. (coverage_end_function): GTYify function list object. Finalize function's counter arrays. (build_var): New. Create a counter-related variable with appropriate linkage. (build_fn_info_type): Adjust for new runtime structure. (build_fn_info_value): Rename to ... (build_fn_info): ... here. Build new format data. (build_ctr_info_type, build_ctr_info_value): Remove. (build_info_type): New. Build new format data structure. (build_info): Adjust for new format data. (create_coverage): Likewise. * gcov-dump.c (tag_function): Recognize placeholders. gcc/testsuite/ * gcc.dg/profile-dir-1.c: Adjust final scan. * gcc.dg/profile-dir-2.c: Adjust final scan. * gcc.dg/profile-dir-3.c: Adjust final scan. * gcc.misc-tests/gcov.exp: Adjust regexp. * gcc.misc-tests/gcov-12.c: New. * gcc.misc-tests/gcov-13.c: New. * gcc.misc-tests/gcovpart-13b.c: New. * gcc.misc-tests/gcov-14.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181105 138bc75d-0d04-0410-961f-82ee72b054a4 Reverting the commit "fixes" the problem.