aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2001-02-07 05:43:59 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2001-02-07 05:43:59 +0000
commit3dbd113495ce82dbc114a82b8018580c56592669 (patch)
tree4bf5c9d4d1cf5b527a7d6ac3c9181bdabb4f43ae /gcc
parent64c8ea244c2c4eec88eb0f150e1cbf148682d642 (diff)
downloadgcc-3dbd113495ce82dbc114a82b8018580c56592669.zip
gcc-3dbd113495ce82dbc114a82b8018580c56592669.tar.gz
gcc-3dbd113495ce82dbc114a82b8018580c56592669.tar.bz2
elfos.h (INT_ASM_OP): Don't define it if it's already defined.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/elfos.h15
-rw-r--r--gcc/config/sh/sh.h31
3 files changed, 45 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9c1596c..e3bb18f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/elfos.h b/gcc/config/elfos.h
index 27ee2f2..7d9ac76 100644
--- a/gcc/config/elfos.h
+++ b/gcc/config/elfos.h
@@ -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
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index ebc98b3..01473bd 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -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