]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/binutils/gas/config/obj-multi.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / binutils / gas / config / obj-multi.h
1 /* Multiple object format emulation.
2    Copyright 1995, 1996, 1997, 1999, 2000, 2002, 2004
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
9    the Free Software Foundation; either version 2, or (at your option)
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, 51 Franklin Street - Fifth Floor, Boston, MA
20    02110-1301, USA.  */
21
22 #ifndef _OBJ_MULTI_H
23 #define _OBJ_MULTI_H
24
25 #ifdef OBJ_HEADER
26 #include OBJ_HEADER
27 #else
28
29 #include "emul.h"
30 #include "targ-cpu.h"
31
32 #define OUTPUT_FLAVOR                                   \
33         (this_format->flavor)
34
35 #define obj_begin()                                     \
36         (this_format->begin                             \
37          ? (*this_format->begin) ()                     \
38          : (void) 0)
39
40 #define obj_app_file(NAME, APPFILE)                     \
41         (this_format->app_file                          \
42          ? (*this_format->app_file) (NAME, APPFILE)     \
43          : (void) 0)
44
45 #define obj_frob_symbol(S,P)                            \
46         (*this_format->frob_symbol) (S, &(P))
47
48 #define obj_frob_file()                                 \
49         (this_format->frob_file                         \
50          ? (*this_format->frob_file) ()                 \
51          : (void) 0)
52
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
58 #define obj_frob_file_before_fix()                      \
59         (this_format->frob_file_before_fix              \
60          ? (*this_format->frob_file_before_fix) ()      \
61          : (void) 0)
62
63 #define obj_frob_file_after_relocs()                    \
64         (this_format->frob_file_after_relocs            \
65          ? (*this_format->frob_file_after_relocs) ()    \
66          : (void) 0)
67
68 #define obj_ecoff_set_ext                               \
69         (*this_format->ecoff_set_ext)
70
71 #define obj_pop_insert                                  \
72         (*this_format->pop_insert)
73
74 #define obj_read_begin_hook()                           \
75         (this_format->read_begin_hook                   \
76          ? (*this_format->read_begin_hook) ()           \
77          : (void) 0)
78
79 #define obj_symbol_new_hook(S)                          \
80         (this_format->symbol_new_hook                   \
81          ? (*this_format->symbol_new_hook) (S)          \
82          : (void) 0)
83
84 #define obj_sec_sym_ok_for_reloc(A)                     \
85         (this_format->sec_sym_ok_for_reloc              \
86          ? (*this_format->sec_sym_ok_for_reloc) (A)     \
87          : 0)
88
89 #define S_GET_SIZE                                      \
90         (*this_format->s_get_size)
91
92 #define S_SET_SIZE(S, N)                                \
93         (this_format->s_set_size                        \
94          ? (*this_format->s_set_size) (S, N)            \
95          : (void) 0)
96
97 #define S_GET_ALIGN                                     \
98         (*this_format->s_get_align)
99
100 #define S_SET_ALIGN(S, N)                               \
101         (this_format->s_set_align                       \
102          ? (*this_format->s_set_align) (S, N)           \
103          : (void) 0)
104
105 #define S_GET_OTHER                                     \
106         (*this_format->s_get_other)
107
108 #define S_SET_OTHER(S, O)                               \
109         (this_format->s_set_other                       \
110          ? (*this_format->s_set_other) (S, O)           \
111          : (void) 0)
112
113 #define S_GET_DESC                                      \
114         (*this_format->s_get_desc)
115
116 #define S_SET_DESC(S, D)                                \
117         (this_format->s_set_desc                        \
118          ? (*this_format->s_set_desc) (S, D)            \
119          : (void) 0)
120
121 #define S_GET_TYPE                                      \
122         (*this_format->s_get_desc)
123
124 #define S_SET_TYPE(S, T)                                \
125         (this_format->s_set_type                        \
126          ? (*this_format->s_set_type) (S, T)            \
127          : (void) 0)
128
129 #define OBJ_COPY_SYMBOL_ATTRIBUTES(d,s)                 \
130         (this_format->copy_symbol_attributes            \
131          ? (*this_format->copy_symbol_attributes) (d, s) \
132          : (void) 0)
133
134 #define OBJ_PROCESS_STAB(SEG,W,S,T,O,D)                 \
135         (this_format->process_stab                      \
136          ? (*this_format->process_stab) (SEG,W,S,T,O,D) \
137          : (void) 0)
138
139 #define SEPARATE_STAB_SECTIONS \
140         ((*this_format->separate_stab_sections) ())
141
142 #define INIT_STAB_SECTION(S)                            \
143         (this_format->init_stab_section                 \
144          ? (*this_format->init_stab_section) (S)        \
145          : (void) 0)
146
147 #define EMIT_SECTION_SYMBOLS (this_format->emit_section_symbols)
148
149 #define FAKE_LABEL_NAME (this_emulation->fake_label_name)
150
151 #ifdef OBJ_MAYBE_ELF
152 /* We need OBJ_SYMFIELD_TYPE so that symbol_get_obj is defined in symbol.c
153    We also need various STAB defines for stab.c  */
154 #include "obj-elf.h"
155 #endif
156
157 #ifdef OBJ_MAYBE_AOUT
158 /* We want aout_process_stab in stabs.c for the aout table.  Defining this
159    macro will have no other effect.  */
160 #define AOUT_STABS
161 #endif
162
163 #endif /* !OBJ_HEADER */
164 #endif /* _OBJ_MULTI_H */