powerpc testsuite regressions (was Re: Bootstrap miscomparison on mainline with checking disabled)

Andrew Pinski pinskia@physics.uc.edu
Thu May 20 16:01:00 GMT 2004


We are still having these regressions on powerpc-unknown-linux-gnu.
They happen at -O0 and only on ppc, so I doubt they're related to the
phiopt changes.  The errors are all similar, we are not emitting some
functions that the linker is looking for.
These may be related to cgraph changes.  Zack, could you check these
out?  Your changes to cgraph.c are the only thing I can think of that
may be causing these errors.
Executing on host: /mnt/build/dnovillo/sbox/gcc/bld.cure81/gcc/xgcc  
-B/mnt/build/dnovillo/sbox/gcc/bld.cure81/gcc/  
/home/cygnus/dnovillo/perf/sbox/gcc/local.ppc/src/gcc/testsuite/gcc.c- 
torture/execute/20001130-1.c  -w  -O0   -lm   -o  
/home/cygnus/dnovillo/perf/sbox/gcc/local.ppc/bld.cure81/gcc/ 
testsuite/20001130-1.x0    (timeout = 300)
/tmp/ccSbclDE.o(.text+0x38): In function `foo':
: undefined reference to `bar'
collect2: ld returned 1 exit status
compiler exited with status 1


I think I know what is going on and how to fix it.

cgraph_mark_needed_node used to be called from mark_referenced which  
made
the function be in the output queue.  Now cgraph_mark_needed_node is not
called when assembling the name (unlike most targets which call  
output_addr_const
rs6000 does not).

OK? Bootstrapped on powerpc-apple-darwin with no regressions.

Thanks,
Andrew Pinski
ChangeLog:
	* rs6000.c (print_operand) <case 'P'>: Call
	mark_decl_referenced before assemble_name.
Patch:
Index: rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.643
diff -u -p -r1.643 rs6000.c
--- rs6000.c	15 May 2004 12:39:34 -0000	1.643
+++ rs6000.c	20 May 2004 15:56:52 -0000
@@ -9682,6 +9682,9 @@ print_operand (FILE *file, rtx x, int co
       if (GET_CODE (x) != SYMBOL_REF)
 	abort ();
+      if (SYMBOL_REF_DECL (x))
+        mark_decl_referenced (SYMBOL_REF_DECL (x));
+
       if (XSTR (x, 0)[0] != '.')
 	{
 	  switch (DEFAULT_ABI)



More information about the Gcc mailing list