133965Sjdp/* ECOFF object file format header file. 2218822Sdim Copyright 1993, 1994, 1995, 1996, 1997, 1999, 2002, 2004, 2005 378828Sobrien Free Software Foundation, Inc. 433965Sjdp Contributed by Cygnus Support. 533965Sjdp Written by Ian Lance Taylor <ian@cygnus.com>. 633965Sjdp 733965Sjdp This file is part of GAS. 833965Sjdp 933965Sjdp GAS is free software; you can redistribute it and/or modify 1033965Sjdp it under the terms of the GNU General Public License as published by 1133965Sjdp the Free Software Foundation; either version 2, or (at your option) 1233965Sjdp any later version. 1333965Sjdp 1433965Sjdp GAS is distributed in the hope that it will be useful, 1533965Sjdp but WITHOUT ANY WARRANTY; without even the implied warranty of 1633965Sjdp MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1733965Sjdp GNU General Public License for more details. 1833965Sjdp 1933965Sjdp You should have received a copy of the GNU General Public License 2033965Sjdp along with GAS; see the file COPYING. If not, write to the Free 21218822Sdim Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 22218822Sdim 02110-1301, USA. */ 2333965Sjdp 2433965Sjdp#define OBJ_ECOFF 1 2533965Sjdp 2633965Sjdp/* Use the generic ECOFF debugging code. */ 2733965Sjdp#define ECOFF_DEBUGGING 1 2833965Sjdp 2933965Sjdp#define OUTPUT_FLAVOR bfd_target_ecoff_flavour 3033965Sjdp 3133965Sjdp#include "targ-cpu.h" 3233965Sjdp 3333965Sjdp#include "ecoff.h" 3433965Sjdp 3533965Sjdp/* For each gas symbol we keep track of which file it came from, of 3633965Sjdp whether we have generated an ECOFF symbol for it, and whether the 3733965Sjdp symbols is undefined (this last is needed to distinguish a .extern 3833965Sjdp symbols from a .comm symbol). */ 3933965Sjdp 4060484Sobrienstruct ecoff_sy_obj 4160484Sobrien{ 4260484Sobrien struct efdr *ecoff_file; 4360484Sobrien struct localsym *ecoff_symbol; 4433965Sjdp valueT ecoff_extern_size; 4560484Sobrien}; 4633965Sjdp 4760484Sobrien#define OBJ_SYMFIELD_TYPE struct ecoff_sy_obj 4860484Sobrien 4933965Sjdp/* Modify the ECOFF symbol. */ 5033965Sjdp#define obj_frob_symbol(symp, punt) ecoff_frob_symbol (symp) 5133965Sjdp 52130561Sobrien/* Set section VMAs and GP. */ 53130561Sobrien#define obj_frob_file_before_fix() ecoff_frob_file_before_fix () 54130561Sobrien 5533965Sjdp/* This is used to write the symbolic data in the format that BFD 5633965Sjdp expects it. */ 5733965Sjdp#define obj_frob_file() ecoff_frob_file () 5833965Sjdp 5933965Sjdp/* We use the ECOFF functions as our hooks. */ 6033965Sjdp#define obj_read_begin_hook ecoff_read_begin_hook 6133965Sjdp#define obj_symbol_new_hook ecoff_symbol_new_hook 6233965Sjdp 6333965Sjdp/* Record file switches in the ECOFF symbol table. */ 64218822Sdim#define obj_app_file(name, app) ecoff_new_file (name, app) 6533965Sjdp 6633965Sjdp/* At the moment we don't want to do any stabs processing in read.c. */ 6733965Sjdp#define OBJ_PROCESS_STAB(seg, what, string, type, other, desc) \ 6833965Sjdp ecoff_stab ((seg), (what), (string), (type), (other), (desc)) 6933965Sjdp 7033965Sjdp#define EMIT_SECTION_SYMBOLS 0 7133965Sjdp#define obj_sec_sym_ok_for_reloc(SEC) 1 7233965Sjdp 7333965Sjdp#define obj_ecoff_set_ext ecoff_set_ext 74218822Sdim 75218822Sdimextern void ecoff_frob_file_before_fix (void); 76218822Sdimextern void ecoff_frob_file (void); 77218822Sdimextern void obj_ecoff_set_ext (symbolS *, EXTR *); 78