external/binutils.git
9 years agoAdd a gas configure option to select the default behaviour for the generation of...
Nick Clifton [Mon, 19 Oct 2015 10:45:54 +0000 (11:45 +0100)]
Add a gas configure option to select the default behaviour for the generation of debug sections - compressed or uncompressed.

PR gas/19109
* configure.ac: Add option --enable-compressed-debug-sections.
This sets the default behaviour for compressing debug sections.
* as.c (flag_compress_debug): Define and initialise to
COMPRESS_DEBUG_GABI_ZLIB if DEFAULT_COMPRESS_DEBUG is set.
(show_usage): Indicate whether --no-compress-debug-sections
or --compress-debug-sections is the default.
* config/tc-i386.c (flag_compress_debug): Delete definition.
* doc/as.texinfo (--nocompress-debug-sectionas): Update
description.
* NEWS: Announce the new feature.
* config.in: Regenerate.
* configure: Regenerate.

9 years agoFixup comments oops in last commit.
Andrew Stubbs [Mon, 19 Oct 2015 10:21:52 +0000 (11:21 +0100)]
Fixup comments oops in last commit.

9 years agoRobustify inherit.exp and virtbase.exp.
Andrew Stubbs [Thu, 15 Oct 2015 15:54:37 +0000 (16:54 +0100)]
Robustify inherit.exp and virtbase.exp.

2015-10-19  Andrew Stubbs  <ams@codesourcery.com>

gdb/testsuite/
* gdb.cp/inherit.exp (print g_vB, print g_vC, print g_vD,
print g_vE): Add new pass patterns.
* gdb.cp/virtbase.exp (print *this, print *(D *) e): Allow GDB to
print various symbol names for vptr fields.

9 years agoAutomatic date update in version.in
GDB Administrator [Mon, 19 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agotargets.c (bfd_flavour_name): "MMO" is spelled "mmo".
Doug Evans [Sun, 18 Oct 2015 20:13:07 +0000 (13:13 -0700)]
targets.c (bfd_flavour_name): "MMO" is spelled "mmo".

bfd/ChangeLog:

* targets.c (bfd_flavour_name): "MMO" is spelled "mmo".

9 years agoFix PR binutils/19147 -- off by one when printing NT_FILE note.
Paul Pluzhnikov [Sun, 18 Oct 2015 16:39:25 +0000 (09:39 -0700)]
Fix PR binutils/19147 -- off by one when printing NT_FILE note.

9 years agoAutomatic date update in version.in
GDB Administrator [Sun, 18 Oct 2015 00:00:07 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoCorrect powerpc64le __glink_PLTresolve .eh_frame FDE
Alan Modra [Sat, 17 Oct 2015 09:31:15 +0000 (20:01 +1030)]
Correct powerpc64le __glink_PLTresolve .eh_frame FDE

* elf64-ppc.c (ppc64_elf_size_stubs): Correct __glink_PLTresolve
eh_frame FDE for ELFv1.

9 years agoAutomatic date update in version.in
GDB Administrator [Sat, 17 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years ago[nto] Fix nto build.
Aleksandar Ristovski [Fri, 16 Oct 2015 15:29:17 +0000 (11:29 -0400)]
[nto] Fix nto build.

gdb/gdbserver/ChangeLog:

* gdbserver/nto-low.c (nto_insert_point, nto_remove_point): Fix
variable name.

gdb/ChangeLog:

* nto-procfs.c (common/filestuff.h): Include.
(procfs_can_use_hw_breakpoint): Fix enum name.
(procfs_open_1): Fix compiler warning.
(procfs_pidlist): Make static.
(procfs_meminfo): Make static, fix type name, add missing argument.
(procfs_store_registers): Make static.
(procfs_thread_info): Remove unused function.
(_initialize_procfs): Forward declare.

9 years agogdbserver: Reset current_thread when the thread is removed.
Aleksandar Ristovski [Fri, 16 Oct 2015 15:12:21 +0000 (11:12 -0400)]
gdbserver: Reset current_thread when the thread is removed.

Reset current_thread and make sure 'remove_process' is used
after all associated threads have been removed first.

gdb/gdbserver/ChangeLog:
* inferiors.c (thread_pid_matches_callback): New function.
(find_thread_process): New function.
(remove_thread): Reset current_thread.
(remove_process): Assert threads have been removed first.

9 years agogdbserver: Reset current_thread when the thread is removed.
Aleksandar Ristovski [Fri, 16 Oct 2015 15:08:38 +0000 (11:08 -0400)]
gdbserver: Reset current_thread when the thread is removed.

Reset current_thread and make sure 'remove_process' is used
after all associated threads have been removed first.

gdb/gdbserver/ChangeLog:
* inferiors.c (thread_pid_matches_callback): New function.
(find_thread_process): New function.
(remove_thread): Reset current_thread.
(remove_process): Assert threads have been removed first.

9 years agoDon't ignore "-m emulation" command line option
H.J. Lu [Fri, 16 Oct 2015 15:04:58 +0000 (08:04 -0700)]
Don't ignore "-m emulation" command line option

Gold shouldn't ignore "-m emulation" command line option, which may
lead to incorrect output.

PR gold/19119
* options.h (General_options): Remove "obsolete" from -m.
* parameters.cc (set_parameters_target): Check if input target
is compatible with output emulation set by "-m emulation".

9 years agoMAINTAINERS: Fix my inconsistent email address
Yao Qi [Fri, 16 Oct 2015 11:22:45 +0000 (12:22 +0100)]
MAINTAINERS: Fix my inconsistent email address

Hi,
This patch fixes inconsistency in my email address.

2015-10-16  Yao Qi  <yao.qi@arm.com>

* MAINTAINERS: Update my email address.

9 years agoCheck if symbol is defined when converting mov to lea
H.J. Lu [Fri, 16 Oct 2015 11:17:49 +0000 (04:17 -0700)]
Check if symbol is defined when converting mov to lea

We need to check if symbol is defined when converting mov to lea since
SYMBOL_REFERENCES_LOCAL may return true on hidden undefined symbols.

* elf32-i386.c (elf_i386_convert_mov_to_lea): Check if symbol
is defined.
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.

9 years agoConvert mov to lea for loading address of local common symbol
H.J. Lu [Fri, 16 Oct 2015 10:14:40 +0000 (03:14 -0700)]
Convert mov to lea for loading address of local common symbol

There is no need to check def_regular when converting mov to lea for
loading address of local symbols since def_regular may be false for
common symbols and SYMBOL_REFERENCES_LOCAL is sufficient.

bfd/

* elf32-i386.c (elf_i386_convert_mov_to_lea): Don't check
def_regular.
* elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.

ld/testsuite/

* ld-i386/lea1.s: Add a test for loading address of local common
symbol.
* ld-x86-64/lea1.s: Likewise.
* ld-i386/lea1a.d: Updated.
* ld-i386/lea1b.d: Likewise.
* ld-i386/lea1c.d: Likewise.
* ld-x86-64/lea1a.d: Likewise.
* ld-x86-64/lea1b.d: Likewise.
* ld-x86-64/lea1c.d: Likewise.
* ld-x86-64/lea1d.d: Likewise.
* ld-x86-64/lea1e.d: Likewise.
* ld-x86-64/lea1f.d: Likewise.

9 years agoAutomatic date update in version.in
GDB Administrator [Fri, 16 Oct 2015 00:00:09 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoFix typos in comments in _bfd_elf_merge_symbol
H.J. Lu [Thu, 15 Oct 2015 18:01:39 +0000 (11:01 -0700)]
Fix typos in comments in _bfd_elf_merge_symbol

* elflink.c (_bfd_elf_merge_symbol): Fix typos in comments

9 years agoFix a typo for "-z noextern-protected-data"
H.J. Lu [Thu, 15 Oct 2015 17:59:55 +0000 (10:59 -0700)]
Fix a typo for "-z noextern-protected-data"

* ld.texinfo: Fix a typo for "-z noextern-protected-data".

9 years agoaarch64 multi-arch part 6: HW breakpoint on unaligned address
Yao Qi [Thu, 15 Oct 2015 14:05:10 +0000 (15:05 +0100)]
aarch64 multi-arch part 6: HW breakpoint on unaligned address

Nowadays, both aarch64 GDB and linux kernel assumes that address for
setting breakpoint should be 4-byte aligned.  However that is not true
after we support multi-arch, because thumb instruction can be at 2-byte
aligned address.  Patch http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/375141.html
to linux kernel is to teach kernel to handle 2-byte aligned address for
HW breakpoint, while this patch is to teach aarch64 GDB handle 2-byte
aligned address.

First of all, we call gdbarch_breakpoint_from_pc to get the instruction
length rather than using hard-coded 4.  Secondly, in GDBserver, we set
length back to 2 if it is 3, because GDB encode 3 in it to indicate it
is a 32-bit thumb breakpoint.  Then we relax the address alignment
check from 4-byte aligned to 2-byte aligned.

This patch enables some tests (such as gdb.base/break-idempotent.exp,
gdb.base/cond-eval-mode.exp, gdb.base/watchpoint-reuse-slot.exp,) and
fixes many fails (such as gdb.base/hbreak2.exp) when the program is
compiled in thumb mode on aarch64.

Regression tested on aarch64-linux, both native and gdbserver.  This
is the last patch of multi-arch work.

gdb:

2015-10-15  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint):
Call gdbarch_breakpoint_from_pc to instruction length.
(aarch64_linux_remove_hw_breakpoint): Likewise.
* common/common-regcache.h (regcache_register_size): Declare.
* nat/aarch64-linux-hw-point.c: Include "common-regcache.h".
(aarch64_point_is_aligned): Set alignment to 2 for breakpoint if
the process is 32bit, otherwise set alignment to 4.
(aarch64_handle_breakpoint): Update comments.
* regcache.c (regcache_register_size): New function.

gdb/gdbserver:

2015-10-15  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_insert_point): Set len to 2
if it is 3.
(aarch64_remove_point): Likewise.
* regcache.c (regcache_register_size): New function.

9 years agobinutils objcopy test tidy
Alan Modra [Thu, 15 Oct 2015 11:07:13 +0000 (21:37 +1030)]
binutils objcopy test tidy

The main aim of this patch is to perform more objcopy tests when we
can build executables but not run them.  ie. non-native with cross
compiler available.

* binutils-all/objcopy.exp: Delete trailing whitespace.  Use
"string equal" rather than "string match" when making simple
string comparisons.  Revert 2008-07-08 host_triplet checks.
Perform non-run tests when we can build executable.
(strip_executable, strip_executable_with_saving_a_symbol): Move
run test later.  Take extra param on whether to perform run test.
Update callers.
(keep_debug_symbols_and_test_copy): Delete unused vars.

9 years agoobjcopy --extract-symbol testcase
Alan Modra [Thu, 15 Oct 2015 11:04:39 +0000 (21:34 +1030)]
objcopy --extract-symbol testcase

Run the test for more than just ELF.  Shows that objcopy --extract-symbol
isn't working on PE, mips, mmix and some aout targets.

* config/default.exp (size): New global.
* ld-elf/extract-symbol-1.s,
* ld-elf/extract-symbol-1.ld,
* ld-elf/extract-symbol-1sec.d,
* ld-elf/extract-symbol-1sym.d: Delete.
* ld-scripts/script.exp (extract_symbol_test): New.

9 years agoobjcopy --extract-symbol
Alan Modra [Thu, 15 Oct 2015 11:03:38 +0000 (21:33 +1030)]
objcopy --extract-symbol

Calling bfd_copy_private_bfd_data is necessary to copy ELF file header
info.

binutils/
* objcopy.c (copy_object): Don't omit bfd_copy_private_bfd_data
call when extract_symbol.
bfd/
* elf32-v850.c (v850_elf_copy_private_bfd_data): Remove assertion
that input and output .note.renesas sections are same size.
Instead, only copy input to output if they are.

9 years agoNormalize my (personal) email address in ChangeLog
Simon Marchi [Thu, 15 Oct 2015 12:56:37 +0000 (08:56 -0400)]
Normalize my (personal) email address in ChangeLog

9 years agoRemove core_regset_section
Aleksandar Ristovski [Wed, 14 Oct 2015 18:56:31 +0000 (14:56 -0400)]
Remove core_regset_section

gdb/ChangeLog:

* gdbarch.sh (core_regset_section): Remove.
* gdbarch.h: Regenerate.

9 years agoWhen evaluating a ternary operator in a linker script, copy the symbol flags.
Simon Dardis [Thu, 15 Oct 2015 12:28:27 +0000 (13:28 +0100)]
When evaluating a ternary operator in a linker script, copy the symbol flags.

* ld/ldexp.c: (try_copy_symbol_flags): New. Factored out from...
(exp_fold_tree_1): Here.  Cope with ternary operator in
assignments.  Use new helper.

9 years agoUse the file_ptr type when calling bfd_seek.
Riku Voipio [Thu, 15 Oct 2015 11:56:55 +0000 (12:56 +0100)]
Use the file_ptr type when calling bfd_seek.

PR ld/19123
* elfcore.h (elf_core_file_p): Use the file_ptr type to hold the
offset for bfd_seek.
* elfcode.h (elf_object_p): Likewise.

9 years agoAutomatic date update in version.in
GDB Administrator [Thu, 15 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agobfd: [SH] Emit DT_PLTGOT for FDPIC output unconditionally
Rich Felker [Wed, 14 Oct 2015 22:14:43 +0000 (07:14 +0900)]
bfd: [SH] Emit DT_PLTGOT for FDPIC output unconditionally

PR ld/19091
* elf32-sh.c (sh_elf_size_dynamic_sections): Always emit DT_PLTGOT for FDPIC output.

9 years agoAdd missing changelog entries
Andreas Krebbel [Wed, 14 Oct 2015 10:19:39 +0000 (12:19 +0200)]
Add missing changelog entries

9 years agoS/390: Fix instruction type of troo, trot, trto, and trtt.
Andreas Krebbel [Wed, 14 Oct 2015 08:58:41 +0000 (10:58 +0200)]
S/390: Fix instruction type of troo, trot, trto, and trtt.

opcodes/ChangeLog:

2015-10-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* s390-opc.c: Fix comment.
* s390-opc.txt: Change instruction type for troo, trot, trto, and
trtt to RRF_U0RER since the second parameter does not need to be a
register pair.

gas/testsuite/ChangeLog:

2015-10-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gas/s390/esa-g5.d: Use odd GPR for the second operand.
* gas/s390/esa-g5.s: Likewise.
* gas/s390/esa-z9-109.d: Likewise.
* gas/s390/esa-z9-109.s: Likewise.

9 years agoUpdated Chinese translation for the linker (again!)
Nick Clifton [Wed, 14 Oct 2015 08:55:30 +0000 (09:55 +0100)]
Updated Chinese translation for the linker (again!)

9 years agoDefine enum out of struct
Yao Qi [Wed, 14 Oct 2015 08:23:14 +0000 (09:23 +0100)]
Define enum out of struct

This patch moves the definition of enum out of the scope of struct
aarch64_memory_operand, otherwise it breaks GDB build in c++ mode.

gdb:

2015-10-14  Yao Qi  <yao.qi@linaro.org>

* arch/aarch64-insn.h (struct aarch64_memory_operand): Move enum
out of it.
(enum aarch64_memory_operand_type): New.

9 years agoAutomatic date update in version.in
GDB Administrator [Wed, 14 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoRecognize a few more AIX XCOFF DWARF sections.
David Edelsohn [Tue, 13 Oct 2015 22:45:38 +0000 (18:45 -0400)]
Recognize a few more AIX XCOFF DWARF sections.

gdb/ChangeLog:

        * xcoffread.c (dwarf2_xcoff_names): Add .dwmac and .dwpbtyp.

9 years agoMore char constification
Pedro Alves [Tue, 13 Oct 2015 18:40:50 +0000 (19:40 +0100)]
More char constification

Trivial constifications flagged by G++.  E.g.:

 src/gdb/c-varobj.c: In function ‘void c_describe_child(const varobj*, int, char**, value**, type**, char**)’:
 src/gdb/c-varobj.c:373:33: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
    char *join = was_ptr ? "->" : ".";
  ^

gdb/ChangeLog:
2015-10-13  Pedro Alves  <palves@redhat.com>

* ada-lang.c (ada_enum_name): Constify local.
* ada-typeprint.c (print_range_bound): Constify locals.
* c-varobj.c (c_describe_child): Likewise.
* cli/cli-setshow.c (do_set_command): Likewise.
* gdb_vecs.c (delim_string_to_char_ptr_vec_append): Likewise.
* dwarf2read.c (find_file_and_directory): Likewise.
(anonymous_struct_prefix, dwarf2_name): Likewise.
* gnu-v3-abi.c (gnuv3_rtti_type): Likewise.
* go-lang.c (unpack_mangled_go_symbol): Likewise.
* jv-typeprint.c (java_type_print_base): Likewise.
* ser-tcp.c (net_open): Likewise.
* symfile.c (deduce_language_from_filename): Likewise.
* symtab.c (gdb_mangle_name): Likewise.
* tui/tui-io.c (tui_redisplay_readline): Likewise.

9 years agoFix execution_direction's type
Pedro Alves [Tue, 13 Oct 2015 18:40:50 +0000 (19:40 +0100)]
Fix execution_direction's type

This fixes a few build errors like these in C++ mode:

  src/gdb/reverse.c: In function ‘void exec_reverse_once(char*, char*, int)’:
  src/gdb/reverse.c:49:34: error: invalid conversion from ‘int’ to ‘exec_direction_kind’ [-fpermissive]
     enum exec_direction_kind dir = execution_direction;
    ^
  make: *** [reverse.o] Error 1

gdb/ChangeLog:
2015-10-13  Pedro Alves  <palves@redhat.com>

* infrun.c (restore_execution_direction): New function.
(fetch_inferior_event): Use it instead of
make_cleanup_restore_integer.
(execution_direction): Change type to enum
exec_direction_kind.
* infrun.h (execution_direction): Likewise.

9 years agoada-lang.c:ada_value_primitive_packed_val: const correctness
Pedro Alves [Tue, 13 Oct 2015 18:40:50 +0000 (19:40 +0100)]
ada-lang.c:ada_value_primitive_packed_val: const correctness

gdb/ChangeLog:
2015-10-13  Pedro Alves  <palves@redhat.com>

* ada-lang.c (ada_value_primitive_packed_val): Constify
locals.  Use value_contents_writeable.  Remove casts.

9 years agoada-lang.c: malloc/alloca casts for C++
Pedro Alves [Tue, 13 Oct 2015 18:40:50 +0000 (19:40 +0100)]
ada-lang.c: malloc/alloca casts for C++

gdb/ChangeLog:
2015-10-13  Pedro Alves  <palves@redhat.com>

* ada-lang.c (ada_value_primitive_packed_val): Add casts to malloc
and alloca calls.

9 years agolm32: Replace call to write_memory with write_memory_unsigned_integer
Simon Marchi [Tue, 13 Oct 2015 17:37:13 +0000 (13:37 -0400)]
lm32: Replace call to write_memory with write_memory_unsigned_integer

Fixes this error:

/home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c: In function ‘CORE_ADDR lm32_push_dummy_call(gdbarch*, value*, regcache*, CORE_ADDR, int, value**, CORE_ADDR, int, CORE_ADDR)’:
/home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:292:59: error: invalid conversion from ‘void*’ to ‘const gdb_byte* {aka const unsigned char*}’ [-fpermissive]
    write_memory (sp, (void *) &val, TYPE_LENGTH (arg_type));
                                                           ^
In file included from /home/emaisin/src/binutils-gdb/gdb/lm32-tdep.c:29:0:
/home/emaisin/src/binutils-gdb/gdb/gdbcore.h:107:13: error:   initializing argument 2 of ‘void write_memory(CORE_ADDR, const gdb_byte*, ssize_t)’ [-fpermissive]
 extern void write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
             ^

gdb/ChangeLog:

* lm32-tdep.c (lm32_push_dummy_call): Replace call to
write_memory with write_memory_unsigned_integer.

9 years agoConstify arguments of gdb_bfd_lookup_symbol and related functions
Simon Marchi [Tue, 13 Oct 2015 16:40:01 +0000 (12:40 -0400)]
Constify arguments of gdb_bfd_lookup_symbol and related functions

Fixes this error:

/home/pedro/gdb/mygit/src/gdb/solib-frv.c: In function â€˜int enable_break2()’:
/home/pedro/gdb/mygit/src/gdb/solib-frv.c:622:72: error: invalid conversion from â€˜const void*’ to â€˜void*’ [-fpermissive]
       addr = gdb_bfd_lookup_symbol (tmp_bfd, cmp_name, "_dl_debug_addr");
                                                                        ^
In file included from /home/pedro/gdb/mygit/src/gdb/solib-frv.c:23:0:
/home/pedro/gdb/mygit/src/gdb/solib.h:82:18: error:   initializing argument 3 of â€˜CORE_ADDR gdb_bfd_lookup_symbol(bfd*, int (*)(asymbol*, void*), void*)’ [-fpermissive]
 extern CORE_ADDR gdb_bfd_lookup_symbol (bfd *abfd,
                  ^

The call in question is:

      addr = gdb_bfd_lookup_symbol (tmp_bfd, cmp_name, "_dl_debug_addr");

gdb/ChangeLog:

* solib-dsbt.c (cmp_name): Constify arguments.
* solib-frv.c (cmp_name): Likewise.
* solib-svr4.c (svr4_create_solib_event_breakpoints): Likewise.
* solib.c (gdb_bfd_lookup_symbol_from_symtab): Likewise.
(bfd_lookup_symbol_from_dyn_symtab): Likewise.
(gdb_bfd_lookup_symbol): Likewise.
* solib.h (gdb_bfd_lookup_symbol): Likewise.
(gdb_bfd_lookup_symbol_from_symtab): Likewise.

9 years agoAdd EM_IAMCU support to gold
H.J. Lu [Tue, 13 Oct 2015 16:02:23 +0000 (09:02 -0700)]
Add EM_IAMCU support to gold

elfcpp/

PR gold/19118
* elfcpp.h (EM): Add EM_IAMCU.

gold/

PR gold/19118
* i386.cc (Target_iamcu): New class.
(Target_selector_iamcu): Likewise.
(Target_iamcu::iamcu_info): New variable.
(target_selector_iamcu): Likewise.

9 years agoUpdated Chinese translation for the linker.
Nick Clifton [Tue, 13 Oct 2015 13:32:44 +0000 (14:32 +0100)]
Updated Chinese translation for the linker.

* po/zh_TW.po: Updated Chinese translation.

9 years agoTidy code setting PT_GNU_RELRO p_flags
Alan Modra [Tue, 13 Oct 2015 05:48:56 +0000 (16:18 +1030)]
Tidy code setting PT_GNU_RELRO p_flags

No functional changes here.

* elf.c (_bfd_elf_map_sections_to_segments): Don't set
PT_GNU_RELRO p_flags.
(assign_file_positions_for_non_load_sections): Set PT_GNU_RELRO
flags to PF_R here.

9 years agosim: ft32: test coverage for link parameters and PM write port
James Bowman [Wed, 7 Oct 2015 15:19:08 +0000 (15:19 +0000)]
sim: ft32: test coverage for link parameters and PM write port

Adds test coverage for recent features.

9 years agoAutomatic date update in version.in
GDB Administrator [Tue, 13 Oct 2015 00:00:07 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agogdb: Simplify parse_frame_specification.
Andrew Burgess [Mon, 7 Sep 2015 08:15:15 +0000 (09:15 +0100)]
gdb: Simplify parse_frame_specification.

Remove an unneeded parameter from parse_frame_specification, replace
with a fixed string within parse_frame_specification.  The message was
the same in every place that parse_frame_specification was used anyway.

gdb/ChangeLog:

* stack.c (parse_frame_specification): Remove message parameter,
replace with fixed string in function body, update function
comment.
(frame_info): Remove message to parse_frame_specification.
(select_frame_command): Likewise.

9 years agogdb: Avoid unneeded calls to parse_frame_specification.
Andrew Burgess [Mon, 7 Sep 2015 08:04:07 +0000 (09:04 +0100)]
gdb: Avoid unneeded calls to parse_frame_specification.

Within the stack command there are a couple of places where fixed
strings are passed into functions that are really intended for
processing user input.  These fixed strings are then processed and the
result returned.

Given that the input strings in these cases are fixed, and are always
"0", then the result will always be the same, the current frame.  By
switching to using get_current_frame instead the code can be simplified,
and the intention of the code is clearer.

gdb/ChangeLog:

* stack.c (parse_frame_specification): Delete.
(parse_frame_specification_1): Rename to
parse_frame_specification.
(frame_info): Use parse_frame_specification.
(select_frame_command): Likewise.
(return_command): Use select_frame and print_stack_frame rather
than frame_command and select_frame_command.
(func_command): Use get_current_frame rather than
parse_frame_specification.

9 years agogdb: Fix bug with dbx style func command.
Andrew Burgess [Mon, 7 Sep 2015 07:53:24 +0000 (08:53 +0100)]
gdb: Fix bug with dbx style func command.

The func command, available when starting gdb in dbx mode, is supposed
to take a function name and locate the frame for that function in the
stack.  This has been broken for a while due to an invalid check of the
arguments within the worker function.  Fixed in this commit.

gdb/ChangeLog:

* stack.c (func_command): Return early when there is no ARG
string.

gdb/testsuite/ChangeLog:

* gdb.base/dbx.exp (test_func): Remove xfails, update expected
results.

9 years agogdb/doc: Restructure frame command documentation.
Andrew Burgess [Thu, 10 Sep 2015 16:59:58 +0000 (17:59 +0100)]
gdb/doc: Restructure frame command documentation.

The 'frame' command is documented in two places.  The 'select-frame'
command is only mentioned in one of these places.

Of the two places, having the description of 'frame' and 'select-frame'
in the section 'Selecting a Frame' seems like the most obvious choice,
which is where things like 'up' and 'down' are also documented.

This commit moves the documentation of 'frame' and 'select-frame' into
the 'Selecting a Frame' section, and removes the duplicate documentation
of the 'frame' command.

At the same time I have reordered the sections in the 'Examining the
Stack' chapter, moving the discussion of frame filters to the end of the
chapter; it feels odd that we talk about frame filters before such basic
things like navigating the stack, or examining stack frames in general.

gdb/doc/ChangeLog:

* gdb.texinfo (Frames): Remove 'frame' and 'select-frame'
description.
(Frame Filter Management): Move to later in the 'Examining the
Stack' chapter.
(Selection): Add entry for 'select-frame'.

9 years agogdb: Make use of safe-ctype.h header.
Andrew Burgess [Mon, 7 Sep 2015 22:46:49 +0000 (23:46 +0100)]
gdb: Make use of safe-ctype.h header.

In stack.c switch to using safe-ctype.h instead of ctype.h, update code
as required.

gdb/ChangeLog:

* stack.c: Include safe-ctype.h not ctype.h.
(parse_frame_specification): Use ISSPACE not isspace.
(backtrace_command): Use TOLOWER not tolower.

9 years agomep: Add cast for int to enum conversion
Simon Marchi [Mon, 12 Oct 2015 16:43:23 +0000 (12:43 -0400)]
mep: Add cast for int to enum conversion

Taken directly from Pedro's branch.

gdb/ChangeLog:

* mep-tdep.c (current_me_module): Add cast.
(mep_gdbarch_init): Likewise.

9 years agom32c: Split m32c_move_reg_t in read/write variants
Simon Marchi [Mon, 12 Oct 2015 16:39:40 +0000 (12:39 -0400)]
m32c: Split m32c_move_reg_t in read/write variants

This allows to avoid casting away the const qualification in
m32c_pseudo_register_write (which is the entry points for all other
register read/write functions).

Also, use gdb_byte* instead of void* to avoid casts when calling gdb
common memory functions.  It also allows to remove those "For adderss
arithmetic" local variables.

gdb/ChangeLog:

* m32c-tdep.c (m32c_move_reg_t): Replace with...
(m32c_write_reg_t): ...this and...
(m32c_read_reg_t): ...this.
(struct m32c_reg): Update types of read and write.
(m32c_raw_read): Change declaration type to m32c_read_reg_t and
adjust definition.
(m32c_banked_read): Likewise.
(m32c_sb_read): Likewise.
(m32c_part_read): Likewise.
(m32c_cat_read): Likewise.
(m32c_r3r2r1r0_read): Likewise.
(m32c_raw_write): Change declaration type to m32c_write_reg_t
and adjust definition.
(m32c_banked_write): Likewise.
(m32c_sb_write): Likewise.
(m32c_part_write): Likewise.
(m32c_cat_write): Likewise.
(m32c_r3r2r1r0_write): Likewise.

9 years agoaarch64: Add cast for integer to enum cast
Simon Marchi [Mon, 12 Oct 2015 16:24:38 +0000 (12:24 -0400)]
aarch64: Add cast for integer to enum cast

/home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c: In function â€˜int aarch64_linux_syscall_record(regcache*, long unsigned int)’:
/home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:904:57: error: invalid conversion from â€˜long unsigned int’ to â€˜aarch64_syscall’ [-fpermissive]
   syscall_gdb = aarch64_canonicalize_syscall (svc_number);
                                                         ^
/home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:645:1: note:   initializing argument 1 of â€˜gdb_syscall aarch64_canonicalize_syscall(aarch64_syscall)’
 aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
 ^

gdb/ChangeLog:

* aarch64-linux-tdep.c (aarch64_linux_syscall_record): Add cast.

9 years agoaarch64: Use gdb_sys_no_syscall enum instead of -1
Simon Marchi [Mon, 12 Oct 2015 16:24:37 +0000 (12:24 -0400)]
aarch64: Use gdb_sys_no_syscall enum instead of -1

Fixes:

/home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c: In function "gdb_syscall aarch64_canonicalize_syscall(aarch64_syscall)":
/home/simark/src/binutils-gdb/gdb/aarch64-linux-tdep.c:874:13: error: invalid conversion from "int" to "gdb_syscall" [-fpermissive]
     return -1;
             ^

gdb/ChangeLog:

* aarch64-linux-tdep.c (aarch64_canonicalize_syscall): Return
gdb_sys_no_syscall instead of -1.

9 years agoSkip the unversioned definition after the default version
H.J. Lu [Mon, 12 Oct 2015 11:55:24 +0000 (04:55 -0700)]
Skip the unversioned definition after the default version

We may see an unversioned definition after the default version.  We
should skip the unversioned definition in this case.

bfd/

PR ld/19073
* elflink.c (_bfd_elf_add_default_symbol): Skip the unversioned
definition after the default version.

ld/testsuite/

PR ld/19073
* ld-elf/pr19073.map: New file.
* ld-elf/pr19073.rd: Likewise.
* ld-elf/pr19073.s: Likewise.
* ld-elf/shared.exp (build_tests): Add tests for PR ld/19073.

9 years agoUpdate list of known MSP430 MCU names.
Nick Clifton [Mon, 12 Oct 2015 10:51:05 +0000 (11:51 +0100)]
Update list of known MSP430 MCU names.

* config/tc-msp430.c (msp430_mcu_names): Rename to
msp430_mcu_data.  Add fields for the ISA and hardware multiply
support.  Update with information from the latest devices.csv
file.
(md_parse_option): Make use of the new array.

9 years agoMention the change in NEWS
Yao Qi [Mon, 12 Oct 2015 10:28:39 +0000 (11:28 +0100)]
Mention the change in NEWS

gdb:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* NEWS: Mention the change.

9 years agoRename emit_load_store to aarch64_emit_load_store
Yao Qi [Mon, 12 Oct 2015 10:28:39 +0000 (11:28 +0100)]
Rename emit_load_store to  aarch64_emit_load_store

Likewise, this patch renames emit_load_store to
aarch64_emit_load_store.

gdb:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* arch/aarch64-insn.c (emit_load_store): Rename to ...
(aarch64_emit_load_store): ... it.  All callers updated.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c: Update all callers as emit_load_store
is renamed to aarch64_emit_load_store.

9 years agoRename emit_insn to aarch64_emit_insn
Yao Qi [Mon, 12 Oct 2015 10:28:39 +0000 (11:28 +0100)]
Rename emit_insn to aarch64_emit_insn

As emit_insn becomes extern, the prefix "aarch64_" is needed.  This
patch renames emit_insn to aarch64_emit_insn.

gdb:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* arch/aarch64-insn.c (emit_insn): Rename to ...
(aarch64_emit_insn): ... it.  All callers updated.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c: Update all callers of function renaming
from emit_insn to aarch64_emit_insn.

9 years agoNew test case gdb.arch/disp-step-insn-reloc.exp
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
New test case gdb.arch/disp-step-insn-reloc.exp

This patch adds a new test case which uses gdb.arch/insn-reloc.c too
to test displaced stepping.  Nowadays, tests are for x86, x86_64 and
aarch64.

gdb/testsuite:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* gdb.arch/disp-step-insn-reloc.exp: New test case.

9 years agoSupport displaced stepping in support_displaced_stepping for aarch64*-*-linux*
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Support displaced stepping in support_displaced_stepping for aarch64*-*-linux*

gdb/testsuite:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* lib/gdb.exp (support_displaced_stepping): Return 1 if target
is aarch64*-*-linux*.

9 years agoSupport displaced stepping in aarch64-linux
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Support displaced stepping in aarch64-linux

This patch is to support displaced stepping in aarch64-linux.  A
visitor is implemented for displaced stepping, and used to record
information to fixup pc after displaced stepping if needed.  Some
emit_* functions are converted to macros, and moved to
arch/aarch64-insn.{c,h} so that they can be shared.

gdb:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-tdep.c: Include arch-utils.h.
(aarch64_linux_init_abi): Call set_gdbarch_max_insn_length,
set_gdbarch_displaced_step_copy_insn,
set_gdbarch_displaced_step_fixup,
set_gdbarch_displaced_step_free_closure,
set_gdbarch_displaced_step_location,
and set_gdbarch_displaced_step_hw_singlestep.
* aarch64-tdep.c (struct displaced_step_closure): New.
(struct aarch64_displaced_step_data): New.
(aarch64_displaced_step_b): New function.
(aarch64_displaced_step_b_cond): Likewise.
(aarch64_register): Likewise.
(aarch64_displaced_step_cb): Likewise.
(aarch64_displaced_step_tb): Likewise.
(aarch64_displaced_step_adr): Likewise.
(aarch64_displaced_step_ldr_literal): Likewise.
(aarch64_displaced_step_others): Likewise.
(aarch64_displaced_step_copy_insn): Likewise.
(aarch64_displaced_step_fixup): Likewise.
(aarch64_displaced_step_hw_singlestep): Likewise.
* aarch64-tdep.h (DISPLACED_MODIFIED_INSNS): New macro.
(aarch64_displaced_step_copy_insn): Declare.
(aarch64_displaced_step_fixup): Declare.
(aarch64_displaced_step_hw_singlestep): Declare.
* arch/aarch64-insn.c (emit_insn): Moved from
gdbserver/linux-aarch64-low.c.
(emit_load_store): Likewise.
* arch/aarch64-insn.h (enum aarch64_opcodes): Moved from
gdbserver/linux-aarch64-low.c.
(struct aarch64_register): Likewise.
(struct aarch64_memory_operand): Likewise.
(ENCODE): Likewise.
(can_encode_int32): New macro.
(emit_b, emit_bcond, emit_cb, emit_ldr, emit_ldrsw): Likewise.
(emit_tb, emit_nop): Likewise.
(emit_insn): Declare.
(emit_load_store): Declare.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (enum aarch64_opcodes): Move to
arch/aarch64-insn.h.
(struct aarch64_memory_operand): Likewise.
(ENCODE): Likewise.
(emit_insn): Move to arch/aarch64-insn.c.
(emit_b, emit_bcond, emit_cb, emit_tb): Remove.
(emit_load_store): Move to arch/aarch64-insn.c.
(emit_ldr, emit_ldrb, emit_ldrsw, emit_nop): Remove.
(can_encode_int32): Remove.

9 years agoMove aarch64_relocate_instruction to arch/aarch64-insn.c
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Move aarch64_relocate_instruction to arch/aarch64-insn.c

This patch moves aarch64_relocate_instruction and visitor class to
arch/aarch64-insn.c, so that both GDB and GDBserver can use it.

gdb:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* arch/aarch64-insn.c (aarch64_decode_ldr_literal): Moved from
gdbserver/linux-aarch64-low.c.
(aarch64_relocate_instruction): Likewise.
* arch/aarch64-insn.h (aarch64_decode_ldr_literal): Declare.
(struct aarch64_insn_data): Moved from
gdbserver/linux-aarch64-low.c.
(struct aarch64_insn_visitor): Likewise.
(aarch64_relocate_instruction): Declare.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (extract_signed_bitfield): Remove.
(aarch64_decode_ldr_literal): Move to gdb/arch/aarch64-insn.c.
(aarch64_relocate_instruction): Likewise.
(struct aarch64_insn_data): Move to gdb/arch/aarch64-insn.h.
(struct aarch64_insn_visitor): Likewise.

9 years agoUse visitor in aarch64_relocate_instruction
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Use visitor in aarch64_relocate_instruction

Nowadays, the instruction decodings and handling are mixed together
inside aarch64_relocate_instruction.  The patch decouples instruction
decoding and instruction handling by using visitor pattern.  That is,
aarch64_relocate_instruction decode instructions and visit each
instruction by different visitor methods.  Each visitor defines the
concrete things to different instructions.  Fast tracepoint instruction
relocation and displaced stepping can define their own visitors,
sub-class of struct aarch64_insn_data.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (struct aarch64_insn_data): New.
(struct aarch64_insn_visitor): New.
(struct aarch64_insn_relocation_data): New.
(aarch64_ftrace_insn_reloc_b): New function.
(aarch64_ftrace_insn_reloc_b_cond): Likewise.
(aarch64_ftrace_insn_reloc_cb): Likewise.
(aarch64_ftrace_insn_reloc_tb): Likewise.
(aarch64_ftrace_insn_reloc_adr): Likewise.
(aarch64_ftrace_insn_reloc_ldr_literal): Likewise.
(aarch64_ftrace_insn_reloc_others): Likewise.
(visitor): New.
(aarch64_relocate_instruction): Use visitor.

9 years agoMove append_insns out of aarch64_relocate_instruction
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Move append_insns out of aarch64_relocate_instruction

aarch64_relocate_instruction should only decode instructions, and other
operations should be done out side of it.  This patch moves append_insns
out of aarch64_relocate_instruction, to its caller.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_relocate_instruction): Return
int.  Add argument buf.
(aarch64_install_fast_tracepoint_jump_pad): Pass buf to
aarch64_relocate_instruction.

9 years agoMove target_read_uint32 out of aarch64_relocate_instruction
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
Move target_read_uint32 out of aarch64_relocate_instruction

This patch is to move target_read_uint32 out of
aarch64_relocate_instruction and pass INSN to
aarch64_relocate_instruction, so that it is cleaner, only decode
instructions.

gdb/gdbserver:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_relocate_instruction): Add
argument insn.  Remove local variable insn.  Don't call
target_read_uint32.
(aarch64_install_fast_tracepoint_jump_pad): Call
target_read_uint32.

9 years agoMore tests in gdb.arch/insn-reloc.c
Yao Qi [Mon, 12 Oct 2015 10:28:38 +0000 (11:28 +0100)]
More tests in gdb.arch/insn-reloc.c

This patch adds more tests in gdb.arch/insn-reloc.c to cover
instruction BL and cover B.CON when CON is false.  These new added
tests can be used for displaced stepping too.

gdb/testsuite:

2015-10-12  Yao Qi  <yao.qi@linaro.org>

* gdb.arch/insn-reloc.c (can_relocate_bcond): Rename to ...
(can_relocate_bcond_true): ... it.
(can_relocate_bcond_false): New function.
(foo): Likewise.
(can_relocate_bl): Likewise.
(testcases) [__aarch64__]: Add can_relocate_bcond_false and
can_relocate_bl.

9 years agoForward VALUE_LVAL when avoiding side effects for STRUCTOP_STRUCT
Pierre-Marie de Rodat [Tue, 15 Sep 2015 13:46:17 +0000 (15:46 +0200)]
Forward VALUE_LVAL when avoiding side effects for STRUCTOP_STRUCT

Assume foo_array is a pointer to a C structure. GDB must evaluate the
following expression properly, but it does not currently:

    (gdb) print 1 && &foo_array[1].a
    Attempt to take address of value not located in memory.

The problem is that in EVAL_AVOID_SIDE_EFFECTS mode,
eval.c:evaluate_subexp_standard always returns a not_lval value as the
result for a STRUCTOP_STRUCT operation. As a consequence, the rest of
the code believes that one cannot take the address of the returned
value.

This patch fixes STRUCTOP_STRUCT handling so that the VALUE_LVAL
attribute for the returned value is properly initialized.  After this
change, the above session becomes:

    (gdb) print 1 && &foo_array[1].a
    $1 = 1

gdb/ChangeLog:

* eval.c (evaluate_subexp_standard) <STRUCTOP_STRUCT>: If
EVAL_AVOID_SIDE_EFFECTS mode, forward the VALUE_LVAL attribute
to the returned value.

gdb/testsuite/ChangeLog:

* gdb.base/nested-addr.c: New file.
* gdb.base/nested-addr.exp: New testcase.

Tested on x86_64-linux, no regression.

9 years agoavr: Fix bugs in org/align tracking.
Andrew Burgess [Wed, 7 Oct 2015 19:47:38 +0000 (20:47 +0100)]
avr: Fix bugs in org/align tracking.

This commit fixes a few issues in the mechanism for passing information
about ".org" and ".align" directives from the assembler to the linker,
used by the avr target.

In the original commit fdd410ac7a07dfb47dcb992201000582a280d8b2, there
were some mistakes when writing out information about ".align"
directives:
  - An align with fill does not write out its information correctly, the
    fill data overwrites the alignment data.
  - Each alignment directive is recorded at the location where the
    previous alignment directive should be recorded, the first alignment
    directive is discarded.

In commit 137c83d69fad77677cc818593f9399caa777a0c5, the data produced by
objdump is not correct:
   - It's miss-aligned due to a missing whitespace.
   - The fill data for align with fill records is not displayed
     correctly.

All of the above issues are addressed in this commit, and the test is
improved to cover these cases.

binutils/ChangeLog:

* od-elf32_avr.c (elf32_avr_dump_avr_prop): Fix printing of align
specific data, fix formatting for align and org data.

gas/ChangeLog:

* config/tc-avr.c (avr_output_property_record): Fix overwrite bug
for align and fill records.
(avr_handle_align): Record fill information for align frags.
(create_record_for_frag): Add next frag assertion, use correct
address for align records.

gas/testsuite/ChangeLog:

* gas/avr/avr-prop-1.s: Use fill in some cases.
* gas/avr/avr-prop-1.d: Update expected results.

9 years agoPR19083 S/390: Fix garbage collection of some GOT relocs.
Andreas Krebbel [Mon, 12 Oct 2015 08:21:51 +0000 (10:21 +0200)]
PR19083 S/390: Fix garbage collection of some GOT relocs.

bfd/ChangeLog:

2015-10-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR ld/19083
* elf32-s390.c (elf_s390_gc_sweep_hook): Do not reduce got
refcount for relocs not really requiring a got slot.
* elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.

9 years agoAutomatic date update in version.in
GDB Administrator [Mon, 12 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoIgnore references with relocs to discarded sections in .data.rel.ro.local on hppa...
John David Anglin [Sun, 11 Oct 2015 22:49:08 +0000 (18:49 -0400)]
Ignore references with relocs to discarded sections in .data.rel.ro.local on hppa-linux.

9 years agosim: moxie: fix leakage in error path [BZ #18273]
Mike Frysinger [Sun, 11 Oct 2015 07:56:22 +0000 (03:56 -0400)]
sim: moxie: fix leakage in error path [BZ #18273]

Reported-by: dcb <dcb314@hotmail.com>
9 years agosim: bfin: handle negative left saturated shifts as ashifts [BZ #18407]
Mike Frysinger [Sun, 11 Oct 2015 07:32:11 +0000 (03:32 -0400)]
sim: bfin: handle negative left saturated shifts as ashifts [BZ #18407]

When handling left saturated ashifts with negative immediates, they
should be treated as right ashifts.  This matches hardware behavior.

Reported-by: Igor Rayak <igorr@gitatechnologies.com>
9 years agoAutomatic date update in version.in
GDB Administrator [Sun, 11 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoBug 19113 - read.c stringer assertion
Alan Modra [Sat, 10 Oct 2015 00:18:05 +0000 (10:48 +1030)]
Bug 19113 - read.c stringer assertion

Fails due to signed char promotion.

PR gas/19113
* read.c (next_char_of_string): Mask char after escape.  Use
CHAR_MASK rather than 0xff.

9 years agoAutomatic date update in version.in
GDB Administrator [Sat, 10 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years ago[Ada] ada_unpack_from_contents: Error if target buffer not large enough
Joel Brobecker [Fri, 9 Oct 2015 21:16:45 +0000 (14:16 -0700)]
[Ada] ada_unpack_from_contents: Error if target buffer not large enough

This adds a guard that the size of the "unpacked" buffer is large enough
to contain at least BIT_SIZE bits.  If not, report an error.  This is to
guard this routine from doing buffer overflows when called incorrectly.

gdb/ChangeLog:

        * ada-lang.c (ada_unpack_from_contents): Add guard that unpacked
        is large enough for BIT_SIZE.  Update function comment.

9 years ago[Ada] Buffer overflow in ada_unpack_from_contents
Joel Brobecker [Fri, 9 Oct 2015 21:15:16 +0000 (14:15 -0700)]
[Ada] Buffer overflow in ada_unpack_from_contents

This patch fixes a buffer overflow in ada_unpack_from_contents
caused by one of the previous commits. This happens when trying
to print the value of an array of variant records.

The overflow happens while trying to print one element of the array.
Because the size of each element in the array is variable, the array
has a DWARF byte_stride attribute, which makes us treat the array
as if it was packed. And during the extraction of each array element,
we try to unpack an object using the array's byte stride as the size,
into an element whose size is actually less than the stride.

This patch fixes the issue by overriding the byte-stride with
the actual element's length.

gdb/ChangeLog:

        * ada-lang.c (ada_value_primitive_packed_val): Move
        src_len variable to local block where used.  Override
        BIT_SIZE if bigger than size of resolved type.

9 years agomake is_scalar_type non-static and use it in ada-lang.c
Joel Brobecker [Fri, 9 Oct 2015 21:14:43 +0000 (14:14 -0700)]
make is_scalar_type non-static and use it in ada-lang.c

Just a small cleanup, to avoid code duplication...

gdb/ChangeLog:

        * gdbtypes.h (is_scalar_type): Add extern declaration.
        * gdbtypes.c (is_scalar_type): Make non-static.
        * ada-lang.c (ada_value_primitive_packed_val): Use is_scalar_type
        to compute IS_SCALAR instead of doing it ourselves.

9 years ago[Ada] Better handling of dynamic types in ada_value_primitive_packed_val
Joel Brobecker [Fri, 9 Oct 2015 21:13:49 +0000 (14:13 -0700)]
[Ada] Better handling of dynamic types in ada_value_primitive_packed_val

There is some partial handling for dynamic types in
ada_value_primitive_packed_val, but this support was added
in a fairly ad hoc way, and actually only covered the situation
where OBJ is not NULL and its contents had not been fetched yet.
In addition, even in the cases that it does cover, it doesn't make
much sense. In particular, it was adjusting BIT_SIZE and SRC_LEN,
which are properties of the data to be extracted _from_, based
on TYPE's length once resolved, which is a property of the data
we want to extract _to_.

This patch hopefully adjust this function to handle dynamic types
correctly, and in all cases. It does so by unpacking the data into
a temporary buffer in order to use that buffer to resolve the type.
And _then_ creates the resulting value from that resolved type.

gdb/ChangeLog:

        * ada-lang.c (ada_value_primitive_packed_val): Rework handling
        of case where TYPE is dynamic.

9 years ago[Ada] split data unpacking code out of ada_value_primitive_packed_val.
Joel Brobecker [Fri, 9 Oct 2015 21:12:51 +0000 (14:12 -0700)]
[Ada] split data unpacking code out of ada_value_primitive_packed_val.

This patch is just preparation work which splits the function
ada_value_primitive_packed_val into two function: one which unpacks
the data, and the other which now uses it to implement
ada_value_primitive_packed_val.

This simplifies a bit ada_value_primitive_packed_val, but will also
allow us to use the new function to unpack data without actually creating
a struct value as a result.

gdb/ChangeLog:

        * ada-lang.c (ada_unpack_from_contents): New function,
        extracted from ada_value_primitive_packed_val.
        (ada_value_primitive_packed_val): Replace extracted out code
        by call to ada_unpack_from_contents.

9 years agoReorder variable declarations in ada_value_primitive_packed_val
Joel Brobecker [Fri, 9 Oct 2015 21:12:29 +0000 (14:12 -0700)]
Reorder variable declarations in ada_value_primitive_packed_val

This patch just changes the order in which local variables are declared
so as to group the logically-related variables together.  No code
change otherwise.

gdb/ChangeLog:

        * ada-lang.c (ada_value_primitive_packed_val): Reorder local
        variable declarations.

9 years agouse gdb_byte in ada-lang.c::ada_value_primitive_packed_val...
Joel Brobecker [Fri, 9 Oct 2015 21:10:18 +0000 (14:10 -0700)]
use gdb_byte in ada-lang.c::ada_value_primitive_packed_val...

... instead of "unsigned char".

gdb/Changelog:

        * ada-lang.c (ada_value_primitive_packed_val): Change the type
        of local variables src and unpacked to "gdb_type *" instead of
        "unsigned char *".

9 years agoMore explicit local variable names in ada_value_primitive_packed_val
Joel Brobecker [Fri, 9 Oct 2015 21:10:03 +0000 (14:10 -0700)]
More explicit local variable names in ada_value_primitive_packed_val

A number of local variables declared in ada_value_primitive_packed_val
have a name that could, IMO, be improved to, either: Be more explicit
about what the variable is about (Eg: "src" is an index, so rename it
to "src_idx"); or be more consistent with other variables that they
relate to: for instance, several variables refer to the source via
"src" (Eg: srcBitsLeft, nsrc), but the buffer they refer to is called
"bytes", so patch renames "bytes" to "src".

This should help read and understand a little more easily the code
inside this function.  No real code change otherwise.

gdb/ChangeLog:

        * ada-lang.c (ada_value_primitive_packed_val): Make the name
        of various local variables more explicit and consistent.
        No real code change otherwise.

9 years agoi386: Fix type of gdbarch_tdep::register_reggroup_p
Simon Marchi [Fri, 9 Oct 2015 14:12:22 +0000 (10:12 -0400)]
i386: Fix type of gdbarch_tdep::register_reggroup_p

gdb/ChangeLog:

* i386-tdep.h (struct gdbarch_tdep): Change type of
register_reggroup_p to gdbarch_register_reggroup_p_ftype.

9 years agocris: Use enum bfd_endian to represent endianness
Simon Marchi [Fri, 9 Oct 2015 14:12:21 +0000 (10:12 -0400)]
cris: Use enum bfd_endian to represent endianness

gdb/ChangeLog:

* cris-tdep.c (struct instruction_environment): Change type of
byte_order to enum bfd_endian.

9 years agoarm-linux-tdep: Add explicit cast for int to gdb_syscall conversion
Simon Marchi [Fri, 9 Oct 2015 14:12:21 +0000 (10:12 -0400)]
arm-linux-tdep: Add explicit cast for int to gdb_syscall conversion

This patch is taken from Pedro's branch.

gdb/ChangeLog:

* arm-linux-tdep.c (arm_canonicalize_syscall): Add
enum gdb_syscall casts.

9 years agoChange some void* to gdb_byte*
Simon Marchi [Fri, 9 Oct 2015 14:08:23 +0000 (10:08 -0400)]
Change some void* to gdb_byte*

There are a bunch of places where a void* is implicitely casted into a
gdb_byte*.  The auto-insert-casts script added explicit casts at those
places.  However, in many cases, it makes more sense to just change the
void* to a gdb_byte*.

gdb/ChangeLog:

* aarch64-tdep.c (stack_item_t): Change type of data to gdb_byte*.
* arm-tdep.c (struct stack_item): Likewise.
(push_stack_item): Add gdb_byte* cast.
* avr-tdep.c (struct stack_item): Change type of data to gdb_byte*.
(push_stack_item): Add gdb_byte* cast.
* cli/cli-dump.c (dump_memory_to_file): Change type of buf to gdb_byte*
and add cast.
* cris-tdep.c (struct stack_item): Change type of data to gdb_byte*.
(push_stack_item): Add gdb_byte* cast.
* gcore.c (gcore_copy_callback): Change type of memhunk to gdb_byte* and
add cast.
* gdbtypes.h (print_scalar_formatted): Change type of first parameter to
gdb_byte*.
* h8300-tdep.c (h8300_extract_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(h8300h_extract_return_value): Likewise.
(h8300_store_return_value): Change type of valbuf to gdb_byte*.
(h8300h_store_return_value): Likewise.
* iq2000-tdep.c (iq2000_extract_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
* jit.c (jit_reader_try_read_symtab): Change type of gdb_mem to gdb_byte*
and add cast.
* m32r-tdep.c (m32r_store_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(m32r_extract_return_value): Change type of dst to gdb_byte* and remove
valbuf.
* mep-tdep.c (mep_pseudo_cr32_read): Change type of buf to gdb_byte*.
(mep_pseudo_cr64_read): Likewise.
(mep_pseudo_csr_write): Likewise.
(mep_pseudo_cr32_write): Likewise.
(mep_pseudo_cr64_write): Likewise.
* mi/mi-main.c (mi_cmd_data_write_memory): Change type of buffer to
gdb_byte* and add cast.
* moxie-tdep.c (moxie_store_return_value): Change type of valbuf to
gdb_byte* and remove unnecessary cast.
(moxie_extract_return_value): Change type of dst to gdb_byte* and remove
valbuf.
* p-valprint.c (print_scalar_formatted): Change type of valaddr to
gdb_byte*.
* printcmd.c (void): Likewise.
* python/py-inferior.c (infpy_read_memory): Change type of buffer to
gdb_byte* and add cast.
(infpy_write_memory): Likewise.
(infpy_search_memory): Likewise.
* regcache.c (regcache_raw_write_signed): Change type of buf to gdb_byte*
and add cast.
(regcache_raw_write_unsigned): Likewise.
(regcache_cooked_write_signed): Likewise.
(regcache_cooked_write_unsigned): Likewise.
* sh64-tdep.c (h64_extract_return_value): Change type of valbuf to
gdb_byte*.

9 years agoAdd two callback data casts
Simon Marchi [Fri, 9 Oct 2015 13:41:30 +0000 (09:41 -0400)]
Add two callback data casts

gdb/ChangeLog:

* fbsd-tdep.c (fbsd_collect_regset_section_cb): Add cast.
* linux-tdep.c (linux_collect_regset_section_cb_data): Likewise.

9 years agoFix typos in comments
Eli Zaretskii [Fri, 9 Oct 2015 13:21:08 +0000 (16:21 +0300)]
Fix typos in comments

gdb/

2015-10-09  Eli Zaretskii  <eliz@gnu.org>

* stack.c (print_stack_frame):
* utils.c (printchar): Fix typos in commentary.

9 years agobtrace, test: avoid gdb.btrace/vdso.exp fail
Markus Metzger [Wed, 30 Sep 2015 09:41:35 +0000 (11:41 +0200)]
btrace, test: avoid gdb.btrace/vdso.exp fail

The vdso.exp test checks that we can access the VDSO memory when replaying.

Depending on the line information generated by the compiler, runto_main may run
to the line marked with bp.1 or stop before that line.  The test incorrectly
assumes that it will always run to the marked line and fails if it doesn't.

The test does not really care about what is traced.  It does care that GDB is
replaying when capturing the second disassemble output.

Reflect that in the test by ignoring the output of the stepping and record goto
begin commands and by checking that GDB is actually replaying.

testsuite/
* gdb.btrace/vdso.c (main): Remove breakpoint markers.
* gdb.btrace/vdso.exp: Change stepping command to "next" and ignore
its output.  Ignore the output of "record goto begin" and instead
check that GDB is replaying.

9 years agoFix gdb.base/a2-run.exp race
Pedro Alves [Fri, 9 Oct 2015 11:56:26 +0000 (12:56 +0100)]
Fix gdb.base/a2-run.exp race

This patch fixes this racy failure, with the native-extended-gdbserver
board:

 (gdb) run
 Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run
 Remote debugging from host 127.0.0.1
 Process build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run created; pid = 23832
 Reading /lib64/ld-linux-x86-64.so.2 from remote target...
 warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
 Reading /lib64/ld-linux-x86-64.so.2 from remote target...
 Reading /lib64/libm.so.6 from remote target...
 Reading /lib64/libc.so.6 from remote target...
 [Inferior 1 (process 23832) exited with code 01]
 (gdb) FAIL: gdb.base/a2-run.exp: run "a2-run" with no args
 PASS: gdb.base/a2-run.exp: no spurious messages at program exit
 run 5
 Starting program: build/gdb/testsuite/outputs/gdb.base/a2-run/a2-run 5
 Reading /lib64/ld-linux-x86-64.so.2 from remote target...
 usage:  factorial <number>

 Child exited with status 1

Note that the output is correct; it's just that inferior output
appeared after gdb's output, and the test doesn't handle that
correctly.

This comment isn't really correct, unfortunately:

# waiting.  If we had already seen the status wrapper exit,
# gdb_test_multiple/expect has no spawn ids left, and thus
# returns.

That's true of expect in general, but I had missed / forgot that
gdb_test_multiple internally has extra matches using "-i
$gdb_spawn_id", so even if the caller clears all the indirect spawn id
lists, gdb_test_multiple will continue waiting.

So do a conditional exp_continue manually instead.

gdb/testsuite/ChangeLog:
2015-10-09  Pedro Alves  <palves@redhat.com>

* gdb.base/a2-run.exp (maybe_exp_continue): New procedure.
(top level): Use it in the run with no args test.

9 years agoAutomatic date update in version.in
GDB Administrator [Fri, 9 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years ago[D] Support D style sizeof and typeof expressions.
Iain Buclaw [Thu, 8 Oct 2015 19:38:05 +0000 (21:38 +0200)]
[D] Support D style sizeof and typeof expressions.

gdb/ChangeLog:

* d-exp.y: (UnaryExpression): Support `type.sizeof' expressions.
(PostfixExpression): Support `expr.sizeof' expressions.
(PrimaryExpression): Support `typeof(expr)' expressions.

gdb/testsuite/ChangeLog:

* gdb.dlang/properties.exp: New file.

9 years agoMAINTAINERS: Update my email address
Maciej W. Rozycki [Thu, 8 Oct 2015 17:57:56 +0000 (18:57 +0100)]
MAINTAINERS: Update my email address

gdb/
* MAINTAINERS: Update my email address.

9 years agoFix compile time warning compiling ARC port.
Nick Clifton [Thu, 8 Oct 2015 11:31:26 +0000 (12:31 +0100)]
Fix compile time warning compiling ARC port.

9 years agobtrace: fix void return
Markus Metzger [Thu, 8 Oct 2015 07:00:57 +0000 (09:00 +0200)]
btrace: fix void return

record_btrace_resume returns the void return from the to_resume method of the
target beneath.  Split this into calling to_resume and return.

gdb/
* record-btrace.c (record_btrace_resume): Fix void return.

9 years agoAutomatic date update in version.in
GDB Administrator [Thu, 8 Oct 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in