This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]