GCC build failed on hppa-unknown-linux-gnu

Daniel Jacobowitz drow@mvista.com
Sun Jan 18 01:10:00 GMT 2004


On Sat, Jan 17, 2004 at 07:57:10PM -0500, John David Anglin wrote:
> > > http://gcc.gnu.org/ml/gcc-regression/2004-01/msg00147.html
> > If you can check the attached patch after reverting the Geoff's, it would help.
> 
> Oh, crum :-(  It seems to be break the PA port day.  I tried the patch
> but now I have a new failure:
> 
> gcc   -g  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -fno-common   -DHAVE_CONFIG_H  -o cc1 \
> 	c-parse.o c-lang.o c-pretty-print.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o c-objc-common.o c-dump.o c-pch.o libcpp.a  main.o libbackend.a ../libiberty/libiberty.a
> libbackend.a(pa.o)(.text+0x11324): In function `output_lbranch':
> ../../gcc/gcc/config/pa/pa.c:6127: undefined reference to `final_scan_insn'
> libbackend.a(pa.o)(.text+0x13c3c): In function `output_call':
> ../../gcc/gcc/config/pa/pa.c:7180: undefined reference to `final_scan_insn'
> collect2: ld returned 1 exit status

This was obviously my goof.  I somehow determined that no ports called
final_scan_insn, tested on two that didn't, and then made it static.
Does this untested patch work for you?

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

2004-01-17  Daniel Jacobowitz  <drow@mvista.com>

	* final.c (final_scan_insn): Make non-static again.
	* output.h (final_scan_insn): Re-add prototype.
	* config/arc/arc.c (arc_output_function_epilogue): Add NULL
	to final_scan_insn call.
	* config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
	* config/mips/mips.c (mips_output_conditional_branch): Likewise.
	* config/pa/pa.c (output_lbranch, output_call): Likewise.
	* config/sh/sh.c (print_slot): Likewise.
	* config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
	(output_sibcall, sparc_flat_function_epilogue): Likewise.

Index: final.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/final.c,v
retrieving revision 1.305
diff -u -p -r1.305 final.c
--- final.c	17 Jan 2004 22:11:58 -0000	1.305
+++ final.c	18 Jan 2004 01:07:08 -0000
@@ -235,7 +235,6 @@ static int final_addr_vec_align (rtx);
 #ifdef HAVE_ATTR_length
 static int align_fuzz (rtx, rtx, int, unsigned);
 #endif
-static rtx final_scan_insn (rtx, FILE *, int, int, int, int *);
 
 /* Initialize data in final at the beginning of a compilation.  */
 
@@ -1638,7 +1637,7 @@ output_alternate_entry_point (FILE *file
    at the beginning of the second basic block, whichever comes
    first.  */
 
-static rtx
+rtx
 final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED,
 		 int prescan, int nopeepholes ATTRIBUTE_UNUSED,
 		 int *seen)
Index: output.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/output.h,v
retrieving revision 1.134
diff -u -p -r1.134 output.h
--- output.h	17 Jan 2004 22:11:58 -0000	1.134
+++ output.h	18 Jan 2004 01:07:08 -0000
@@ -68,6 +68,11 @@ extern void final_end_function (void);
 /* Output assembler code for some insns: all or part of a function.  */
 extern void final (rtx, FILE *, int, int);
 
+/* The final scan for one insn, INSN.  Args are same as in `final', except
+   that INSN is the insn being scanned.  Value returned is the next insn to
+   be scanned.  */
+extern rtx final_scan_insn (rtx, FILE *, int, int, int, int *);
+
 /* Replace a SUBREG with a REG or a MEM, based on the thing it is a
    subreg of.  */
 extern rtx alter_subreg (rtx *);
Index: config/arc/arc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arc/arc.c,v
retrieving revision 1.46
diff -u -p -r1.46 arc.c
--- config/arc/arc.c	25 Dec 2003 15:17:35 -0000	1.46
+++ config/arc/arc.c	18 Jan 2004 01:07:08 -0000
@@ -1,5 +1,5 @@
 /* Subroutines used for code generation on the Argonaut ARC cpu.
-   Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -1303,7 +1303,7 @@ arc_output_function_epilogue (FILE *file
       /* ??? If stack intactness is important, always emit now.  */
       if (MUST_SAVE_RETURN_ADDR && epilogue_delay != NULL_RTX)
 	{
-	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
+	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
 	  epilogue_delay = NULL_RTX;
 	}
 
@@ -1335,7 +1335,8 @@ arc_output_function_epilogue (FILE *file
 	{
 	  if (epilogue_delay)
 	    {
-	      final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
+	      final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1,
+			       NULL);
 	    }
 	}
 
@@ -1360,7 +1361,7 @@ arc_output_function_epilogue (FILE *file
 	    abort ();
 	  if (restored < size)
 	    abort ();
-	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
+	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
 	}
       else if (frame_pointer_needed && !fp_restored_p)
 	{
Index: config/cris/cris.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/cris/cris.c,v
retrieving revision 1.46
diff -u -p -r1.46 cris.c
--- config/cris/cris.c	15 Oct 2003 14:07:57 -0000	1.46
+++ config/cris/cris.c	18 Jan 2004 01:07:08 -0000
@@ -1,5 +1,6 @@
 /* Definitions for GCC.  Part of the machine description for CRIS.
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
+   Free Software Foundation, Inc.
    Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
 
 This file is part of GCC.
@@ -1259,7 +1260,7 @@ cris_target_asm_function_epilogue (FILE 
 
       /* Output the delay-slot-insn the mandated way.  */
       final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
-		       file, 1, -2, 1);
+		       file, 1, -2, 1, NULL);
     }
   else if (file)
     {
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.362
diff -u -p -r1.362 mips.c
--- config/mips/mips.c	13 Jan 2004 01:58:44 -0000	1.362
+++ config/mips/mips.c	18 Jan 2004 01:07:09 -0000
@@ -9108,7 +9108,7 @@ mips_output_conditional_branch (rtx insn
             /* Output delay slot instruction.  */
             rtx insn = final_sequence;
             final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file,
-                             optimize, 0, 1);
+                             optimize, 0, 1, NULL);
             INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
           }
 	else
@@ -9127,7 +9127,7 @@ mips_output_conditional_branch (rtx insn
             /* Output delay slot instruction.  */
             rtx insn = final_sequence;
             final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file,
-                             optimize, 0, 1);
+                             optimize, 0, 1, NULL);
             INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
           }
 	else
Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.235
diff -u -p -r1.235 pa.c
--- config/pa/pa.c	12 Jan 2004 03:42:08 -0000	1.235
+++ config/pa/pa.c	18 Jan 2004 01:07:10 -0000
@@ -1,6 +1,6 @@
 /* Subroutines for insn-output.c for HPPA.
    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003 Free Software Foundation, Inc.
+   2002, 2003, 2004 Free Software Foundation, Inc.
    Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c
 
 This file is part of GCC.
@@ -6125,7 +6125,7 @@ output_lbranch (rtx dest, rtx insn)
 	abort ();
 
       final_scan_insn (NEXT_INSN (insn), asm_out_file,
-		       optimize, 0, 0);
+		       optimize, 0, 0, NULL);
 
       /* Now delete the delay insn.  */
       PUT_CODE (NEXT_INSN (insn), NOTE);
@@ -7129,7 +7129,7 @@ output_call (rtx insn, rtx call_dest, in
 	      && !sibcall)
 	    {
 	      final_scan_insn (NEXT_INSN (insn), asm_out_file,
-			       optimize, 0, 0);
+			       optimize, 0, 0, NULL);
 
 	      /* Now delete the delay insn.  */
 	      PUT_CODE (NEXT_INSN (insn), NOTE);
@@ -7177,7 +7177,8 @@ output_call (rtx insn, rtx call_dest, in
 	      /* A non-jump insn in the delay slot.  By definition we can
 		 emit this insn before the call (and in fact before argument
 		 relocating.  */
-	      final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, 0);
+	      final_scan_insn (NEXT_INSN (insn), asm_out_file, optimize, 0, 0,
+			       NULL);
 
 	      /* Now delete the delay insn.  */
 	      PUT_CODE (NEXT_INSN (insn), NOTE);
Index: config/sh/sh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
retrieving revision 1.248
diff -u -p -r1.248 sh.c
--- config/sh/sh.c	17 Jan 2004 01:19:20 -0000	1.248
+++ config/sh/sh.c	18 Jan 2004 01:07:11 -0000
@@ -1096,7 +1096,7 @@ output_movedouble (rtx insn ATTRIBUTE_UN
 static void
 print_slot (rtx insn)
 {
-  final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file, optimize, 0, 1);
+  final_scan_insn (XVECEXP (insn, 0, 1), asm_out_file, optimize, 0, 1, NULL);
 
   INSN_DELETED_P (XVECEXP (insn, 0, 1)) = 1;
 }
Index: config/sparc/sparc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
retrieving revision 1.271
diff -u -p -r1.271 sparc.c
--- config/sparc/sparc.c	10 Dec 2003 15:25:41 -0000	1.271
+++ config/sparc/sparc.c	18 Jan 2004 01:07:12 -0000
@@ -1,6 +1,6 @@
 /* Subroutines for insn-output.c for SPARC.
    Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+   1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    Contributed by Michael Tiemann (tiemann@cygnus.com)
    64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
    at Cygnus Support.
@@ -4539,7 +4539,7 @@ sparc_nonflat_function_epilogue (FILE *f
 		     ? "\treturn\t%i7+12\n"
 		     : "\treturn\t%i7+8\n", file);
 	      final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
-			       file, 1, 0, 0);
+			       file, 1, 0, 0, NULL);
 	    }
 	  else
 	    {
@@ -4564,7 +4564,7 @@ sparc_nonflat_function_epilogue (FILE *f
 	      insn = emit_jump_insn (insn);
 
 	      sparc_emitting_epilogue = true;
-	      final_scan_insn (insn, file, 1, 0, 1);
+	      final_scan_insn (insn, file, 1, 0, 1, NULL);
 	      sparc_emitting_epilogue = false;
 	    }
 	}
@@ -4586,7 +4586,7 @@ sparc_nonflat_function_epilogue (FILE *f
 	abort ();
       fprintf (file, "\t%s\n", ret);
       final_scan_insn (XEXP (current_function_epilogue_delay_list, 0),
-		       file, 1, 0, 1);
+		       file, 1, 0, 1, NULL);
     }
   /* Output 'nop' instead of 'sub %sp,-0,%sp' when no frame, so as to
 	 avoid generating confusing assembly language output.  */
@@ -4629,7 +4629,7 @@ output_sibcall (rtx insn, rtx call_opera
 	  if (! delay)
 	    abort ();
 
-	  final_scan_insn (delay, asm_out_file, 1, 0, 1);
+	  final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
 	  PATTERN (delay) = gen_blockage ();
 	  INSN_CODE (delay) = -1;
 	  delay_slot = 0;
@@ -4659,7 +4659,7 @@ output_sibcall (rtx insn, rtx call_opera
 	  if (! delay)
 	    abort ();
 
-	  final_scan_insn (delay, asm_out_file, 1, 0, 1);
+	  final_scan_insn (delay, asm_out_file, 1, 0, 1, NULL);
 	  PATTERN (delay) = gen_blockage ();
 	  INSN_CODE (delay) = -1;
 	  delay_slot = 0;
@@ -7916,7 +7916,7 @@ sparc_flat_function_epilogue (FILE *file
 	{
 	  if (size)
 	    abort ();
-	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1);
+	  final_scan_insn (XEXP (epilogue_delay, 0), file, 1, -2, 1, NULL);
 	}
 
       else if (size > 4096)



More information about the Gcc-patches mailing list