Initial revision
authorCharles Hannum <mycroft@gnu.org>
Fri, 17 Jan 1992 04:31:24 +0000 (04:31 +0000)
committerCharles Hannum <mycroft@gnu.org>
Fri, 17 Jan 1992 04:31:24 +0000 (04:31 +0000)
From-SVN: r198

gcc/config/aoutos.h [new file with mode: 0644]

diff --git a/gcc/config/aoutos.h b/gcc/config/aoutos.h
new file mode 100644 (file)
index 0000000..e995df6
--- /dev/null
@@ -0,0 +1,84 @@
+/* aoutos.h  --  operating system specific defines to be used when
+   targeting GCC for some system that uses a.out file format.
+   Copyright (C) 1992 Free Software Foundation, Inc.
+
+   Written by Ron Guilmette (rfg@ncd.com).
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+/* To use this file, make up a file with a name like:
+
+       ?????aout.h
+
+   where ????? is replaced by the name of the basic hardware that you
+   are targeting for.  Then, in the file ?????aout.h, put something
+   like:
+
+       #include "?????.h"
+       #include "aoutos.h"
+
+   followed by any really system-specific defines (or overrides of
+   defines) which you find that you need.  Now, modify the configure
+   or configure.in script to properly use the new ?????aout.h file
+   when configuring for the system.  */
+
+/* A C statement (sans semicolon) to output an element in the table of
+   global constructors. 
+   If using GNU LD, tell it that this is part of the static destructor set. 
+   This code works for any machine provided you use GNU as/ld.
+   If not using GNU LD, rely on a "collect" program to look for names defined
+   in the particular form we choose as global constructor function names.  */
+
+#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME)                              \
+  do {                                                                 \
+    if (flag_gnu_linker)                                               \
+      {                                                                        \
+       /* Output an N_SETT (0x16, 22.) for the name.  */               \
+       fprintf (FILE, "%s \"___CTOR_LIST__\",22,0,0,", ASM_STABS_OP);  \
+       assemble_name (FILE, NAME);                                     \
+       fputc ('\n', FILE);                                             \
+      }                                                                        \
+  } while (0)
+
+
+/* A C statement (sans semicolon) to output an element in the table of
+   global destructors.  */
+
+#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)                                       \
+  do {                                                                 \
+    if (flag_gnu_linker)                                               \
+      {                                                                        \
+       /* Output an N_SETT (0x16, 22.) for the name.  */               \
+       fprintf (FILE, "%s \"___DTOR_LIST__\",22,0,0,", ASM_STABS_OP);  \
+       assemble_name (FILE, NAME);                                     \
+       fputc ('\n', FILE);                                             \
+      }                                                                        \
+  } while (0)
+
+/* Likewise for entries we want to record for garbage collection.
+   Garbage collection is still under development.  */
+
+#define ASM_OUTPUT_GC_ENTRY(FILE,NAME)                                 \
+  do {                                                                 \
+    if (flag_gnu_linker)                                               \
+      {                                                                        \
+       /* Output an N_SETT (0x16, 22.) for the name.  */               \
+       fprintf (FILE, "%s \"___PTR_LIST__\",22,0,0,", ASM_STABS_OP);   \
+       assemble_name (FILE, NAME);                                     \
+       fputc ('\n', FILE);                                             \
+      }                                                                        \
+  } while (0)