* elflink.c (elf_link_add_object_symbols): Don't force debug
[deliverable/binutils-gdb.git] / gas / config / obj-multi.h
CommitLineData
4c63da97 1/* Multiple object format emulation.
aa820537 2 Copyright 1995, 1996, 1997, 1999, 2000, 2002, 2004, 2005, 2007, 2009
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
ec2655a6 9 the Free Software Foundation; either version 3, 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
4b4da160
NC
19 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
20 02110-1301, USA. */
4c63da97
AM
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
60938e80
L
149#define FAKE_LABEL_NAME (this_emulation->fake_label_name)
150
252b5132 151#ifdef OBJ_MAYBE_ELF
4c63da97
AM
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 */
4ca72d38 154#include "obj-elf.h"
252b5132 155#endif
4c63da97 156
5110c57e
HPN
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
4c63da97
AM
163#endif /* !OBJ_HEADER */
164#endif /* _OBJ_MULTI_H */
This page took 0.45021 seconds and 4 git commands to generate.