summaryrefslogtreecommitdiff
path: root/gas/config/obj-multi.h
blob: d54c61f8becf0a8287da3c3098ddb5a8ac497e2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* hi */

#include "emul.h"
#include "targ-cpu.h"

#define OUTPUT_FLAVOR		(this_format->flavor)
#define obj_frob_symbol(S,P)	(this_format->frob_symbol)(S,&(P))
#define obj_frob_file		(this_format->frob_file)
#define obj_frob_file_after_relocs (this_format->frob_file_after_relocs)
#define obj_ecoff_set_ext	(this_format->ecoff_set_ext)
#define obj_pop_insert		(this_format->pop_insert)
#define obj_read_begin_hook()	(this_format->read_begin_hook?this_format->read_begin_hook():(void)0)
#define obj_symbol_new_hook	(this_format->symbol_new_hook)
#define obj_sec_sym_ok_for_reloc (this_format->sec_sym_ok_for_reloc)
#define S_GET_SIZE		(this_format->s_get_size)
#define S_SET_SIZE		(this_format->s_set_size)
#define S_GET_ALIGN		(this_format->s_get_align)
#define S_SET_ALIGN		(this_format->s_set_align)
#define OBJ_COPY_SYMBOL_ATTRIBUTES (this_format->copy_symbol_attributes)
#define OBJ_PROCESS_STAB	(this_format->process_stab)

#if defined (OBJ_MAYBE_ECOFF) || (defined (OBJ_MAYBE_ELF) && defined (TC_MIPS))
#define ECOFF_DEBUGGING 1
#endif

/* FIXME: What's the story here?  Why do we have to define
   OBJ_SYMFIELD_TYPE both here and in obj-elf.h?  */

#ifdef OBJ_MAYBE_ELF
struct elf_obj_sy
{
  int local;
  expressionS *size;
  char *versioned_name;
#ifdef ECOFF_DEBUGGING
  /* If we are generating ECOFF debugging information, we need some
     additional fields for each symbol.  */
  struct efdr *ecoff_file;
  struct localsym *ecoff_symbol;
  valueT ecoff_extern_size;
#endif
};
#define OBJ_SYMFIELD_TYPE struct elf_obj_sy
#endif