symbols found)" message here; we haven't checked for a separate
debug info file yet, so we don't know yet.
(symbol_file_add_with_addrs_or_offsets): Print it here, after
we've looked everywhere. Also, there's no need to print a special
message when we're loading the separate debug info file: the one
symbol_file_add prints is fine.
2003-01-23 Alexander Larsson <alexl@redhat.com>
Jim Blandy <jimb@redhat.com>
Add support for executables whose debug info has been separated
out into a separate file, leaving only a link behind.
* objfiles.h (struct objfile): New fields: separate_debug_objfile
and separate_debug_objfile_backlink.
(put_objfile_before): New declaration.
* symfile.c: #include "filenames.h".
(symbol_file_add_with_addrs_or_offsets): If this objfile has its
debug info in a separate file, read that, too. Save the addrs
argument, so we can use it again to read the separated debug info;
syms_from_objfile modifies the table we pass it.
(reread_symbols): After re-reading an objfile, call
reread_separate_symbols to refresh its separate debug info
objfile, if it has one.
(reread_separate_symbols, find_separate_debug_file,
get_debug_link_info, separate_debug_file_exists): New functions.
(debug_file_directory): New global var.
(_initialize_symfile): Initialize debug_file_directory, and
provide the new `set debug-file-directory' command to let the user
change it.
* objfiles.c (free_objfile): If this objfile has its debug info in
a separate objfile, free that one too. If this is itself a
separate debug info objfile, clear our parent's backlink.
(put_objfile_before): New function.
* utils.c (gnu_debuglink_crc32): New function.
* defs.h (gnu_debuglink_crc32): New declaration.
* Makefile.in (symfile.o): Note dependency on "filenames.h".
* configure.in: Handle --with-separate-debug-dir config option.
* acinclude.m4 (AC_DEFINE_DIR): New macro.
* acconfig.h (DEBUGDIR): New macro.
* configure, aclocal.m4, config.in: Regenerated.
gdb/doc/ChangeLog:
2003-01-23 Jim Blandy <jimb@redhat.com>
* gdb.texinfo (Separate Debug Files): New section.
like the old symbol_file_add, but taking new arguments: you can
now pass in either a `struct section_addr_info' list to say where
each section is loaded, or a `struct section_offsets' table. Pass
these new arguments through to syms_from_objfile as appropriate.
(symbol_file_add): Just call symbol_file_add_with_addrs_or_offsets,
with the appropriate quiescent values for the new arguments.
(syms_from_objfile): Add the ability to pass in a section offset
table directly, as an alternative to the section_addr_info table.
Document arguments better.
(symbol_file_add): Pass extra arguments to syms_from_objfile.
* symfile.h (syms_from_objfile): Update declaration.
* rs6000-nat.c (objfile_symbol_add): Pass new arguments to
syms_from_objfile.
* Makefile.in (symfile.o): List dependency on $(gdb_assert_h).
Jason Molenda <jmolenda@apple.com>.
* Makefile.in (PROFILE_CFLAGS): Substitute from configure.
(INTERNAL_LDFLAGS): Don't include PROFILE_CFLAGS.
* NEWS: Mention profiling.
* configure.in (--enable-gdbtk): Fix typo.
(--enable-profiling): New. Set PROFILE_CFLAGS.
* maint.c (maintenance_set_profile_cmd): Remove NOTYET.
Fill in function.
(profiling_state): New variable.
(mcleanup_wrapper): New function.
(_initialize_maint): Remove NOTYET, fix call to
add_setshow_boolean_cmd for "maint set profile".
* configure: Regenerated.
(struct alpha_elf_link_hash_entry): Add plt_old_section, plt_old_value.
(elf64_alpha_adjust_dynamic_symbol): Set them.
(elf64_alpha_size_plt_section_1): Reset them when plt entry removed.
(elf64_alpha_relax_tls_get_addr): Handle LDM relocs. Frob the
symbol index when relaxing LDM to TPREL.
(elf64_alpha_relax_section): Likewise. Allow relaxation of GD
relocs, even if the target isn't locally defined.
(elf64_alpha_check_relocs): Frob LDM reloc symndx to zero.
(elf64_alpha_relocate_section): Likewise. Force TP-relative
relocs vs symndx 0 to the tp base.
(struct ppc_elf_link_hash_entry): Define.
(ppc_elf_hash_entry): New function.
(struct ppc_elf_link_hash_table): Define.
(ppc_elf_hash_table): New function.
(ppc_elf_link_hash_newfunc): New function.
(ppc_elf_link_hash_table_create): New function.
(ppc_elf_copy_indirect_symbol): New function.
(allocate_dynrelocs): New function.
(readonly_dynrelocs): New function.
(ppc_elf_size_dynamic_sections): Allocate space for dynamic
relocs and determine DT_TEXTREL.
(ppc_elf_check_relocs): Don't do that here, just count the
dynamic relocs.
(ppc_elf_gc_sweep_hook): Discard any dynamic relocs against the
removed section.
(bfd_elf32_bfd_link_hash_table_create): Define.
(elf_backend_copy_indirect_symbol): Define.
TPREL also get a reloc if shared. Remove SREL support.
(elf64_alpha_emit_dynrel): New.
(elf64_alpha_relocate_section): Use it. Resolve dynamic TPREL
and GOTTPREL relocs to local symbols against the tp base.
(elf64_alpha_finish_dynamic_symbol): Use elf64_alpha_emit_dynrel.
* elf64-alpha.c (elf64_alpha_relax_got_load): Decrement got
use count before clobbering r_type.
(elf64_alpha_relax_tls_get_addr): Don't use pos[1] if insn
ordering would mean dataflow inspection is necessary.
gotplt and pltoff relocations.
(s390_elf_suffix): Add suffix strings for gotoff, gotplt and pltoff.
(s390_elf_cons): Map new lenght/elf suffix combinations for gotoff,
gotplt and pltoff to bfd relocations.
(md_gather_operands): Map new instruction operand/elf suffix
combinations to bfd relocations.
(tc_s390_fix_adjustable): Add new gotoff, gotplt and pltoff relocations
to the list of unadjustable relocations.
(tc_s390_force_relocation): Always emit relocations for gotoff, gotplt
and pltoff relocations.
(md_apply_fix3): Add the new relocations.