daily update
[deliverable/binutils-gdb.git] / gas / config / obj-multi.h
CommitLineData
4c63da97 1/* Multiple object format emulation.
f7e42eb4 2 Copyright 1995, 1996, 1997, 1999, 2000
4c63da97
AM
3 Free Software Foundation, Inc.
4
5 This file is part of GAS, the GNU Assembler.
6
7 GAS is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
5110c57e 9 the Free Software Foundation; either version 2, or (at your option)
4c63da97
AM
10 any later version.
11
12 GAS is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GAS; see the file COPYING. If not, write to the Free
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA. */
21
22#ifndef _OBJ_MULTI_H
23#define _OBJ_MULTI_H
24
25#ifdef OBJ_HEADER
26#include OBJ_HEADER
27#else
252b5132
RH
28
29#include "emul.h"
30#include "targ-cpu.h"
31
4ca72d38
AM
32#define OUTPUT_FLAVOR \
33 (this_format->flavor)
34
5110c57e
HPN
35#define obj_begin() \
36 (this_format->begin \
37 ? (*this_format->begin) () \
38 : (void) 0)
39
40#define obj_app_file(NAME) \
41 (this_format->app_file \
42 ? (*this_format->app_file) (NAME) \
43 : (void) 0)
44
4ca72d38 45#define obj_frob_symbol(S,P) \
4c63da97 46 (*this_format->frob_symbol) (S, &(P))
4ca72d38
AM
47
48#define obj_frob_file() \
49 (this_format->frob_file \
4c63da97 50 ? (*this_format->frob_file) () \
4ca72d38
AM
51 : (void) 0)
52
339681c0
L
53#define obj_frob_file_before_adjust() \
54 (this_format->frob_file_before_adjust \
55 ? (*this_format->frob_file_before_adjust) () \
56 : (void) 0)
57
4c63da97
AM
58#define obj_frob_file_after_relocs() \
59 (this_format->frob_file_after_relocs \
60 ? (*this_format->frob_file_after_relocs) () \
61 : (void) 0)
4ca72d38
AM
62
63#define obj_ecoff_set_ext \
4c63da97 64 (*this_format->ecoff_set_ext)
4ca72d38
AM
65
66#define obj_pop_insert \
4c63da97 67 (*this_format->pop_insert)
4ca72d38
AM
68
69#define obj_read_begin_hook() \
70 (this_format->read_begin_hook \
4c63da97 71 ? (*this_format->read_begin_hook) () \
4ca72d38
AM
72 : (void) 0)
73
4c63da97
AM
74#define obj_symbol_new_hook(S) \
75 (this_format->symbol_new_hook \
76 ? (*this_format->symbol_new_hook) (S) \
77 : (void) 0)
4ca72d38 78
4c63da97
AM
79#define obj_sec_sym_ok_for_reloc(A) \
80 (this_format->sec_sym_ok_for_reloc \
81 ? (*this_format->sec_sym_ok_for_reloc) (A) \
82 : 0)
4ca72d38
AM
83
84#define S_GET_SIZE \
4c63da97 85 (*this_format->s_get_size)
4ca72d38 86
5110c57e
HPN
87#define S_SET_SIZE(S, N) \
88 (this_format->s_set_size \
89 ? (*this_format->s_set_size) (S, N) \
90 : (void) 0)
4ca72d38
AM
91
92#define S_GET_ALIGN \
4c63da97 93 (*this_format->s_get_align)
4ca72d38 94
5110c57e
HPN
95#define S_SET_ALIGN(S, N) \
96 (this_format->s_set_align \
97 ? (*this_format->s_set_align) (S, N) \
98 : (void) 0)
4c63da97
AM
99
100#define S_GET_OTHER \
101 (*this_format->s_get_other)
102
5110c57e
HPN
103#define S_SET_OTHER(S, O) \
104 (this_format->s_set_other \
105 ? (*this_format->s_set_other) (S, O) \
106 : (void) 0)
107
4c63da97
AM
108#define S_GET_DESC \
109 (*this_format->s_get_desc)
4ca72d38 110
5110c57e
HPN
111#define S_SET_DESC(S, D) \
112 (this_format->s_set_desc \
113 ? (*this_format->s_set_desc) (S, D) \
114 : (void) 0)
115
116#define S_GET_TYPE \
117 (*this_format->s_get_desc)
118
119#define S_SET_TYPE(S, T) \
120 (this_format->s_set_type \
121 ? (*this_format->s_set_type) (S, T) \
122 : (void) 0)
123
4ca72d38
AM
124#define OBJ_COPY_SYMBOL_ATTRIBUTES(d,s) \
125 (this_format->copy_symbol_attributes \
4c63da97 126 ? (*this_format->copy_symbol_attributes) (d, s) \
4ca72d38
AM
127 : (void) 0)
128
129#define OBJ_PROCESS_STAB(SEG,W,S,T,O,D) \
130 (this_format->process_stab \
4c63da97 131 ? (*this_format->process_stab) (SEG,W,S,T,O,D) \
4ca72d38 132 : (void) 0)
252b5132 133
5110c57e
HPN
134#define SEPARATE_STAB_SECTIONS \
135 ((*this_format->separate_stab_sections) ())
136
137#define INIT_STAB_SECTION(S) \
138 (this_format->init_stab_section \
139 ? (*this_format->init_stab_section) (S) \
140 : (void) 0)
141
142#define EMIT_SECTION_SYMBOLS (this_format->emit_section_symbols)
143
252b5132 144#ifdef OBJ_MAYBE_ELF
4c63da97
AM
145/* We need OBJ_SYMFIELD_TYPE so that symbol_get_obj is defined in symbol.c
146 We also need various STAB defines for stab.c */
4ca72d38 147#include "obj-elf.h"
252b5132 148#endif
4c63da97 149
5110c57e
HPN
150#ifdef OBJ_MAYBE_AOUT
151/* We want aout_process_stab in stabs.c for the aout table. Defining this
152 macro will have no other effect. */
153#define AOUT_STABS
154#endif
155
4c63da97
AM
156#endif /* !OBJ_HEADER */
157#endif /* _OBJ_MULTI_H */
This page took 0.175259 seconds and 4 git commands to generate.