1  /* obj-aout.h, a.out object file format for gas, the assembler.
       2     Copyright (C) 1989-2023 Free Software Foundation, Inc.
       3  
       4     This file is part of GAS, the GNU Assembler.
       5  
       6     GAS is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as
       8     published by the Free Software Foundation; either version 3,
       9     or (at your option) any later version.
      10  
      11     GAS is distributed in the hope that it will be useful, but
      12     WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
      14     the GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with GAS; see the file COPYING.  If not, write to the Free
      18     Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
      19     02110-1301, USA.  */
      20  
      21  /* Tag to validate a.out object file format processing */
      22  #define OBJ_AOUT 1
      23  
      24  #include "targ-cpu.h"
      25  
      26  #include "bfd/libaout.h"
      27  
      28  #define OUTPUT_FLAVOR bfd_target_aout_flavour
      29  
      30  extern const pseudo_typeS aout_pseudo_table[];
      31  
      32  #ifndef obj_pop_insert
      33  #define obj_pop_insert() pop_insert (aout_pseudo_table)
      34  #endif
      35  
      36  /* Symbol table entry data type.  */
      37  
      38  typedef struct nlist obj_symbol_type;	/* Symbol table entry.  */
      39  
      40  /* Symbol table macros and constants */
      41  
      42  #define S_SET_OTHER(S,V) \
      43    (aout_symbol (symbol_get_bfdsym (S))->other = (V))
      44  #define S_SET_TYPE(S,T) \
      45    (aout_symbol (symbol_get_bfdsym (S))->type = (T))
      46  #define S_SET_DESC(S,D)	\
      47    (aout_symbol (symbol_get_bfdsym (S))->desc = (D))
      48  #define S_GET_OTHER(S) \
      49    (aout_symbol (symbol_get_bfdsym (S))->other)
      50  #define S_GET_TYPE(S) \
      51    (aout_symbol (symbol_get_bfdsym (S))->type)
      52  #define S_GET_DESC(S) \
      53    (aout_symbol (symbol_get_bfdsym (S))->desc)
      54  
      55  extern asection *text_section, *data_section, *bss_section;
      56  
      57  #define obj_frob_symbol(S,PUNT)	obj_aout_frob_symbol (S, &PUNT)
      58  #define obj_frob_file_before_fix() obj_aout_frob_file_before_fix ()
      59  
      60  extern void obj_aout_frob_symbol (symbolS *, int *);
      61  extern void obj_aout_frob_file_before_fix (void);
      62  
      63  #define obj_sec_sym_ok_for_reloc(SEC)	1
      64  
      65  #define obj_read_begin_hook()	{;}
      66  #define obj_symbol_new_hook(s)	{;}
      67  
      68  #define EMIT_SECTION_SYMBOLS		0
      69  
      70  #define AOUT_STABS