Xcode 4.0's linker now defaults on... -warn_compact_unwind When producing a final linked image, the linker processes the __eh_frame section and produces an __unwind_info section. Most FDE entries in the __eh_frame can be represented by a 32-bit value in the __unwind_info section. The option issues a warning for any function whose FDE cannot be expressed in the compact unwind format.
regardless of whether -no_compact_unwind is passed to the linker. This results in many bogus excess error failures in the testsuite due to these bogus warnings of the form... ld: warning: could not create compact unwind for I<int>::operator+(int =const&) const: dwarf uses DW_CFA_GNU_args_size The attached patch adds a regsub statement to prune.exp to suppress this testsuite noise on darwin when linking with Xcode 4.0. Tested on x86_64-apple-darwin10. Jack 2011-03-12 Jack Howarth <howa...@bromo.med.uc.edu> libstdc++-v3/ * testsuite/lib/prune.exp: Prune "could not create compact unwind for" warnings. gcc/ * testsuite/lib/prune.exp: Ditto. Index: libstdc++-v3/testsuite/lib/prune.exp =================================================================== --- libstdc++-v3/testsuite/lib/prune.exp (revision 170906) +++ libstdc++-v3/testsuite/lib/prune.exp (working copy) @@ -55,6 +55,9 @@ proc libstdc++-dg-prune { system text } regsub -all "(^|\n)\[^\n\]*warning: DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*_bound\[^\n\]*FORM_ref4\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*warning:\[^\n\]*TAG_variable: AT_location\[^\n\]*didn't have valid function low pc\[^\n\]*" $text "" text + # Ignore harmless warnings from Xcode 4.0. + regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text + foreach p $additional_prunes { if { [string length $p] > 0 } { # Following regexp matches a complete line containing $p. Index: gcc/testsuite/lib/prune.exp =================================================================== --- gcc/testsuite/lib/prune.exp (revision 170906) +++ gcc/testsuite/lib/prune.exp (working copy) @@ -56,6 +56,9 @@ proc prune_gcc_output { text } { regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous symbol\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*warning: DWARFDebugInfoEntry::AppendDependants\[^\n\]*AT_\[^\n\]*_bound\[^\n\]*FORM_ref4\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*warning:\[^\n\]*TAG_variable: AT_location\[^\n\]*didn't have valid function low pc\[^\n\]*" $text "" text + + # Ignore harmless warnings from Xcode 4.0. + regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text #send_user "After:$text\n"