Patchwork [Revised] Fix PR42070 by pruning harmless linker warnings on darwin

login
register
mail settings
Submitter Jack Howarth
Date Sept. 10, 2010, 4:23 a.m.
Message ID <20100910042358.GA14936@bromo.med.uc.edu>
Download mbox | patch
Permalink /patch/64351/
State New
Headers show

Comments

Jack Howarth - Sept. 10, 2010, 4:23 a.m.
This is a revision of the previously approved patch which corrects the omission of
processing comp_output from the compilation of the execname2 executable, using the
profiling data, through prune_warnings in profopt.exp. The regex used in prune.exp
is also corrected to match the trailing text on the Xcode linker warnings.
   Currently darwin10 is failing the excessive error test for the compilation of 
g++.dg/tree-prof/partition1.C and g++.dg/tree-prof/partition2.C with -g  -fprofile-use
due to the bogus linker warnings "ld: warning: can't add line info to anonymous symbol".
This warning has been removed from the next Xcode release due to the excessive noise
it generates when linking. Since the resulting binaries created with these bogus
warnings all execute fine, this warning should be ignored. The attached patch adds an
an entry to gcc/testsuite/lib/prune.exp and teaches profopt.exp to prune warnings on
the compilation of the $execname2 executable. Tested on x86_64-apple-darwin10. Okay for 
gcc trunk as well as gcc 4.5.2?
             Jack
ps I added the pruning to gcc/testsuite/lib/prune.exp instead of just adding a
dg-prune-output entry to the test cases because that approach produces warnings
during the testsuite run of the form...

WARNING: profopt.exp does not support dg-prune-output

2010-09-10  Jack Howarth <howarth@bromo.med.uc.edu>

	PR target/42070
	* gcc/testsuite/lib/profopt.exp: Prune warnings on execname2 compile.
	* gcc/testsuite/lib/prune.exp: Prune "can't add line info" warnings.
Mike Stump - Sept. 10, 2010, 4:54 a.m.
On Sep 9, 2010, at 9:23 PM, Jack Howarth wrote:
> Okay for gcc trunk as well as gcc 4.5.2?

Ok.
Jack Howarth - Sept. 10, 2010, 12:08 p.m.
On Thu, Sep 09, 2010 at 09:54:17PM -0700, Mike Stump wrote:
> On Sep 9, 2010, at 9:23 PM, Jack Howarth wrote:
> > Okay for gcc trunk as well as gcc 4.5.2?
> 
> Ok.

Mike,
   Interestingly, removing the noise from the g++.dg/tree-prof testsuite results highlights the fact
that we have a recent regression at -m64 on x86_64-apple-darwin10...

http://gcc.gnu.org/ml/gcc-testresults/2010-09/msg00922.html

Executing on host: /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/testsuite/g++/../../g++ -B/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/testsuite/g++/../../ /sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20100909/gcc/testsuite/g++.dg/tree-prof/partition2.C  -nostdinc++ -I/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/libstdc++-v3/include/x86_64-apple-darwin10.5.0 -I/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/libstdc++-v3/include -I/sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20100909/libstdc++-v3/libsupc++ -I/sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20100909/libstdc++-v3/include/backward -I/sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20100909/libstdc++-v3/testsuite/util -fmessage-length=0  -O3 -g  -fnon-call-exceptions -freorder-blocks-and-partition -fprofile-use    -L/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/./libstdc++-v3/src/.libs  -B/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/./libstdc++-v3/src/.libs  -L/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/./libstdc++-v3/src/.libs -L/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.5.0/./libiberty  -multiply_defined suppress -lm   -m64 -o /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/testsuite/g++/partition2.x52    (timeout = 300)
ld: in /var/tmp//ccu5ycPg.o, section not found for address 0x696765625F617863^M
collect2: ld returned 1 exit status^M
compiler exited with status 1
output is:
ld: in /var/tmp//ccu5ycPg.o, section not found for address 0x696765625F617863^M
collect2: ld returned 1 exit status^M

FAIL: g++.dg/tree-prof/partition2.C compilation,  -O3 -g  -fprofile-use
UNRESOLVED: g++.dg/tree-prof/partition2.C execution,    -O3 -g  -fprofile-use

Can you do the commit of http://gcc.gnu.org/ml/gcc-patches/2010-09/msg00889.html so we can
track that one more clearly.
          Jack

Patch

Index: gcc/testsuite/lib/profopt.exp
===================================================================
--- gcc/testsuite/lib/profopt.exp	(revision 164140)
+++ gcc/testsuite/lib/profopt.exp	(working copy)
@@ -328,6 +328,10 @@ 
 	lappend options "additional_flags=$option $extra_flags $feedback_option"
 	set optstr "$option $feedback_option"
 	set comp_output [${tool}_target_compile "$src" "$execname2" "executable" $options]
+
+	# Prune warnings we know are unwanted.
+	set comp_output [prune_warnings $comp_output]
+
 	if ![${tool}_check_compile "$testcase compilation" $optstr $execname2 $comp_output] {
  	    unresolved "$testcase execution,   $optstr"
 	    continue
Index: gcc/testsuite/lib/prune.exp
===================================================================
--- gcc/testsuite/lib/prune.exp	(revision 164140)
+++ gcc/testsuite/lib/prune.exp	(working copy)
@@ -49,6 +49,9 @@ 
     regsub -all "(^|\n)\[^\n\]*file path prefix \[^\n\]* never used" $text "" text
     regsub -all "(^|\n)\[^\n\]*linker input file unused since linking not done" $text "" text
 
+    # Ignore harmless warnings from Xcode 3.2.x.
+    regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous symbol\[^\n\]*" $text "" text
+
     #send_user "After:$text\n"
 
     return $text