Back to index

cell-binutils  2.17cvs20070401
obj-ecoff.h
Go to the documentation of this file.
00001 /* ECOFF object file format header file.
00002    Copyright 1993, 1994, 1995, 1996, 1997, 1999, 2002, 2004, 2005
00003    Free Software Foundation, Inc.
00004    Contributed by Cygnus Support.
00005    Written by Ian Lance Taylor <ian@cygnus.com>.
00006 
00007    This file is part of GAS.
00008 
00009    GAS is free software; you can redistribute it and/or modify
00010    it under the terms of the GNU General Public License as published by
00011    the Free Software Foundation; either version 2, or (at your option)
00012    any later version.
00013 
00014    GAS is distributed in the hope that it will be useful,
00015    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017    GNU General Public License for more details.
00018 
00019    You should have received a copy of the GNU General Public License
00020    along with GAS; see the file COPYING.  If not, write to the Free
00021    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
00022    02110-1301, USA.  */
00023 
00024 #define OBJ_ECOFF 1
00025 
00026 /* Use the generic ECOFF debugging code.  */
00027 #define ECOFF_DEBUGGING 1
00028 
00029 #define OUTPUT_FLAVOR bfd_target_ecoff_flavour
00030 
00031 #include "targ-cpu.h"
00032 
00033 #include "ecoff.h"
00034 
00035 /* For each gas symbol we keep track of which file it came from, of
00036    whether we have generated an ECOFF symbol for it, and whether the
00037    symbols is undefined (this last is needed to distinguish a .extern
00038    symbols from a .comm symbol).  */
00039 
00040 struct ecoff_sy_obj
00041 {
00042   struct efdr *ecoff_file;
00043   struct localsym *ecoff_symbol;
00044   valueT ecoff_extern_size;
00045 };
00046 
00047 #define OBJ_SYMFIELD_TYPE struct ecoff_sy_obj
00048 
00049 /* Modify the ECOFF symbol.  */
00050 #define obj_frob_symbol(symp, punt) ecoff_frob_symbol (symp)
00051 
00052 /* Set section VMAs and GP.  */
00053 #define obj_frob_file_before_fix() ecoff_frob_file_before_fix ()
00054 
00055 /* This is used to write the symbolic data in the format that BFD
00056    expects it.  */
00057 #define obj_frob_file() ecoff_frob_file ()
00058 
00059 /* We use the ECOFF functions as our hooks.  */
00060 #define obj_read_begin_hook ecoff_read_begin_hook
00061 #define obj_symbol_new_hook ecoff_symbol_new_hook
00062 
00063 /* Record file switches in the ECOFF symbol table.  */
00064 #define obj_app_file(name, app) ecoff_new_file (name, app)
00065 
00066 /* At the moment we don't want to do any stabs processing in read.c.  */
00067 #define OBJ_PROCESS_STAB(seg, what, string, type, other, desc) \
00068   ecoff_stab ((seg), (what), (string), (type), (other), (desc))
00069 
00070 #define EMIT_SECTION_SYMBOLS              0
00071 #define obj_sec_sym_ok_for_reloc(SEC)     1
00072 
00073 #define obj_ecoff_set_ext ecoff_set_ext
00074 
00075 extern void ecoff_frob_file_before_fix (void);
00076 extern void ecoff_frob_file (void);
00077 extern void obj_ecoff_set_ext (symbolS *, EXTR *);