From b9c1bf3c60b4f36795fead18df6f38dabc68c7a7 Mon Sep 17 00:00:00 2001 From: Charles Hannum Date: Fri, 17 Jan 1992 04:31:24 +0000 Subject: [PATCH] Initial revision From-SVN: r198 --- gcc/config/aoutos.h | 84 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 gcc/config/aoutos.h diff --git a/gcc/config/aoutos.h b/gcc/config/aoutos.h new file mode 100644 index 00000000000..e995df6e98f --- /dev/null +++ b/gcc/config/aoutos.h @@ -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) -- 2.30.2