* elf32-mips.c (struct mips_elf_find_line): Define.
authorIan Lance Taylor <ian@airs.com>
Tue, 14 Feb 1995 23:03:45 +0000 (23:03 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 14 Feb 1995 23:03:45 +0000 (23:03 +0000)
(mips_elf_find_nearest_line): New static function.
(bfd_elf32_find_nearest_line): Define.
* libelf.h (struct elf_obj_tdata): Add find_line_info field.

* ecoff.c (_bfd_ecoff_swap_tir_in): Move to ecofflink.c.
(_bfd_ecoff_swap_tir_out): Likewise.
(_bfd_ecoff_swap_rndx_in): Likewise.
(_bfd_ecoff_swap_rndx_out): Likewise.
(cmp_fdrtab_entry): Likewise.
(mk_fdrtab): Likewise.
(lookup): Likewise.
(_bfd_ecoff_find_nearest_line): Just call _bfd_ecoff_locate_line
to do most of the work.  Allocate find_line_info if necessary.
* ecofflink.c: Include "aout/stab_gnu.h".
(_bfd_ecoff_swap_tir_in): Move in from ecoff.c.
(_bfd_ecoff_swap_tir_out): Likewise.
(_bfd_ecoff_swap_rndx_in): Likewise.
(_bfd_ecoff_swap_rndx_out): Likewise.
(cmp_fdrtab_entry): Likewise.  Use PTR instead of void *.
(mk_fdrtab): Move in from ecoff.c.  Add debug_info, debug_swap,
and line_info arguments, and use them instead of ecoff_data.
(fdrtab_lookup): Move in from lookup in ecoff.c.  Remove abfd
argument, add line_info argument.  Use it instead of ecoff_data.
(_bfd_ecoff_locate_line): New function, mostly from the old
_bfd_ecoff_find_nearest_line in ecoff.c.
* libecoff.h (ecoff_data_type): Remove find_buffer, fdrtab_len and
fdrtab fields, replacing them find_line_info field.
(_bfd_ecoff_swap_tir_in): Declare.
(_bfd_ecoff_swap_tir_out): Declare.
(_bfd_ecoff_swap_rndx_in): Declare.
(_bfd_ecoff_swap_rndx_out): Declare.
* libbfd-in.h (_bfd_ecoff_locate_line): Declare.
* libbfd.h: Rebuild.
* configure.in: Don't use ecoff.o for bfd_elf32_bigmips_vec or
bfd_elf32_littlemips_vec.
* Makefile.in: Rebuild dependencies.

bfd/libelf.h

index 1c75f48..01d1599 100644 (file)
@@ -490,6 +490,12 @@ struct elf_obj_tdata
 
   /* Records the result of `get_program_header_size'.  */
   bfd_size_type program_header_size;
+
+  /* Used by MIPS ELF find_nearest_line entry point.  The structure
+     could be included directly in this one, but there's no point to
+     wasting the memory just for the infrequently called
+     find_nearest_line.  */
+  struct mips_elf_find_line *find_line_info;
 };
 
 #define elf_tdata(bfd)         ((bfd) -> tdata.elf_obj_data)