The following change
2011-05-26 Rainer Orth <[email protected]>
PR gcov-profile/48845
causes testsuite failures on C6X. Specifically,
@@ -495,11 +495,16 @@ proc check_profiling_available { test_wh
# These conditions depend on the argument so examine them before
# looking at the cache variable.
+ # Tree profiling requires TLS runtime support.
+ if { $test_what == "-fprofile-generate" } {
+ return [check_effective_target_tls_runtime]
+ }
+
skips all the further tests in that function if
check_effective_target_tls_runtime returns true. (I'm not sure why it
does that on C6X - it seems to link in emutls stuff?) We then fail with
unresolved __gcov symbols.
Fixed with the following patch. I've removed the new avr special case,
assuming it was intended to fix the same issue. Ok?
Bernd
* testsuite/lib/target-supports.exp (check_profiling_available):
Don't rely solely on TLS tests for -fprofile-generate, fall
through to the other code.
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp (revision 178293)
+++ gcc/testsuite/lib/target-supports.exp (working copy)
@@ -459,12 +459,9 @@ proc check_profiling_available { test_wh
# Tree profiling requires TLS runtime support.
if { $test_what == "-fprofile-generate" } {
- # AVR does not support profile generation because
- # it does not implement needed support functions.
- if { [istarget avr-*-*] } {
+ if { ![check_effective_target_tls_runtime] } {
return 0
}
- return [check_effective_target_tls_runtime]
}
# Support for -p on solaris2 relies on mcrt1.o which comes with the