another powerpc64-linux -gstabs fix

Alan Modra amodra@bigpond.net.au
Thu Aug 1 17:35:00 GMT 2002


gcc/testsuite/gcc.dg/debug/20020220-1.c was failing with

/tmp/ccdmeJm8.s: Assembler messages:
/tmp/ccdmeJm8.s:147: Error: subtraction of two symbols in different sections `.text' {.text section} - `bar' {.opd section} at file address 0000000000000200
[snip]

	* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Define.
	(DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC): Define.

OK mainline?

Index: gcc/config/rs6000/linux64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux64.h,v
retrieving revision 1.22
diff -u -p -r1.22 linux64.h
--- gcc/config/rs6000/linux64.h	18 Jul 2002 00:15:32 -0000	1.22
+++ gcc/config/rs6000/linux64.h	2 Aug 2002 00:28:26 -0000
@@ -330,6 +330,29 @@ do									\
   }									\
 while (0)
 
+/* Similarly, we want the function code label here.  */
+#define DBX_OUTPUT_BRAC(FILE, NAME, BRAC) \
+  do									\
+    {									\
+      const char *flab;							\
+      fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, BRAC);			\
+      assemble_name (FILE, NAME);					\
+      putc ('-', FILE);							\
+      if (current_function_func_begin_label != NULL_TREE)		\
+	flab = IDENTIFIER_POINTER (current_function_func_begin_label);	\
+      else								\
+	{								\
+	  putc ('.', FILE);						\
+	  flab = XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0);	\
+	}								\
+      assemble_name (FILE, flab);					\
+      putc ('\n', FILE);						\
+    }									\
+  while (0)
+
+#define DBX_OUTPUT_LBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_LBRAC)
+#define DBX_OUTPUT_RBRAC(FILE, NAME) DBX_OUTPUT_BRAC (FILE, NAME, N_RBRAC)
+
 /* Override sysv4.h as these are ABI_V4 only.  */
 #undef	ASM_OUTPUT_REG_PUSH
 #undef	ASM_OUTPUT_REG_POP

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Gcc-patches mailing list