elfos.h (INT_ASM_OP): Don't define it if it's already defined.
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 7 Feb 2001 05:43:59 +0000 (05:43 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 7 Feb 2001 05:43:59 +0000 (05:43 +0000)
* config/elfos.h (INT_ASM_OP): Don't define it if it's already
defined.
* config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.

From-SVN: r39510

gcc/ChangeLog
gcc/config/elfos.h
gcc/config/sh/sh.h

index 9c1596c6ea8556ca78a7f2f4a4276b1ce18d3427..e3bb18f8d902c24f344c021b0b37add685b241f6 100644 (file)
@@ -1,3 +1,10 @@
+2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/elfos.h (INT_ASM_OP): Don't define it if it's already
+       defined.
+       * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
+       ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.
+
 2001-02-06  Chandrakala Chavva  <cchavva@redhat.com>
 
        * final.c: Revert back my previous changes.
index 27ee2f24df6a341a385af555698b6e7a50312530..7d9ac7640a581f08cca5d3470e1fb34d4ac7efb6 100644 (file)
@@ -1,6 +1,7 @@
 /* elfos.h  --  operating system specific defines to be used when
    targeting GCC for some generic ELF system
-   Copyright (C) 1991, 1994, 1995, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1994, 1995, 1999, 2000, 2001
+   Free Software Foundation, Inc.
    Based on svr4.h contributed by Ron Guilmette (rfg@netcom.com).
 
 This file is part of GNU CC.
@@ -232,11 +233,17 @@ Boston, MA 02111-1307, USA.  */
     }                                                          \
   while (0)
 
-/* This is the pseudo-op used to generate a 32-bit word of data with a
-   specific value in some section.  This is the same for all known svr4
-   assemblers.  */
+/* This is the pseudo-op used to generate a reference to a specific
+   symbol in some section.  It is only used in machine-specific
+   configuration files, typically only in ASM_OUTPUT_CONSTRUCTOR and
+   ASM_OUTPUT_DESTRUCTOR.  This is the same for all known svr4
+   assemblers, except those in targets that don't use 32-bit pointers.
+   Those should override INT_ASM_OP.  Yes, the name of the macro is
+   misleading.  */
 
+#ifndef INT_ASM_OP
 #define INT_ASM_OP             "\t.long\t"
+#endif
 
 /* This is the pseudo-op used to generate a contiguous sequence of byte
    values from a double-quoted string WITHOUT HAVING A TERMINATING NUL
index ebc98b3532f7add2ca288dee3234b40ff95106ee..01473bd3a52bedb34d56c7184632b0cb4e4d8c41 100644 (file)
@@ -1931,11 +1931,34 @@ dtors_section()                                                 \
 #define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME, RELOC) \
    do { fprintf (FILE, ".section\t%s\n", NAME); } while (0)
 
-#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
-   do { ctors_section();  asm_fprintf((FILE),"\t.long\t%U%s\n", (NAME)); } while (0)
+/* This is the pseudo-op used to generate a reference to a specific
+   symbol in some section.  */
 
-#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
-   do {  dtors_section();  asm_fprintf((FILE),"\t.long\t%U%s\n", (NAME)); } while (0)
+#define INT_ASM_OP     "\t.long\t"
+     
+/* A C statement (sans semicolon) to output an
+   element in the table of global constructors.  */
+#define ASM_OUTPUT_CONSTRUCTOR(FILE, NAME)                     \
+  do                                                           \
+    {                                                          \
+      ctors_section ();                                                \
+      fprintf (FILE, "%s", INT_ASM_OP);                                \
+      assemble_name (FILE, NAME);                              \
+      fprintf (FILE, "\n");                                    \
+    }                                                          \
+  while (0)
+
+/* A C statement (sans semicolon) to output an
+   element in the table of global destructors.  */
+#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)                               \
+  do                                                           \
+    {                                                          \
+      dtors_section ();                                        \
+      fprintf (FILE, "%s", INT_ASM_OP);                                \
+      assemble_name (FILE, NAME);                                      \
+      fprintf (FILE, "\n");                                    \
+    }                                                          \
+  while (0)
 
 #undef DO_GLOBAL_CTORS_BODY