aboutsummaryrefslogtreecommitdiff
path: root/gas/config/obj-multi.h
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2000-05-22 21:19:43 +0000
committerHans-Peter Nilsson <hp@axis.com>2000-05-22 21:19:43 +0000
commit5110c57e8e960ab73903ff4e3e1a13fe42012a1f (patch)
tree12828c145d80a4930b3e108b1855463a9243b544 /gas/config/obj-multi.h
parente33c03647534a1adde503d5dc1383c2ad37eaf64 (diff)
downloadgdb-5110c57e8e960ab73903ff4e3e1a13fe42012a1f.zip
gdb-5110c57e8e960ab73903ff4e3e1a13fe42012a1f.tar.gz
gdb-5110c57e8e960ab73903ff4e3e1a13fe42012a1f.tar.bz2
* obj.h (struct format_ops): New members begin, app_file,
s_set_other, s_set_desc, s_get_type, s_set_type, separate_stab_sections, init_stab_section. * config/obj-multi.h: Update GPL notice to v2. (obj_begin): New. (obj_app_file): New. (S_SET_SIZE): Test s_set_size for NULL before calling. (S_SET_ALIGN): Similar for s_set_align. (S_SET_OTHER): New. (S_SET_DESC): New. (S_GET_TYPE): New. (S_SET_TYPE): New. (SEPARATE_STAB_SECTIONS): New. (INIT_STAB_SECTION): New. (EMIT_SECTION_SYMBOLS): New. (AOUT_STABS) [OBJ_MAYBE_AOUT]: Define. * config/obj-elf.h: Update GPL notice to v2. Mention that this file is included from obj-multi.h. (obj_begin): Wrap definition in ifndef. (elf_file_symbol): Constify declaration. (obj_app_file): Ditto. (SEPARATE_STAB_SECTIONS, INIT_STAB_SECTION, OBJ_PROCESS_STAB): Wrap in ifndef SEPARATE_STAB_SECTIONS. * config/obj-elf.c (elf_s_set_other): New. (elf_file_symbol): Constify argument. (elf_separate_stab_sections): New. (elf_init_stab_section): New. (elf_format_ops): Add new members. Remove comma at end. * config/obj-ecoff.c (ecoff_separate_stab_sections): New. (ecoff_format_ops): Add new fields. Remove comma at end. Mention inconsistency for emit_section_symbols. * config/obj-coff.h (c_dot_file_symbol): Constify declaration. * config/obj-coff.c (c_dot_file_symbol): Constify argument. (coff_separate_stab_sections): New. (coff_format_ops): Add new members. * config/obj-aout.c (obj_aout_sec_sym_ok_for_reloc): New. (obj_aout_s_set_other): New. (obj_aout_s_set_desc): New. (obj_aout_s_get_type): New. (obj_aout_s_set_type): New. (obj_aout_separate_stab_sections): New. (aout_format_ops): New members added. Use obj_aout_process_stab, not 0. Use obj_aout_sec_sym_ok_for_reloc, not 0. (obj_aout_frob_symbol): Add ATTRIBUTE_UNUSED to args as appropriate. (obj_aout_line, obj_aout_weak, obj_aout_type): Ditto.
Diffstat (limited to 'gas/config/obj-multi.h')
-rw-r--r--gas/config/obj-multi.h58
1 files changed, 53 insertions, 5 deletions
diff --git a/gas/config/obj-multi.h b/gas/config/obj-multi.h
index 42b7eb3..3b80f38 100644
--- a/gas/config/obj-multi.h
+++ b/gas/config/obj-multi.h
@@ -6,7 +6,7 @@
GAS is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
+ the Free Software Foundation; either version 2, or (at your option)
any later version.
GAS is distributed in the hope that it will be useful,
@@ -32,6 +32,16 @@
#define OUTPUT_FLAVOR \
(this_format->flavor)
+#define obj_begin() \
+ (this_format->begin \
+ ? (*this_format->begin) () \
+ : (void) 0)
+
+#define obj_app_file(NAME) \
+ (this_format->app_file \
+ ? (*this_format->app_file) (NAME) \
+ : (void) 0)
+
#define obj_frob_symbol(S,P) \
(*this_format->frob_symbol) (S, &(P))
@@ -69,21 +79,43 @@
#define S_GET_SIZE \
(*this_format->s_get_size)
-#define S_SET_SIZE \
- (*this_format->s_set_size)
+#define S_SET_SIZE(S, N) \
+ (this_format->s_set_size \
+ ? (*this_format->s_set_size) (S, N) \
+ : (void) 0)
#define S_GET_ALIGN \
(*this_format->s_get_align)
-#define S_SET_ALIGN \
- (*this_format->s_set_align)
+#define S_SET_ALIGN(S, N) \
+ (this_format->s_set_align \
+ ? (*this_format->s_set_align) (S, N) \
+ : (void) 0)
#define S_GET_OTHER \
(*this_format->s_get_other)
+#define S_SET_OTHER(S, O) \
+ (this_format->s_set_other \
+ ? (*this_format->s_set_other) (S, O) \
+ : (void) 0)
+
#define S_GET_DESC \
(*this_format->s_get_desc)
+#define S_SET_DESC(S, D) \
+ (this_format->s_set_desc \
+ ? (*this_format->s_set_desc) (S, D) \
+ : (void) 0)
+
+#define S_GET_TYPE \
+ (*this_format->s_get_desc)
+
+#define S_SET_TYPE(S, T) \
+ (this_format->s_set_type \
+ ? (*this_format->s_set_type) (S, T) \
+ : (void) 0)
+
#define OBJ_COPY_SYMBOL_ATTRIBUTES(d,s) \
(this_format->copy_symbol_attributes \
? (*this_format->copy_symbol_attributes) (d, s) \
@@ -94,11 +126,27 @@
? (*this_format->process_stab) (SEG,W,S,T,O,D) \
: (void) 0)
+#define SEPARATE_STAB_SECTIONS \
+ ((*this_format->separate_stab_sections) ())
+
+#define INIT_STAB_SECTION(S) \
+ (this_format->init_stab_section \
+ ? (*this_format->init_stab_section) (S) \
+ : (void) 0)
+
+#define EMIT_SECTION_SYMBOLS (this_format->emit_section_symbols)
+
#ifdef OBJ_MAYBE_ELF
/* We need OBJ_SYMFIELD_TYPE so that symbol_get_obj is defined in symbol.c
We also need various STAB defines for stab.c */
#include "obj-elf.h"
#endif
+#ifdef OBJ_MAYBE_AOUT
+/* We want aout_process_stab in stabs.c for the aout table. Defining this
+ macro will have no other effect. */
+#define AOUT_STABS
+#endif
+
#endif /* !OBJ_HEADER */
#endif /* _OBJ_MULTI_H */