@@ -343,6 +343,22 @@ proc libstdc++_exit { } {
}
}
+proc ${tool}_check_unsupported_p { output } {
+ if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] {
+ return "memory full"
+ }
+ if { [regexp "(^|\n)\[^\n\]*: relocation truncated to fit" $output]
+ && [check_effective_target_tiny] } {
+ return "memory full"
+ }
+
+ if { [istarget spu-*-*] && \
+ [string match "*exceeds local store*" $output] } {
+ return "memory full"
+ }
+ return ""
+}
+
# Callback from system dg-test.
proc libstdc++-dg-test { prog do_what extra_tool_flags } {
# Set up the compiler flags, based on what we're going to do.
@@ -455,6 +471,7 @@ proc v3_target_compile { source dest type options } {
global cxxldflags
global includes
global STATIC_LIBCXXFLAGS
+ global tool
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
lappend options "libs=${gluefile}"
@@ -483,7 +500,14 @@ proc v3_target_compile { source dest type options } {
lappend options "compiler=$cxx_final"
lappend options "timeout=[timeout_value]"
- return [target_compile $source $dest $type $options]
+ set comp_output [target_compile $source $dest $type $options]
+ set unsupported_message [${tool}_check_unsupported_p $comp_output]
+
+ if { $unsupported_message != "" } {
+ unsupported "$dest: $unsupported_message"
+ return ""
+ }
+ return $comp_output
}
@@ -498,6 +522,7 @@ proc v3_target_compile_as_c { source dest type options } {
global cc
global cxxflags
global STATIC_LIBCXXFLAGS
+ global tool
if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
lappend options "libs=${gluefile}"
@@ -551,7 +576,14 @@ proc v3_target_compile_as_c { source dest type options } {
lappend options "compiler=$cc_final"
lappend options "timeout=[timeout_value]"
- return [target_compile $source $dest $type $options]
+ set comp_output [target_compile $source $dest $type $options]
+ set unsupported_message [${tool}_check_unsupported_p $comp_output]
+
+ if { $unsupported_message != "" } {
+ unsupported "$dest: $unsupported_message"
+ return ""
+ }
+ return $comp_output
}
# Build the support objects linked in with the libstdc++ tests. In