Pedro Alves [Mon, 20 Jul 2009 18:51:42 +0000 (18:51 +0000)]
2009-07-20 Pedro Alves <pedro@codesourcery.com>
* features/gdb-target.dtd (target): Accept an optional 'osabi'
element.
(osabi): Define element.
* features/mips-linux.xml (target): Add an osabi subelement set to
GNU/Linux.
* regformats/regdat.sh (xmlarch, xmlosabi): New variables. Don't
write the architecture into $xmltarget. Store it in $xmlarch.
Handle the 'osabi' type. Handle outputting the osabi element of
the target description.
* regformats/reg-x86-64-linux.dat (osabi): Set to GNU/Linux.
* regformats/reg-i386-linux.dat (osabi): Set to GNU/Linux.
* target-descriptions.h (tdesc_osabi, set_tdesc_osabi): Declare.
* target-descriptions.c (struct target_desc) <osabi>: New field.
(tdesc_osabi): New function.
(set_tdesc_osabi): New function.
* xml-tdesc.c: Include osabi.h.
(tdesc_end_osabi): New.
(target_children): Parse "osabi" elements.
* arch-utils.c (gdbarch_info_fill): Try to get the osabi from the
target description if the user didn't override it or it is not
extractable from the bfd. If that still fails, fallback to the
configured in default.
* osabi.h (osabi_from_tdesc_string): Declare.
* osabi.c (osabi_from_tdesc_string): New.
(gdbarch_lookup_osabi): Return GDB_OSABI_UNKNOWN instead of
GDB_OSABI_DEFAULT.
* NEWS: Mention that target descriptions can now describe the
target OS ABI.
2009-07-20 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo (Target Description Format): Mention the new <osabi>
optional element.
(subsection OS ABI): New subsection.
Pedro Alves [Mon, 20 Jul 2009 15:18:24 +0000 (15:18 +0000)]
* gnu-nat.c: Include "inf-child.h".
(gnu_mourn_inferior): Use the passed in target_ops
instead of the gnu_ops global.
(gnu_create_inferior): Inline `attach_to_child', use the passed in
target_ops instead of the gnu_ops global.
(gnu_can_run): Delete.
(gnu_attach): Use the passed in target_ops instead of the gnu_ops
global.
(gnu_detach): Ditto.
(gnu_prepare_to_store, gnu_open): Delete.
(gnu_store_registers, gnu_fetch_registers): Delete declarations.
(gnu_ops): Delete.
(init_gnu_ops): Delete.
(gnu_target): New.
(_initialize_gnu_nat): Don't call init_gnu_ops or add_target here.
* gnu-nat.h (gnu_target): Declare.
* i386gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Make
static.
(_initialize_i386gnu_nat): New.
* infrun.c (wait_for_inferior): Invalidate registers and overlay
cache every time before calling target_wait.
(handle_inferior_event): Make static. Always reset waiton_ptid.
Never call registers_changed.
(prepare_to_wait): Do not invaliate registers or overlay cache
(moved to wait_for_inferior). Do not reset waiton_ptid (moved
to handle_inferior_event).
(fetch_inferior_event): Remove check for always-true condition.
Michael Snyder [Sat, 18 Jul 2009 23:35:31 +0000 (23:35 +0000)]
2009-07-18 Michael Snyder <msnyder@vmware.com>
* infrun.c (handle_inferior_event): Remove an execution_direction
check in the "check for subroutine calls" test, and add some
additional handling for reverse-stepping through shared libraries.
H.J. Lu [Fri, 17 Jul 2009 17:54:51 +0000 (17:54 +0000)]
2009-07-17 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (md_assemble): Update operand types.
(update_imm): Updated.
(finalize_imm): Update the first 2 immediate operands only
for instructions with 2 operands or more.
Nick Clifton [Fri, 17 Jul 2009 09:46:00 +0000 (09:46 +0000)]
* elfxx-mips.c (LOAD_INTERLOCKS_P): New define.
(_bfd_mips_elf_size_dynamic_sections): For CPUs without load
interlocking, the last PLT entry needs a nop in the branch delay slot.
(_bfd_mips_elf_finish_dynamic_symbol): For CPUs with load itnerlocking,
output the last two PLT entries in reverse order.
* ld-mips-elf/pic-and-nonpic-3b.dd,
ld-mips-elf/pic-and-nonpic-5b.dd,
ld-mips-elf/pic-and-nonpic-6-o32.dd: Updated to use new PLT entries.
Ian Lance Taylor [Fri, 17 Jul 2009 01:07:33 +0000 (01:07 +0000)]
PR 10400
* layout.h: #include <map>.
(class Kept_section): Change from struct to class. Add accessors
and setters. Add section size to Comdat_group mapping. Change
Comdat_group to std::map. Add is_comdat_ field. Add
linkonce_size field in union.
(class Layout): Update declaration of find_or_add_kept_section.
Don't declare find_kept_object.
* layout.cc (Layout::find_or_add_kept_section): Remove candidate
parameter. Add object, shndx, is_comdat, and is_group_name
parameters. Change all callers. Adjust for new Kept_section.
(Layout::find_kept_object): Remove.
* object.cc (Sized_relobj::include_section_group): Update use of
Kept_section. Rename secnum to shndx. Only record
Kept_comdat_section if sections are the same size.
(Sized_relobj::include_linkonce_section): Update use of
Kept_section. Only record Kept_comdat_section if sections are the
same size. Set size of linkonce section.
(Sized_relobj::map_to_kept_section): Update call to
get_kept_comdat_section.
* object.h (class Sized_relobj): Rename fields in
Kept_comdat_section to drop trailing underscores; change object
field to Relobj*. Change Kept_comdat_section_table to store
struct rather than pointer.
(Sized_relobj::set_kept_comdat_section): Remove kept parameter.
Add kept_object and kept_shndx parameters. Change all callers.
(Sized_relobj::get_kept_comdat_section): Change return type to
bool. Add kept_object and kept_shndx parameters. Change all
callers.
* plugin.cc (Pluginobj::include_comdat_group): Update call to
Layout::find_or_add_kept_section.
* cpu/simplify.inc (*): One line doc strings don't need \n.
(df): Invoke define-full-ifield instead of claiming it's an alias.
(dno): Define.
(dnop): Mark as deprecated.
H.J. Lu [Thu, 16 Jul 2009 14:23:12 +0000 (14:23 +0000)]
bfd/
2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_relocate_section): Don't get local
STT_GNU_IFUNC symbol for relocatable link.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
Code reorg in preparation for adding comdat types support.
* dwarf2read.c (struct die_reader_specs): New struct.
(locate_pdi_sibling): New arg buffer. All callers updated.
(load_partial_dies, read_partial_die): Ditto.
(read_8_bytes): Change return type to ULONGEST.
(read_comp_unit): Delete arg abfd. All callers updated.
(read_die_and_children_1): Delete args abfd, cu. New arg reader.
All callers updated.
(read_die_and_children, read_die_and_siblings): Ditto.
(read_full_die): Ditto. Move closer to callers.
(skip_one_die): New arg buffer. All callers updated.
(load_full_comp_unit): Change return type to void. All callers
updated.
(partial_read_comp_unit_head): New args buffer, buffer_size.
All callers updated.
(process_psymtab_comp_unit): New function, split out from
dwarf2_build_psymtabs_hard.
(dwarf2_build_psymtabs_hard): Call it.
(load_partial_comp_unit): Renamed from load_comp_unit.
All callers updated.
(skip_children): New arg buffer. All callers updated.
(init_cu_die_reader): New function.
(is_ref_attr): New function.
(dwarf2_get_ref_die_offset): Call it.
(alloc_one_comp_unit): New function.
Michael Snyder [Tue, 14 Jul 2009 20:17:26 +0000 (20:17 +0000)]
2009-07-14 Michael Snyder <msnyder@vmware.com>
* gdb.reverse/step-reverse.exp (stepi into function call):
Call instruction may not be first instruction in the line.
(reverse stepi from a function call): Used wrong line number.
Nick Clifton [Tue, 14 Jul 2009 15:47:13 +0000 (15:47 +0000)]
* config/tc-arm.h (MAX_MEM_ALIGNMENT_BYTES): Define.
(MAX_MEM_FOR_RS_ALIGN_CODE): Define in terms of
MAX_MEM_ALIGNMENT_BYTES.
* config/tc-arm.c (arm_frag_align_code): Replace hard coded
constant with MAX_MEM_FOR_RS_ALIGN_CODE.
* gas/arm/align64.s: New test case.
* gas/arm/align64.d: Expected disassembly.
gas/testsuite
* gas/arm/thumb-w-bad.d: New test case.
* gas/arm/thumb-w-bad.l: New file.
* gas/arm/thumb-w-bad.s: New file.
* gas/arm/thumb-w-good.d: New test case.
* gas/arm/thumb-w-good.s: New file.
Jan Kratochvil [Mon, 13 Jul 2009 20:16:48 +0000 (20:16 +0000)]
gdb/
Fix memory access from signed 32bit inferior registers on 64bit GDB.
* linux-nat.c (linux_xfer_partial <TARGET_OBJECT_MEMORY>): New variable
addr_bit. Mask OFFSET by the ADDR_BIT width.
Jan Kratochvil [Mon, 13 Jul 2009 19:20:39 +0000 (19:20 +0000)]
gdb/testsuite/
Fix racy clashing of output files for gdb.base{1,2}/ parallel run.
* gdb.base/annota1.exp (thread_test): Import global $testfile.
Change the compilation target to match the testcase name.
* gdb.base/sect-cmd.exp: Change the compilation target to match the
testcase name.
* a2-run.exp: Use for setup prepare_for_testing. Change the
compilation target to match the testcase name.
* gdb.base/commands.exp: Likewise.
* gdb.base/finish.exp: Likewise.
* gdb.base/float.exp: Likewise.
* gdb.base/info-target.exp: Likewise.
* gdb.base/relational.exp: Likewise.
* gdb.base/term.exp: Likewise.
* gdb.base/until.exp: Likewise.
* gdb.base/volatile.exp: Likewise.
* gdb.base/whatis-exp.exp: Likewise.
Michael Snyder [Sun, 12 Jul 2009 17:46:21 +0000 (17:46 +0000)]
2009-07-12 Michael Snyder <msnyder@vmware.com>
* i386-tdep.c: Add a frame unwinder for function epilogues.
(i386_in_function_epilogue_p): New function.
(i386_epilogue_frame_sniffer): New function.
(i386_epilogue_frame_cache): New function.
(i386_epilogue_frame_this_id): New function.
(i386_epilogue_frame_unwind): New struct frame_unwind.
(i386_gdbarch_init): Hook the new unwinder.
* cli/cli-cmds.c (disassemble_command): Add a new modifier /r
to "disassemble" command to print the raw instructions in hex as
well as in symbolic form.
(init_cli_cmds): Ditto.
(print_disassembly): Change "mixed" to "flags" to translate
the behavior of disassemble.
(disassemble_current_function): Ditto.
* mi/mi-cmd-disas.c (mi_cmd_disassemble): Ditto.
* stack.c (gdb_disassembly_stub): Ditto.
* disasm.c (do_mixed_source_and_assembly): Ditto.
(do_mixed_source_and_assembly): Ditto.
(do_assembly_only): Ditto.
(gdb_disassembly): Ditto.
(dump_insns): print the raw instructions in hex as well as in
symbolic form if DISASSEMBLY_RAW_INSN and flags is true.
* disasm.h (DISASSEMBLY_SOURCE): Include source code with the
assembly if it and flags is true.
(DISASSEMBLY_RAW_INSN): Include the raw instructions in hex with
the assembly if it and flags is true.
(gdb_disassembly): Update extern.
* NEWS: Document disassemble/r support.
* arm-disc.c (print_insn_coprocessor, print_insn_arm): Print only
lower 32 bits of long types to make hexadecimal output consistent
on both 32-bit and 64-bit hosts.
Julian Brown [Fri, 10 Jul 2009 14:57:00 +0000 (14:57 +0000)]
* elf32-arm.c (arm_build_one_stub): Use the hash entry of the
symbol a stub entry is derived from, not the entry for the stub
itself, in call to elf32_arm_final_link_relocate.
Jan Kratochvil [Fri, 10 Jul 2009 14:18:14 +0000 (14:18 +0000)]
gdb/
Tidy up the code.
* mi/mi-cmd-var.c (mi_cmd_var_update): Remove variable nv. Move
variables var, rootlist and cr to their local sub-block. Move the
make_cleanup_ui_out_tuple_begin_end, make_cleanup_ui_out_list_begin_end
and do_cleanups calls to the common base block. Remove the zero NV
check.
Phil Muldoon [Fri, 10 Jul 2009 10:35:17 +0000 (10:35 +0000)]
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
* python/python-internal.h (apply_varobj_pretty_printer): Update
definition.
(python_string_to_target_python_string): Add definition.
* python/python-utils.c (unicode_to_encoded_python_string)
(unicode_to_target_python_string)
(python_string_to_target_python_string): New Functions.
* python/python-prettyprint.c (pretty_print_one_value): Likewise.
(print_string_repr): Refactor to logic to account for PyObject
returned strings.
(apply_varobj_pretty_printer): Likewise.
* python/python-value.c (valpy_string): Parse length keyword. Use
length keyword in LA_GET_STRING.
* varobj.c (value_get_print_value): Refactor logic to account for
PyObject returned strings.
* c-lang.c (c_get_string): If the length parameter is specified,
use that. Return value in characters. Update comments.
* language.h: Update c_get_string prototype comments.
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
* gdb.texinfo (Values From Inferior): Add length parameter
description.
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/python-prettyprint.c: Add counted null string
structure.
* gdb.python/python-prettyprint.exp: Print null string. Test for
embedded nulls.
* gdb.python/python-prettyprint.py (pp_ns): New Function.
* gdb.python/python-value.exp (test_value_in_inferior): Add
variable length string fetch tests.
* gdb.python/python-value.c (main): Add strings for string fetch tests.