Alan Modra [Mon, 22 Mar 2004 22:58:04 +0000 (22:58 +0000)]
include/
PR 51.
* bfdlink.h (struct bfd_link_info): Add wrap_char.
bfd/
PR 51.
* linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.
ld/
PR 51.
* emultempl/ppc64elf.em (ppc_create_output_section_statements): Set
link_info.wrap_char.
Andrew Cagney [Mon, 22 Mar 2004 22:33:33 +0000 (22:33 +0000)]
2004-03-22 Andrew Cagney <cagney@redhat.com>
* s390-tdep.c (struct s390_stub_unwind_cache): Rename
s390_pltstub_unwind_cache.
(s390_stub_frame_unwind_cache): Rename
s390_pltstub_frame_unwind_cache.
(s390_stub_frame_this_id): Rename s390_pltstub_frame_this_id.
(s390_stub_frame_prev_register): Rename
s390_pltstub_frame_prev_register.
(s390_stub_frame_unwind): Rename s390_pltstub_frame_unwind.
(s390_stub_frame_sniffer): Rename s390_stub_frame_sniffer.
From Ulrich Weigand:
* s390-tdep.c (s390_pltstub_frame_sniffer): Handle invalid function
pointer calls like PLT calls.
Daniel Jacobowitz [Mon, 22 Mar 2004 21:39:00 +0000 (21:39 +0000)]
* mips-tdep.c (non_heuristic_proc_desc): Search using the specified
PC rather than the partial function start address. Use the start
address to sanity check the found PDR.
Daniel Jacobowitz [Mon, 22 Mar 2004 20:18:33 +0000 (20:18 +0000)]
* lin-lwp.c (lin_lwp_wait): Pass the LWP ID to
linux_handle_extended_wait.
Andrew Cagney [Mon, 22 Mar 2004 17:07:08 +0000 (17:07 +0000)]
2004-03-22 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (frame_initial_stack_address): Delete unused
function.
Andrew Cagney [Mon, 22 Mar 2004 16:58:08 +0000 (16:58 +0000)]
2004-03-22 Andrew Cagney <cagney@redhat.com>
* frame.h (generic_pop_current_frame): Delete declaration.
(deprecate_pop_dummy_frame): Deprecate
generic_pop_dummy_frame.
* dummy-frame.c (deprecated_pop_dummy_frame): Update.
(generic_pop_current_frame): Delete function.
* mn10300-tdep.c (mn10300_pop_frame): Eliminate call to
generic_pop_current_frame.
* v850-tdep.c (v850_pop_frame): Update.
* mcore-tdep.c (mcore_pop_frame): Update.
* sh64-tdep.c (sh64_pop_frame): Update.
* h8300-tdep.c (h8300_pop_frame): Update.
Andrew Cagney [Mon, 22 Mar 2004 15:36:47 +0000 (15:36 +0000)]
2004-03-22 Andrew Cagney <cagney@redhat.com>
* frame.h (deprecated_pc_in_call_dummy): Rename
generic_pc_in_call_dummy.
* dummy-frame.h (pc_in_dummy_frame): Delete declaration.
* dummy-frame.c (deprecated_pc_in_call_dummy): Rename
generic_pc_in_call_dummy.
(pc_in_dummy_frame): Make static.
* gdbarch.sh (DEPRECATED_PC_IN_CALL_DUMMY): Update.
* gdbarch.h, gdbarch.c: Re-generate.
* dummy-frame.c (dummy_frame_sniffer): Simplify.
* frame.c (frame_type_from_pc): Call deprecated_pc_in_call_dummy.
(legacy_get_prev_frame): Ditto.
* inferior.h: Delete reference to generic_pc_in_call_dummy in
comment.
Andrew Cagney [Mon, 22 Mar 2004 14:24:18 +0000 (14:24 +0000)]
2004-03-22 Andrew Cagney <cagney@redhat.com>
* gdb.base/watchpoint.exp (test_stepping): Delete bogus XFAILs
hiding problems with DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET.
Problem identified by Ulrich Weigand.
Nathanael Nerode [Mon, 22 Mar 2004 11:59:20 +0000 (11:59 +0000)]
* Makefile.tpl: Rearrange by moving recursive_targets rules
into their proper sections.
* Makefile.tpl (top level bootstrap support): Move disabling
of coverage flags from 'make' to 'configure'; improve comments.
* Makefile.in: Regenerate.
* Makefile.tpl (experimental top level bootstrap) Move stage1
language setting from all- target to configure- target; disable
intermodule optimization in stage 1; prevent gratuitous rebuilds
of stage 1.
* Makefile.in: Regenerate.
* configure.in: Comma-separate stage 1 language list for top
level bootstrap.
* configure: Regenerate.
* Makefile.tpl: Clean up experimental top level bootstrap support:
note known problems; set CONFIG_SHELL; don't set BUILD_CC; relocate
prev-gcc in configure- targets as well as all- targets.
* Makefile.in: Regenerate.
Hans-Peter Nilsson [Mon, 22 Mar 2004 04:08:39 +0000 (04:08 +0000)]
* elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
R_CRIS_16_GOTPLT>: Also error if there's no PLT for a symbol
not defined by the executable, or defined in a DSO.
<eliding run-time relocation of .got>: Initialize GOT entry for a
function symbol or ELF_LINK_HASH_NEEDS_PLT statically in an
executable.
(cris_elf_gc_sweep_hook): Improve fallthrough marking.
(elf_cris_try_fold_plt_to_got): Improve head comment. Do not fold
a PLT reloc to GOT for an executable.
(elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
.got for a DSO and explain why.
(elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
and unreferenced symbols for which a PLT is defined. Adjust
dynamic-symbol pruning correspondingly, to make sure we don't lose
a dynamic symbol also defined by a DSO.
Hans-Peter Nilsson [Mon, 22 Mar 2004 04:06:06 +0000 (04:06 +0000)]
* ld-cris/dsofnf.s, ld-cris/dsofnf2.s, ld-cris/gotplt1.d,
ld-cris/gotplt2.d, ld-cris/gotplt3.d: New tests.
Richard Henderson [Mon, 22 Mar 2004 03:55:50 +0000 (03:55 +0000)]
* readelf.c (display_debug_frames): Don't crash for mismatched
DW_CFA_restore_state.
Alan Modra [Mon, 22 Mar 2004 02:28:17 +0000 (02:28 +0000)]
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add input_bfd, input_section
and rel args. Group input and output args. Wrap to 80 columns.
* elf-m10200.c, elf-m10300.c, elf32-arm.h, elf32-avr.c,
elf32-cris.c, elf32-d10v.c, elf32-fr30.c, elf32-h8300.c,
elf32-hppa.c, elf32-i386.c, elf32-i860.c, elf32-ip2k.c,
elf32-iq2000.c, elf32-m68hc1x.c, elf32-m68k.c, elf32-mcore.c,
elf32-msp430.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
elf32-sparc.c, elf32-v850.c, elf32-vax.c, elf32-xstormy16.c,
elf32-xtensa.c, elf64-alpha.c, elf64-mmix.c, elf64-ppc.c,
elf64-s390.c, elf64-sparc.c, elf64-x86-64.c, elfxx-ia64.c: Update
RELOC_FOR_GLOBAL_SYMBOL invocation.
Alan Modra [Mon, 22 Mar 2004 01:44:29 +0000 (01:44 +0000)]
* config/tc-sh.c: Remove trailing whitespace.
Andrew Cagney [Mon, 22 Mar 2004 01:43:32 +0000 (01:43 +0000)]
2004-03-21 Andrew Cagney <cagney@redhat.com>
* inferior.h (deprecated_pc_in_call_dummy_at_entry_point): Delete
declaration and out-of-date comment.
* blockframe.c (deprecated_pc_in_call_dummy_at_entry_point):
Delete function.
* mn10300-tdep.c (mn10300_gdbarch_init): Do not set
deprecated_pc_in_call_dummy.
gdbadmin [Mon, 22 Mar 2004 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Hans-Peter Nilsson [Sun, 21 Mar 2004 23:50:38 +0000 (23:50 +0000)]
* doc/c-cris.texi (CRIS-Opts): Document --no-mul-bug-abort,
--mul-bug-abort and the default behavior.
* config/tc-cris.c (cris_insn_kind): New member CRIS_INSN_MUL.
(err_for_dangerous_mul_placement): New variable.
(STATE_MUL, OPTION_MULBUG_ABORT_ON, OPTION_MULBUG_ABORT_OFF): New
macros.
(md_cris_relax_table): Have placeholder for STATE_MUL.
(md_longopts): New options --mul-bug-abort and --no-mul-bug-abort.
(cris_relax_frag) <case ENCODE_RELAX (STATE_MUL, STATE_BYTE)>: New
case doing nothing.
(md_estimate_size_before_relax) <case ENCODE_RELAX (STATE_MUL,
STATE_BYTE)>: Ditto.
(md_convert_frag) <ENCODE_RELAX (STATE_MUL, STATE_BYTE)>: Check
alignment and position of this frag, emit error message if
suspicious.
(md_assemble): For a multiply insn and when checking it,
transform the current frag into a special frag for that purpose.
(md_parse_option) <case OPTION_MULBUG_ABORT_OFF, case
OPTION_MULBUG_ABORT_ON>: Handle new options.
Hans-Peter Nilsson [Sun, 21 Mar 2004 23:47:54 +0000 (23:47 +0000)]
* gas/cris/regreg.d: Assemble with --no-mul-bug-abort.
* gas/cris/mulbug-err-1.s, gas/cris/rd-mulbug-1.d: New tests.
Alan Modra [Sun, 21 Mar 2004 23:00:35 +0000 (23:00 +0000)]
daily update
Andrew Cagney [Sun, 21 Mar 2004 22:53:49 +0000 (22:53 +0000)]
2004-03-21 Andrew Cagney <cagney@redhat.com>
* infrun.c (handle_inferior_event): For non legacy frames, use the
frame ID and frame type to identify a signal trampoline. Update
comments.
Nathan J. Williams [Sun, 21 Mar 2004 22:34:12 +0000 (22:34 +0000)]
2004-03-21 Nathan J. Williams <nathanw@wasabisystems.com>
* mipsnbsd-tdep.c: Update copyright. Include "mips-tdep.h".
* Makefile.in (mipsnbsd-tdep.o): Update dependencies.
Andrew Cagney [Sun, 21 Mar 2004 22:28:52 +0000 (22:28 +0000)]
2004-03-21 Andrew Cagney <cagney@redhat.com>
* frame-unwind.h: Update copyright.
(struct frame_data): Add opaque declaration.
(frame_sniffer_ftype): Declare.
(struct frame_unwind): Add "unwind_data" and "sniffer".
(frame_unwind_register_unwinder): Declare.
(frame_unwind_find_by_frame): Add parameter "this_cache".
* frame.c (get_frame_id, create_new_frame, legacy_get_prev_frame)
(legacy_get_prev_frame, legacy_get_prev_frame)
(get_frame_type): Pass the prologue_cache to
frame_unwind_find_by_frame.
* frame-unwind.c (struct frame_unwind_table_entry): Add field
"unwinder".
(frame_unwind_register_unwinder): New function.
(frame_unwind_find_by_frame): Handle an unwind sniffer.
gdbadmin [Sun, 21 Mar 2004 00:00:04 +0000 (00:00 +0000)]
*** empty log message ***
H.J. Lu [Sat, 20 Mar 2004 23:44:18 +0000 (23:44 +0000)]
Reorder it.
H.J. Lu [Sat, 20 Mar 2004 23:36:18 +0000 (23:36 +0000)]
Correct the ChangeLog entry.
H.J. Lu [Sat, 20 Mar 2004 23:16:43 +0000 (23:16 +0000)]
bfd/
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Report error if
unresolved symbols in objects aren't allowed.
* elf-hppa.h (elf_hppa_relocate_section): Properly handle
unresolved symbols.
(elf_hppa_remark_useless_dynamic_symbols): Likewise.
(elf_hppa_unmark_useless_dynamic_symbols):
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
(elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
* elf-m10200.c (mn10200_elf_relocate_section): Use
RELOC_FOR_GLOBAL_SYMBOL.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-m68hc1x.c (m68hc11_get_relocation_value): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
include/
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
* bfdlink.h (bfd_link_info): Correct comments for the
unresolved_syms_in_objects field.
ld/
2004-03-20 H.J. Lu <hongjiu.lu@intel.com>
* lexsup.c (parse_args): Don't set unresolved_syms_in_objects
or unresolved_syms_in_shared_libs for -Bdynamic and -Bstatic.
Alan Modra [Sat, 20 Mar 2004 23:00:05 +0000 (23:00 +0000)]
daily update
Paul N. Hilfinger [Sat, 20 Mar 2004 09:53:03 +0000 (09:53 +0000)]
print_percentage: Use floating point to avoid incorrect results when
portion*100 overflows.
Alexandre Oliva [Sat, 20 Mar 2004 05:49:27 +0000 (05:49 +0000)]
* emulparams/elf32frvfd.sh (MAXPAGESIZE): Change to 16Kb.
Kevin Buettner [Sat, 20 Mar 2004 04:58:13 +0000 (04:58 +0000)]
Remove old frame code. Enable new frame code for AIX.
Kevin Buettner [Sat, 20 Mar 2004 04:51:21 +0000 (04:51 +0000)]
Commit Andrew Cagney's rs6000 / PPC framification patch.
Dave Anglin [Sat, 20 Mar 2004 00:42:10 +0000 (00:42 +0000)]
* elf32-hppa.c (elf32_hppa_check_relocs): Handle R_PARISC_PCREL32.
(final_link_relocate): Likewise.
gdbadmin [Sat, 20 Mar 2004 00:00:04 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 19 Mar 2004 23:00:07 +0000 (23:00 +0000)]
daily update
Bob Wilson [Fri, 19 Mar 2004 22:35:32 +0000 (22:35 +0000)]
* config/tc-xtensa.c (mark_literal_frags): New function.
(xtensa_move_literals): Call mark_literal_frags for all literal
segments, including init and fini literal segments.
(xtensa_post_relax_hook): Swap use of xt_insn_sec and xt_literal_sec.
Kevin Buettner [Fri, 19 Mar 2004 20:49:43 +0000 (20:49 +0000)]
* breakpoint.c (adjust_breakpoint_address): Don't adjust
breakpoint address for watchpoints or the catch eventpoints.
Add new paramter ``bptype''. Adjust all callers.
Dave Anglin [Fri, 19 Mar 2004 19:19:53 +0000 (19:19 +0000)]
* elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for
R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations.
* tc-hppa.c (cons_fix_new_hppa): Check for PC relative base type.
(pa_comm): Set BSF_OBJECT in symbol flags.
Andrew Cagney [Fri, 19 Mar 2004 17:43:34 +0000 (17:43 +0000)]
2004-03-19 Andrew Cagney <cagney@redhat.com>
* config/pa/tm-hppa.h (GDB_TARGET_IS_HPPA): Delete unused macro.
Index: doc/ChangeLog
2004-03-19 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Delete
reference to GDB_TARGET_IS_HPPA.
H.J. Lu [Fri, 19 Mar 2004 17:02:31 +0000 (17:02 +0000)]
2004-03-19 H.J. Lu <hongjiu.lu@intel.com>
* ld-elfvers/vers.exp: Add new tests for versioned weak
definition.
* ld-elfvers/vers28a.c: New file.
* ld-elfvers/vers28a.dsym: Likewise.
* ld-elfvers/vers28a.ver: Likewise.
* ld-elfvers/vers28b.c: Likewise.
* ld-elfvers/vers28b.dsym: Likewise.
* ld-elfvers/vers28b.map: Likewise.
* ld-elfvers/vers28b.ver: Likewise.
* ld-elfvers/vers28c.c: Likewise.
* ld-elfvers/vers28c.dsym: Likewise.
* ld-elfvers/vers28c.ver: Likewise.
Andrew Cagney [Fri, 19 Mar 2004 16:42:31 +0000 (16:42 +0000)]
2004-03-19 Andrew Cagney <cagney@redhat.com>
* PROBLEMS: Delete note that ARM does not use frame code, problem
fixed.
Alan Modra [Fri, 19 Mar 2004 07:21:48 +0000 (07:21 +0000)]
* po/sv.po: Updated.
Alan Modra [Fri, 19 Mar 2004 07:14:44 +0000 (07:14 +0000)]
* ld-scripts/provide-2.d: Ignore random symbols.
Alan Modra [Fri, 19 Mar 2004 07:07:22 +0000 (07:07 +0000)]
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
* gconfig.in: Regenerate.
* po/gprof.pot: Regenerate.
Alan Modra [Fri, 19 Mar 2004 07:06:35 +0000 (07:06 +0000)]
* config.in: Regenerate.
* po/ld.pot: Regenerate.
Alan Modra [Fri, 19 Mar 2004 07:05:56 +0000 (07:05 +0000)]
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* config.in: Regenerate.
* po/gas.pot: Regenerate.
Alan Modra [Fri, 19 Mar 2004 07:03:40 +0000 (07:03 +0000)]
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* po/binutils.pot: Regenerate.
Alan Modra [Fri, 19 Mar 2004 07:02:24 +0000 (07:02 +0000)]
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* configure: Regenerate.
* po/POTFILES.in: Regenerate.
* po/opcodes.pot: Regenerate.
Alan Modra [Fri, 19 Mar 2004 07:00:51 +0000 (07:00 +0000)]
* Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* config.in: Regenerate.
* po/bfd.pot: Regenerate.
doc/
* Makefile.in: Regenerate.
Alan Modra [Fri, 19 Mar 2004 01:36:45 +0000 (01:36 +0000)]
* elflink.c (_bfd_elf_merge_symbol): Revert last change. Move
type and size change code to where it was previously. Remove
dt_needed param. Treat old weak syms as strong if new sym is
from a shared lib, even when old sym is from another shared
lib. Remove unnecessary tests of oldweak and newweak. Correct
comments.
(_bfd_elf_add_default_symbol): Remove dt_needed param. Update
_bfd_elf_merge_symbol calls.
* elflink.h (elf_link_add_object_symbols): Update calls. Remove
dt_needed local var. Update comments.
* elf-bfd.h (_bfd_elf_merge_symbol): Update prototype.
(_bfd_elf_add_default_symbol): Likewise.
gdbadmin [Fri, 19 Mar 2004 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Andrew Cagney [Thu, 18 Mar 2004 23:04:45 +0000 (23:04 +0000)]
2004-03-18 Andrew Cagney <cagney@redhat.com>
* stack.c (return_command): Delete code wrapped in #ifdef
DEPRECATED_CALL_DUMMY_HAS_COMPLETED, macro no longer defined.
Alan Modra [Thu, 18 Mar 2004 23:02:06 +0000 (23:02 +0000)]
* elflink.c (_bfd_elf_merge_symbol): Reinstate code to handle
strong syms in one shared object overriding weak syms in another.
Alan Modra [Thu, 18 Mar 2004 23:00:06 +0000 (23:00 +0000)]
daily update
Andrew Cagney [Thu, 18 Mar 2004 20:30:08 +0000 (20:30 +0000)]
2004-03-18 Andrew Cagney <cagney@redhat.com>
* rs6000-tdep.c (skip_prologue): Record only the first LR save.
Andrew Cagney [Thu, 18 Mar 2004 20:13:34 +0000 (20:13 +0000)]
2004-03-18 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Coding): Update section on gdbarch_data,
describe pre_init and post_init.
Andrew Cagney [Thu, 18 Mar 2004 19:59:07 +0000 (19:59 +0000)]
2004-03-18 Andrew Cagney <cagney@redhat.com>
* config/mips/tm-nbsd.h: Replace IN_SIGTRAMP with
DEPRECATED_IN_SIGTRAMP.
* config/powerpc/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/mips/tm-linux.h (DEPRECATED_IN_SIGTRAMP) Ditto.
* config/mips/tm-irix6.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/mips/tm-irix5.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/ia64/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/ia64/tm-aix.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/arm/tm-linux.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* config/arm/tm-embed.h (DEPRECATED_IN_SIGTRAMP): Ditto.
* arch-utils.c (legacy_pc_in_sigtramp): Ditto.
* arch-utils.h: Remove reference to IN_SIGTRAMP in comment.
Andrew Cagney [Thu, 18 Mar 2004 16:22:00 +0000 (16:22 +0000)]
2004-03-18 Andrew Cagney <cagney@redhat.com>
* frame-base.c: Update copyright. Include "gdb_obstack.h".
(struct frame_base_table_entry): Define.
(struct frame_base_table): Re-implement as a linked list.
(frame_base_init): Re-implement.
(frame_base_table): Delete function.
(append_predicate): Delete function.
(frame_base_append_sniffer): Update.
(frame_base_set_default): Update.
(frame_base_find_by_frame): Update.
(_initialize_frame_base): Use gdbarch_data_register_pre_init.
* Makefile.in (frame-base.o): Update dependencies.
Nathan Sidwell [Thu, 18 Mar 2004 13:31:04 +0000 (13:31 +0000)]
* read.c (read_a_source_file): Use demand_empty_rest_of_line.
(demand_empty_rest_of_line): Issue an error here.
(ignore_rest_of_line): Silently skip to end.
(demand_copy_string): Issue an error, not warning.
(equals): Likewise.
* config/obj-elf.c (obj_elf_section_name): Likewise.
(obj_elf_section): Likewise.
* config/tc-arc.c (arc_extoper): Remove bogus NULL checks.
(arc_extinst): Likewise.
* config/tc-ia64.c (dot_saveb): Use demand_empty_rest_of_line.
(dot_spill): Likewise.
(dot_unwabi): Likewise.
(dot_prologue): Likewise.
Alan Modra [Thu, 18 Mar 2004 12:50:20 +0000 (12:50 +0000)]
bfd/
* elf-bfd.h (struct elf_obj_tdata): Delete dt_soname field. Add
dyn_lib_class field. Rearrange for better packing.
(elf_dt_soname): Delete.
(elf_dyn_lib_class): Define.
* elf.c (bfd_elf_set_dt_needed_name): Update comment.
(bfd_elf_set_dt_needed_soname): Delete.
(bfd_elf_set_dyn_lib_class): New function.
* elflink.h (add_dt_needed_tag): New function. Split out from..
(elf_link_add_object_symbols): ..here. Rename "name" to "soname".
Use elf_dyn_lib_class to set dt_needed and add_needed. Move fallback
initialization of soname.
(elf_link_check_versioned_symbol): Test elf_dyn_lib_class instead of
elf_dt_soname.
* bfd-in.h (enum dynamic_lib_link_class): New.
(bfd_elf_set_dt_needed_soname): Delete.
(bfd_elf_set_dyn_lib_class): Declare.
* bfd-in2.h: Regenerate.
ld/
* ld.texinfo: Add --as-needed doco.
* ldmain.c (as_needed): New global var.
* ldmain.h (as_needed): Declare.
* lexsup.c (option_values): Add OPTION_AS_NEEDED and
OPTION_NO_AS_NEEDED.
(ld_options): Likewise.
(parse_args): Handle them.
* ldlang.h (lang_input_statement_type): Add as_needed field.
* ldlang.c (new_afile): Set p->as_needed.
* emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): New function.
(gld${EMULATION_NAME}_try_needed): Use bfd_elf_set_dyn_lib_class.
(ld_${EMULATION_NAME}_emulation): Set LDEMUL_RECOGNIZED_FILE entry.
* ldlang.c (open_input_bfds): Remove useless cast.
(lang_do_assignments_1): Likewise.
(lang_for_each_input_section): Delete.
Nathan Sidwell [Thu, 18 Mar 2004 09:19:20 +0000 (09:19 +0000)]
* expr.c (operand): Reject ++ and --.
(operator): Likewise.
Alan Modra [Thu, 18 Mar 2004 04:32:17 +0000 (04:32 +0000)]
* elflink.c (_bfd_elf_merge_symbol): Rewrite weak symbol handling.
(_bfd_elf_add_default_symbol): Remove indirect BFD_ASSERTs.
* elflink.h (elf_link_add_object_symbols): Don't clear dt_needed in
symbol loop. Instead use add_needed to flag tag as written.
DJ Delorie [Thu, 18 Mar 2004 04:07:41 +0000 (04:07 +0000)]
merge from gcc
DJ Delorie [Thu, 18 Mar 2004 02:07:18 +0000 (02:07 +0000)]
merge from gcc
Kaz Kojima [Thu, 18 Mar 2004 00:49:23 +0000 (00:49 +0000)]
[gas]
* config/tc-sh.c: Include dw2gencfi.h.
(sh_cfi_frame_initial_instructions): New function.
(sh_regname_to_dw2regnum): Likewise.
* config/tc-sh.h (DWARF2_LINE_MIN_INSN_LENGTH): Move to the end of
file.
(TARGET_USE_CFIPOP): Define.
(tc_cfi_frame_initial_instructions): Likewise.
(tc_regname_to_dw2regnum): Likewise.
(DWARF2_DEFAULT_RETURN_COLUMN, DWARF2_CIE_DATA_ALIGNMENT): Likewise.
* Makefile.am: Update dependencies.
* Makefile.in: Regenerate.
[gas/testsuite]
* gas/cfi/cfi-sh-1.d: New file.
* gas/cfi/cfi-sh-1.s: Likewise.
* gas/cfi/cfi.exp: Add SH case.
gdbadmin [Thu, 18 Mar 2004 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Andrew Cagney [Wed, 17 Mar 2004 23:43:36 +0000 (23:43 +0000)]
2004-03-17 Andrew Cagney <cagney@redhat.com>
* frame.c (legacy_get_prev_frame): Pass correct frame to
frame_unwind_find_by_frame.
Alan Modra [Wed, 17 Mar 2004 23:00:06 +0000 (23:00 +0000)]
daily update
David Carlton [Wed, 17 Mar 2004 20:11:22 +0000 (20:11 +0000)]
2004-03-17 David Carlton <carlton@kealia.com>
* gdb.cp/classes.exp (test_enums): Refer to PR c++/1588 instead of
PR c++/826.
Nathanael Nerode [Wed, 17 Mar 2004 19:26:07 +0000 (19:26 +0000)]
2004-03-17 Paolo Bonzini <bonzini@gnu.org>
* configure.in: Remove symbolic link section.
* configure: Regenerate.
* Makefile.tpl (links): Remove.
* Makefile.in: Regenerate.
David Carlton [Wed, 17 Mar 2004 17:35:54 +0000 (17:35 +0000)]
2004-03-17 David Carlton <carlton@kealia.com>
* NEWS: Mention C++ nested types and namespaces
Nathan Sidwell [Wed, 17 Mar 2004 12:27:05 +0000 (12:27 +0000)]
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
logic for null_input_bfd detection.
Michael Chastain [Wed, 17 Mar 2004 07:00:41 +0000 (07:00 +0000)]
2004-03-16 Michael Chastain <mec.gnu@mindspring.com>
* PROBLEMS: Add section headers, "Regressions since gdb 6.0"
and "Regressions since gdb 5.3.". Add known regressions since
gdb 6.0.
Alan Modra [Wed, 17 Mar 2004 00:46:25 +0000 (00:46 +0000)]
Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff*.
Mark Kettenis [Wed, 17 Mar 2004 00:21:17 +0000 (00:21 +0000)]
Fix typo in ChangeLog entry.
gdbadmin [Wed, 17 Mar 2004 00:00:05 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 16 Mar 2004 23:00:07 +0000 (23:00 +0000)]
daily update
David Carlton [Tue, 16 Mar 2004 22:43:15 +0000 (22:43 +0000)]
2004-03-16 David Carlton <carlton@kealia.com>
* dwarf2read.c (process_structure_scope): Process children even
when we're a declaration.
Nathanael Nerode [Tue, 16 Mar 2004 22:21:55 +0000 (22:21 +0000)]
2004-03-15 Paolo Bonzini <bonzini@gnu.org>
Nathanael Nerode <neroden@gcc.gnu.org>
* configure.in (DEFAULT_YACC, DEFAULT_M4, DEFAULT_LEX):
Set with AC_CHECK_PROGS.
* configure.in: Fix comment typo from last patch.
* configure: Regenerate.
Roland McGrath [Tue, 16 Mar 2004 21:47:19 +0000 (21:47 +0000)]
.
Roland McGrath [Tue, 16 Mar 2004 21:47:03 +0000 (21:47 +0000)]
2004-03-16 Roland McGrath <roland@redhat.com>
* gdb.base/auxv.exp: New file.
* gdb.base/auxv.c: New file, copied verbatim from coremaker2.c.
Andrew Cagney [Tue, 16 Mar 2004 20:25:24 +0000 (20:25 +0000)]
2004-03-16 Andrew Cagney <cagney@redhat.com>
* symtab.h (find_pc_sect_partial_function): Delete declaration.
* blockframe.c (find_pc_partial_function)
(find_pc_sect_partial_function): Merge into a single
find_pc_partial_function.
Mark Kettenis [Tue, 16 Mar 2004 13:54:10 +0000 (13:54 +0000)]
* i386bsd-nat.c: s/regno/regnum/g.
(fetch_inferior_registers): Use I386_ST0_REGNUM instead of
FP0_REGNUM.
(store_inferior_registers): Likewise.
Mark Kettenis [Tue, 16 Mar 2004 13:48:23 +0000 (13:48 +0000)]
* i386bsd-nat.c (fill_fpregset): Call i387_collect_fsave instead
of i387_fill_fsave.
(store_inferior_registers): Call i387_collect_fsave and
i387_collect_fxsave instead of i387_fill_fsave and
i387_fill_fxsave.
Mark Kettenis [Tue, 16 Mar 2004 12:22:18 +0000 (12:22 +0000)]
* netbsd-core.c (netbsd_core_file_p) [CORE_FPU_OFFSET]: Remove
code.
Alan Modra [Tue, 16 Mar 2004 11:46:15 +0000 (11:46 +0000)]
Revert "lsdx", "lsdi", "stsdx", "stsdi", "lmd" and "stmd" insns.
Alan Modra [Tue, 16 Mar 2004 10:31:18 +0000 (10:31 +0000)]
copyright date.
Alan Modra [Tue, 16 Mar 2004 10:29:12 +0000 (10:29 +0000)]
* elflink.c (elf_link_read_relocs_from_section): Don't use
NUM_SHDR_ENTRIES in end of reloc calc. Move NULL shdr check..
(_bfd_elf_link_read_relocs): ..to here.
* elf32-ppc.c (ppc_elf_relax_section): Formatting.
Alan Modra [Tue, 16 Mar 2004 09:05:22 +0000 (09:05 +0000)]
* configure.in (HOST_64BIT_TYPE, HOST_U_64BIT_TYPE): Don't override
values selected in configure.host. Require both to be defined
before setting BFD_HOST_64_BIT_DEFINED. Protect assignment to
corresponding BFD_HOST vars with quotes.
<${host64}-${target64}-${want64} in *true*>: Don't exempt gcc;
Always require BFD_HOST_64_BIT_DEFINED.
<file_ptr type>: Find off_t size before emitting message. Combine
off_t and ftello64 conditional.
* configure: Regenerate.
Alan Modra [Tue, 16 Mar 2004 01:49:30 +0000 (01:49 +0000)]
* elf32-m32r.c (m32r_elf_create_dynamic_sections): Fix pointer
aliasing warning. Remove trailing whitespace throughout file.
Alan Modra [Tue, 16 Mar 2004 00:58:43 +0000 (00:58 +0000)]
opcodes/
* ppc-dis.c (print_insn_powerpc): Don't print tabs. Handle
PPC_OPERANDS_GPR_0.
* ppc-opc.c (RA0): Define.
(RAQ, RAL, RAM, RAS, RSQ, RTQ, RSO): Use PPC_OPERAND_GPR_0.
(RAOPT): Rename from RAO. Update all uses.
(powerpc_opcodes): Use RA0 as appropriate. Add "lsdx", "lsdi",
"stsdx", "stsdi", "lmd" and "stmd" insns.
include/opcode/
* ppc.h (PPC_OPERAND_GPR_0): Define. Bump other operand defines.
gas/testsuite/
Update gas/ppc/.
ld/testsuite/
Update ld-powerpc/.
Nathanael Nerode [Tue, 16 Mar 2004 00:04:59 +0000 (00:04 +0000)]
2004-03-15 Nathanael Nerode <neroden@gcc.gnu.org>
* Makefile.tpl: Introduce experimental top level bootstrap support.
* Makefile.in: Regenerate.
* configure.in: Introduce support for top level bootstrap.
* configure: Regenerate.
gdbadmin [Tue, 16 Mar 2004 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Andrew Cagney [Mon, 15 Mar 2004 23:08:28 +0000 (23:08 +0000)]
2004-03-15 Andrew Cagney <cagney@redhat.com>
* Makefile.in (frame-unwind.o): Update dependencies.
* frame-unwind.c: Include "gdb_obstack.h".
(frame_unwind_init): Replace "gdbarch" parameter with an "obstack"
parameter.
(append_predicate): Delete function.
(struct frame_unwind_table_entry): New structure.
(struct frame_unwind_table): Replace "sniffer" with "head" and
"tail".
(frame_unwind_append_sniffer): Update.
(frame_unwind_find_by_frame): Update.
(_initialize_frame_unwind): Registe frame_unwind_init using
gdbarch_data_register_pre_init.
Mark Kettenis [Mon, 15 Mar 2004 23:03:07 +0000 (23:03 +0000)]
* i386bsd-nat.c: Update copyright year.
(CANNOT_FETCH_REGISTER, CANNOT_STORE_REGISTER): Undefine and then
define unconditionally.
Alan Modra [Mon, 15 Mar 2004 23:00:05 +0000 (23:00 +0000)]
daily update
Mark Kettenis [Mon, 15 Mar 2004 22:44:12 +0000 (22:44 +0000)]
* i387-tdep.h (i387_collect_fsave): New prototype.
* i387-tdep.c (i387_collect_fsave): New function containing most
of the code from i387_fill_fsave.
(i387_fill_fsave): Call i387_fill_fsave.
Mark Kettenis [Mon, 15 Mar 2004 22:38:21 +0000 (22:38 +0000)]
* i386-linux-tdep.c: Update copyright year.
(i386_linux_svr4_fetch_link_map_offsets): Remove function.
(i386_linux_init_abi): Set solib_svr4_fetch_link_maop_offsets to
svr4_ilp32_link_map_offsets instead of
i386_linux_svr4_fetch_link_map_offsets.
David Carlton [Mon, 15 Mar 2004 22:33:52 +0000 (22:33 +0000)]
2004-03-15 David Carlton <carlton@kealia.com>
Fix for PR c++/1553:
* dwarf2read.c (read_structure_type): Determine type name by
calling determine_class_name.
(determine_class_name): New.
(determine_prefix): Look at TYPE_TAG_NAME and call
determine_class_name when appropriate.
(determine_prefix_aux, class_name): Delete.
Kevin Buettner [Mon, 15 Mar 2004 21:58:31 +0000 (21:58 +0000)]
* breakpoint.c (TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Delete
unused macro definition. The definition in target.h (or perhaps
elsewhere) takes precedence.
Andrew Cagney [Mon, 15 Mar 2004 21:35:25 +0000 (21:35 +0000)]
2004-03-15 Andrew Cagney <cagney@redhat.com>
* ppc-tdep.h: Update copyright.
(ppc_linux_supply_gregset, ppc_linux_supply_fpregset): Change
function signatures to match "regsets.h".
* ppc-linux-tdep.c: Include "regset.h".
(ELF_GREGSET_SIZE): Delete.
(right_supply_register): New function.
(ppc_linux_supply_fpregset, ppc_linux_supply_gregset): Rewrite
using right_supply_register.
(ppc32_linux_supply_gregset, ppc64_linux_supply_gregset): New
functions.
(ppc64_linux_gregset, ppc32_linux_gregset): Define.
(ppc_linux_init_abi): Register ppc_linux_regset_from_core_section.
(_initialize_ppc_linux_tdep): Do not register
ppc_linux_regset_core_fns.
(ppc_linux_regset_from_core_section): Replace
fetch_core_registers.
(ppc_linux_regset_core_fns): Delete.
* ppc-linux-nat.c: (right_fill_reg): New function.
(supply_gregset): Update call to ppc_linux_supply_gregset.
(fill_gregset): Clear the register set, use right_fill_reg.
(supply_fpregset): Update call to ppc_linux_supply_fpregset.
(fill_fpregset): Use right_fill_reg, correctly compute FP offsets.
Index: ppc-linux-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-nat.c,v
retrieving revision 1.28
diff -u -r1.28 ppc-linux-nat.c
--- ppc-linux-nat.c 8 Mar 2004 01:45:02 -0000 1.28
+++ ppc-linux-nat.c 15 Mar 2004 21:28:31 -0000
@@ -507,7 +507,24 @@
void
supply_gregset (gdb_gregset_t *gregsetp)
{
- ppc_linux_supply_gregset ((char *) gregsetp);
+ /* NOTE: cagney/2003-11-25: This is the word size used by the ptrace
+ interface, and not the wordsize of the program's ABI. */
+ int wordsize = sizeof (PTRACE_XFER_TYPE);
+ ppc_linux_supply_gregset (current_regcache, -1, gregsetp,
+ sizeof (gdb_gregset_t), wordsize);
+}
+
+static void
+right_fill_reg (int regnum, void *reg)
+{
+ /* NOTE: cagney/2003-11-25: This is the word size used by the ptrace
+ interface, and not the wordsize of the program's ABI. */
+ int wordsize = sizeof (PTRACE_XFER_TYPE);
+ /* Right fill the register. */
+ regcache_raw_collect (current_regcache, regnum,
+ ((bfd_byte *) reg
+ + wordsize
+ - register_size (current_gdbarch, regnum)));
}
void
@@ -516,36 +533,42 @@
int regi;
elf_greg_t *regp = (elf_greg_t *) gregsetp;
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ const int elf_ngreg = 48;
+
+
+ /* Start with zeros. */
+ memset (regp, 0, elf_ngreg * sizeof (*regp));
for (regi = 0; regi < 32; regi++)
{
if ((regno == -1) || regno == regi)
- regcache_collect (regi, regp + PT_R0 + regi);
+ right_fill_reg (regi, (regp + PT_R0 + regi));
}
if ((regno == -1) || regno == PC_REGNUM)
- regcache_collect (PC_REGNUM, regp + PT_NIP);
+ right_fill_reg (PC_REGNUM, regp + PT_NIP);
if ((regno == -1) || regno == tdep->ppc_lr_regnum)
- regcache_collect (tdep->ppc_lr_regnum, regp + PT_LNK);
+ right_fill_reg (tdep->ppc_lr_regnum, regp + PT_LNK);
if ((regno == -1) || regno == tdep->ppc_cr_regnum)
regcache_collect (tdep->ppc_cr_regnum, regp + PT_CCR);
if ((regno == -1) || regno == tdep->ppc_xer_regnum)
regcache_collect (tdep->ppc_xer_regnum, regp + PT_XER);
if ((regno == -1) || regno == tdep->ppc_ctr_regnum)
- regcache_collect (tdep->ppc_ctr_regnum, regp + PT_CTR);
+ right_fill_reg (tdep->ppc_ctr_regnum, regp + PT_CTR);
#ifdef PT_MQ
if (((regno == -1) || regno == tdep->ppc_mq_regnum)
&& (tdep->ppc_mq_regnum != -1))
- regcache_collect (tdep->ppc_mq_regnum, regp + PT_MQ);
+ right_fill_reg (tdep->ppc_mq_regnum, regp + PT_MQ);
#endif
if ((regno == -1) || regno == tdep->ppc_ps_regnum)
- regcache_collect (tdep->ppc_ps_regnum, regp + PT_MSR);
+ right_fill_reg (tdep->ppc_ps_regnum, regp + PT_MSR);
}
void
supply_fpregset (gdb_fpregset_t * fpregsetp)
{
- ppc_linux_supply_fpregset ((char *) fpregsetp);
+ ppc_linux_supply_fpregset (NULL, current_regcache, -1, fpregsetp,
+ sizeof (gdb_fpregset_t));
}
/* Given a pointer to a floating point register set in /proc format
@@ -557,12 +580,13 @@
{
int regi;
struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ bfd_byte *fpp = (void *) fpregsetp;
for (regi = 0; regi < 32; regi++)
{
if ((regno == -1) || (regno == FP0_REGNUM + regi))
- regcache_collect (FP0_REGNUM + regi, (char *) (*fpregsetp + regi));
+ regcache_collect (FP0_REGNUM + regi, fpp + 8 * regi);
}
if ((regno == -1) || regno == tdep->ppc_fpscr_regnum)
- regcache_collect (tdep->ppc_fpscr_regnum, (char *) (*fpregsetp + regi));
+ right_fill_reg (tdep->ppc_fpscr_regnum, (fpp + 8 * 32));
}
Index: ppc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
retrieving revision 1.50
diff -u -r1.50 ppc-linux-tdep.c
--- ppc-linux-tdep.c 16 Feb 2004 21:49:22 -0000 1.50
+++ ppc-linux-tdep.c 15 Mar 2004 21:28:31 -0000
@@ -32,7 +32,7 @@
#include "regcache.h"
#include "value.h"
#include "osabi.h"
-
+#include "regset.h"
#include "solib-svr4.h"
#include "ppc-tdep.h"
@@ -959,81 +959,114 @@
};
enum {
- ELF_GREGSET_SIZE = (ELF_NGREG * 4),
ELF_FPREGSET_SIZE = (ELF_NFPREG * 8)
};
+static void
+right_supply_register (struct regcache *regcache, int wordsize, int regnum,
+ const bfd_byte *buf)
+{
+ regcache_raw_supply (regcache, regnum,
+ (buf + wordsize
+ - register_size (current_gdbarch, regnum)));
+}
+
+/* Extract the register values found in the WORDSIZED ABI GREGSET,
+ storing their values in REGCACHE. Note that some are left-aligned,
+ while others are right aligned. */
+
void
-ppc_linux_supply_gregset (char *buf)
+ppc_linux_supply_gregset (struct regcache *regcache,
+ int regnum, const void *gregs, size_t size,
+ int wordsize)
{
int regi;
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+ struct gdbarch_tdep *regcache_tdep = gdbarch_tdep (regcache_arch);
+ const bfd_byte *buf = gregs;
for (regi = 0; regi < 32; regi++)
- supply_register (regi, buf + 4 * regi);
+ right_supply_register (regcache, wordsize, regi, buf + wordsize * regi);
+
+ right_supply_register (regcache, wordsize, gdbarch_pc_regnum (regcache_arch),
+ buf + wordsize * PPC_LINUX_PT_NIP);
+ right_supply_register (regcache, wordsize, regcache_tdep->ppc_lr_regnum,
+ buf + wordsize * PPC_LINUX_PT_LNK);
+ regcache_raw_supply (regcache, regcache_tdep->ppc_cr_regnum,
+ buf + wordsize * PPC_LINUX_PT_CCR);
+ regcache_raw_supply (regcache, regcache_tdep->ppc_xer_regnum,
+ buf + wordsize * PPC_LINUX_PT_XER);
+ regcache_raw_supply (regcache, regcache_tdep->ppc_ctr_regnum,
+ buf + wordsize * PPC_LINUX_PT_CTR);
+ if (regcache_tdep->ppc_mq_regnum != -1)
+ right_supply_register (regcache, wordsize, regcache_tdep->ppc_mq_regnum,
+ buf + wordsize * PPC_LINUX_PT_MQ);
+ right_supply_register (regcache, wordsize, regcache_tdep->ppc_ps_regnum,
+ buf + wordsize * PPC_LINUX_PT_MSR);
+}
- supply_register (PC_REGNUM, buf + 4 * PPC_LINUX_PT_NIP);
- supply_register (tdep->ppc_lr_regnum, buf + 4 * PPC_LINUX_PT_LNK);
- supply_register (tdep->ppc_cr_regnum, buf + 4 * PPC_LINUX_PT_CCR);
- supply_register (tdep->ppc_xer_regnum, buf + 4 * PPC_LINUX_PT_XER);
- supply_register (tdep->ppc_ctr_regnum, buf + 4 * PPC_LINUX_PT_CTR);
- if (tdep->ppc_mq_regnum != -1)
- supply_register (tdep->ppc_mq_regnum, buf + 4 * PPC_LINUX_PT_MQ);
- supply_register (tdep->ppc_ps_regnum, buf + 4 * PPC_LINUX_PT_MSR);
+static void
+ppc32_linux_supply_gregset (const struct regset *regset,
+ struct regcache *regcache,
+ int regnum, const void *gregs, size_t size)
+{
+ ppc_linux_supply_gregset (regcache, regnum, gregs, size, 4);
}
+static struct regset ppc32_linux_gregset = {
+ NULL, ppc32_linux_supply_gregset
+};
+
+static void
+ppc64_linux_supply_gregset (const struct regset *regset,
+ struct regcache * regcache,
+ int regnum, const void *gregs, size_t size)
+{
+ ppc_linux_supply_gregset (regcache, regnum, gregs, size, 8);
+}
+
+static struct regset ppc64_linux_gregset = {
+ NULL, ppc64_linux_supply_gregset
+};
+
void
-ppc_linux_supply_fpregset (char *buf)
+ppc_linux_supply_fpregset (const struct regset *regset,
+ struct regcache * regcache,
+ int regnum, const void *fpset, size_t size)
{
int regi;
- struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
+ struct gdbarch *regcache_arch = get_regcache_arch (regcache);
+ struct gdbarch_tdep *regcache_tdep = gdbarch_tdep (regcache_arch);
+ const bfd_byte *buf = fpset;
for (regi = 0; regi < 32; regi++)
- supply_register (FP0_REGNUM + regi, buf + 8 * regi);
+ regcache_raw_supply (regcache, FP0_REGNUM + regi, buf + 8 * regi);
/* The FPSCR is stored in the low order word of the last doubleword in the
fpregset. */
- supply_register (tdep->ppc_fpscr_regnum, buf + 8 * 32 + 4);
+ regcache_raw_supply (regcache, regcache_tdep->ppc_fpscr_regnum,
+ buf + 8 * 32 + 4);
}
-/*
- Use a local version of this function to get the correct types for regsets.
-*/
+static struct regset ppc_linux_fpregset = { NULL, ppc_linux_supply_fpregset };
-static void
-fetch_core_registers (char *core_reg_sect,
- unsigned core_reg_size,
- int which,
- CORE_ADDR reg_addr)
+static const struct regset *
+ppc_linux_regset_from_core_section (struct gdbarch *core_arch,
+ const char *sect_name, size_t sect_size)
{
- if (which == 0)
+ struct gdbarch_tdep *tdep = gdbarch_tdep (core_arch);
+ if (strcmp (sect_name, ".reg") == 0)
{
- if (core_reg_size == ELF_GREGSET_SIZE)
- ppc_linux_supply_gregset (core_reg_sect);
+ if (tdep->wordsize == 4)
+ return &ppc32_linux_gregset;
else
- warning ("wrong size gregset struct in core file");
- }
- else if (which == 2)
- {
- if (core_reg_size == ELF_FPREGSET_SIZE)
- ppc_linux_supply_fpregset (core_reg_sect);
- else
- warning ("wrong size fpregset struct in core file");
+ return &ppc64_linux_gregset;
}
+ if (strcmp (sect_name, ".reg2") == 0)
+ return &ppc_linux_fpregset;
+ return NULL;
}
-/* Register that we are able to handle ELF file formats using standard
- procfs "regset" structures. */
-
-static struct core_fns ppc_linux_regset_core_fns =
-{
- bfd_target_elf_flavour, /* core_flavour */
- default_check_format, /* check_format */
- default_core_sniffer, /* core_sniffer */
- fetch_core_registers, /* core_read_registers */
- NULL /* next */
-};
-
static void
ppc_linux_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
@@ -1086,6 +1119,7 @@
/* PPC64 malloc's entry-point is called ".malloc". */
set_gdbarch_name_of_malloc (gdbarch, ".malloc");
}
+ set_gdbarch_regset_from_core_section (gdbarch, ppc_linux_regset_from_core_section);
}
void
@@ -1099,5 +1133,4 @@
ppc_linux_init_abi);
gdbarch_register_osabi (bfd_arch_rs6000, bfd_mach_rs6k, GDB_OSABI_LINUX,
ppc_linux_init_abi);
- add_core_fns (&ppc_linux_regset_core_fns);
}
Index: ppc-tdep.h
===================================================================
RCS file: /cvs/src/src/gdb/ppc-tdep.h,v
retrieving revision 1.25
diff -u -r1.25 ppc-tdep.h
--- ppc-tdep.h 10 Nov 2003 22:47:28 -0000 1.25
+++ ppc-tdep.h 15 Mar 2004 21:28:31 -0000
@@ -1,6 +1,7 @@
/* Target-dependent code for GDB, the GNU debugger.
- Copyright 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
+
+ Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation,
+ Inc.
This file is part of GDB.
@@ -62,8 +63,12 @@
CORE_ADDR bpaddr);
int ppc_linux_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache);
struct link_map_offsets *ppc_linux_svr4_fetch_link_map_offsets (void);
-void ppc_linux_supply_gregset (char *buf);
-void ppc_linux_supply_fpregset (char *buf);
+void ppc_linux_supply_gregset (struct regcache *regcache,
+ int regnum, const void *gregs, size_t size,
+ int wordsize);
+void ppc_linux_supply_fpregset (const struct regset *regset,
+ struct regcache *regcache,
+ int regnum, const void *gregs, size_t size);
enum return_value_convention ppc64_sysv_abi_return_value (struct gdbarch *gdbarch,
struct type *valtype,