diff options
author | Pedro Alves <palves@redhat.com> | 2016-12-09 16:08:49 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-12-09 16:08:49 +0000 |
commit | 1736a7bd96e8927c3f889a35f9153df4fd19d833 (patch) | |
tree | d1a822db62155f173bbbd941fcc97d85e7b4dc93 /gdb/dbxread.c | |
parent | f94f411b8308674eb4f790a9fcad0ffa30b568e5 (diff) | |
download | gdb-1736a7bd96e8927c3f889a35f9153df4fd19d833.zip gdb-1736a7bd96e8927c3f889a35f9153df4fd19d833.tar.gz gdb-1736a7bd96e8927c3f889a35f9153df4fd19d833.tar.bz2 |
gdb: Remove support for obsolete OSABIs and a.out
gdb/ChangeLog:
2016-12-09 Pedro Alves <palves@redhat.com>
* Makefile.in (ALL_TARGET_OBS): Remove vax-obsd-tdep.o.
* alpha-fbsd-tdep.c (_initialize_alphafbsd_tdep): Adjust.
* alpha-nbsd-tdep.c: Move comment to _initialize_alphanbsd_tdep.
(alphanbsd_core_osabi_sniffer): Delete.
(_initialize_alphanbsd_tdep): No longer handle a.out.
* alpha-obsd-tdep.c (_initialize_alphaobsd_tdep): Adjust.
* amd64-fbsd-tdep.c (_initialize_amd64fbsd_tdep): Adjust.
* amd64-nbsd-tdep.c (_initialize_amd64nbsd_tdep): Adjust.
* amd64-obsd-tdep.c (amd64obsd_supply_regset)
(amd64obsd_combined_regset)
(amd64obsd_iterate_over_regset_sections, amd64obsd_core_init_abi):
Delete.
(_initialize_amd64obsd_tdep): Don't handle a.out.
* arm-nbsd-nat.c (struct md_core, fetch_core_registers)
(arm_netbsd_core_fns): Delete.
(_initialize_arm_netbsd_nat): Don't register arm_netbsd_core_fns.
* arm-nbsd-tdep.c (arm_netbsd_aout_init_abi)
(arm_netbsd_aout_osabi_sniffer): Delete.
(_initialize_arm_netbsd_tdep): Don't handle a.out.
* arm-obsd-tdep.c (armobsd_core_osabi_sniffer): Delete.
(_initialize_armobsd_tdep): Don't handle a.out.
* arm-tdep.c (arm_gdbarch_init): Remove bfd_target_aout_flavour
case.
* breakpoint.c (disable_breakpoints_in_unloaded_shlib): Remove
SunOS a.out handling.
* configure.tgt (vax-*-netbsd* | vax-*-knetbsd*-gnu): Remove
vax-obsd-tdep.o from gdb_target_objs.
(vax-*-openbsd*): Likewise.
(*-*-freebsd*): Adjust default gdb_osabi.
(*-*-openbsd*): Likewise.
* dbxread.c (block_address_function_relative): Delete.
(dbx_symfile_read): Remove reference to
block_address_function_relative.
(dbx_symfile_read): Don't call read_dbx_dynamic_symtab.
(read_dbx_dynamic_symtab): Delete.
(process_one_symbol): Remove references to
block_address_function_relative.
* defs.h (GDB_OSABI_FREEBSD_AOUT, GDB_OSABI_NETBSD_AOUT): Remove.
(GDB_OSABI_FREEBSD_ELF): Rename to ...
(GDB_OSABI_FREEBSD): ... this.
(GDB_OSABI_NETBSD_ELF): Rename to ...
(GDB_OSABI_NETBSD): ... this.
(GDB_OSABI_OPENBSD_ELF): Rename to ...
(GDB_OSABI_OPENBSD): ... this.
(GDB_OSABI_HPUX_ELF, GDB_OSABI_HPUX_SOM): Remove.
* fbsd-tdep.c: Adjust comment.
* hppa-nbsd-tdep.c (_initialize_hppanbsd_tdep): Adjust.
* hppa-obsd-tdep.c (GDB_OSABI_NETBSD_CORE): Delete.
(hppaobsd_core_osabi_sniffer): Delete.
(_initialize_hppabsd_tdep): Don't handle a.out.
* hppa-tdep.c (hppa_stub_frame_unwind_cache): Don't handle
GDB_OSABI_HPUX_SOM.
(hppa_gdbarch_init): Likewise.
* i386-bsd-tdep.c (i386bsd_aout_osabi_sniffer)
(i386bsd_core_osabi_sniffer, _initialize_i386bsd_tdep): Delete.
* i386-fbsd-tdep.c (i386fbsdaout_init_abi): Delete. Merge bits
with ...
(i386fbsd_init_abi): ... this.
(_initialize_i386fbsd_tdep): Don't handle a.out.
* i386-nbsd-tdep.c (_initialize_i386nbsd_tdep): Adjust.
* i386-obsd-tdep.c (i386obsd_aout_supply_regset)
(i386obsd_aout_gregset)
(i386obsd_aout_iterate_over_regset_sections): Delete.
(i386obsd_init_abi): Merge with i386obsd_elf_init_abi.
(i386obsd_aout_init_abi): Delete.
(_initialize_i386obsd_tdep): Don't handle a.out.
* m68k-bsd-tdep.c (m68kobsd_sigtramp_cache_init)
(m68kobsd_sigtramp): Delete.
(m68kbsd_init_abi): Merge with ...
(m68kbsd_elf_init_abi): ... this, and delete it.
(m68kbsd_aout_init_abi): Delete.
(m68kbsd_aout_osabi_sniffer, m68kbsd_core_osabi_sniffer): Delete.
(_initialize_m68kbsd_tdep): Don't handle a.out.
* mips-nbsd-tdep.c (_initialize_mipsnbsd_tdep): Adjust.
* mips64-obsd-tdep.c (_initialize_mips64obsd_tdep): Adjust.
* osabi.c (gdb_osabi_names): Remove "a.out" entries. Drop "ELF"
suffixes. Remove "HP-UX" entries.
(generic_elf_osabi_sniff_abi_tag_sections): Adjust.
(generic_elf_osabi_sniffer): No longer handle GDB_OSABI_HPUX_ELF.
Adjust.
(_initialize_ppcfbsd_tdep): Adjust.
* ppc-nbsd-tdep.c (_initialize_ppcnbsd_tdep): Adjust.
* ppc-obsd-tdep.c (GDB_OSABI_NETBSD_CORE)
(ppcobsd_core_osabi_sniffer): Delete.
(_initialize_ppcobsd_tdep): Don't handle a.out.
* rs6000-tdep.c (rs6000_gdbarch_init): Adjust.
* sh-nbsd-tdep.c (GDB_OSABI_NETBSD_CORE)
(shnbsd_core_osabi_sniffer): Delete.
(_initialize_shnbsd_tdep): Don't handle a.out.
* solib.c (clear_solib): Don't handle SunOS/a.out.
* sparc-nbsd-tdep.c (sparc32nbsd_init_abi): Make extern.
(sparc32nbsd_aout_init_abi): Delete.
(sparc32nbsd_elf_init_abi): Merged into sparc32nbsd_init_abi.
(sparcnbsd_aout_osabi_sniffer): Delete.
(GDB_OSABI_NETBSD_CORE, sparcnbsd_core_osabi_sniffer): Delete.
(_initialize_sparcnbsd_tdep): No longer handle a.out.
* sparc-obsd-tdep.c (sparc32obsd_init_abi)
(_initialize_sparc32obsd_tdep): Adjust.
* sparc-tdep.h (sparc32nbsd_elf_init_abi): Rename to ...
(sparc32nbsd_init_abi): ... this.
* sparc64-fbsd-tdep.c (_initialize_sparc64fbsd_tdep): Adjust.
* sparc64-nbsd-tdep.c (_initialize_sparc64nbsd_tdep): Adjust.
* sparc64-obsd-tdep.c (_initialize_sparc64obsd_tdep): Adjust.
* stabsread.c: Update comment.
* symmisc.c (print_objfile_statistics): Don't mention "a.out" in
output.
* vax-nbsd-tdep.c (_initialize_vaxnbsd_tdep): Adjust.
* vax-obsd-tdep.c: Delete file.
Diffstat (limited to 'gdb/dbxread.c')
-rw-r--r-- | gdb/dbxread.c | 201 |
1 files changed, 6 insertions, 195 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c index cfc4ed0..ed3511f 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -144,10 +144,6 @@ static unsigned int next_file_string_table_offset; static int symfile_relocatable = 0; -/* If this is nonzero, N_LBRAC, N_RBRAC, and N_SLINE entries are - relative to the function start address. */ - -static int block_address_function_relative = 0; /* The lowest text address we have yet encountered. This is needed because in an a.out file, there is no header field which tells us @@ -262,9 +258,6 @@ static void dbx_read_symtab (struct partial_symtab *self, static void dbx_psymtab_to_symtab_1 (struct objfile *, struct partial_symtab *); -static void read_dbx_dynamic_symtab (minimal_symbol_reader &reader, - struct objfile *objfile); - static void read_dbx_symtab (minimal_symbol_reader &, struct objfile *); static void free_bincl_list (struct objfile *); @@ -534,18 +527,6 @@ dbx_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) symfile_relocatable = bfd_get_file_flags (sym_bfd) & HAS_RELOC; - /* This is true for Solaris (and all other systems which put stabs - in sections, hopefully, since it would be silly to do things - differently from Solaris), and false for SunOS4 and other a.out - file formats. */ - block_address_function_relative = - ((startswith (bfd_get_target (sym_bfd), "elf")) - || (startswith (bfd_get_target (sym_bfd), "som")) - || (startswith (bfd_get_target (sym_bfd), "coff")) - || (startswith (bfd_get_target (sym_bfd), "pe")) - || (startswith (bfd_get_target (sym_bfd), "epoc-pe")) - || (startswith (bfd_get_target (sym_bfd), "nlm"))); - val = bfd_seek (sym_bfd, DBX_SYMTAB_OFFSET (objfile), SEEK_SET); if (val < 0) perror_with_name (objfile_name (objfile)); @@ -566,10 +547,6 @@ dbx_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) read_dbx_symtab (reader, objfile); - /* Add the dynamic symbols. */ - - read_dbx_dynamic_symtab (reader, objfile); - /* Install any minimal symbols that have been collected as the current minimal symbols for this objfile. */ @@ -976,144 +953,6 @@ set_namestring (struct objfile *objfile, const struct internal_nlist *nlist) return namestring; } -/* Scan a SunOs dynamic symbol table for symbols of interest and - add them to the minimal symbol table. */ - -static void -read_dbx_dynamic_symtab (minimal_symbol_reader &reader, - struct objfile *objfile) -{ - bfd *abfd = objfile->obfd; - struct cleanup *back_to; - int counter; - long dynsym_size; - long dynsym_count; - asymbol **dynsyms; - asymbol **symptr; - arelent **relptr; - long dynrel_size; - long dynrel_count; - arelent **dynrels; - CORE_ADDR sym_value; - const char *name; - - /* Check that the symbol file has dynamic symbols that we know about. - bfd_arch_unknown can happen if we are reading a sun3 symbol file - on a sun4 host (and vice versa) and bfd is not configured - --with-target=all. This would trigger an assertion in bfd/sunos.c, - so we ignore the dynamic symbols in this case. */ - if (bfd_get_flavour (abfd) != bfd_target_aout_flavour - || (bfd_get_file_flags (abfd) & DYNAMIC) == 0 - || bfd_get_arch (abfd) == bfd_arch_unknown) - return; - - dynsym_size = bfd_get_dynamic_symtab_upper_bound (abfd); - if (dynsym_size < 0) - return; - - dynsyms = (asymbol **) xmalloc (dynsym_size); - back_to = make_cleanup (xfree, dynsyms); - - dynsym_count = bfd_canonicalize_dynamic_symtab (abfd, dynsyms); - if (dynsym_count < 0) - { - do_cleanups (back_to); - return; - } - - /* Enter dynamic symbols into the minimal symbol table - if this is a stripped executable. */ - if (bfd_get_symcount (abfd) <= 0) - { - symptr = dynsyms; - for (counter = 0; counter < dynsym_count; counter++, symptr++) - { - asymbol *sym = *symptr; - asection *sec; - int type; - - sec = bfd_get_section (sym); - - /* BFD symbols are section relative. */ - sym_value = sym->value + sec->vma; - - if (bfd_get_section_flags (abfd, sec) & SEC_CODE) - { - type = N_TEXT; - } - else if (bfd_get_section_flags (abfd, sec) & SEC_DATA) - { - type = N_DATA; - } - else if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC) - { - type = N_BSS; - } - else - continue; - - if (sym->flags & BSF_GLOBAL) - type |= N_EXT; - - record_minimal_symbol (reader, bfd_asymbol_name (sym), sym_value, - type, objfile); - } - } - - /* Symbols from shared libraries have a dynamic relocation entry - that points to the associated slot in the procedure linkage table. - We make a mininal symbol table entry with type mst_solib_trampoline - at the address in the procedure linkage table. */ - dynrel_size = bfd_get_dynamic_reloc_upper_bound (abfd); - if (dynrel_size < 0) - { - do_cleanups (back_to); - return; - } - - dynrels = (arelent **) xmalloc (dynrel_size); - make_cleanup (xfree, dynrels); - - dynrel_count = bfd_canonicalize_dynamic_reloc (abfd, dynrels, dynsyms); - if (dynrel_count < 0) - { - do_cleanups (back_to); - return; - } - - for (counter = 0, relptr = dynrels; - counter < dynrel_count; - counter++, relptr++) - { - arelent *rel = *relptr; - CORE_ADDR address = rel->address; - - switch (bfd_get_arch (abfd)) - { - case bfd_arch_sparc: - if (rel->howto->type != RELOC_JMP_SLOT) - continue; - break; - case bfd_arch_m68k: - /* `16' is the type BFD produces for a jump table relocation. */ - if (rel->howto->type != 16) - continue; - - /* Adjust address in the jump table to point to - the start of the bsr instruction. */ - address -= 2; - break; - default: - continue; - } - - name = bfd_asymbol_name (*rel->sym_ptr_ptr); - reader.record (name, address, mst_solib_trampoline); - } - - do_cleanups (back_to); -} - static CORE_ADDR find_stab_function_addr (char *namestring, const char *filename, struct objfile *objfile) @@ -2688,14 +2527,6 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, source file. Used to detect the SunPRO solaris compiler. */ static int n_opt_found; - if (!block_address_function_relative) - { - /* N_LBRAC, N_RBRAC and N_SLINE entries are not relative to the - function start address, so just use the text offset. */ - function_start_offset = - ANOFFSET (section_offsets, SECT_OFF_TEXT (objfile)); - } - /* Something is wrong if we see real data before seeing a source file name. */ @@ -2751,8 +2582,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, /* May be switching to an assembler file which may not be using block relative stabs, so reset the offset. */ - if (block_address_function_relative) - function_start_offset = 0; + function_start_offset = 0; break; } @@ -2774,13 +2604,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, if (n_opt_found && desc == 1) break; - if (block_address_function_relative) - /* Relocate for Sun ELF acc fn-relative syms. */ - valu += function_start_offset; - else - /* On most machines, the block addresses are relative to the - N_SO, the linker did not relocate them (sigh). */ - valu += last_source_start_addr; + valu += function_start_offset; push_context (desc, valu); break; @@ -2793,13 +2617,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, if (n_opt_found && desc == 1) break; - if (block_address_function_relative) - /* Relocate for Sun ELF acc fn-relative syms. */ - valu += function_start_offset; - else - /* On most machines, the block addresses are relative to the - N_SO, the linker did not relocate them (sigh). */ - valu += last_source_start_addr; + valu += function_start_offset; if (context_stack_depth <= 0) { @@ -2894,8 +2712,7 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, if (*name == '\000') break; - if (block_address_function_relative) - function_start_offset = 0; + function_start_offset = 0; start_stabs (); start_symtab (objfile, name, NULL, valu); @@ -3113,14 +2930,8 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name, valu = minsym_valu; } - if (block_address_function_relative) - /* For Solaris 2 compilers, the block addresses and - N_SLINE's are relative to the start of the - function. On normal systems, and when using GCC on - Solaris 2, these addresses are just absolute, or - relative to the N_SO, depending on - BLOCK_ADDRESS_ABSOLUTE. */ - function_start_offset = valu; + /* These addresses are absolute. */ + function_start_offset = valu; within_function = 1; |