Pedro Alves [Tue, 25 Jan 2011 12:13:20 +0000 (12:13 +0000)]
* regcache.c (struct regcache_descr): Remove outdated comment.
(init_regcache_descr): Remove sizeof_raw_register_valid_p
overallocate hack.
(regcache_xmalloc): Rename to ...
(regcache_xmalloc_1): ... this. Add `readonly_p' parameter.
Allocate the regcache type accordingly.
(regcache_xmalloc): New as wrapper around regcache_xmalloc_1.
(regcache_xfree): Asser the source is also readonly. Copy sizeof
cooked registers, not raw.
(regcache_dup_no_passthrough): Delete.
(get_thread_arch_regcache): Use regcache_xmalloc_1.
* h8300-tdep.c (h8300_push_dummy_call): Tweak comment to not
mention obsolete write_register_bytes.
* regcache.h (regcache_dup_no_passthrough): Delete declaration.
Pedro Alves [Tue, 25 Jan 2011 11:54:00 +0000 (11:54 +0000)]
Stop remote_read_bytes from handling partial reads itself.
* remote-fileio.c: Include target.h.
(remote_fileio_write_bytes): Delete.
(remote_fileio_func_open, remote_fileio_func_write)
(remote_fileio_func_rename, remote_fileio_func_unlink): Use
target_read_memory.
(remote_fileio_func_stat): Use target_read_memory and
target_write_memory.
(remote_fileio_func_gettimeofday): Use target_write_memory.
(remote_fileio_func_system): Use target_read_memory.
* remote.c (remote_write_bytes): Make it static.
(remote_read_bytes): Don't handle partial reads here.
* remote.h (remote_read_bytes): Delete declaration.
Pedro Alves [Tue, 25 Jan 2011 10:09:19 +0000 (10:09 +0000)]
2011-01-25 Pedro Alves <pedro@codesourcery.com>
* server.h (decode_xfer_write): Change prototype.
* remote-utils.c (decode_xfer_write): Remove `annex' parameter,
and don't extract the annex here.
* server.c (decode_xfer_read): Remove `annex' parameter,
and don't extract the annex here.
(decode_xfer): New.
(struct qxfer): New.
(handle_qxfer_auxv, handle_qxfer_features, handle_qxfer_libraries)
(handle_qxfer_osdata, handle_qxfer_siginfo, handle_qxfer_spu)
(handle_qxfer_statictrace): New functions, abstracted out from
handle_query, and made to use the struct qxfer interface.
(handle_threads_qxfer_proper): Rename to ...
(handle_qxfer_threads_proper): ... this.
(handle_threads_qxfer): Rename to ...
(handle_qxfer_threads): ... this. Adjust.
(qxfer_packets): New array.
(handle_qxfer): New function.
(handle_query): Use handle_qxfer.
Pedro Alves [Tue, 25 Jan 2011 09:49:59 +0000 (09:49 +0000)]
Simplify XML parsing a bit.
* xml-support.h (gdb_xml_parse_quick): Declare.
* xml-support.c (gdb_xml_create_parser_and_cleanup_1): Renamed
from gdb_xml_create_parser_and_cleanup, and added `old_chain'
parameter.
(gdb_xml_create_parser_and_cleanup): Reimplement on top of
gdb_xml_create_parser_and_cleanup_1.
(gdb_xml_parse_quick): New.
* memory-map.c (parse_memory_map): Use gdb_xml_parse_quick.
* osdata.c (osdata_parse): Ditto.
* remote.c (remote_threads_info): Ditto.
* solib-target.c (solib_target_parse_libraries): Ditto.
* xml-syscall.c (syscall_parse_xml): Ditto.
* xml-tdesc.c (tdesc_parse_xml): Ditto.
Ian Lance Taylor [Tue, 25 Jan 2011 06:08:47 +0000 (06:08 +0000)]
* options.h (class General_options): Accept
--no-detect-odr-violations.
gdbadmin [Tue, 25 Jan 2011 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 24 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Ian Lance Taylor [Mon, 24 Jan 2011 22:27:55 +0000 (22:27 +0000)]
* version.cc (version_string): Bump to 1.11.
Ian Lance Taylor [Mon, 24 Jan 2011 21:48:40 +0000 (21:48 +0000)]
* plugin.cc (class Plugin_rescan): Define new class.
(Plugin_manager::claim_file): Set any_claimed_.
(Plugin_manager::save_archive): New function.
(Plugin_manager::save_input_group): New function.
(Plugin_manager::all_symbols_read): Create Plugin_rescan task if
necessary.
(Plugin_manager::new_undefined_symbol): New function.
(Plugin_manager::rescan): New function.
(Plugin_manager::rescannable_defines): New function.
(Plugin_manager::add_input_file): Set any_added_.
* plugin.h (class Plugin_manager): define new fields rescannable_,
undefined_symbols_, any_claimed_, and any_added_. Declare
Plugin_rescan as friend. Declare new functions.
(Plugin_manager::Rescannable): Define type.
(Plugin_manager::Rescannable_list): Define type.
(Plugin_manager::Undefined_symbol_list): Define type.
(Plugin_manager::Plugin_manager): Initialize new fields.
* archive.cc (Archive::defines_symbol): New function.
(Add_archive_symbols::run): Pass archive to plugins if any.
* archive.h (class Archive): Declare defines_symbol.
* readsyms.cc (Input_group::~Input_group): New function.
(Finish_group::run): Pass input_group to plugins if any.
* readsyms.h (class Input_group): Declare destructor.
* symtab.cc (add_from_object): Pass undefined symbol to plugins if
any.
Kevin Buettner [Mon, 24 Jan 2011 21:34:19 +0000 (21:34 +0000)]
* configure.tgt (mips*-*-elf): New; just like mips*-*-*, but
with remote-mips.o added to gdb_target_obs.
* Makefile.in (ALL_TARGET_OBS): Add remote-mips.o.
Pedro Alves [Mon, 24 Jan 2011 21:28:12 +0000 (21:28 +0000)]
* ada-valprint.c (val_print_packed_array_elements): Pass the
correct struct value to val_print.
(ada_val_print_1): Ditto.
Pedro Alves [Mon, 24 Jan 2011 18:54:17 +0000 (18:54 +0000)]
2011-01-24 Pedro Alves <pedro@codesourcery.com>
Don't lose embedded_offset in printing routines throughout.
gdb/
* valprint.h (val_print_array_elements): Change prototype.
* valprint.c (val_print_array_elements): Add `embedded_offset'
parameter, and adjust to pass it down to val_print, while passing
`valaddr' or `address' unmodified. Take embedded_offset into
account when checking repetitions.
* c-valprint.c (c_val_print): Pass embedded_offset to
val_print_array_elements instead of adjusting `valaddr' and
`address'.
* m2-valprint.c (m2_print_array_contents, m2_val_print): Pass
embedded_offset to val_print_array_elements instead of adjusting
`valaddr'.
* p-lang.h (pascal_object_print_value_fields): Adjust prototype.
* p-valprint.c (pascal_val_print): Pass embedded_offset to
val_print_array_elements and pascal_object_print_value_fields
instead of adjusting `valaddr'.
(pascal_object_print_value_fields): Add `offset' parameter, and
adjust to use it.
(pascal_object_print_value): Add `offset' parameter, and adjust to
use it.
(pascal_object_print_static_field): Use
value_contents_for_printing/value_embedded_offset, rather than
value_contents.
* ada-valprint.c (val_print_packed_array_elements): Add `offset'
parameter, and adjust to use it. Use
value_contents_for_printing/value_embedded_offset, rather than
value_contents.
(ada_val_print): Rename `valaddr0' parameter to `valaddr'.
(ada_val_print_array): Add `offset' parameter, and adjust to use
it.
(ada_val_print_1): Rename `valaddr0' parameter to `valaddr', and
`embedded_offset' to `offset'. Don't re-adjust `valaddr'.
Instead work with offsets. Use
value_contents_for_printing/value_embedded_offset, rather than
value_contents. Change `defer_val_int' local type to CORE_ADDR,
and use value_from_pointer to extract a target pointer, rather
than value_from_longest.
(print_variant_part): Add `offset' parameter. Replace
`outer_valaddr' parameter by a new `outer_offset' parameter.
Don't re-adjust `valaddr'. Instead pass down adjusted offsets.
(ada_value_print): Use
value_contents_for_printing/value_embedded_offset, rather than
value_contents.
(print_record): Add `offset' parameter, and adjust to pass it
down.
(print_field_values): Add `offset' parameter. Replace
`outer_valaddr' parameter by a new `outer_offset' parameter.
Don't re-adjust `valaddr'. Instead pass down adjusted offsets.
Use value_contents_for_printing/value_embedded_offset, rather than
value_contents.
* d-valprint.c (dynamic_array_type): Use
value_contents_for_printing/value_embedded_offset, rather than
value_contents.
* jv-valprint.c (java_print_value_fields): Add `offset' parameter.
Don't re-adjust `valaddr'. Instead pass down adjusted offsets.
(java_print_value_fields): Take `offset' into account. Don't
re-adjust `valaddr'. Instead pass down adjusted offsets.
(java_val_print): Take `embedded_offset' into account. Pass it to
java_print_value_fields.
* f-valprint.c (f77_print_array_1): Add `embedded_offset'
parameter. Don't re-adjust `valaddr' or `address'. Instead pass
down adjusted offsets.
(f77_print_array): Add `embedded_offset' parameter. Pass it down.
(f_val_print): Take `embedded_offset' into account.
gdb/testsuite/
* gdb.base/printcmds.c (some_struct): New struct and instance.
* gdb.base/printcmds.exp (test_print_repeats_embedded_array): New
procedure.
<global scope>: Call it.
gdbadmin [Mon, 24 Jan 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 23 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Alan Modra [Sun, 23 Jan 2011 03:29:30 +0000 (03:29 +0000)]
* ld-scripts/sane1.d, * ld-scripts/sane1.t: New test.
* ld-scripts/expr.exp: Run it.
gdbadmin [Sun, 23 Jan 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 22 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
H.J. Lu [Sat, 22 Jan 2011 19:25:37 +0000 (19:25 +0000)]
Add AC_PROG_CXX.
2011-01-22 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (CXX): Removed.
* configure.in: Add AC_PROG_CXX.
* Makefile.in: Regenerated.
* configure: Likewise.
Richard Sandiford [Sat, 22 Jan 2011 10:16:29 +0000 (10:16 +0000)]
bfd/
* elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Ignore
common sections too.
ld/
* plugin.c (plugin_get_ir_dummy_bfd): Copy across the bfd's
private data and GP size.
gdbadmin [Sat, 22 Jan 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 21 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Joel Brobecker [Fri, 21 Jan 2011 18:56:43 +0000 (18:56 +0000)]
move handing of "set interactive-mode" to gdb_has_a_terminal
The real purpose of this setting is really to override what the debugger
would otherwise guess from checking the stdin settings. So it seems
more natural to see this setting being handled inside gdb_has_a_terminal
rather than input_is_terminal (which checks for other things, such as
whether the input is stdin, for instance).
This patch also adjust the command help and the associated section in
the GDB Manual to be a little clearer about that.
gdb/ChangeLog:
* inflow.c: Include "gdbcmd.h".
(interactive_mode): New static global, moved here from top.c.
(show_interactive_mode): New function, moved here from top.c.
use gdb_has_a_terminal instead of input_from_terminal_p to
determine the current mode.
(gdb_has_a_terminal): Add handling of the "iteractive-mode"
setting.
(_initialize_inflow): Add the "set/show interactive-mode"
commands. Moved here from top.c, after having adjusted slightly
the help text.
* top.c (interactive_mode, show_interactive_mode): Delete, moved
to inflow.c.
(input_from_terminal_p): Remove handling of "interactive-mode"
setting, moved to infow.c.
(init_main): Remove creation of the "set/show interactive-mode"
commands, moved to inflow.c.
gdb/doc/ChangeLog:
* gdb.texinfo (Other Misc Settings): Rework part of the
documentation of the "set interactive mode" command.
Ken Werner [Fri, 21 Jan 2011 14:05:51 +0000 (14:05 +0000)]
gdb/testsuite/ChangeLog
2011-01-21 Ken Werner <ken.werner@de.ibm.com>
* lib/opencl.exp (skip_opencl_tests): Add missing compile_flags
argument to the gdb_compile_opencl_hostapp call.
Andreas Schwab [Fri, 21 Jan 2011 13:29:47 +0000 (13:29 +0000)]
Sync toplevel configure from GCC
2011-01-21 Andreas Schwab <schwab@redhat.com>
* configure.ac: Use AS_HELP_STRING throughout.
* configure: Regenerate.
2011-01-18 Jie Zhang <jie.zhang@analog.com>
* configure.ac (bfin-*-*): Remove gdb from noconfigdirs.
* configure: Regenerate.
Alan Modra [Fri, 21 Jan 2011 13:18:19 +0000 (13:18 +0000)]
* ldexp.c (fold_binary): Set result section for arithmetic and
logical operations to NULL when both operands are in same section.
* ld.texinfo (Expression Section): Describe this.
Alan Modra [Fri, 21 Jan 2011 00:53:11 +0000 (00:53 +0000)]
* ppc-opc.c (NON32, NO371): Remove PPC_OPCODE_PPCPS.
gdbadmin [Fri, 21 Jan 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 20 Jan 2011 23:00:04 +0000 (23:00 +0000)]
daily update
Nick Clifton [Thu, 20 Jan 2011 12:49:05 +0000 (12:49 +0000)]
PR gas/12384
* config/tc-h8300.c (constant_fits_width_p): Use correct type for
comparison.
gdbadmin [Thu, 20 Jan 2011 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 19 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Joel Brobecker [Wed, 19 Jan 2011 20:41:11 +0000 (20:41 +0000)]
[NEWS/ia64-hpux] Add entry for native ia64-hpux support
gdb/ChangeLog:
* NEWS: Add entry for native ia64-hpux support.
Yao Qi [Wed, 19 Jan 2011 20:38:41 +0000 (20:38 +0000)]
2011-01-19 Yao Qi <yao@codesourcery.com>
* lib/dwarf.exp (dwarf2_support): Change supported targets to a
positve list.
Yao Qi [Wed, 19 Jan 2011 20:26:10 +0000 (20:26 +0000)]
2011-01-19 Yao Qi <yao@codesourcery.com>
* gdb.asm/asm-source.exp: Replace ARM target triplet with a
canonical form.
Remove "xscale-*-*"
* gdb.xml/tdesc-regs.exp: Likewise.
* gdb.python/py-section-script.exp: Replace ARM target triplet
with canonical form.
Match arm*-*-symbianelf*.
* gdb.base/dup-sect.exp: Likewise.
* lib/dwarf.exp: New.
* gdb.dwarf2/callframecfa.exp: Check dwarf2 support by routine
dwarf2_support.
* gdb.dwarf2/dup-psym.exp: Likewise.
* gdb.dwarf2/dw2-ada-
ffffffff.exp: Likewise.
* gdb.dwarf2/dw2-anonymous-func.exp: Likewise.
* gdb.dwarf2/dw2-bad-parameter-type.exp: Likewise.
* gdb.dwarf2/dw2-basic.exp: Likewise.
* gdb.dwarf2/dw2-compressed.exp: Likewise.
* gdb.dwarf2/dw2-const.exp: Likewise.
* gdb.dwarf2/dw2-cp-infcall-ref-static.exp: Likewise.
* gdb.dwarf2/dw2-cu-size.exp: Likewise.
* gdb.dwarf2/dw2-double-set-die-type.exp: Likewise.
* gdb.dwarf2/dw2-empty-namespace.exp: Likewise.
* gdb.dwarf2/dw2-filename.exp: Likewise.
* gdb.dwarf2/dw2-inheritance.exp: Likewise.
* gdb.dwarf2/dw2-inline-param.exp: Likewise.
* gdb.dwarf2/dw2-intercu.exp: Likewise.
* gdb.dwarf2/dw2-intermix.exp: Likewise.
* gdb.dwarf2/dw2-modula2-self-type.exp: Likewise.
* gdb.dwarf2/dw2-noloc.exp: Likewise.
* gdb.dwarf2/dw2-op-call.exp: Likewise.
* gdb.dwarf2/dw2-producer.exp: Likewise.
* gdb.dwarf2/dw2-ranges.exp: Likewise.
* gdb.dwarf2/dw2-ref-missing-frame.exp: Likewise.
* gdb.dwarf2/dw2-stack-boundary.exp: Likewise.
* gdb.dwarf2/dw2-strp.exp: Likewise.
* gdb.dwarf2/dw2-unresolved.exp: Likewise.
* gdb.dwarf2/implptr.exp: Likewise.
* gdb.dwarf2/mac-fileno.exp: Likewise.
* gdb.dwarf2/member-ptr-forwardref.exp: Likewise.
* gdb.dwarf2/pieces.exp: Likewise.
* gdb.dwarf2/pr11465.exp: Likewise.
* gdb.dwarf2/valop.exp: Likewise.
* gdb.dwarf2/watch-notconst.exp: Likewise.
* gdb.mi/dw2-ref-missing-frame.exp: Likewise.
Maciej W. Rozycki [Wed, 19 Jan 2011 18:19:54 +0000 (18:19 +0000)]
* readelf.c (process_object): Free dynamic_section after use.
Tom Tromey [Wed, 19 Jan 2011 17:21:39 +0000 (17:21 +0000)]
gdb
PR mi/8618:
* thread.c (free_thread): Free 'name'.
(print_thread_info): Emit thread name. Change CLI output.
(thread_name_command): New function.
(do_captured_thread_select): Emit newline.
(_initialize_thread): Register 'thread name' command.
* target.h (struct target_ops) <to_thread_name>: New field.
(target_thread_name): New macro.
* target.c (update_current_target): Handle to_thread_name.
* python/py-infthread.c (thpy_get_name): New function.
(thpy_set_name): Likewise.
(thread_object_getset): Add "name".
* linux-nat.c (linux_nat_thread_name): New function.
(linux_nat_add_target): Set to_thread_name.
* gdbthread.h (struct thread_info) <name>: New field.
gdb/doc
* gdb.texinfo (Threads): Document thread name output and `thread
name' command.
(Threads In Python): Document Thread.name attribute.
(GDB/MI Thread Commands): Document thread attributes.
gdb/testsuite
* gdb.python/py-infthread.exp: Add thread tests.
H.J. Lu [Wed, 19 Jan 2011 00:24:23 +0000 (00:24 +0000)]
Don't compress debug sections smaller than 32 bytes.
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Return if section size is small than
32 byte.
gdbadmin [Wed, 19 Jan 2011 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 18 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
H.J. Lu [Tue, 18 Jan 2011 20:45:06 +0000 (20:45 +0000)]
Don't undefine elf_backend_static_tls_alignment twice.
H.J. Lu [Tue, 18 Jan 2011 20:41:09 +0000 (20:41 +0000)]
Undo Solaris damages in elf64-x86-64.c.
bfd/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_backend_static_tls_alignment): Undefine
after Solaris target.
(elf_backend_want_plt_sym): Redefine to 0 after Solaris target.
ld/testsuite/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-4.d: Updated.
H.J. Lu [Tue, 18 Jan 2011 18:55:59 +0000 (18:55 +0000)]
Don't compress empty debug sections.
gas/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/12409
* write.c (compress_debug): Return if section size is 0.
gas/testsuite/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR gas/12409
* gas/elf/dwarf2-4.d: New.
* gas/elf/dwarf2-4.s: Likewise.
H.J. Lu [Tue, 18 Jan 2011 17:43:56 +0000 (17:43 +0000)]
Reset dump_sects after processing each archive member.
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/12408
* readelf.c (process_archive): Free and reset dump_sects
after processing each archive member.
H.J. Lu [Tue, 18 Jan 2011 17:08:13 +0000 (17:08 +0000)]
Properly sign-extend byte.
gas/testsuite/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/intel.d: Updated.
* gas/i386/opcode-intel.d: Likewise.
* gas/i386/opcode-suffix.d: Likewise.
* gas/i386/opcode.d: Likewise.
opcodes/
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (sIbT): New.
(b_T_mode): Likewise.
(dis386): Replace sIb with sIbT on "pushT".
(x86_64_table): Replace sIb with Ib on "aam" and "aad".
(OP_sI): Handle b_T_mode. Properly sign-extend byte.
H.J. Lu [Tue, 18 Jan 2011 16:39:50 +0000 (16:39 +0000)]
Add tbm flag and TBM instruction pattern.
2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/x86-64-arch-2.d: Add tbm flag and TBM instruction
pattern.
Joel Brobecker [Tue, 18 Jan 2011 16:38:59 +0000 (16:38 +0000)]
fix printing of Ada wide characters on ppc-aix
Same problem as before: We were downcasting the character value from
int to unsigned char, which caused an overflow. The reason why we did
not see this problem before is probably related to the fact that
we're using stabs on AIX and thus characters types are defined as
a TYPE_CODE_INT (or TYPE_CODE_RANGE?).
gdb/ChangeLog:
* ada-valprint.c (ada_print_scalar): Remove unsigned char downcast.
(ada_val_print_1): Likewise.
Joel Brobecker [Tue, 18 Jan 2011 16:18:26 +0000 (16:18 +0000)]
[powerpc] breakpoint inserted past function end
On powerpc, the prologue scanner reads instruction after instruction,
and just skips instructions that do not affect a frame. This means
that it does not stop if if finds and unexpected instruction (which
could possibly happen with optimization, I presume). To avoid scanning
too many instructions, it tries to establish an upper limit.
The upper limit is first computed using the debugging (line) info,
but if that fails, it falls back on an arbitrary 100 bytes (or 25
instructions). The problem is that, if the function is shorter than
those 25 instructions, we run the risk of skipping the entire function
and returning a PC that's outside our function.
In the event where we can find a symbol for a given PC (and therefore
can determine function start and end addresses), but cannot find an
upper limit using skip_prologue_using_sal, then we can at least limit
make sure that the 25 instructions do not put us beyour our function.
If it does, then further reduce the upper-limit to the end of the function.
gdb/ChangeLog:
* rs6000-tdep.c (rs6000_skip_prologue): Make sure that the prologue
upper limit address is not greater than the function end address
when the upper limit could not be computed using the debugging
info.
Jan Kratochvil [Tue, 18 Jan 2011 14:14:46 +0000 (14:14 +0000)]
opcodes/
* i386-init.h: Regenerated.
* i386-tbl.h: Regenerated.
Nick Clifton [Tue, 18 Jan 2011 14:13:43 +0000 (14:13 +0000)]
Fix compilation for mingw64.
* coffcode.h (coff_slurp_symbol_table): Add intptr_t intermediate
typecast to avoid warning.
* elf32-rx.c: Add "bfd_stdint.h" include required for int32_t type
usage.
* elfxx-ia64.c (elfNN_ia64_relax_br): Use intptr_t typeacast instead
of long for pointer to avoid warning.
(elfNN_ia64_relax_brl): Idem.
(elfNN_ia64_install_value): Idem.
* vms-alpha.c (_bfd_vms_slurp_etir): Idem.
Nick Clifton [Tue, 18 Jan 2011 14:10:44 +0000 (14:10 +0000)]
* config/tc-arm.c (arm_cpus): Add Faraday ARMv5TE compatible
cores: fa606te, fa616te, fmp626. Modify the VFP of fa626te.
* doc/c-arm.texi (ARM Options): Add -mcpu={fa606te, fa616te,
fmp626} options.
Nick Clifton [Tue, 18 Jan 2011 13:37:39 +0000 (13:37 +0000)]
PR gas/12390
* doc/all.texi: Add NS32K
* doc/as.texinfo: Remove target specific details of which
characters act as comment initiators and statement separators into
individual target specific files.
* doc/c-alpha.texi (Alpha-Chars): Document special behaviour of
the hash character at the start of a line.
* doc/c-arm.texi (ARM-Chars): Likewise.
* doc/c-avr.texi (AVR-Chars): Likewise.
* doc/c-d10v.texi (D10V-Chars): Likewise.
* doc/c-d30v.texi (D30V-Chars): Likewise.
* doc/c-mmix.texi (MMIX-Chars): Likewise.
* doc/c-s390.texi (s390 characters): Likewise.
* doc/c-sh.texi (SH-Chars): Likewise.
* doc/c-sh64.texi (SH64-Chars): Likewise.
* doc/c-sparc.texi (SPARC-Chars): Likewise.
* doc/c-tic6x.texi (TIC6X Syntax): Likewise.
* doc/c-xtensa.texi (Xtensa Syntax): Likewise.
* doc/c-z80.texi (Z80-Chars): Likewise.
* doc/c-z8k.texi (Z8000-Chars): Likewise.
* doc/c-pdp11.texi (PDP11-Syntax): Document line separator character.
* doc/c-arc.texi (ARC-Chars): Fill in this subsection.
* doc/c-bfin.texi (Blackfin Syntax): Document line comment and
line separator characters.
* doc/c-cr16.texi (CR16 Syntax): Likewise.
* doc/c-i386.texi (i386-Chars): Likewise.
* doc/c-i860.texi (i860-Chars): Likewise.
* doc/c-i960.texi (i960-Chars): Likewise.
* doc/c-ip2k.texi (IP2K-Chars): Likewise.
* doc/c-lm32.texi (LM32-Chars): likewise.
* doc/c-m32c.texi (M32C-Chars): Likewise.
* doc/c-m68hc11.texi (M68HC11-syntax): Likewise.
* doc/c-m68k.texi (M68K-Chars): Likewise.
* doc/c-microblaze.texi (MicroBlaze-Chars): Likewise.
* doc/c-msp430.texi (MSP430-Chars): Likewise.
* doc/c-mt.texi (MT-Chars): Likewise.
* doc/c-ns32k.texi (NS32K-Chars): Likewise.
* doc/c-pj.texi (PJ-Chars): Likewise.
* doc/c-ppc.texi (PowerPC-Chars): Likewise.
* doc/c-rx.texi (RX-Chars): Likewise.
* doc/c-score.texi (SCORE-Chars): Likewise.
* doc/c-tic54x.texi (TIC54X-Chars): Likewise.
* doc/c-v850.texi (V850-Chars): Likewise.
* doc/c-vax.texi (VAX-Chars): Likewise.
* doc/c-xc16x.texi (xc16x-Chars): Likewise.
gdbadmin [Tue, 18 Jan 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 17 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Quentin Neill [Mon, 17 Jan 2011 22:17:16 +0000 (22:17 +0000)]
Add TBM testsuite files missing from last commit.
Quentin Neill [Mon, 17 Jan 2011 18:40:36 +0000 (18:40 +0000)]
Add support for TBM instructions.
gas/
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* config/tc-i386.c (cpu_arch): Add CPU_TBM_FLAGS.
* doc/c-i386.texi (i386-TBM): New section.
opcodes/
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* i386-dis.c (REG_XOP_TBM_01): New.
(REG_XOP_TBM_02): New.
(reg_table): Add REG_XOP_TBM_01 and REG_XOP_TBM_02 tables.
(xop_table): Redirect to REG_XOP_TBM_01 and REG_XOP_TBM_02
entries, and add bextr instruction.
* i386-gen.c (cpu_flag_init): Add CPU_TBM_FLAGS, CpuTBM.
(cpu_flags): Add CpuTBM.
* i386-opc.h (CpuTBM) New.
(i386_cpu_flags): Add bit cputbm.
* i386-opc.tbl: Add bextr, blcfill, blci, blcic, blcmsk,
blcs, blsfill, blsic, t1mskc, and tzmsk.
* i386-init.h: Regenerated.
* i386-tbl.h: Regenerated
gas/testsuite
2011-01-17 Quentin Neill <quentin.neill@amd.com>
* gas/i386/tbm.s: New.
* gas/i386/tbm.d: New.
* gas/i386/tbm-intel.d: New.
* gas/i386/x86-64-tbm.s: New.
* gas/i386/x86-64-tbm.d: New.
* gas/i386/x86-64-tbm-intel.d: New.
* gas/i386/arch-10.d: Add tbm flag and TBM instruction pattern.
* gas/i386/arch-10.s: Add a TBM instruction.
* gas/i386/arch-10-1.l: Add TBM instruction pattern.
* gas/i386/arch-10-2.l: Likewise.
* gas/i386/arch-10-3.l: Likewise.
* gas/i386/arch-10-4.l: Likewise.
* gas/i386/x86-64-arch-2.s: Likewise.
* gas/i386/x86-64-arch-2.d: Likewise.
Tom Tromey [Mon, 17 Jan 2011 16:50:42 +0000 (16:50 +0000)]
* cli/cli-cmds.c (apropos_command): Free the compiled regex. Use
get_regcomp_error.
* utils.c: Include gdb_regex.h.
(do_regfree_cleanup): New function.
(make_regfree_cleanup): Likewise.
(get_regcomp_error): Likewise.
* gdb_regex.h (make_regfree_cleanup, get_regcomp_error): Declare.
Richard Sandiford [Mon, 17 Jan 2011 16:36:43 +0000 (16:36 +0000)]
bfd/
* elf32-arm.c (elf32_arm_check_relocs): Check needs_plt rather than
h->needs_plt when deciding whether to record a possible dynamic reloc.
ld/testsuite/
* ld-arm/arm-rel32.s, ld-arm/arm-rel32.d: New testcase.
* ld-arm/arm-elf.exp: Run it.
Richard Sandiford [Mon, 17 Jan 2011 16:36:15 +0000 (16:36 +0000)]
bfd/
* elf32-arm.c (elf32_arm_gc_sweep_hook): Remove all registered
dynamic relocs for the removed section.
ld/testsuite/
* ld-arm/gc-thumb-lib.s, ld-arm/gc-thumb.s,
ld-arm/gc-thumb.d: New test.
* ld-arm/arm-elf.exp: Run it.
Tom Tromey [Mon, 17 Jan 2011 16:20:56 +0000 (16:20 +0000)]
* cli/cli-cmds.c (apropos_command): Fix formatting. Don't call
re_compile_fastmap.
Pierre Muller [Mon, 17 Jan 2011 10:34:51 +0000 (10:34 +0000)]
* p-exp.y (intvar): New static variable, used to set CURRENT_TYPE
for internal variables.
(last_was_structop): New static variable.
(COMPLETE): New token.
(field_exp): New rule to group all '.' suffix handling.
Add mark_struct_expression calls when approriate to be able
to correctly find fields for completion.
(yylex): Adapt to handle field completion and set INTVAR when
required.
gdbadmin [Mon, 17 Jan 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 16 Jan 2011 23:00:06 +0000 (23:00 +0000)]
daily update
H.J. Lu [Sun, 16 Jan 2011 17:06:12 +0000 (17:06 +0000)]
Disallow 64bit relocations in x32 mode.
gas/
2011-01-16 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (disallow_64bit_disp): Renamed to ...
(disallow_64bit_reloc): This.
(md_assemble): Don't check movabs for x32 mode here.
(i386_target_format): Updated.
(tc_gen_reloc): Check if 64bit relocations are allowed.
gas/testsuite/
2011-01-16 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/immed64.s: New.
* gas/i386/ilp32/reloc64.s: Likewise.
* gas/i386/ilp32/x86-64-pcrel.s: Likewise.
* gas/i386/ilp32/inval.s: Add more tests.
* gas/i386/ilp32/immed64.d: Updated.
* gas/i386/ilp32/inval.l: Likewise.
* gas/i386/ilp32/reloc64.d: Likewise.
* gas/i386/ilp32/x86-64-pcrel.d: Likewise.
gdbadmin [Sun, 16 Jan 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 15 Jan 2011 23:00:05 +0000 (23:00 +0000)]
daily update
H.J. Lu [Sat, 15 Jan 2011 17:25:30 +0000 (17:25 +0000)]
Update ChangeLog.
H.J. Lu [Sat, 15 Jan 2011 15:49:48 +0000 (15:49 +0000)]
Check invalid x32 relocations.
2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_check_relocs): Check invalid x32
relocations.
H.J. Lu [Sat, 15 Jan 2011 15:48:02 +0000 (15:48 +0000)]
Don't allow movabs with relocation in x32 mode.
gas/
2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (disallow_64bit_disp): New.
(x86_elf_abi): Replace X86_64_LP64_ABI/X86_64_ILP32_ABI with
X86_64_ABI/X86_64_X32_ABI.
(md_assemble): Don't allow movabs with relocation in x32 mode.
(i386_target_format): Updated.
gas/testsuite/
2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/ilp32.exp: Run inval.
* gas/i386/ilp32/inval.l: New.
* gas/i386/ilp32/inval.s: Likewise.
* gas/i386/ilp32/x86-64.s: Likewise.
* gas/i386/ilp32/x86-64.d: Don't use ../x86_64.s. Updated.
H.J. Lu [Sat, 15 Jan 2011 00:38:35 +0000 (00:38 +0000)]
Replace n32 with x32.
gdbadmin [Sat, 15 Jan 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
H.J. Lu [Fri, 14 Jan 2011 23:07:11 +0000 (23:07 +0000)]
Rename --n32 to --x32.
gas/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (OPTION_N32): Renamed to ...
(OPTION_X32): This.
(md_longopts): Replace n32 with x32.
(md_parse_option): Updated.
(md_show_usage): Likewise.
* doc/c-i386.texi: Replace n32 with x32.
gas/testsuite/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/cfi/ilp32.exp: Replace --n32 with --x32.
* gas/i386/ilp32/elf/ilp32.exp: Likewise.
* gas/i386/ilp32/ilp32.exp: Likewise.
* gas/i386/ilp32/lns/ilp32.exp: Likewise.
ld/testsuite/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-1.d: Replace --n32 with --x32.
* ld-x86-64/ilp32-2.d: Likewise.
* ld-x86-64/ilp32-3.d: Likewise.
* ld-x86-64/ilp32-4.d: Likewise.
* ld-x86-64/ilp32-5.d: Likewise.
* ld-x86-64/x86-64.exp: Likewise.
Alan Modra [Fri, 14 Jan 2011 23:00:09 +0000 (23:00 +0000)]
daily update
H.J. Lu [Fri, 14 Jan 2011 22:48:12 +0000 (22:48 +0000)]
Handle R_X86_64_32 like R_X86_64_64 for ILP32.
bfd/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_link_hash_table): Add pointer_r_type.
(elf_x86_64_link_hash_table_create): Set pointer_r_type.
(elf_x86_64_check_relocs): Handle R_X86_64_32 like R_X86_64_64
for ILP32. Remove ABI_64_P PIC check for R_X86_64_8,
R_X86_64_16, R_X86_64_32 and R_X86_64_32S.
(elf_x86_64_relocate_section): Handle R_X86_64_32 like R_X86_64_64
for ILP32.
ld/testsuite/
2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-5.d: New.
* ld-x86-64/ilp32-5.s: Likewise.
* ld-x86-64/x86-64.exp: Run ilp32-5.
Yao Qi [Fri, 14 Jan 2011 20:37:13 +0000 (20:37 +0000)]
2011-01-14 Yao Qi <yao@codesourcery.com>
* arm-tdep.c (arm_register_reggroup_p): FPS register is in
save_reggroup, restore_reggroup and all_reggroup.
Joel Brobecker [Fri, 14 Jan 2011 19:33:37 +0000 (19:33 +0000)]
new testcase printing wchar_t characters and strings
gdb/testsuite/ChangeLog:
* gdb.base/wchar.c, gdb.base/wchar.exp: New testcases.
Joel Brobecker [Fri, 14 Jan 2011 19:33:19 +0000 (19:33 +0000)]
new testcase for Ada Wide Wide Characters and Strings
gdb/testsuite/ChangeLog:
* gdb.ada/widewide: New testcase.
Joel Brobecker [Fri, 14 Jan 2011 19:32:56 +0000 (19:32 +0000)]
Fix printing of Wide_Character & Wide_Wide_Character entities.
Wide_Characters and Wide_Wide_Characters are incorrectly printed.
Consider for instance:
Medium : Wide_Character := Wide_Character'Val(16#dead#);
Trying to print the value of this variable yields:
(gdb) p medium
$1 = 57005 '["ad"]'
The integer value is correct (57005 = 0xdead), but the character
representation is not, it should be:
$1 = 57005 '["dead"]'
Same for Wide_Wide_Characters.
There were two issues:
(a) The first issue was in ada-valprint, where we were assuming
that character types were 1 byte long;
(b) The second problem was in c-valprint, where we were down-casting
the integer value of the character to type `unsigned char',
causing use to lose all but the lowest byte.
gdb/ChangeLog:
* ada-valprint. (ada_printchar): Use the correct type length
in call to ada_emit_char.
* c-valprint.c (c_val_print): Remove cast in call to LA_PRINT_CHAR.
Pierre Muller [Fri, 14 Jan 2011 18:39:31 +0000 (18:39 +0000)]
* solib-som.h (hpux_major_release): Declare variable here.
* solib-som.c: Remove <sys/utsname.h> header.
(DEFAULT_HPUX_MAJOR_RELEASE): New macro.
(hpux_major_release): Make global, change default value to
DEFAULT_HPUX_MAJOR_RELEASE.
(get_hpux_major_release): Simply return HPUX_MAJOR_RELEASE.
* hppa-hpux-nat.c: Add <sys/utsname.h> include.
Add "solib-som.h" header.
(set_hpux_major_release): New function.
(_initialize_hppa_hpux_nat): Call set_hpux_major_release.
Mike Frysinger [Fri, 14 Jan 2011 18:16:34 +0000 (18:16 +0000)]
gdb: extend Linux osabi match
The current osabi default matching misses all *-uclinux tuples.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Joel Brobecker [Fri, 14 Jan 2011 13:53:02 +0000 (13:53 +0000)]
fix ARI warnings introduced by ia64-hpux patches
gdb/ChangeLog:
* ia64-hpux-nat.c (ia64_hpux_fetch_register): Remove trailing
new-line at end of warning message.
(ia64_hpux_store_register): Remove trailing new-line at end of
error message.
* ia64-hpux-tdep.c: Rephrase comment.
* solib-ia64-hpux.c (struct dld_info): Change type of field
dld_flags from "long long" to ULONGEST.
Pedro Alves [Fri, 14 Jan 2011 13:47:15 +0000 (13:47 +0000)]
* target.h (deprecated_child_ops): Delete declaration.
* target.c (deprecated_child_ops): Delete definition.
Pedro Alves [Fri, 14 Jan 2011 13:43:16 +0000 (13:43 +0000)]
gdb/
* Makefile.in (hpux-thread.o): Delete rule.
* configure.ac: Don't check for HPUX DCE threads support.
* configure, config.in: Regenerate.
* hppa-hpux-nat.c (child_suppress_run): Delete.
(hppa_hpux_child_can_run): Delete.
(_initialize_hppa_hpux_nat): Don't override to_can_run.
* hpux-thread.c: Delete.
Pedro Alves [Fri, 14 Jan 2011 13:38:24 +0000 (13:38 +0000)]
* Makefile.in (hpux-thread.o): Delete rule.
* configure.ac: Don't check for HPUX DCE threads support.
* configure, config.in: Regenerate.
* hppa-hpux-nat.c (child_suppress_run): Delete.
(hppa_hpux_child_can_run): Delete.
(_initialize_hppa_hpux_nat): Don't override to_can_run.
* hpux-thread.c: Delete.
Alan Modra [Fri, 14 Jan 2011 12:37:17 +0000 (12:37 +0000)]
* ldmain.c (main): Flush stdout before and stderr after printing
message.
* ldmisc.c (einfo): Similarly.
* plugin.c (message): Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/xtensaelf.em: Likewise.
* emulparams/elf32mcore.sh: Use einfo rather than printf.
* emultempl/beos.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/pep.em: Likewise.
Alan Modra [Fri, 14 Jan 2011 12:35:56 +0000 (12:35 +0000)]
* bfd.c (bfd_perror): Flush stdout before and stderr after printing
error.
(_bfd_default_error_handler): Likewise.
* elf.c (print_segment_map): Likewise.
* libbfd.c (warn_deprecated): Likewise.
* som.c (som_sizeof_headers): No need to do so here.
* coff-i860.c: Replace use of printf for error messages with
_bfd_error_handler.
* coff-ppc.c: Likewise.
* coff-sh.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-dlx.c: Likewise.
* elf32-mep.c: Likewise.
* elf32-v850.c: Likewise.
* mach-o.c: Likewise.
* pef.c: Likewise.
H.J. Lu [Fri, 14 Jan 2011 04:24:00 +0000 (04:24 +0000)]
Fix x86-64 ILP32 shared library.
bfd/
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf_x86_64_link_hash_table): Remove
swap_reloca_out.
(elf_x86_64_link_hash_table_create): Don't set swap_reloca_out.
(elf_x86_64_check_relocs): Align relocation section to 4 byte
for 32bit.
(elf_x86_64_gc_sweep_hook): Replace ELF64_ST_TYPE with
ELF_ST_TYPE.
(elf_x86_64_finish_dynamic_symbol): Updated.
(elf_x86_64_finish_dynamic_sections): Don't use
Elf64_External_Dyn, bfd_elf64_swap_dyn_in, nor
bfd_elf64_swap_dyn_out.
ld/testsuite/
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/ilp32-4.d: New.
* ld-x86-64/x86-64.exp: Run ilp32-4.
Alan Modra [Fri, 14 Jan 2011 02:27:41 +0000 (02:27 +0000)]
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
attempt to put non-alloc orphans before debug sections, just place
them after .comment.
Alan Modra [Fri, 14 Jan 2011 02:18:22 +0000 (02:18 +0000)]
PR ld/12339
* ldlang.c (sort_def_symbol): Handle bfd_link_hash_warning symbols.
Alan Modra [Fri, 14 Jan 2011 02:17:58 +0000 (02:17 +0000)]
PR ld/12339
* elf32-arm.c (allocate_dynrelocs): Don't set up eh before
following bfd_link_hash_warning symbol link.
Alan Modra [Fri, 14 Jan 2011 02:03:42 +0000 (02:03 +0000)]
* Makefile.am: Sort emulation rules.
(eelf32am33lin.c): Delete.
(ALL_EMULATION_SOURCES): Sort, add missing entries.
(ALL_64_EMULATION_SOURCES): Likewise.
* Makefile.in: Regenerate.
gdbadmin [Fri, 14 Jan 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Joel Brobecker [Thu, 13 Jan 2011 23:55:34 +0000 (23:55 +0000)]
delete hpux_pid_to_str (unused)
This function is unused, and the default formatting routine does
just fine, I think. On pa-hpux:
[New process 12565, lwp 2513]
[New process 12565, lwp 2514]
So this patch deletes it.
gdb/ChangeLog:
* hpux-thread.c (hpux_pid_to_str): Delete.
Joel Brobecker [Thu, 13 Jan 2011 23:01:22 +0000 (23:01 +0000)]
[Ada] Fix printing of Wide_Wide_Strings
This fixes the printing of Wide_Wide_String objects. For instance,
consider:
My_WWS : Wide_Wide_String := " helo";
Before this patch is applied, GDB prints:
(gdb) print my_wws
$1 = " ["00"]h["00"]e"
gdb/ChangeLog:
* ada-valprint.c (ada_emit_char): Remove strange code.
Check that c is <= UCHAR_MAX before passing it to isascii.
(char_at): Do not assume that TYPE_LEN is either 1 or 2.
Joel Brobecker [Thu, 13 Jan 2011 23:01:10 +0000 (23:01 +0000)]
problem sourcing GDB script in interactive-mode on
When interactive-mode is not auto, GDB always uses that setting to
determine whether to act as if the input stream is a terminal or not.
However, this setting should only be honored if the input stream is
the standard input stream. Otherwise, we run into trouble while
source-ing a GDB script, as shown below (on x86_64-linux):
% cat script
print 1
print 2
% gdb -q
(gdb) set interactive-mode on
(gdb) source script
(gdb) print 3
$1 = 3
The lack of output and the fact that the "print 3" command returned
a value saved in $1 (as opposed to $3) indicates that the script was
not even evaluated at all.
gdb/ChangeLog:
* top.c (input_from_terminal_p): Restrict the use of interactive_mode
to the case where instream is stdin.
gdb/testsuite/ChangeLog:
* gdb.base/interact.exp: New testcase.
Alan Modra [Thu, 13 Jan 2011 23:00:10 +0000 (23:00 +0000)]
daily update
Ralf Wildenhues [Thu, 13 Jan 2011 18:52:53 +0000 (18:52 +0000)]
Backport from Libtool: Fix relink mode to use absolute path if hardcode_minus_L.
/:
* ltmain.sh (relink): Use absolute path when hardcoding with -L.
H.J. Lu [Thu, 13 Jan 2011 17:07:52 +0000 (17:07 +0000)]
Add a testcase for PR ld/12356.
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12356
* ld-scripts/defined.exp: Run defined5.
* ld-scripts/defined5.d: New.
* ld-scripts/defined5.s: Likewise.
* ld-scripts/defined5.t: Likewise.
Joel Brobecker [Thu, 13 Jan 2011 16:24:42 +0000 (16:24 +0000)]
[ia64-hpux] inferior function call support
We have two stacks to deal with on ia64, when making a function call.
The first is the usual stack frame, and the second is the register
stack frame. On ia64-linux, the register frame is setup by adjusting
the BSP register. Unfortunately for us, the HP-UX kernel does not allow
the debugger to change the value of the BSP.
To work around that limitation, the method I am using here is to push
some assembly code on the stack. This assembly code contains, among
other things, a call to the alloc insn, which sets up our frame for us.
An extensive comment in ia64-hpux-tdep.c explains the entire procedure.
Despite this approach, most of the code in ia64-tdep.c which sets up
the function call is still applicable - and only a few things need
to be done differently: For instance, instead of changing the BSP,
we do nothing. We store the parameters at a different location, etc.
So this patch also adjusts the inf-call code in ia64-tdep.c to make it
a little more extensible: I create a new ia64_infcall_ops structure
which allows an ABI to define how the few things that need to be
differentiated.
Another element that turned out to be necessary but is more of a detail
is that the computation of the linkage pointer needs to be handled
specially for symbols inside shared libraries. This is especially
visible when calling malloc, which happens everytime memory needs to
be allocated in inferior memory... The special treatment included
again the necessity to use some routines only available on the host.
So another target object TARGET_OBJECT_HPUX_SOLIB_GOT was created for
that purpose.
gdb/ChangeLog:
* ia64-tdep.h (struct regcache): Forward declare.
(struct ia64_infcall_ops): New struct type.
(struct gdbarch_tdep): New fields "find_global_pointer_from_solib"
and "infcall_ops".
* ia64-tdep.c (ia64_find_global_pointer_from_dynamic_section):
Renames ia64_find_global_pointer.
(ia64_find_global_pointer, ia64_allocate_new_rse_frame)
(ia64_store_argument_in_slot, ia64_set_function_addr: New function.
(ia64_push_dummy_call): Adjust to use the new tdep ia64_infocall_ops
methods.
(ia64_infcall_ops): New static global constant.
(ia64_gdbarch_init): Set tdep->infcall_ops.
* ia64-hpux-nat.c (ia64_hpux_xfer_solib_got): New function.
(ia64_hpux_xfer_partial): Add TARGET_OBJECT_HPUX_SOLIB_GOT handing.
* ia64-hpux-tdep.c: Include "regcache.h", "gdbcore.h" and "inferior.h".
(ia64_hpux_dummy_code): New static global constant.
(ia64_hpux_push_dummy_code, ia64_hpux_allocate_new_rse_frame)
(ia64_hpux_store_argument_in_slot, ia64_hpux_set_function_addr)
(ia64_hpux_dummy_id, ia64_hpux_find_global_pointer_from_solib):
New function.
(ia64_hpux_infcall_ops): New static global constant.
(ia64_hpux_init_abi): Install gdbarch and tdep methods needed
for inferior function calls to work properly on ia64-hpux.
Joel Brobecker [Thu, 13 Jan 2011 16:24:27 +0000 (16:24 +0000)]
[ia64-hpux] unwinding bsp value from system call
This fixes unwinding from a thread that is stopped inside a system call.
This can be seen when switching to a thread that is stopped doing a
pthread_cond_wait, for instance...
The comments inside the code should explain what is happening in our
case (the HP-UX exception in the case of system calls): Under certain
circumstances (program stopped inside syscall), the offset to apply to
the current BSP in order to compute the previous BSP is not the usual
CFM & 0x7f.
We parts in this patch:
1. Figuring out that we are stopped inside a syscal: This requires
a TT_LWP_RUREGS ttrace call, which is not directly possible from
ia64-tdep.c. So use defined a new TARGET_OBJECT_HPUX_UREGS object
to request it from the -nat side.
2. Add a gdbarch_tdep method that allows us to change the default
behavior on ia64-hpux, permitting us to have a different "size of
register frame" in that one particular case.
gdb/ChangeLog:
* target.h (enum target_object): Add TARGET_OBJECT_HPUX_UREGS.
* ia64-tdep.h (struct frame_info): forward declaration.
(struct gdbarch_tdep): Add field size_of_register_frame.
* ia64-tdep.c (ia64_access_reg): Use tdep->size_of_register_frame
to determine the size of the register frame.
(ia64_size_of_register_frame): New function.
(ia64_gdbarch_init): Set tdep->size_of_register_frame.
* ia64-hpux-tdep.c: Include "target.h" and "frame.h".
(IA64_HPUX_UREG_REASON): New macro.
(ia64_hpux_stopped_in_syscall, ia64_hpux_size_of_register_frame):
New functions.
(ia64_hpux_init_abi): Set tdep->size_of_register_frame.
* ia64-hpux-nat.c (ia64_hpux_xfer_uregs): New function.
(ia64_hpux_xfer_partial): Add handling of TARGET_OBJECT_HPUX_UREGS
objects.
Joel Brobecker [Thu, 13 Jan 2011 16:24:13 +0000 (16:24 +0000)]
port GDB to ia64-hpux (native).
ChangeLog:
* configure.ac: Remove readline, mmalloc, and gdb from noconfigdirs
for ia64-hpux.
* configure: Regenerate.
gdb/ChangeLog:
* config/ia64/hpux.mh, ia64-hpux-nat.c, ia64-hpux-tdep.c,
ia64-hpux-tdep.h, solib-ia64-hpux.c, solib-ia64-hpux.h: New files.
* configure.host: Add handling for ia64-hpux hosts. Add associated
floatformats.
* configure.tgt: Add handling for ia64-hpux targets.
* Makefile.in (ALL_64_TARGET_OBS): Add ia64-hpux-tdep.o.
(HFILES_NO_SRCDIR): Add ia64-hpux-tdep.h.
(ALLDEPFILES): Add ia64-hpux-nat.c ia64-hpux-tdep.c.