weak and alias for mips elf

Gavin Romig-Koch gavin@cygnus.com
Wed Apr 29 11:02:00 GMT 1998


OK to push?


	* config/mips/elf.h (ASM_OUTPUT_DEF,ASM_WEAKEN_LABEL,
	ASM_OUTPUT_WEAK_ALIAS): Define.
	* config/mips/elf64.h: Same.
	* config/mips/r3900.h (ASM_OUTPUT_DEF,SUPPORTS_WEAK,
	ASM_WEAKEN_LABEL): Removed.


Index: elf.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/mips/elf.h,v
retrieving revision 1.4
diff -r1.4 elf.h
72a73,104
> 
> #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)                            \
>  do { fputc ( '\t', FILE);                                            \
>       assemble_name (FILE, LABEL1);                                   \
>       fputs ( " = ", FILE);                                           \
>       assemble_name (FILE, LABEL2);                                   \
>       fputc ( '\n', FILE);                                            \
>  } while (0)
> 
> /* Note about .weak vs. .weakext
>    The mips native assemblers support .weakext, but not .weak.
>    mips-elf gas supports .weak, bug not .weakext.
>    mips-elf gas has been changed to support both .weak and .weakext,
>    but untill that support is generally available, the 'if' below
>    should serve. */
> 
> #define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0)
> #define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE)	\
>  do {						\
>   if (TARGET_GAS)                               \
>       fputs ("\t.weak\t", FILE);		\
>   else                                          \
>       fputs ("\t.weakext\t", FILE);		\
>   assemble_name (FILE, NAME);			\
>   if (VALUE)					\
>     {						\
>       fputc (' ', FILE);			\
>       assemble_name (FILE, VALUE);		\
>     }						\
>   fputc ('\n', FILE);				\
>  } while (0)
> 
Index: elf64.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/mips/elf64.h,v
retrieving revision 1.4
diff -r1.4 elf64.h
97a98,129
> 
> #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)                            \
>  do { fputc ( '\t', FILE);                                            \
>       assemble_name (FILE, LABEL1);                                   \
>       fputs ( " = ", FILE);                                           \
>       assemble_name (FILE, LABEL2);                                   \
>       fputc ( '\n', FILE);                                            \
>  } while (0)
> 
> /* Note about .weak vs. .weakext
>    The mips native assemblers support .weakext, but not .weak.
>    mips-elf gas supports .weak, bug not .weakext.
>    mips-elf gas has been changed to support both .weak and .weakext,
>    but untill that support is generally available, the 'if' below
>    should serve. */
> 
> #define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0)
> #define ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,VALUE)	\
>  do {						\
>   if (TARGET_GAS)                               \
>       fputs ("\t.weak\t", FILE);		\
>   else                                          \
>       fputs ("\t.weakext\t", FILE);		\
>   assemble_name (FILE, NAME);			\
>   if (VALUE)					\
>     {						\
>       fputc (' ', FILE);			\
>       assemble_name (FILE, VALUE);		\
>     }						\
>   fputc ('\n', FILE);				\
>  } while (0)
> 
Index: r3900.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/mips/r3900.h,v
retrieving revision 1.3
diff -r1.3 r3900.h
72,89c72
< /* This is how to equate one symbol to another symbol.  The syntax used is
<    `SYM1=SYM2'.  Note that this is different from the way equates are done
<    with most svr4 assemblers, where the syntax is `.set SYM1,SYM2'.  */
< 
< #define ASM_OUTPUT_DEF(FILE,LABEL1,LABEL2)                            \
<  do { fprintf ((FILE), "\t");                                         \
<       assemble_name (FILE, LABEL1);                                   \
<       fprintf (FILE, " = ");                                          \
<       assemble_name (FILE, LABEL2);                                   \
<       fprintf (FILE, "\n");                                           \
<  } while (0)
< 
< #define SUPPORTS_WEAK 1
< #define ASM_WEAKEN_LABEL(FILE,NAME)                                   \
<  do { fprintf ((FILE), "\t.weak\t");                                  \
<       assemble_name (FILE, NAME);                                     \
<       fprintf (FILE, "\n");                                           \
<  } while (0)
---
> /* eof */



More information about the Gcc mailing list