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: [email protected]
ReportedBy: [email protected]
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.