Patch to provide a default for ASM_OUTPUT_INTERNAL_LABEL

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Thu Aug 22 10:40:00 GMT 2002


I was going to make ASM_OUTPUT_INTERNAL_LABEL into a target hook, but
the patch got so large I decided it was worth it to insert an entry
into defaults.h and two it in two stages.  I.e. first remove all the
unnecessary definitions leaving behind the defaults.h entry and the
"custom" macro definitions.  Then step 2 would be creating the default
hook and custom target hooks and changing all of the macro calls in
gcc to target hook calls.  The only redundant work is the actual
defaults.h insert and removal of the fallback definition.

Here's step 1 of this process, (even split up just this part is 40K.)
Step 2 will follow later.

Take a close look at the default I came up with.  It calls
ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.  This will slightly
bloat cc1 until step 2 when I move output_generate_label into a
function.  (The temporary bloat is around 15k on solaris2.)

Also in a few cases, the OUTPUT and GENERATE macros were slightly
different in that (slightly simplified) the OUTPUT one used
asm_fprintf ("%0L") and the GENERATE one used sprintf ("%s",
LOCAL_LABEL_PREFIX).  E.g. see config/svr3.h or some of the m68k/*
files.  While both would output the LOCAL_LABEL_PREFIX, don't know if
the zero modifier (or lack of it) is significant.

Anyway, bootstrapped on sparc-sun-solaris2.7.  I plan to do some
cross-compile sanity checks but first I wanted to get feedback on
whether the default I chose was good and the %0L thing.

		Thanks,
		--Kaveh


2002-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* alpha.h (ASM_OUTPUT_INTERNAL_LABEL): Delete.
	* avr.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* c4x.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* cris.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* d30v.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* darwin.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* dsp16xx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* h8300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/att.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/bsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/i386-coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx-ng.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/lynx.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i386/sco5.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* i960/i960.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/3b1.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/amix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/atari.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/mot3300.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m68k/tower-as.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* m88k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mcore.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mips.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* mmix-protos.h (mmix_asm_output_internal_label): Likewise.
	* mmix.c (mmix_asm_output_internal_label): Likewise.
	* mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* ns32k.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pa.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* pdp11.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* romp.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/coff.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sh/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/pbd.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* sparc/vxsim.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* stormy16.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* svr3.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
	* vax.h (ASM_OUTPUT_INTERNAL_LABEL): Likewise.

	* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): Define.

diff -rup orig/egcc-CVS20020822/gcc/config/alpha/alpha.h egcc-CVS20020822/gcc/config/alpha/alpha.h
--- orig/egcc-CVS20020822/gcc/config/alpha/alpha.h	Wed Aug 14 20:37:51 2002
+++ egcc-CVS20020822/gcc/config/alpha/alpha.h	Thu Aug 22 12:31:25 2002
@@ -1749,12 +1749,6 @@ do {						\
 
 #define USER_LABEL_PREFIX ""
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "$%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a label for a jump table.  Arguments are the same as
    for ASM_OUTPUT_INTERNAL_LABEL, except the insn for the jump table is
    passed.  */
diff -rup orig/egcc-CVS20020822/gcc/config/avr/avr.h egcc-CVS20020822/gcc/config/avr/avr.h
--- orig/egcc-CVS20020822/gcc/config/avr/avr.h	Sun Aug 11 14:47:03 2002
+++ egcc-CVS20020822/gcc/config/avr/avr.h	Thu Aug 22 12:31:25 2002
@@ -2103,25 +2103,6 @@ do {									 \
    setting the `DECL_ONE_ONLY' flag is enough to mark a declaration to
    be emitted as one-only.  */
 
-#define ASM_OUTPUT_INTERNAL_LABEL(STREAM, PREFIX, NUM)	\
-fprintf(STREAM, ".%s%d:\n", PREFIX, NUM)
-/* A C statement to output to the stdio stream STREAM a label whose
-   name is made from the string PREFIX and the number NUM.
-
-   It is absolutely essential that these labels be distinct from the
-   labels used for user-level functions and variables.  Otherwise,
-   certain programs will have name conflicts with internal labels.
-
-   It is desirable to exclude internal labels from the symbol table
-   of the object file.  Most assemblers have a naming convention for
-   labels that should be excluded; on many systems, the letter `L' at
-   the beginning of a label has this effect.  You should find out what
-   convention your system uses, and follow it.
-
-   The usual definition of this macro is as follows:
-
-   fprintf (STREAM, "L%s%d:\n", PREFIX, NUM)  */
-
 #define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM)	\
 sprintf (STRING, "*.%s%d", PREFIX, NUM)
 /* A C statement to store into the string STRING a label whose name
diff -rup orig/egcc-CVS20020822/gcc/config/c4x/c4x.h egcc-CVS20020822/gcc/config/c4x/c4x.h
--- orig/egcc-CVS20020822/gcc/config/c4x/c4x.h	Tue Aug 20 22:37:34 2002
+++ egcc-CVS20020822/gcc/config/c4x/c4x.h	Thu Aug 22 12:31:25 2002
@@ -1724,12 +1724,6 @@ c4x_file_end (FILE)
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM)	\
-	fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/cris/cris.h egcc-CVS20020822/gcc/config/cris/cris.h
--- orig/egcc-CVS20020822/gcc/config/cris/cris.h	Tue Jul 30 22:10:50 2002
+++ egcc-CVS20020822/gcc/config/cris/cris.h	Thu Aug 22 12:31:25 2002
@@ -1584,14 +1584,6 @@ call_ ## FUNC (void)						\
    handle (to #undef or ignore it) in a.out.  */
 #define HAVE_GAS_HIDDEN 1
 
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM)	\
-  do							\
-    {							\
-      asm_fprintf (FILE, "%L%s%d:\n", PREFIX, NUM);	\
-    }							\
-  while (0)
-
 /* Remove any previous definition (elfos.h).  */
 #undef ASM_GENERATE_INTERNAL_LABEL
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM)	\
diff -rup orig/egcc-CVS20020822/gcc/config/d30v/d30v.h egcc-CVS20020822/gcc/config/d30v/d30v.h
--- orig/egcc-CVS20020822/gcc/config/d30v/d30v.h	Thu Aug 22 07:00:38 2002
+++ egcc-CVS20020822/gcc/config/d30v/d30v.h	Thu Aug 22 12:31:25 2002
@@ -3109,26 +3109,6 @@ extern const char *d30v_branch_cost_stri
    is in most Berkeley Unix systems.  This macro is used in `assemble_name'.  */
 /* #define ASM_OUTPUT_LABELREF(STREAM, NAME) */
 
-/* A C statement to output to the stdio stream STREAM a label whose name is
-   made from the string PREFIX and the number NUM.
-
-   It is absolutely essential that these labels be distinct from the labels
-   used for user-level functions and variables.  Otherwise, certain programs
-   will have name conflicts with internal labels.
-
-   It is desirable to exclude internal labels from the symbol table of the
-   object file.  Most assemblers have a naming convention for labels that
-   should be excluded; on many systems, the letter `L' at the beginning of a
-   label has this effect.  You should find out what convention your system
-   uses, and follow it.
-
-   The usual definition of this macro is as follows:
-
-        fprintf (STREAM, "L%s%d:\n", PREFIX, NUM)
-
-   Defined in svr4.h.  */
-/* #define ASM_OUTPUT_INTERNAL_LABEL(STREAM, PREFIX, NUM) */
-
 /* A C statement to store into the string STRING a label whose name is made
    from the string PREFIX and the number NUM.
 
diff -rup orig/egcc-CVS20020822/gcc/config/darwin.h egcc-CVS20020822/gcc/config/darwin.h
--- orig/egcc-CVS20020822/gcc/config/darwin.h	Tue Aug 20 22:37:34 2002
+++ egcc-CVS20020822/gcc/config/darwin.h	Thu Aug 22 12:31:25 2002
@@ -516,13 +516,6 @@ objc_section_init ()				\
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM)	\
   sprintf (LABEL, "*%s%ld", PREFIX, (long)(NUM))
 
-/* This is how to output an internal numbered label where PREFIX is
-   the class of label and NUM is the number within the class.  */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* Since we have a separate readonly data section, define this so that
    jump tables end up in text rather than data.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/dsp16xx/dsp16xx.h egcc-CVS20020822/gcc/config/dsp16xx/dsp16xx.h
--- orig/egcc-CVS20020822/gcc/config/dsp16xx/dsp16xx.h	Tue Aug 20 22:33:20 2002
+++ egcc-CVS20020822/gcc/config/dsp16xx/dsp16xx.h	Thu Aug 22 12:31:25 2002
@@ -1702,11 +1702,6 @@ extern struct dsp16xx_frame_info current
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/elfos.h egcc-CVS20020822/gcc/config/elfos.h
--- orig/egcc-CVS20020822/gcc/config/elfos.h	Tue Aug 20 22:37:34 2002
+++ egcc-CVS20020822/gcc/config/elfos.h	Thu Aug 22 12:31:25 2002
@@ -112,20 +112,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_OUTPUT_SKIP(FILE, SIZE) \
   fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.
-
-   For most svr4 systems, the convention is that any symbol which begins
-   with a period is not put into the linker symbol table by the assembler.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM)		\
-  do								\
-    {								\
-      fprintf (FILE, ".%s%u:\n", PREFIX, (unsigned) (NUM));	\
-    }								\
-  while (0)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/h8300/h8300.h egcc-CVS20020822/gcc/config/h8300/h8300.h
--- orig/egcc-CVS20020822/gcc/config/h8300/h8300.h	Tue Aug 20 19:23:51 2002
+++ egcc-CVS20020822/gcc/config/h8300/h8300.h	Thu Aug 22 12:31:25 2002
@@ -1133,20 +1133,13 @@ struct cum_arg
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.
-
-   N.B.: The h8300.md branch_true and branch_false patterns also know
-   how to generate internal labels.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM)	\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
-   This is suitable for output with `assemble_name'.  */
+   This is suitable for output with `assemble_name'.  
 
+   N.B.: The h8300.md branch_true and branch_false patterns also know
+   how to generate internal labels.  */
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM)	\
   sprintf (LABEL, "*.%s%d", PREFIX, NUM)
 
diff -rup orig/egcc-CVS20020822/gcc/config/i386/att.h egcc-CVS20020822/gcc/config/i386/att.h
--- orig/egcc-CVS20020822/gcc/config/i386/att.h	Wed Apr  3 07:00:34 2002
+++ egcc-CVS20020822/gcc/config/i386/att.h	Thu Aug 22 12:31:25 2002
@@ -90,13 +90,6 @@ do								\
 #define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
   sprintf ((BUF), "%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUMBER))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%s%d:\n", LOCAL_LABEL_PREFIX, PREFIX, NUM)
-
 /* The prefix to add to user-visible assembler symbols.  */
 
 #undef USER_LABEL_PREFIX
diff -rup orig/egcc-CVS20020822/gcc/config/i386/bsd.h egcc-CVS20020822/gcc/config/i386/bsd.h
--- orig/egcc-CVS20020822/gcc/config/i386/bsd.h	Wed Apr  3 07:00:34 2002
+++ egcc-CVS20020822/gcc/config/i386/bsd.h	Thu Aug 22 12:31:25 2002
@@ -88,12 +88,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
     sprintf ((BUF), "*%s%ld", (PREFIX), (long)(NUMBER))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* The prefix to add to user-visible assembler symbols.  */
 
 #define USER_LABEL_PREFIX "_"
diff -rup orig/egcc-CVS20020822/gcc/config/i386/i386-coff.h egcc-CVS20020822/gcc/config/i386/i386-coff.h
--- orig/egcc-CVS20020822/gcc/config/i386/i386-coff.h	Sat Jun 29 07:00:42 2002
+++ egcc-CVS20020822/gcc/config/i386/i386-coff.h	Thu Aug 22 12:31:25 2002
@@ -61,11 +61,4 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
   sprintf ((BUF), ".%s%ld", (PREFIX), (long)(NUMBER))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
-
 /* end of i386-coff.h */
diff -rup orig/egcc-CVS20020822/gcc/config/i386/lynx-ng.h egcc-CVS20020822/gcc/config/i386/lynx-ng.h
--- orig/egcc-CVS20020822/gcc/config/i386/lynx-ng.h	Sat Jun 29 07:00:42 2002
+++ egcc-CVS20020822/gcc/config/i386/lynx-ng.h	Thu Aug 22 12:31:25 2002
@@ -68,10 +68,3 @@ Boston, MA 02111-1307, USA.  */
 #undef  ASM_GENERATE_INTERNAL_LABEL
 #define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
   sprintf ((BUF), ".%s%ld", (PREFIX), (long)(NUMBER))
-
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
diff -rup orig/egcc-CVS20020822/gcc/config/i386/lynx.h egcc-CVS20020822/gcc/config/i386/lynx.h
--- orig/egcc-CVS20020822/gcc/config/i386/lynx.h	Sat Jun 29 07:00:42 2002
+++ egcc-CVS20020822/gcc/config/i386/lynx.h	Thu Aug 22 12:31:25 2002
@@ -69,10 +69,3 @@ Boston, MA 02111-1307, USA.  */
 #undef  ASM_GENERATE_INTERNAL_LABEL
 #define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER)	\
   sprintf ((BUF), ".%s%ld", (PREFIX), (long)(NUMBER))
-
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
diff -rup orig/egcc-CVS20020822/gcc/config/i386/sco5.h egcc-CVS20020822/gcc/config/i386/sco5.h
--- orig/egcc-CVS20020822/gcc/config/i386/sco5.h	Tue Aug 20 22:37:35 2002
+++ egcc-CVS20020822/gcc/config/i386/sco5.h	Thu Aug 22 12:31:25 2002
@@ -354,10 +354,6 @@ do {									\
 #define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN)				\
   if (TARGET_ELF) (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0))
 
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)			\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
-
 /* The prefix to add to user-visible assembler symbols.  */
 
 #undef USER_LABEL_PREFIX
diff -rup orig/egcc-CVS20020822/gcc/config/i960/i960.h egcc-CVS20020822/gcc/config/i960/i960.h
--- orig/egcc-CVS20020822/gcc/config/i960/i960.h	Tue Jul 30 22:10:51 2002
+++ egcc-CVS20020822/gcc/config/i960/i960.h	Thu Aug 22 12:31:25 2002
@@ -1319,12 +1319,6 @@ extern struct rtx_def *i960_compare_op0,
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/3b1.h egcc-CVS20020822/gcc/config/m68k/3b1.h
--- orig/egcc-CVS20020822/gcc/config/m68k/3b1.h	Wed Jul 17 22:50:18 2002
+++ egcc-CVS20020822/gcc/config/m68k/3b1.h	Thu Aug 22 12:31:25 2002
@@ -105,7 +105,6 @@ output_file_directive ((FILE), main_inpu
 #undef FUNCTION_PROFILER
 #undef ASM_OUTPUT_ADDR_VEC_ELT
 #undef ASM_OUTPUT_ADDR_DIFF_ELT
-#undef ASM_OUTPUT_INTERNAL_LABEL
 #undef ASM_OUTPUT_OPCODE
 #undef ASM_OUTPUT_LOCAL
 #undef USER_LABEL_PREFIX
@@ -322,9 +321,6 @@ do {					\
 
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM)	\
   sprintf ((LABEL), "%s%%%ld", (PREFIX), (long)(NUM))
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-    fprintf (FILE, "%s%%%d:\n", PREFIX, NUM)
 
 /* Must put address in  %a0 , not  %d0 . -- LGM, 7/15/88 */
 #define FUNCTION_PROFILER(FILE, LABEL_NO)	\
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/amix.h egcc-CVS20020822/gcc/config/m68k/amix.h
--- orig/egcc-CVS20020822/gcc/config/m68k/amix.h	Tue Aug 20 19:23:51 2002
+++ egcc-CVS20020822/gcc/config/m68k/amix.h	Thu Aug 22 12:31:25 2002
@@ -142,10 +142,3 @@ do {							\
   else							\
     sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM)); \
 } while (0)
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  if (flag_pic && !strcmp(PREFIX,"LC"))			\
-    fprintf (FILE, "%s%%%d:\n", PREFIX, NUM);		\
-  else							\
-    asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM)
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/atari.h egcc-CVS20020822/gcc/config/m68k/atari.h
--- orig/egcc-CVS20020822/gcc/config/m68k/atari.h	Tue Aug 20 19:23:51 2002
+++ egcc-CVS20020822/gcc/config/m68k/atari.h	Thu Aug 22 12:31:25 2002
@@ -99,10 +99,3 @@ do {							\
   else							\
     sprintf (LABEL, "*%s%s%ld", LOCAL_LABEL_PREFIX, PREFIX, (long)(NUM)); \
 } while (0)
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  if (flag_pic && !strcmp(PREFIX,"LC"))			\
-    fprintf (FILE, "%s%%%d:\n", PREFIX, NUM);		\
-  else							\
-    asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM)
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/m68k.h egcc-CVS20020822/gcc/config/m68k/m68k.h
--- orig/egcc-CVS20020822/gcc/config/m68k/m68k.h	Tue Jul 30 22:07:56 2002
+++ egcc-CVS20020822/gcc/config/m68k/m68k.h	Thu Aug 22 12:31:25 2002
@@ -1743,12 +1743,6 @@ __transfer_from_trampoline ()					\
 #define ASM_OUTPUT_LABELREF(FILE,NAME)	\
   asm_fprintf (FILE, "%0U%s", NAME)
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/mot3300.h egcc-CVS20020822/gcc/config/m68k/mot3300.h
--- orig/egcc-CVS20020822/gcc/config/m68k/mot3300.h	Wed Jul 17 22:50:18 2002
+++ egcc-CVS20020822/gcc/config/m68k/mot3300.h	Thu Aug 22 12:31:25 2002
@@ -393,13 +393,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM)	\
   sprintf ((LABEL), "%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-    asm_fprintf (FILE, "%L%s%d:\n", PREFIX, NUM)
-
 /* The prefix to add to user-visible assembler symbols.  */
 
 #undef USER_LABEL_PREFIX
diff -rup orig/egcc-CVS20020822/gcc/config/m68k/tower-as.h egcc-CVS20020822/gcc/config/m68k/tower-as.h
--- orig/egcc-CVS20020822/gcc/config/m68k/tower-as.h	Sun May 19 07:01:10 2002
+++ egcc-CVS20020822/gcc/config/m68k/tower-as.h	Thu Aug 22 12:31:25 2002
@@ -229,10 +229,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM)	\
   sprintf ((LABEL), "%s%%%ld", (PREFIX), (long)(NUM))
 
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf ((FILE), "%s%%%d:\n", (PREFIX), (NUM))
-
 #undef ASM_OUTPUT_CASE_LABEL
 #define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLE)			\
   fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n",				\
diff -rup orig/egcc-CVS20020822/gcc/config/m88k/m88k.h egcc-CVS20020822/gcc/config/m88k/m88k.h
--- orig/egcc-CVS20020822/gcc/config/m88k/m88k.h	Wed Aug 14 12:24:24 2002
+++ egcc-CVS20020822/gcc/config/m88k/m88k.h	Thu Aug 22 12:31:25 2002
@@ -1889,14 +1889,11 @@ do {									 \
    PREFIX is the class of label and NUM is the number within the class.
    For V.4, labels use `.' rather than `@'.  */
 
-#undef ASM_OUTPUT_INTERNAL_LABEL
 #ifdef AS_BUG_DOT_LABELS /* The assembler requires a declaration of local.  */
+#undef ASM_OUTPUT_INTERNAL_LABEL
 #define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)			\
   fprintf (FILE, TARGET_SVR4 ? ".%s%d:\n%s.%s%d\n" : "@%s%d:\n", \
 	   PREFIX, NUM, INTERNAL_ASM_OP, PREFIX, NUM)
-#else
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)			\
-  fprintf (FILE, TARGET_SVR4 ? ".%s%d:\n" : "@%s%d:\n", PREFIX, NUM)
 #endif /* AS_BUG_DOT_LABELS */
 
 /* This is how to store into the string LABEL
diff -rup orig/egcc-CVS20020822/gcc/config/mcore/mcore.h egcc-CVS20020822/gcc/config/mcore/mcore.h
--- orig/egcc-CVS20020822/gcc/config/mcore/mcore.h	Tue Jul 30 22:10:51 2002
+++ egcc-CVS20020822/gcc/config/mcore/mcore.h	Thu Aug 22 12:31:25 2002
@@ -1173,11 +1173,6 @@ extern long mcore_current_compilation_ti
 #define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM)  \
   sprintf (STRING, "*.%s%ld", PREFIX, (long) NUM)
 
-/* Output an internal label definition.  */
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
-
 /* Construct a private name.  */
 #define ASM_FORMAT_PRIVATE_NAME(OUTVAR,NAME,NUMBER)  \
   ((OUTVAR) = (char *) alloca (strlen (NAME) + 10),  \
diff -rup orig/egcc-CVS20020822/gcc/config/mips/mips.h egcc-CVS20020822/gcc/config/mips/mips.h
--- orig/egcc-CVS20020822/gcc/config/mips/mips.h	Tue Aug 20 22:37:36 2002
+++ egcc-CVS20020822/gcc/config/mips/mips.h	Thu Aug 22 12:31:25 2002
@@ -4390,14 +4390,6 @@ do {							\
 #undef ASM_DECLARE_FUNCTION_NAME
 #define ASM_DECLARE_FUNCTION_NAME(STREAM,NAME,DECL)
 
-
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(STREAM,PREFIX,NUM)			\
-  fprintf (STREAM, "%s%s%d:\n", LOCAL_LABEL_PREFIX, PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/mmix/mmix-protos.h egcc-CVS20020822/gcc/config/mmix/mmix-protos.h
--- orig/egcc-CVS20020822/gcc/config/mmix/mmix-protos.h	Tue Aug 20 22:37:36 2002
+++ egcc-CVS20020822/gcc/config/mmix/mmix-protos.h	Thu Aug 22 12:31:25 2002
@@ -42,8 +42,6 @@ extern void mmix_asm_output_ascii PARAMS
 extern void mmix_asm_output_label PARAMS ((FILE *, const char *));
 extern void mmix_asm_weaken_label PARAMS ((FILE *, const char *));
 extern void mmix_asm_output_labelref PARAMS ((FILE *, const char *));
-extern void mmix_asm_output_internal_label
-  PARAMS ((FILE *, const char *, int));
 extern void mmix_asm_output_def PARAMS ((FILE *, const char *, const char *));
 extern int mmix_print_operand_punct_valid_p PARAMS ((int));
 extern void mmix_asm_output_reg_push PARAMS ((FILE *, int));
diff -rup orig/egcc-CVS20020822/gcc/config/mmix/mmix.c egcc-CVS20020822/gcc/config/mmix/mmix.c
--- orig/egcc-CVS20020822/gcc/config/mmix/mmix.c	Tue Aug 20 22:37:36 2002
+++ egcc-CVS20020822/gcc/config/mmix/mmix.c	Thu Aug 22 12:31:25 2002
@@ -1560,17 +1560,6 @@ mmix_asm_output_labelref (stream, name)
 	       name);
 }
 
-/* ASM_OUTPUT_INTERNAL_LABEL.  */
-
-void
-mmix_asm_output_internal_label (stream, name, num)
-     FILE * stream;
-     const char * name;
-     int num;
-{
-  fprintf (stream, "%s:%d\tIS @\n", name, num);
-}
-
 /* ASM_OUTPUT_DEF.  */
 
 void
diff -rup orig/egcc-CVS20020822/gcc/config/mmix/mmix.h egcc-CVS20020822/gcc/config/mmix/mmix.h
--- orig/egcc-CVS20020822/gcc/config/mmix/mmix.h	Tue Aug 20 22:37:36 2002
+++ egcc-CVS20020822/gcc/config/mmix/mmix.h	Thu Aug 22 12:31:25 2002
@@ -991,9 +991,6 @@ typedef struct { int regs; int lib; } CU
 #define ASM_OUTPUT_LABELREF(STREAM, NAME) \
  mmix_asm_output_labelref (STREAM, NAME)
 
-#define ASM_OUTPUT_INTERNAL_LABEL(STREAM, PREFIX, NUM) \
- mmix_asm_output_internal_label (STREAM, PREFIX, NUM)
-
 /* We insert a ":" to disambiguate against user symbols like L5.  */
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL, PREFIX, NUM) \
  sprintf (LABEL, "*%s:%ld", PREFIX, (long)(NUM))
diff -rup orig/egcc-CVS20020822/gcc/config/ns32k/ns32k.h egcc-CVS20020822/gcc/config/ns32k/ns32k.h
--- orig/egcc-CVS20020822/gcc/config/ns32k/ns32k.h	Tue Aug 20 22:37:36 2002
+++ egcc-CVS20020822/gcc/config/ns32k/ns32k.h	Thu Aug 22 12:31:25 2002
@@ -1326,12 +1326,6 @@ __transfer_from_trampoline ()		\
 #define GLOBAL_ASM_OP ".globl "
 #endif
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/pa/pa.h egcc-CVS20020822/gcc/config/pa/pa.h
--- orig/egcc-CVS20020822/gcc/config/pa/pa.h	Tue Aug 20 22:37:37 2002
+++ egcc-CVS20020822/gcc/config/pa/pa.h	Thu Aug 22 12:31:25 2002
@@ -1665,12 +1665,6 @@ do { 									\
 #define ASM_OUTPUT_LABELREF(FILE,NAME)	\
   fprintf ((FILE), "%s", (NAME) + (FUNCTION_NAME_P (NAME) ? 1 : 0))
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  {fprintf (FILE, "%c$%s%04d\n", (PREFIX)[0], (PREFIX) + 1, NUM);}
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/pdp11/pdp11.h egcc-CVS20020822/gcc/config/pdp11/pdp11.h
--- orig/egcc-CVS20020822/gcc/config/pdp11/pdp11.h	Tue Jul 30 22:10:51 2002
+++ egcc-CVS20020822/gcc/config/pdp11/pdp11.h	Thu Aug 22 12:31:25 2002
@@ -1036,12 +1036,6 @@ fprintf (FILE, "$help$: . = .+8 ; space 
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s_%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/romp/romp.h egcc-CVS20020822/gcc/config/romp/romp.h
--- orig/egcc-CVS20020822/gcc/config/romp/romp.h	Tue Jul 30 22:10:51 2002
+++ egcc-CVS20020822/gcc/config/romp/romp.h	Thu Aug 22 12:31:25 2002
@@ -1322,12 +1322,6 @@ struct rt_cargs {int gregs, fregs; };
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a label for a jump table.  Arguments are the same as
    for ASM_OUTPUT_INTERNAL_LABEL, except the insn for the jump table is
    passed.  */
diff -rup orig/egcc-CVS20020822/gcc/config/rs6000/xcoff.h egcc-CVS20020822/gcc/config/rs6000/xcoff.h
--- orig/egcc-CVS20020822/gcc/config/rs6000/xcoff.h	Thu Aug 22 07:00:41 2002
+++ egcc-CVS20020822/gcc/config/rs6000/xcoff.h	Thu Aug 22 12:31:25 2002
@@ -318,12 +318,6 @@ toc_section ()						\
     }									\
 }
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s..%u:\n", (PREFIX), (unsigned) (NUM))
-
 /* This is how to output an internal label prefix.  rs6000.c uses this
    when generating traceback tables.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sh/coff.h egcc-CVS20020822/gcc/config/sh/coff.h
--- orig/egcc-CVS20020822/gcc/config/sh/coff.h	Fri Jun 14 16:00:41 2002
+++ egcc-CVS20020822/gcc/config/sh/coff.h	Thu Aug 22 12:31:25 2002
@@ -50,10 +50,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \
   sprintf ((STRING), "*%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))
 
-/* Output an internal label definition.  */
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
-  asm_fprintf ((FILE), "%L%s%d:\n", (PREFIX), (NUM))
-
 /* This is how to output an assembler line
    that says to advance the location counter by SIZE bytes.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sh/elf.h egcc-CVS20020822/gcc/config/sh/elf.h
--- orig/egcc-CVS20020822/gcc/config/sh/elf.h	Fri May 31 16:00:48 2002
+++ egcc-CVS20020822/gcc/config/sh/elf.h	Thu Aug 22 12:31:25 2002
@@ -93,10 +93,6 @@ Boston, MA 02111-1307, USA.  */
 #define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \
   sprintf ((STRING), "*%s%s%ld", LOCAL_LABEL_PREFIX, (PREFIX), (long)(NUM))
 
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
-  asm_fprintf ((FILE), "%L%s%d:\n", (PREFIX), (NUM))
-
 #undef  ASM_OUTPUT_SOURCE_LINE
 #define ASM_OUTPUT_SOURCE_LINE(file, line)				\
 do									\
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/freebsd.h egcc-CVS20020822/gcc/config/sparc/freebsd.h
--- orig/egcc-CVS20020822/gcc/config/sparc/freebsd.h	Tue May  7 20:04:31 2002
+++ egcc-CVS20020822/gcc/config/sparc/freebsd.h	Thu Aug 22 12:31:25 2002
@@ -103,14 +103,6 @@ the Free Software Foundation, 675 Mass A
 #define LOCAL_LABEL_PREFIX  "."
 
 /* XXX2 */
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)			\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
-/* XXX2 */
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/linux.h egcc-CVS20020822/gcc/config/sparc/linux.h
--- orig/egcc-CVS20020822/gcc/config/sparc/linux.h	Sun May  5 07:00:42 2002
+++ egcc-CVS20020822/gcc/config/sparc/linux.h	Thu Aug 22 12:31:25 2002
@@ -206,13 +206,6 @@ do {									\
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX  "."
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/linux64.h egcc-CVS20020822/gcc/config/sparc/linux64.h
--- orig/egcc-CVS20020822/gcc/config/sparc/linux64.h	Wed May 15 07:01:04 2002
+++ egcc-CVS20020822/gcc/config/sparc/linux64.h	Thu Aug 22 12:31:25 2002
@@ -332,13 +332,6 @@ do {									\
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX  "."
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/netbsd-elf.h egcc-CVS20020822/gcc/config/sparc/netbsd-elf.h
--- orig/egcc-CVS20020822/gcc/config/sparc/netbsd-elf.h	Mon Jul 15 16:00:26 2002
+++ egcc-CVS20020822/gcc/config/sparc/netbsd-elf.h	Thu Aug 22 12:31:25 2002
@@ -69,13 +69,6 @@ Boston, MA 02111-1307, USA.  */
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX  "."
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/pbd.h egcc-CVS20020822/gcc/config/sparc/pbd.h
--- orig/egcc-CVS20020822/gcc/config/sparc/pbd.h	Wed Jul 17 22:50:22 2002
+++ egcc-CVS20020822/gcc/config/sparc/pbd.h	Thu Aug 22 12:31:25 2002
@@ -116,17 +116,8 @@ Boston, MA 02111-1307, USA.  */
    This is suitable for output with `assemble_name'.  */
 
 #undef ASM_GENERATE_INTERNAL_LABEL
-
 #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM)                   \
         sprintf (LABEL, "*.%s%ld", PREFIX, (long)(NUM))
-
-
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)                      \
-        fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
 
 /* This is how to output an element of a case-vector that is relative.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/sol2.h egcc-CVS20020822/gcc/config/sparc/sol2.h
--- orig/egcc-CVS20020822/gcc/config/sparc/sol2.h	Wed Aug 14 12:25:56 2002
+++ egcc-CVS20020822/gcc/config/sparc/sol2.h	Thu Aug 22 12:31:25 2002
@@ -68,13 +68,6 @@ Boston, MA 02111-1307, USA.  */
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX  "."
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/sparc.h egcc-CVS20020822/gcc/config/sparc/sparc.h
--- orig/egcc-CVS20020822/gcc/config/sparc/sparc.h	Tue Jul 30 22:10:52 2002
+++ egcc-CVS20020822/gcc/config/sparc/sparc.h	Thu Aug 22 12:31:25 2002
@@ -2736,12 +2736,6 @@ case LABEL_REF: case SYMBOL_REF: case CO
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/sparc/vxsim.h egcc-CVS20020822/gcc/config/sparc/vxsim.h
--- orig/egcc-CVS20020822/gcc/config/sparc/vxsim.h	Wed Mar 27 07:00:50 2002
+++ egcc-CVS20020822/gcc/config/sparc/vxsim.h	Thu Aug 22 12:31:25 2002
@@ -74,13 +74,6 @@ do {									\
 #undef  LOCAL_LABEL_PREFIX
 #define LOCAL_LABEL_PREFIX  "."
 
-/* This is how to output a definition of an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#undef  ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
-
 /* This is how to output a reference to an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.  */
 
diff -rup orig/egcc-CVS20020822/gcc/config/stormy16/stormy16.h egcc-CVS20020822/gcc/config/stormy16/stormy16.h
--- orig/egcc-CVS20020822/gcc/config/stormy16/stormy16.h	Thu Aug 22 07:00:44 2002
+++ egcc-CVS20020822/gcc/config/stormy16/stormy16.h	Thu Aug 22 12:31:25 2002
@@ -2918,26 +2918,6 @@ do  {						\
    is in most Berkeley Unix systems.  This macro is used in `assemble_name'.  */
 /* #define ASM_OUTPUT_LABELREF(STREAM, NAME) */
 
-/* A C statement to output to the stdio stream STREAM a label whose name is
-   made from the string PREFIX and the number NUM.
-
-   It is absolutely essential that these labels be distinct from the labels
-   used for user-level functions and variables.  Otherwise, certain programs
-   will have name conflicts with internal labels.
-
-   It is desirable to exclude internal labels from the symbol table of the
-   object file.  Most assemblers have a naming convention for labels that
-   should be excluded; on many systems, the letter `L' at the beginning of a
-   label has this effect.  You should find out what convention your system
-   uses, and follow it.
-
-   The usual definition of this macro is as follows:
-
-        fprintf (STREAM, "L%s%d:\n", PREFIX, NUM)
-
-   Defined in svr4.h.  */
-/* #define ASM_OUTPUT_INTERNAL_LABEL(STREAM, PREFIX, NUM) */
-
 /* A C statement to store into the string STRING a label whose name is made
    from the string PREFIX and the number NUM.
 
diff -rup orig/egcc-CVS20020822/gcc/config/svr3.h egcc-CVS20020822/gcc/config/svr3.h
--- orig/egcc-CVS20020822/gcc/config/svr3.h	Wed Jul 17 22:50:06 2002
+++ egcc-CVS20020822/gcc/config/svr3.h	Thu Aug 22 12:31:25 2002
@@ -158,16 +158,6 @@ Boston, MA 02111-1307, USA.
 #undef USER_LABEL_PREFIX
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.
-
-   For most svr3 systems, the convention is that any symbol which begins
-   with a period is not put into the linker symbol table by the assembler.  */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  asm_fprintf (FILE, "%0L%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/config/vax/vax.h egcc-CVS20020822/gcc/config/vax/vax.h
--- orig/egcc-CVS20020822/gcc/config/vax/vax.h	Tue Jul 30 22:10:52 2002
+++ egcc-CVS20020822/gcc/config/vax/vax.h	Thu Aug 22 12:31:25 2002
@@ -1061,12 +1061,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_
 
 #define USER_LABEL_PREFIX "_"
 
-/* This is how to output an internal numbered label where
-   PREFIX is the class of label and NUM is the number within the class.  */
-
-#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)	\
-  fprintf (FILE, "%s%d:\n", PREFIX, NUM)
-
 /* This is how to store into the string LABEL
    the symbol_ref name of an internal numbered label where
    PREFIX is the class of label and NUM is the number within the class.
diff -rup orig/egcc-CVS20020822/gcc/defaults.h egcc-CVS20020822/gcc/defaults.h
--- orig/egcc-CVS20020822/gcc/defaults.h	Tue Aug 20 22:37:38 2002
+++ egcc-CVS20020822/gcc/defaults.h	Thu Aug 22 12:37:25 2002
@@ -148,6 +148,19 @@ do { fputs (integer_asm_op (POINTER_SIZE
   do { assemble_name ((FILE), (NAME)); fputs (":\n", (FILE)); } while (0)
 #endif
 
+/* This is how to output an internal numbered label where PREFIX is
+   the class of label and NUM is the number within the class.  */
+
+#ifndef ASM_OUTPUT_INTERNAL_LABEL
+#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,LABELNO)		\
+  do {								\
+    const char *const prefix_ = (PREFIX);			\
+    char *const buf_ = alloca (40 + strlen (prefix_));		\
+    ASM_GENERATE_INTERNAL_LABEL (buf_, prefix_, (LABELNO));	\
+    ASM_OUTPUT_LABEL (FILE, buf_);				\
+  } while (0)
+#endif
+
 /* This is how to output a reference to a user-level label named NAME.  */
 
 #ifndef ASM_OUTPUT_LABELREF



More information about the Gcc-patches mailing list