aboutsummaryrefslogtreecommitdiff
path: root/gas/config/obj-elf.c
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-elf.c
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-elf.c')
-rw-r--r--gas/config/obj-elf.c43
1 files changed, 41 insertions, 2 deletions
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index ae82f72..3af8c9a 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -54,9 +54,12 @@ static bfd_vma elf_s_get_size PARAMS ((symbolS *));
static void elf_s_set_size PARAMS ((symbolS *, bfd_vma));
static bfd_vma elf_s_get_align PARAMS ((symbolS *));
static void elf_s_set_align PARAMS ((symbolS *, bfd_vma));
+static void elf_s_set_other PARAMS ((symbolS *, int));
static void elf_copy_symbol_attributes PARAMS ((symbolS *, symbolS *));
static int elf_sec_sym_ok_for_reloc PARAMS ((asection *));
static void adjust_stab_sections PARAMS ((bfd *, asection *, PTR));
+static int elf_separate_stab_sections PARAMS ((void));
+static void elf_init_stab_section PARAMS ((segT));
#ifdef NEED_ECOFF_DEBUG
static boolean elf_get_extr PARAMS ((asymbol *, EXTR *));
@@ -234,6 +237,14 @@ elf_s_get_other (sym)
}
static void
+elf_s_set_other (sym, other)
+ symbolS *sym;
+ int other;
+{
+ S_SET_OTHER (sym, other);
+}
+
+static void
elf_copy_symbol_attributes (dest, src)
symbolS *dest, *src;
{
@@ -249,7 +260,7 @@ elf_sec_sym_ok_for_reloc (sec)
void
elf_file_symbol (s)
- char *s;
+ const char *s;
{
symbolS *sym;
@@ -1910,18 +1921,44 @@ sco_id ()
#endif /* SCO_ELF */
+static int
+elf_separate_stab_sections ()
+{
+#ifdef NEED_ECOFF_DEBUG
+ return (!ECOFF_DEBUGGING);
+#else
+ return 1;
+#endif
+}
+
+static void
+elf_init_stab_section (seg)
+ segT seg;
+{
+#ifdef NEED_ECOFF_DEBUG
+ if (!ECOFF_DEBUGGING)
+#endif
+ obj_elf_init_stab_section (seg);
+}
+
const struct format_ops elf_format_ops =
{
bfd_target_elf_flavour,
0, /* dfl_leading_underscore */
1, /* emit_section_symbols */
+ elf_begin,
+ elf_file_symbol,
elf_frob_symbol,
elf_frob_file,
elf_frob_file_after_relocs,
elf_s_get_size, elf_s_set_size,
elf_s_get_align, elf_s_set_align,
elf_s_get_other,
+ elf_s_set_other,
0, /* s_get_desc */
+ 0, /* s_set_desc */
+ 0, /* s_get_type */
+ 0, /* s_set_type */
elf_copy_symbol_attributes,
#ifdef NEED_ECOFF_DEBUG
ecoff_generate_asm_lineno,
@@ -1930,6 +1967,8 @@ const struct format_ops elf_format_ops =
0, /* generate_asm_lineno */
0, /* process_stab */
#endif
+ elf_separate_stab_sections,
+ elf_init_stab_section,
elf_sec_sym_ok_for_reloc,
elf_pop_insert,
#ifdef NEED_ECOFF_DEBUG
@@ -1938,5 +1977,5 @@ const struct format_ops elf_format_ops =
0, /* ecoff_set_ext */
#endif
elf_obj_read_begin_hook,
- elf_obj_symbol_new_hook,
+ elf_obj_symbol_new_hook
};