The code becomes dead as GDB evolves. In 2003, Andrew Cagney post patch
https://sourceware.org/ml/gdb-patches/2003-10/msg00511.html to add target
read/write partial methods. They support query buffer size when both
OFFSET and LEN is zero, and it was used in avr-tdep.c and kod.c. Then,
Daniel added target_read_object_alloc and avr-tdep.c switches to use that
in patch https://sourceware.org/ml/gdb-patches/2006-07/msg00009.html
From then on, GDB on longer queries the buffer size, so the code
returning packet size in remote_xfer_partial became dead.
PR 17060 is duplicated of PR 9053, so I mention the latter in the
ChangeLog entry. Rebuild GDB with this patch. OK to apply?
I'll mark PR 17060 as duplicated once the patch is applied.
gdb:
2014-08-09 Yao Qi <yao@codesourcery.com>
PR remote/9053
* remote.c (remote_xfer_partial): Remove dead code.
I find some gdb.python tests fail on arm-none-eabi target, because the
tests assume that memory on address 0x is inaccessible. Some tests
(in gdb.base) are aware of this, so do a "x 0" check first. However,
the code is copy-n-paste.
This patch is to move the "x 0" check to a procedure in lib/gdb.exp,
and get needed tests call it. The original code matches pattern
"0x0:\[ \t\]*Error accessing memory address 0x0\r\n$gdb_prompt $", but
I remove it from the new proc is_address_zero_readable, because GDB
doesn't emit such message any more.
gdb/testsuite:
2014-08-09 Yao Qi <yao@codesourcery.com>
* gdb.base/display.exp: Invoke is_address_zero_readable.
* gdb.guile/scm-value.exp (test_value_in_inferior): Likewise.
* gdb.python/py-value.exp (test_value_in_inferior): Likewise.
* gdb.base/hbreak-unmapped.exp: Return if
is_address_zero_readable returns true.
* gdb.base/signest.exp: Likewise.
* gdb.base/signull.exp: Likewise.
* gdb.base/sigbpt.exp: Likewise.
* gdb.guile/scm-disasm.exp: Do the test if
is_address_zero_readable returns false.
* gdb.guile/scm-pretty-print.exp (run_lang_tests): Likewise.
* gdb.python/py-arch.exp: Likewise.
* gdb.python/py-prettyprint.exp (run_lang_tests): Likewise.
* lib/gdb.exp (is_address_zero_readable): New proc.
When I fix a bug in gdb.mi/mi-var-display.exp, I find its test
messages aren't unique, which makes some confusions for me.
$ cat testsuite/gdb.sum | grep "PASS" | sort | uniq -c | sort -n
...
2 PASS: gdb.mi/mi-var-display.exp: set format variable bar
2 PASS: gdb.mi/mi-var-display.exp: set format variable foo
2 PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr
2 PASS: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr
2 PASS: gdb.mi/mi-var-display.exp: show format variable foo
3 PASS: gdb.mi/mi-var-display.exp: eval variable foo
This patch is to make test messages in mi-var-display.exp unique.
gdb/testsuite:
2014-08-09 Yao Qi <yao@codesourcery.com>
PR testsuite/13443
* gdb.mi/mi-var-display.exp: Make test messages unique.
elfcpp/ChangeLog:
2014-08-08 Han Shen <shenhan@google.com>
* aarch64.h (withdrawn): Replaced with R_AARCH64_withdrawn.
2014-08-08 Jing Yu <jingyu@google.com>
Han Shen <shenhan@google.com>
* Makefile.am (HFILES): Add aarch64-reloc-property.h.
(DEFFILES): add aarch64-reloc.def.
(TARGETSOURCES): Add aarch64-reloc-property.cc.
(ALL_TARGETOBJS): Add aarch64-reloc-property.$(OBJEXT).
* Makefile.in: Regenerate.
* aarch64-reloc-property.cc: New file.
* aarch64-reloc-property.h: New file.
* aarch64-reloc.def: New file.
* aarch64.cc: Include aarch64-reloc-property.h. Replace spaces
with tab to make the format consistent.
(Output_data_got_aarch64::symbol_table_): New method.
(Target_aarch64::do_plt_address_for_global): New method.
(Target_aarch64::do_plt_address_for_local): New method.
(Target_aarch64::do_select_as_default_target): New method.
(Target_aarch64::do_make_data_plt): New method.
(Target_aarch64::make_data_plt): New method.
(Output_data_plt_aarch64::has_irelative_section): New method.
(Output_data_plt_aarch64::address_for_global): New method.
(Output_data_plt_aarch64::address_for_local): New method.
(Output_data_plt_aarch64::irelative_rel_): New parameter.
(Output_data_plt_aarch64::add_entry): Implement contents.
(Output_data_plt_aarch64::set_final_data_size): Fix typo.
(Output_data_plt_aarch64::do_write): Remove useless got_base. Set
the got_pov entry to plt0.
(Output_data_plt_aarch64_standard::do_fill_first_plt_entry):
Implement contents.
(Output_data_plt_aarch64_standard::do_fill_plt_entry): Implement.
(AArch64_howto): New struct.
(aarch64_howto[]): New static const array.
(AArch64_relocate_functions): New class.
(Target_aarch64::Scan::get_reference_flags): Remove method.
(Target_aarch64::Scan::local): Implement to support a few relocations.
(Target_aarch64::Scan::global): Implement to support a few relocations.
(Target_aarch64::make_plt_section): Implement contents.
(Target_aarch64::make_plt_entry): Implement contents.
(Target_aarch64::do_finalize_sections): Implement contents.
(Target_aarch64::Relocate::relocate): Implement a few relocations.
(Target_aarch64::relocate_section): Implement contents.
Also rewrite the 'supply_regset' method, making it platform
independent. To avoid code duplication, move the logic for both to a
register map in regcache_map_entry format.
In order to provide 'collect_regset' support, the generic function
regcache_collect_regset is exploited. Since this requires writing
appropriate register maps, these can be used for supply_regset as
well.
Rather than supplying own supply/collect functions, use the generic
functions regcache_supply_regset and regcache_collect_regset instead.
The register maps are rewritten accordingly and become much shorter
(and better readable) than before.
These functions are intended to suit all targets that don't require too
special logic in their regset supply/collect methods. Having such
generic functions helps reducing target-specific complexity.
The regset structure's 'descr' field is intended to represent some
kind of "register map". Thus, before making more use of it, this
change renames it to 'regmap' and adjusts the comment appropriately.
(See: https://sourceware.org/ml/gdb-patches/2014-05/msg00664.html)
I run splint in gdb source and get the following warnings:
../../../git/gdb/corelow.c:740: Return value type int does not match declared type enum target_xfer_status: 0
'TARGET_XFER_EOF' (enum target_xfer_status) is expected to be returned,
but 0 is returned. This patch is to replace 0 with TARGET_XFER_EOF
in the implementations of to_xfer_partial.
gdb:
2014-08-07 Yao Qi <yao@codesourcery.com>
* corelow.c (core_xfer_partial): Replace 0 with TARGET_XFER_EOF.
* remote-m32r-sdi.c (m32r_xfer_memory): Likewise.
* remote.c (remote_read_bytes): Likewise.
When I read the comments to field 'u' of struct dwarf2_per_cu_data,
I don't think the comments say anything useful. I update it per
my understanding.
gdb:
2014-08-07 Yao Qi <yao@codesourcery.com>
* dwarf2read.c (struct dwarf2_per_cu_data) <u>: Tweak comments.
This patch is to fix PR remote/17230, which is a leftover of the
to_xfer_partial interface change. I tried splint and it reprots this
problem like this,
../../../git/gdb/remote-mips.c:2236: Return value type unsigned long long does not match declared type enum target_xfer_status: len
and this problem only exists in remote-mips.c.
gdb:
2014-08-07 Yao Qi <yao@codesourcery.com>
PR remote/17230
* remote-mips.c (mips_xfer_memory): Set *xfered_len and return
TARGET_XFER_OK instead of 0.
This commit moves the inclusion of errno.h to common-defs.h and
removes all other inclusions. Note that prior to this commit
server.h included errno.h protected by "#ifdef HAVE_ERRNO_H".
This protection was added with the Windows CE port, which is
currently broken. Since no other platform needs this, I have
removed the protection and the configury to support it.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include errno.h.
* defs.h: Do not include errno.h.
* ada-typeprint.c: Likewise.
* c-typeprint.c: Likewise.
* core-regset.c: Likewise.
* corefile.c: Likewise.
* corelow.c: Likewise.
* event-loop.c: Likewise.
* f-typeprint.c: Likewise.
* gnu-nat.c: Likewise.
* go32-nat.c: Likewise.
* i386gnu-nat.c: Likewise.
* m2-typeprint.c: Likewise.
* nat/linux-btrace.c: Likewise.
* p-typeprint.c: Likewise.
* procfs.c: Likewise.
* remote-sim.c: Likewise.
* rs6000-nat.c: Likewise.
* target.c: Likewise.
* typeprint.c: Likewise.
* ui-file.c: Likewise.
* valops.c: Likewise.
* valprint.c: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* configure.ac (AC_CHECK_HEADERS): Remove errno.h.
* configure: Regenerate.
* config.in: Likewise.
* server.h: Do not include errno.h.
* event-loop.c: Likewise.
* hostio-errno.c: Likewise.
* linux-low.c: Likewise.
* remote-utils.c: Likewise.
* spu-low.c: Likewise.
* utils.c: Likewise.
* gdbreplay.c: Unconditionally include errno.h.
This commit moves the inclusion of common-utils.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include common-utils.h.
* defs.h: Do not include common-utils.h.
* common/gdb_assert.h: Likewise.
* darwin-nat.h: Likewise.
* nat/linux-btrace.c: Likewise.
* target/waitstatus.h: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include common-utils.h.
This commit moves the inclusion of ptid.h to common-defs.h and removes
all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include ptid.h.
* defs.h: Do not include ptid.h.
* inferior.h: Likewise.
* infrun.h: Likewise.
* nat/linux-btrace.h: Likewise.
* nat/linux-osdata.h: Likewise.
* target/waitstatus.h: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include ptid.h.
* notif.h: Likewise.
This commit moves the inclusion of gdb_locale.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include gdb_locale.h.
* defs.h: Do not include gdb_locale.h.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include gdb_locale.h.
This commit moves the inclusion of gdb/signals.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include gdb/signals.h.
* defs.h: Do not include gdb/signals.h.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include gdb/signals.h.
* win32-low.c: Likewise.
This commit moves the inclusion of pathmax.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include pathmax.h.
* defs.h: Do not include pathmax.h.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include pathmax.h.
This commit moves the inclusion of libiberty.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include libiberty.h.
* defs.h: Do not include libiberty.h.
* common/queue.h: Likewise.
* cp-name-parser.y: Likewise.
* mi/mi-cmd-catch.c: Likewise.
* python/python.c: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include libiberty.h.
* linux-bfin-low.c: Likewise.
This commit moves the inclusion of ansidecl.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include ansidecl.h.
* defs.h: Do not include ansidecl.h.
* common/buffer.h: Likewise.
* common/common-utils.h: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include ansidecl.h.
This commit moves the inclusion of stdarg.h to common-defs.h and
removes all other inclusions.
gdb/
2014-08-07 Gary Benson <gbenson@redhat.com>
* common/common-defs.h: Include stdarg.h.
* defs.h: Do not include stdarg.h.
* ada-lang.c: Likewise.
* common/common-utils.h: Likewise.
* guile/scm-string.c: Likewise.
* guile/scm-utils.c: Likewise.
* m32c-tdep.c: Likewise.
gdb/gdbserver/
2014-08-07 Gary Benson <gbenson@redhat.com>
* server.h: Do not include stdarg.h.
* nto-low.c: Likewise.
WARN has always been able to be handled by the CWARN case (WARN was
used when the previous symbols was undef, undefweak or common and thus
must be on the undefs list, so the CWARN test passes). So let's merge
those two cases.
* linker.c (WARN, CWARN): Collapse these states to WARN.
(_bfd_generic_link_add_one_symbol): Use old CWARN case for
new WARN.
I saw this gem of not so legible code in solib-svr4.c (scan_dyntag):
if (dyn_tag == dyntag)
and thought it deserved a small rename.
This just renames variables to be a bit more clear for those who read the
code. I also constified the parameter because, why not. The same was
done in scan_dyntag_auxv as well.
Tested only by rebuilding, since the change was done mechanically.
gdb/Changelog:
2014-08-01 Simon Marchi <simon.marchi@ericsson.com>
* solib-svr4.c (scan_dyntag): Rename dyntag and dyn_tag variables.
(scan_dyntag_auxv): Same.
gdbserver's init_register_cache has some preprocessor conditionals
awkwardly nested around an if..else block. This commit moves the
conditionals inside the braces to make the code more readable.
gdb/gdbserver/
2014-08-06 Gary Benson <gbenson@redhat.com>
* regcache.c (init_register_cache): Move conditionals inside if.
File x86-linux-nat.h is included twice in amd64-linux-nat.c and
i386-linux-nat.c. This patch is to remove one.
gdb:
2014-08-06 Yao Qi <yao@codesourcery.com>
* amd64-linux-nat.c: Remove duplicated include
"x86-linux-nat.h".
* i386-linux-nat.c: Likewise.
This commit replaces a hardwired target-is-async check.
gdb/gdbserver/
2014-08-06 Gary Benson <gbenson@redhat.com>
* linux-low.c (linux_supports_non_stop): Use target_is_async_p.