Update BFD_VERSION_DATE to 20050426.
[deliverable/binutils-gdb.git] / gas / config / obj-multi.h
CommitLineData
4c63da97 1/* Multiple object format emulation.
aef6203b 2 Copyright 1995, 1996, 1997, 1999, 2000, 2002, 2004
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
c04f5787 40#define obj_app_file(NAME, APPFILE) \
5110c57e 41 (this_format->app_file \
c04f5787 42 ? (*this_format->app_file) (NAME, APPFILE) \
5110c57e
HPN
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
a161fe53
AM
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
4c63da97
AM
63#define obj_frob_file_after_relocs() \
64 (this_format->frob_file_after_relocs \
65 ? (*this_format->frob_file_after_relocs) () \
66 : (void) 0)
4ca72d38
AM
67
68#define obj_ecoff_set_ext \
4c63da97 69 (*this_format->ecoff_set_ext)
4ca72d38
AM
70
71#define obj_pop_insert \
4c63da97 72 (*this_format->pop_insert)
4ca72d38
AM
73
74#define obj_read_begin_hook() \
75 (this_format->read_begin_hook \
4c63da97 76 ? (*this_format->read_begin_hook) () \
4ca72d38
AM
77 : (void) 0)
78
4c63da97
AM
79#define obj_symbol_new_hook(S) \
80 (this_format->symbol_new_hook \
81 ? (*this_format->symbol_new_hook) (S) \
82 : (void) 0)
4ca72d38 83
4c63da97
AM
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)
4ca72d38
AM
88
89#define S_GET_SIZE \
4c63da97 90 (*this_format->s_get_size)
4ca72d38 91
5110c57e
HPN
92#define S_SET_SIZE(S, N) \
93 (this_format->s_set_size \
94 ? (*this_format->s_set_size) (S, N) \
95 : (void) 0)
4ca72d38
AM
96
97#define S_GET_ALIGN \
4c63da97 98 (*this_format->s_get_align)
4ca72d38 99
5110c57e
HPN
100#define S_SET_ALIGN(S, N) \
101 (this_format->s_set_align \
102 ? (*this_format->s_set_align) (S, N) \
103 : (void) 0)
4c63da97
AM
104
105#define S_GET_OTHER \
106 (*this_format->s_get_other)
107
5110c57e
HPN
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
4c63da97
AM
113#define S_GET_DESC \
114 (*this_format->s_get_desc)
4ca72d38 115
5110c57e
HPN
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
4ca72d38
AM
129#define OBJ_COPY_SYMBOL_ATTRIBUTES(d,s) \
130 (this_format->copy_symbol_attributes \
4c63da97 131 ? (*this_format->copy_symbol_attributes) (d, s) \
4ca72d38
AM
132 : (void) 0)
133
134#define OBJ_PROCESS_STAB(SEG,W,S,T,O,D) \
135 (this_format->process_stab \
4c63da97 136 ? (*this_format->process_stab) (SEG,W,S,T,O,D) \
4ca72d38 137 : (void) 0)
252b5132 138
5110c57e
HPN
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
252b5132 149#ifdef OBJ_MAYBE_ELF
4c63da97
AM
150/* We need OBJ_SYMFIELD_TYPE so that symbol_get_obj is defined in symbol.c
151 We also need various STAB defines for stab.c */
4ca72d38 152#include "obj-elf.h"
252b5132 153#endif
4c63da97 154
5110c57e
HPN
155#ifdef OBJ_MAYBE_AOUT
156/* We want aout_process_stab in stabs.c for the aout table. Defining this
157 macro will have no other effect. */
158#define AOUT_STABS
159#endif
160
4c63da97
AM
161#endif /* !OBJ_HEADER */
162#endif /* _OBJ_MULTI_H */
This page took 0.327158 seconds and 4 git commands to generate.