binutils-gdb.git
10 years agoRemove useless gcore command detection
Pedro Alves [Thu, 21 Aug 2014 10:36:59 +0000 (11:36 +0100)]
Remove useless gcore command detection

Checking whether the gcore command is included in the GDB build as
proxy for checking whether core dumping is supported by the target is
useless, as gcore.o has been in COMMON_OBS since git 9b4eba8e:

    2009-10-26  Michael Snyder  <msnyder@vmware.com>
                Hui Zhu  <teawater@gmail.com>

        * Makefile.in (SFILES): Add gcore.c.
        (COMMON_OBS): Add gcore.o.
        * config/alpha/alpha-linux.mh (NATDEPFILES): Delete gcore.o.
        * config/alpha/fbsd.mh (NATDEPFILES): Ditto.
...

IOW, the command is always included in the build.

Instead, nowadays, tests bail out if actually trying to generate a
core fails with an indication the target doesn't support it.  See
gdb_gcore_cmd and callers.

Tested on x86_64 Fedora 20.

gdb/testsuite/ChangeLog:

* gdb.base/gcore-buffer-overflow.exp: Remove "help gcore" test.
* gdb.base/gcore-relro-pie.exp: Likewise.
* gdb.base/gcore-relro.exp: Likewise.
* gdb.base/gcore.exp: Likewise.
* gdb.base/print-symbol-loading.exp: Likewise.
* gdb.threads/gcore-thread.exp: Likewise.
* lib/gdb.exp (gdb_gcore_cmd): Don't expect "Undefined command".

10 years agobfd/ChangeLog
Terry Guo [Thu, 21 Aug 2014 10:00:35 +0000 (18:00 +0800)]
bfd/ChangeLog
2014-08-21  Tony Wang  <tony.wang@arm.com>

* elf32-arm.c (elf32_arm_final_link_relocate): Implement
the veneer routine for R_ARM_THM_JUMP19.
(arm_type_of_stub): Add conditional clause for R_ARM_THM_JUMP19
(elf32_arm_size_stub): Ditto.

ld/testsuite/ChangeLog
2014-08-21  Tony Wang  <tony.wang@arm.com>

* ld-arm/jump-reloc-veneers-cond.s: New test.
* ld-arm/farcall-cond-thumb-arm.s: Ditto.
* ld-arm/jump-reloc-veneers-cond-short.d: Expected output
for target without a veneer generation.
* ld-arm/jump-reloc-veneers-cond-long.d: Expected output
for target with a veneer generation.
* ld-arm/farcall-cond-thumb-arm.d: Expected output for
inter working veneer generation.
* ld-arm/arm-elf.exp: Add tests for conditional branch veneer.

10 years agogdb: Fix aarch64 native build issue caused by use of LONGEST
Will Newton [Thu, 21 Aug 2014 08:38:00 +0000 (09:38 +0100)]
gdb: Fix aarch64 native build issue caused by use of LONGEST

Recent gdb code refactor changes LONGEST from a macro to a typedef,
thus the use of it in aarch64-linux-nat.c is no longer valid.

2014-08-21  Bin Cheng  <bin.cheng@arm.com>

* aarch64-linux-nat.c (dr_changed_t): Change the type from
unsigned LONGEST to ULONGEST.

10 years agoMIPS/gas/testsuite: mips.exp indentation fixes
Maciej W. Rozycki [Thu, 21 Aug 2014 00:52:13 +0000 (01:52 +0100)]
MIPS/gas/testsuite: mips.exp indentation fixes

* gas/mips/mips.exp: Correct indentation.

10 years agoGAS: Replace leading spaces with tabs across dw2gencfi.c
Maciej W. Rozycki [Wed, 20 Aug 2014 19:40:10 +0000 (20:40 +0100)]
GAS: Replace leading spaces with tabs across dw2gencfi.c

* dw2gencfi.c (make_debug_seg): Replace leading spaces with tabs.
(dot_cfi_val_encoded_addr, output_cfi_insn): Likewise.
(output_cie, cfi_change_reg_numbers, cfi_finish): Likewise.

10 years agoARM/ld: Correct macro formatting in armelf.em
Maciej W. Rozycki [Wed, 20 Aug 2014 19:17:18 +0000 (20:17 +0100)]
ARM/ld: Correct macro formatting in armelf.em

* emultempl/armelf.em (OPTION_STUBGROUP_SIZE): Fix formatting.
(OPTION_NO_MERGE_EXIDX_ENTRIES, OPTION_LONG_PLT): Likewise.

10 years agoIntegrate PR 12649's race detector directly in the testsuite machinery
Pedro Alves [Wed, 20 Aug 2014 17:55:54 +0000 (18:55 +0100)]
Integrate PR 12649's race detector directly in the testsuite machinery

This integrates Jan Kratochvil's nice race reproducer from PR
testsuite/12649 into the testsuite infrustructure directly.

With this, one only has to do either 'make check-read1' or 'make check
READ1="1"' to preload the read1.so library into expect.

Currently only enabled for glibc/GNU systems, and if
build==host==target.

gdb/testsuite/ChangeLog:

* Makefile.in (EXTRA_RULES, CC): New variables, get from
configure.
(EXPECT): Handle READ1 being set.
(all): Depend on EXTRA_RULES.
(check-read1, expect-read1, read1.so, read1): New rules.
* README (Testsuite Parameters): Document the READ1 make variable.
(Race detection): New section.
* configure: Regenerate.
* configure.ac: If build==host==target, and running under a
GNU/glibc system, add read1 to the extra Makefile rules.
(EXTRA_RULES): AC_SUBST it.
* lib/read1.c: New file.

gdb/ChangeLog:

* Makefile.in (check-read1): New rule.

10 years agoFix PR ld/17277: bogus dynamic relocs and TEXTREL for ARM PC-relative relocs
Roland McGrath [Wed, 20 Aug 2014 17:12:57 +0000 (10:12 -0700)]
Fix PR ld/17277: bogus dynamic relocs and TEXTREL for ARM PC-relative relocs

bfd/
PR ld/17277
* elf32-arm.c (elf32_arm_check_relocs): Increment P->pc_count for
all reloc types with pc_relative set in the howto, not just for
R_ARM_REL32 and R_ARM_REL32_NOI.
(allocate_dynrelocs_for_symbol): Update comment.
(elf32_arm_gc_sweep_hook): For all reloc types with pc_relative
set in the howto, set call_reloc_p and may_need_local_target_p but
not may_become_dynamic_p; not only for R_ARM_REL32 and R_ARM_REL32_NOI.
(elf32_arm_check_relocs): Likewise.

ld/testsuite/
PR ld/17277
* ld-arm/pcrel-shared.s: New file.
* ld-arm/pcrel-shared.rd: New file.
* ld-arm/arm-elf.exp (armelftests_common): Add it.

10 years agoARM: Add support for armeb-*-eabi*
Will Newton [Mon, 4 Aug 2014 09:52:04 +0000 (10:52 +0100)]
ARM: Add support for armeb-*-eabi*

At the moment it is possible to configure binutils for these triples
but the resulting linker defaults to little endian with huge numbers
of testsuite failures, which on the face of it does not appear to make
much sense.

This patch makes the behaviour similar to armeb-elf and the testsuite
is clean.

bfd/ChangeLog:

2014-08-20  Will Newton  <will.newton@linaro.org>

* config.bfd: Default armeb-*-eabi* to big endian.

ld/ChangeLog:

2014-08-20  Will Newton  <will.newton@linaro.org>

* configure.tgt: Default armeb-*-eabi* to big endian.

10 years ago[ARM] Fix vcmp with #0.0
Kyrylo Tkachov [Wed, 20 Aug 2014 15:49:53 +0000 (16:49 +0100)]
[ARM] Fix vcmp with #0.0

* config/tc-arm.c (parse_ifimm_zero): New function.
(enum operand_parse_code): Add OP_RSVD_FI0 value.
(parse_operands): Handle OP_RSVD_FI0.
(asm_opcode_insns): Use RSVD_FI0 for second operand of vcmp, vcmpe.

* gas/arm/ual-vcmp.s: New file.
* gas/arm/ual-vcmp.d: Likewise.
* gas/arm/vcmp-zero-bad.s: Likewise.
* gas/arm/vcmp-zero-bad.d: Likewise.
* gas/arm/vcmp-zero-bad.l: Likewise.

10 years agoEnabling the HIGH_ENTROPY_VA flag allows the operating system to use
Nick Clifton [Wed, 20 Aug 2014 15:10:29 +0000 (16:10 +0100)]
Enabling the HIGH_ENTROPY_VA flag allows the operating system to use
addresses outside of the 32-bit range before memory exhaustion. This
results in a higher entropy implementation of ASLR when used with the
DYNAMIC_BASE flag.

* include/coff/pe.h: Add HIGH_ENTROPY_VA flag
* ld/emultempl/pep.em: Add --high-entropy-va switch
* ld/ld.texinfo: Document the --high-entropy-va switch

10 years agoFix handling of typedefs to types having a data_location attribute.
Joel Brobecker [Wed, 20 Aug 2014 12:50:38 +0000 (14:50 +0200)]
Fix handling of typedefs to types having a data_location attribute.

Consider an array described in the debugging information as being
a typedef of an array type for which there is a DW_AT_data_location
attribute. Trying to print the value of that array currently yields
incorrect element values. For instance:

    (gdb) print foo.three_tdef
    $1 = (6293760, 0, 6293772)

The problem occurs because we check for the data_location attribute
only on the typedef type, whereas we should be checking for the
typedef's target type.  As a result, GDB erroneously thinks that
there is no data_location, and therefore starts reading the array's
content from the address of the descriptor instead of the data_location
address.

gdb/ChangeLog:

        * value.c (value_from_contents_and_address): Strip resolved_type's
        typedef layers before checking its TYPE_DATA_LOCATION.

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/data-loc.exp: Add additional tests exercising
        the handling of variables declared as a typedef to an array
        which a DW_AT_data_location attribute.

10 years agovalue.c (value_contents_bits_eq): Initialize l,h for gcc -Wall.
Pedro Alves [Wed, 20 Aug 2014 10:05:31 +0000 (11:05 +0100)]
value.c (value_contents_bits_eq): Initialize l,h for gcc -Wall.

2014-08-20  Pedro Alves  <palves@redhat.com>

gdb/
* value.c (value_contents_bits_eq): Initialize l,h for gcc -Wall.

10 years agoAdjust comments with example in it
Yao Qi [Wed, 20 Aug 2014 03:36:42 +0000 (11:36 +0800)]
Adjust comments with example in it

We would like to wrap examples, output or code snippet in comments with
blank lines, and move */ to a new line if the comment is ended with the
example.

gdb:

2014-08-20  Yao Qi  <yao@codesourcery.com>

* amd64-tdep.c (amd64_classify): Add a blank line after the
example.  Move "*/" to a new line.
* arm-tdep.c (arm_vfp_cprc_sub_candidate): Likewise.
* arm-wince-tdep.c (arm_pe_skip_trampoline_code): Likewise.
* dwarf2read.c (psymtab_include_file_name): Likewise.

10 years agoAdd copyright notice to linker script files.
Nick Clifton [Wed, 20 Aug 2014 09:34:58 +0000 (10:34 +0100)]
Add copyright notice to linker script files.

10 years agoFix typo in f7f2534e
Alan Modra [Wed, 20 Aug 2014 00:27:59 +0000 (09:57 +0930)]
Fix typo in f7f2534e

* Makefile.am: Typo fix.
* Makefile.in: Regenerate.
* po/POTFILES.in: Regenerate.

10 years agodaily update
Alan Modra [Wed, 20 Aug 2014 00:01:14 +0000 (09:31 +0930)]
daily update

10 years agoHandle partially optimized out values similarly to unavailable values
Pedro Alves [Tue, 19 Aug 2014 23:07:40 +0000 (00:07 +0100)]
Handle partially optimized out values similarly to unavailable values

This fixes PR symtab/14604, PR symtab/14605, and Jan's test at
https://sourceware.org/ml/gdb-patches/2014-07/msg00158.html, in a tree
with bddbbed reverted:

 2014-07-22  Pedro Alves  <palves@redhat.com>

  * value.c (allocate_optimized_out_value): Don't mark value as
  non-lazy.

The PRs are about variables described by the DWARF as being split over
multiple registers using DWARF piece information, but some of those
registers being marked as optimised out (not saved) by a later frame.
GDB currently incorrectly mishandles these partially-optimized-out
values.

Even though we can usually tell from the debug info whether a local or
global is optimized out, handling the case of a local living in a
register that was not saved in a frame requires fetching the variable.
GDB also needs to fetch a value to tell whether parts of it are
"<unavailable>".  Given this, it's not worth it to try to avoid
fetching lazy optimized-out values based on debug info alone.

So this patch makes GDB track which chunks of a value's contents are
optimized out like it tracks <unavailable> contents.  That is, it
makes value->optimized_out be a bit range vector instead of a boolean,
and removes the struct lval_funcs check_validity and check_any_valid
hooks.

Unlike Andrew's series which this is based on (at
https://sourceware.org/ml/gdb-patches/2013-08/msg00300.html, note some
pieces have gone in since), this doesn't merge optimized out and
unavailable contents validity/availability behind a single interface,
nor does it merge the bit range vectors themselves (at least yet).
While it may be desirable to have a single entry point that returns
existence of contents irrespective of what may make them
invalid/unavailable, several places want to treat optimized out /
unavailable / etc. differently, so each spot that potentially could
use it will need to be careful considered on case-by-case basis, and
best done as a separate change.

This fixes Jan's test, because value_available_contents_eq wasn't
considering optimized out value contents.  It does now, and because of
that it's been renamed to value_contents_eq.

A new intro comment is added to value.h describing "<optimized out>",
"<not saved>" and "<unavailable>" values.

gdb/
PR symtab/14604
PR symtab/14605
* ada-lang.c (coerce_unspec_val_to_type): Use
value_contents_copy_raw.
* ada-valprint.c (val_print_packed_array_elements): Adjust.
* c-valprint.c (c_val_print): Use value_bits_any_optimized_out.
* cp-valprint.c (cp_print_value_fields): Let the common printing
code handle optimized out values.
(cp_print_value_fields_rtti): Use value_bits_any_optimized_out.
* d-valprint.c (dynamic_array_type): Use
value_bits_any_optimized_out.
* dwarf2loc.c (entry_data_value_funcs): Remove check_validity and
check_any_valid fields.
(check_pieced_value_bits): Delete and inline ...
(check_pieced_synthetic_pointer): ... here.
(check_pieced_value_validity): Delete.
(check_pieced_value_invalid): Delete.
(pieced_value_funcs): Remove check_validity and check_any_valid
fields.
(read_pieced_value): Use mark_value_bits_optimized_out.
(write_pieced_value): Switch to use
mark_value_bytes_optimized_out.
(dwarf2_evaluate_loc_desc_full): Copy the value contents instead
of assuming the whole value is optimized out.
* findvar.c (read_frame_register_value): Remove special handling
of optimized out registers.
(value_from_register): Use mark_value_bytes_optimized_out.
* frame-unwind.c (frame_unwind_got_optimized): Use
mark_value_bytes_optimized_out.
* jv-valprint.c (java_value_print): Adjust.
(java_print_value_fields): Let the common printing code handle
optimized out values.
* mips-tdep.c (mips_print_register): Remove special handling of
optimized out registers.
* opencl-lang.c (lval_func_check_validity): Delete.
(lval_func_check_any_valid): Delete.
(opencl_value_funcs): Remove check_validity and check_any_valid
fields.
* p-valprint.c (pascal_object_print_value_fields): Let the common
printing code handle optimized out values.
* stack.c (read_frame_arg): Remove special handling of optimized
out values.  Fetch both VAL and ENTRYVAL before comparing
contents.  Adjust to value_available_contents_eq rename.
* valprint.c (valprint_check_validity)
(val_print_scalar_formatted): Use value_bits_any_optimized_out.
(val_print_array_elements): Adjust.
* value.c (struct value) <optimized_out>: Now a VEC(range_s).
(value_bits_any_optimized_out): New function.
(value_entirely_covered_by_range_vector): New function, factored
out from value_entirely_unavailable.
(value_entirely_unavailable): Reimplement.
(value_entirely_optimized_out): New function.
(insert_into_bit_range_vector): New function, factored out from
mark_value_bits_unavailable.
(mark_value_bits_unavailable): Reimplement.
(struct ranges_and_idx): New struct.
(find_first_range_overlap_and_match): New function, factored out
from value_available_contents_bits_eq.
(value_available_contents_bits_eq): Rename to ...
(value_contents_bits_eq): ... this.  Check both unavailable
contents and optimized out contents.
(value_available_contents_eq): Rename to ...
(value_contents_eq): ... this.
(allocate_value_lazy): Remove reference to the old optimized_out
boolean.
(allocate_optimized_out_value): Use
mark_value_bytes_optimized_out.
(require_not_optimized_out): Adjust to check whether the
optimized_out vec is empty.
(ranges_copy_adjusted): New function, factored out from
value_contents_copy_raw.
(value_contents_copy_raw): Also copy the optimized out ranges.
Assert the destination ranges aren't optimized out.
(value_contents_copy): Update comment, remove call to
require_not_optimized_out.
(value_contents_equal): Adjust to check whether the optimized_out
vec is empty.
(set_value_optimized_out, value_optimized_out_const): Delete.
(mark_value_bytes_optimized_out, mark_value_bits_optimized_out):
New functions.
(value_entirely_optimized_out, value_bits_valid): Delete.
(value_copy): Take a VEC copy of the 'optimized_out' field.
(value_primitive_field): Remove special handling of optimized out.
(value_fetch_lazy): Assert that lazy values have no unavailable
regions.  Use value_bits_any_optimized_out.  Remove some special
handling for optimized out values.
* value.h: Add intro comment about <optimized out> and
<unavailable>.
(struct lval_funcs): Remove check_validity and check_any_valid
fields.
(set_value_optimized_out, value_optimized_out_const): Remove.
(mark_value_bytes_optimized_out, mark_value_bits_optimized_out):
New declarations.
(value_bits_any_optimized_out): New declaration.
(value_bits_valid): Delete declaration.
(value_available_contents_eq): Rename to ...
(value_contents_eq): ... this, and extend comments.

gdb/testsuite/
PR symtab/14604
PR symtab/14605
* gdb.dwarf2/dw2-op-out-param.exp: Remove kfail branches and use
gdb_test.

10 years agoFix -fsanitize=address on unreadable inferior strings
Jan Kratochvil [Tue, 19 Aug 2014 20:55:10 +0000 (22:55 +0200)]
Fix -fsanitize=address on unreadable inferior strings

echo 'void f(char *s){}main(){f((char *)1);}'|gcc -g -x c -;../gdb ./a.out -ex 'b f' -ex r
====ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000aaccf at pc 0x96eea7 bp 0x7fff75bdbc90 sp 0x7fff75bdbc80
READ of size 1 at 0x6020000aaccf thread T0
    #0 0x96eea6 in extract_unsigned_integer .../gdb/findvar.c:108
    #1 0x9df02b in val_print_string .../gdb/valprint.c:2513
[...]
0x6020000aaccf is located 1 bytes to the left of 8-byte region [0x6020000aacd0,0x6020000aacd8)
allocated by thread T0 here:
    #0 0x7f45fad26b97 in malloc (/lib64/libasan.so.1+0x57b97)
    #1 0xdb3409 in xmalloc common/common-utils.c:45
    #2 0x9d8cf9 in read_string .../gdb/valprint.c:1845
    #3 0x9defca in val_print_string .../gdb/valprint.c:2502
[..]
====ABORTING

gdb/
2014-08-18  Jan Kratochvil  <jan.kratochvil@redhat.com>

Fix -fsanitize=address on unreadable inferior strings.
* valprint.c (val_print_string): Fix access before BUFFER.

10 years agoRemove stale comment
Pedro Alves [Tue, 19 Aug 2014 17:18:31 +0000 (18:18 +0100)]
Remove stale comment

This comment is no longer true for watchpoints since commit 31e77af2
(PR breakpoints/7143 - Watchpoint does not trigger when first set).

gdb/testsuite/

* gdb.base/watchpoint-hw-hit-once.c (main): Update comment.

10 years agoConvert target_structs vector to VEC
Simon Marchi [Fri, 15 Aug 2014 20:34:34 +0000 (16:34 -0400)]
Convert target_structs vector to VEC

I thought that this home made implementation of a vector could be
replaced by the more standard VEC. The implementation seems to predate
the introduction of vec.h, so that would explain why it exists.

Ran make check before and after, no new failures.

gdb/ChangeLog:

2014-08-19  Simon Marchi  <simon.marchi@ericsson.com>

* target.c (target_struct_size): Remove.
(target_struct_allocsize): Remove.
(DEFAULT_ALLOCSIZE): Remove.
(target_ops_p): New typedef.
(DEF_VEC_P (target_ops_p)): New vector type.
(target_structs): Change type to VEC (target_ops_p).
(add_target_with_completer): Replace "push" code by VEC_safe_push.
(find_default_run_target): Rewrite for loop following changes to
target_structs.

10 years agoThis patch adds support for FreeBSD ARM in gas.
Nick Clifton [Tue, 19 Aug 2014 14:51:43 +0000 (15:51 +0100)]
This patch adds support for FreeBSD ARM in gas.
Before FreeBSD-8 there was/is no arm support from the OS side.
FreeBSD-9.x added ARM support but only for the OABI.
From FreeBSD-10 upwards there is EABI support.

    * Makefile.am: Add FreeBSD ARM support.
    * Mafefile.in: Regenerate.
    * configure.tgt: Add FreeBSD ARM support.
    * config/te-armfbsdeabi.h: New file.
    * config/te-armfbsdvfp.h: Likewise.

10 years agoThis patch set mainly aims at improving the S/390 disassembler's
Andreas Arnez [Tue, 19 Aug 2014 14:42:13 +0000 (15:42 +0100)]
This patch set mainly aims at improving the S/390 disassembler's
readability and also fixes some minor issues.

  S/390: Split disassembler routine into smaller functions
  S/390: Fix disassembler's treatment of signed/unsigned operands
  S/390: Fix off-by-one error in disassembler initialization
  S/390: Simplify opcode search loop in disassembler
  S/390: Drop function pointer dereferences in disassembler
  S/390: Various minor simplifications in disassembler

10 years agovalue_from_pointer: remove call to resolve_dynamic_type
Joel Brobecker [Tue, 19 Aug 2014 12:55:22 +0000 (14:55 +0200)]
value_from_pointer: remove call to resolve_dynamic_type

The given type is expected to always be a TYPE_CODE_PTR, for which
resolve_dynamic_type does nothing.  So this patch removes this call.

gdb/ChangeLog:

        * value.c (value_from_pointer): Remove use of resolve_dynamic_type.
        Adjust code accordingly.  Adjust function description comment.

10 years agoSet breakpoint on the right line
Yao Qi [Tue, 12 Aug 2014 01:14:08 +0000 (09:14 +0800)]
Set breakpoint on the right line

In gdb.base/watchpoint-hw-hit-once.exp, test scans source and set
breakpoint on the line having "break-at-exit",

  gdb_breakpoint [gdb_get_line_number "break-at-exit"]

However, in watchpoint-hw-hit-once.c, there are two lines having
this key word:

  dummy = 1; /* Stub to catch break-at-exit after WATCHEE has been hit.  */
  dummy = 2; /* break-at-exit */

so the test sets breakpoint on the first one, while I think it is
expected to set breakpoint on the second one, as far as I can tell
from the comments in watchpoint-hw-hit-once.c:

  /* Stub lines are present as no breakpoints/watchpoint gets hit if current PC
     already stays on the line PC while entering "step"/"continue".  */

This patch is to change the source matching pattern so that test
can correctly set breakpoint on the right line.  This patch fixes
a fail we found on arm-none-eabi target.

(gdb) PASS: gdb.base/watchpoint-hw-hit-once.exp: continue
continue^M
Continuing.^M
^M
*** EXIT code 0^M
[Inferior 1 (Remote target) exited normally]^M
(gdb) FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue to break-at-exit (the program exited)

Run it again on x86_64-linux, no result changes.

gdb/testsuite:

2014-08-19  Yao Qi  <yao@codesourcery.com>

* gdb.base/watchpoint-hw-hit-once.exp: Set breakpoint on the
right line.

10 years agoSupport _Complex in hard-VFP abi
Yao Qi [Mon, 11 Aug 2014 11:02:58 +0000 (19:02 +0800)]
Support _Complex in hard-VFP abi

Hi,
When we pass "-mfloat-abi=hard" flag in the GDB testing, we see the
following fails,

FAIL: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
FAIL: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
FAIL: gdb.base/callfuncs.exp: p t_double_complex_values(dc1, dc2)
FAIL: gdb.base/callfuncs.exp: p t_double_complex_many_args(dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4, dc1, dc2, dc3, dc4)
FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_values(ldc1, ldc2)
FAIL: gdb.base/callfuncs.exp: p t_long_double_complex_many_args(ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4, ldc1, ldc2, ldc3, ldc4)
FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns float _Complex
FAIL: gdb.base/callfuncs.exp: call inferior func with struct - returns double _Complex

The hard-VFP ABI was supported by GDB overal, done by this patch
https://sourceware.org/ml/gdb-patches/2009-07/msg00686.html but
"vectors and complex types are not currently supported", mentioned in
the patch.  As a result, these tests fail.

This patch is to support _Complex types in hard-VFP abi.  As specified
in "7.1.1, Procedure Call Standard for the ARM Arch", the layout of
_Complex types is a struct, which is identical to the layout on amd64,
so I copy Mark's comments to amd64 support.

Regression tested on arm-none-eabi target.  OK to apply?

gdb:

2014-08-19  Yao Qi  <yao@codesourcery.com>

* arm-tdep.c (arm_vfp_cprc_sub_candidate): Handle _Complex
types.

10 years agoFix --diable-shared --enable-plugins build breakage
Alan Modra [Tue, 19 Aug 2014 12:29:56 +0000 (21:59 +0930)]
Fix --diable-shared --enable-plugins build breakage

Directories that don't use libtool need to add -ldl (on most *nix
hosts) to provide dlopen for libbfd.

config/
* plugins.m4 (AC_PLUGINS): If plugins are enabled, add -ldl to
LIBS via AC_SEARCH_LIBS.
gdb/
* acinclude.m4 (GDB_AC_CHECK_BFD): Don't add -ldl.
* config.in: Regenerate.
sim/ppc/
* configure.ac: Invoke AC_PLUGINS.
* config.in: Regenerate.

and regen lots of configure files.

10 years agoReplace static variables in the MSP430 simulator with fields in the cpu state structure.
Nick Clifton [Tue, 19 Aug 2014 10:34:14 +0000 (11:34 +0100)]
Replace static variables in the MSP430 simulator with fields in the cpu state structure.

* msp430-sim.c: Move static hardware multiply support variables
from here...
* msp430-sim.h (msp430_cpu_state): ... into here ...
* msp430-sim.c (get_op, put_op): ... and update references to use
the msp430_cpu_state structure.

10 years agoIntroduce common-debug.h
Gary Benson [Wed, 30 Jul 2014 15:21:55 +0000 (16:21 +0100)]
Introduce common-debug.h

This introduces common-debug.h.  This holds the functions debug_printf
and debug_vprintf, two functions that the common code can use to print
debugging messages.  Clients of the common code are expected to
implement debug_vprintf; a debug_vprintf function is written from
scratch for GDB, and gdbserver's existing debug_printf is repurposed
as debug_vprintf.

common/agent.c is changed to use debug_vprintf rather than
defining the macro DEBUG_AGENT depending on GDBSERVER.

nat/i386-dregs.c is changed to use the externally-implemented
debug_printf, rather than defining it itself.

gdb/ChangeLog:

* common/common-debug.h: New file.
* common/common-debug.c: Likewise.
* debug.c: Likewise.
* Makefile.in (SFILES): Add common/common-debug.c.
(HFILES_NO_SRCDIR): Add common/common-debug.h.
(COMMON_OBS): Add common-debug.o and debug.o.
(common-debug.o): New rule.
* common/common-defs.h: Include common-debug.h.
* common/agent.c (debug_agent_printf): New function.
(DEBUG_AGENT): Redefine.
* nat/i386-dregs.c (debug_printf): Undefine.

gdb/gdbserver/ChangeLog:

* Makefile.in (SFILES): Add common/common-debug.c.
(OBS): Add common-debug.o.
(common-debug.o): New rule.
* debug.h (debug_printf): Don't declare.
* debug.c (debug_printf): Renamed and rewritten as...
(debug_vprintf): New function.

10 years agoMove print-utils.h to common-defs.h
Gary Benson [Wed, 30 Jul 2014 15:14:21 +0000 (16:14 +0100)]
Move print-utils.h to common-defs.h

This commit moves the inclusion of print-utils.h to common-defs.h
and removes all other inclusions.

gdb/ChangeLog:

* common/common-defs.h: Include print-utils.h.
* utils.h: Do not include print-utils.h.

gdb/gdbserver/ChangeLog:

* utils.h: Do not include print-utils.h.

10 years agoIntroduce common-types.h
Gary Benson [Wed, 30 Jul 2014 14:31:10 +0000 (15:31 +0100)]
Introduce common-types.h

This introduces common-types.h.  This file defines various standard
types used by gdb and gdbserver.

Currently these types are conditionally defined based on GDBSERVER.
The long term goal is to remove all such tests; however, this is
difficult as currently gdb uses definitions from BFD.  In the meantime
this is still a step in the right direction.

gdb/ChangeLog:

* common/common-types.h: New file.
* Makefile.in (HFILES_NO_SRCDIR): Add common/common-types.h.
* common/common-defs.h: Include common-types.h.
* defs.h (gdb_byte, CORE_ADDR, CORE_ADDR_MAX, LONGEST)
(ULONGEST): Remove.

gdb/gdbserver/ChangeLog:

* server.h: Add static assertion.
(gdb_byte, CORE_ADDR, LONGEST, ULONGEST): Remove.

10 years agoIntroduce common/errors.h
Gary Benson [Wed, 30 Jul 2014 13:09:07 +0000 (14:09 +0100)]
Introduce common/errors.h

This introduces common/errors.h.  This holds some error- and warning-
related declarations that can be used by the code in common, nat and
target.  Some of the declared functions must be provided by the client
as documented by the header file comments.

gdb/ChangeLog:

* common/errors.h: New file.
* common/errors.c: Likewise.
* Makefile.in (SFILES): Add common/errors.c.
(HFILES_NO_SRCDIR): Add common/errors.h.
(COMMON_OBS): Add errors.o.
(errors.o): New rule.
* common/common-defs.h: Include errors.h.
* utils.h (perror_with_name, error, verror, warning, vwarning):
Don't declare.
* common/common-utils.h: (malloc_failure, internal_error):
Likewise.

gdb/gdbserver/ChangeLog:

* Makefile.in (SFILES): Add common/errors.c.
(OBS): Add errors.o.
(IPA_OBS): Add errors-ipa.o.
(errors.o): New rule.
(errors-ipa.o): Likewise.
* utils.h (perror_with_name, error, warning): Don't declare.
* utils.c (warning): Renamed and rewritten as...
(vwarning): New function.
(error): Renamed and rewritten as...
(verror): New function.
(internal_error): Renamed and rewritten as...
(internal_verror): New function.

10 years agoEnsure internal_vproblem always prints the message
Gary Benson [Tue, 5 Aug 2014 09:20:05 +0000 (10:20 +0100)]
Ensure internal_vproblem always prints the message

While working on internal_vproblem I noticed that the error/warning
message is suppressed if problem->should_quit is internal_problem_yes
or internal_problem_no.  This behaviour seems wrong.  This commit
modifies internal_vproblem to emit the message regardless of the
user's settings.

gdb/
2014-08-19  Gary Benson  <gbenson@redhat.com>

* utils.c (internal_vproblem): Always print the message.

10 years agodaily update
Alan Modra [Tue, 19 Aug 2014 00:01:12 +0000 (09:31 +0930)]
daily update

10 years agoboards/fission.exp: Explicitly pass -ggnu-pubnames for clang.
David Blaikie [Mon, 18 Aug 2014 19:07:49 +0000 (12:07 -0700)]
boards/fission.exp: Explicitly pass -ggnu-pubnames for clang.

* boards/fission.exp: Explicitly pass -ggnu-pubnames for clang.

10 years agogdb.dwarf2/data-loc.exp: Remove second DW_AT_upper bound in array range.
Joel Brobecker [Mon, 18 Aug 2014 17:41:57 +0000 (19:41 +0200)]
gdb.dwarf2/data-loc.exp: Remove second DW_AT_upper bound in array range.

The testcase generates an assembly file where a second DW_AT_upper_bound
attribute gets generated in the array range.  This was definitely
unintentional, and I only noticed this after pushing the testcase,
when dumping one more time the DWARF data using readelf.

This patch fixes it.

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/data-loc.exp: Remove second DW_AT_upper bound
        attribute in array range.

10 years agoada-typeprint.c (print_range): Initialize lo,hi for gcc -Wall.
Doug Evans [Mon, 18 Aug 2014 17:04:18 +0000 (10:04 -0700)]
ada-typeprint.c (print_range): Initialize lo,hi for gcc -Wall.

* ada-typeprint.c (print_range): Initialize lo,hi for gcc -Wall.

10 years agoThis fixes the processing of BFD_RELOC_RL78_DIFF fixups when the size is less
Nick Clifton [Mon, 18 Aug 2014 16:34:03 +0000 (17:34 +0100)]
This fixes the processing of BFD_RELOC_RL78_DIFF fixups when the size is less
than 4.  This affects DWARF debug info generation in particular.

* config/tc-rl78.c (md_apply_fix): Correct handling of small sized
RELOC_RL78_DIFF fixups.

10 years agoDW_AT_data_location and DW_OP_push_object_address testcase.
Joel Brobecker [Wed, 13 Aug 2014 23:45:59 +0000 (16:45 -0700)]
DW_AT_data_location and DW_OP_push_object_address testcase.

This testcase allows us to test the proper processing of both
DW_AT_data_location and DW_OP_push_object_address using a hand-crafted
testcase duplicating how we expect the Ada compiler to represent
unbounded arrays.

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/data-loc.c, gdb.dwarf2/data-loc.exp: New files.

10 years ago[Ada] "ptype" of array where bound value uses DW_OP_push_object_address
Joel Brobecker [Thu, 14 Aug 2014 22:57:00 +0000 (15:57 -0700)]
[Ada] "ptype" of array where bound value uses DW_OP_push_object_address

Consider an Ada array type where the DWARF debugging info for
at least one of the bounds involves an expression containing
a DW_OP_push_object_address operation. Trying to "ptype" that
type currently yields:

    (gdb) ptype foo.array_type
    type = array (Location address is not set.

This patch improves ada-typeprint by adding handling of the situation
where an array range type has dynamic bounds.  In that case, it prints
the array bounds using Ada's typical syntax for unbounded ranges "<>":

    (gdb) ptype array_type
    type = array (<>) of integer

gdb/ChangeLog:

        * ada-typeprint.c (type_is_full_subrange_of_target_type):
        Return 0 if TYPE is dynamic.
        (print_range): Add handling of dynamic ranges.

10 years agoAdd support for DW_AT_data_location.
Joel Brobecker [Mon, 11 Aug 2014 23:37:10 +0000 (16:37 -0700)]
Add support for DW_AT_data_location.

gdb/ChangeLog:

        * gdbtypes.h (struct main_type): Add field "data_location".
        (TYPE_DATA_LOCATION, TYPE_DATA_LOCATION_BATON)
        (TYPE_DATA_LOCATION_ADDR, TYPE_DATA_LOCATION_KIND): New macros.
        * gdbtypes.c (is_dynamic_type): Return 1 if the type has
        a dynamic data location.
        (resolve_dynamic_type): Add DW_AT_data_location handling.
        (copy_recursive, copy_type): Copy the data_location information
        when present.
        * dwarf2read.c (set_die_type): Add DW_AT_data_location handling.
        * value.c (value_from_contents_and_address): Add
        DW_AT_data_location handling.

10 years agoAdd support for DW_OP_push_object_address.
Joel Brobecker [Mon, 11 Aug 2014 23:36:04 +0000 (16:36 -0700)]
Add support for DW_OP_push_object_address.

gdb/ChangeLog:

        * dwarf2expr.h (struct dwarf_expr_context_funcs): Uncomment
        field "get_object_address".
        * dwarf2expr.c (execute_stack_op): Add handling for
        DW_OP_push_object_address.
        * dwarf2loc.h (dwarf2_evaluate_property): Add "address" field.
        * dwarf2loc.c (struct dwarf_expr_baton): Add field "obj_address".
        (dwarf_expr_push_dwarf_reg_entry_value): Set baton_local.obj_address.
        (dwarf_expr_get_obj_addr): New function.
        (dwarf_expr_ctx_funcs): Add get_object_address field.
        (dwarf2_evaluate_loc_desc_full): Set baton.obj_address.
        (dwarf2_locexpr_baton_eval): Add parameter "addr".  Use it.
        (dwarf2_evaluate_property): Add parameter "address".  Use it.
        (needs_get_obj_addr): New function.
        (needs_frame_ctx_funcs): Add get_object_address field.
        (dwarf2_compile_expr_to_ax): Add DW_OP_push_object_address handling.
        * gdbtypes.c (resolve_dynamic_range): Add "addr" field.  Use it.
        (resolve_dynamic_array): Likewise.

10 years agoada_evaluate_subexp<OP_VAR_VALUE>: Avoid static fixing when possible.
Joel Brobecker [Thu, 14 Aug 2014 21:00:02 +0000 (14:00 -0700)]
ada_evaluate_subexp<OP_VAR_VALUE>: Avoid static fixing when possible.

Now that the OP_VAR_VALUE section of this function has been reorganized
a bit, we can fall-back on standard evaluation when static fixing is
not required. This patch does that, but being exclusive about when
static fixing has to be used, rather than doing it all the time when
noside is EVAL_AVOID_SIDE_EFFECTS.

This will pave the way for later when we want to evaluate entities
that have no GNAT encodings related to them but dynamic properties
instead. In that case, we expect the standard evaluation to resolve
those dynamic properties for us, even in no-side-effect mode.

gdb/ChangeLog:

        * ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>:
        When noside is EVAL_AVOID_SIDE_EFFECTS, only return a statically
        fixed value for records and unions for which some GNAT encodings
        are present.

10 years agoavoid "if ... else if ... else" logic in ada-lang.c::ada_evaluate_subexp
Joel Brobecker [Thu, 14 Aug 2014 20:36:24 +0000 (13:36 -0700)]
avoid "if ... else if ... else" logic in ada-lang.c::ada_evaluate_subexp

The OP_VAR_VALUE branch in ada_evaluate_subexp is written with
multiple "if ... else if ... else if ... else ..." block. But
in practice, these blocks  all either goto out of that block of
code, or return.

This patch rewrites this code slightly by replacing the "else if"-s
by simple "if"s. This should better reflect the ideal processing
where we try to do a standard eval whenever possible, and only
do something else when the standard eval does not work. On a pratical
level, this patch makes it easier to fall through to the default
processing when none of the special situations are detected, thus
making it easier to add more handlers of those special situations;
or to remove them as they no longer become necessary!

gdb/ChangeLog:

        * ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>: Slight code
        rewrite to avoid "else if" and "else" constructs.  Should be
        a no-op in practice.

10 years agoFix indentation level in ada-lang.c::ada_evaluate_subexp.
Joel Brobecker [Thu, 14 Aug 2014 20:26:34 +0000 (13:26 -0700)]
Fix indentation level in ada-lang.c::ada_evaluate_subexp.

I just happen to notice that a lexical block was missing one
indentation level.

gdb/ChangeLog:

        * ada-lang.c (ada_evaluate_subexp) <OP_VAR_VALUE>: Fix identation
        of lexical block.

10 years agoLTO plugin with older gcc
Alan Modra [Mon, 18 Aug 2014 09:08:24 +0000 (18:38 +0930)]
LTO plugin with older gcc

* ld-plugin/lto.exp: Use gcc -print-file-name to find lto plugin.

10 years agoPowerPC fix for ifunc broken by d1eca1e4
Alan Modra [Mon, 18 Aug 2014 08:44:56 +0000 (18:14 +0930)]
PowerPC fix for ifunc broken by d1eca1e4

This probably could be fixed by making changes in relocate_section for
ifunc, but it's simpler to disable the optimisation for ifunc.

* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't attempt to
use dynrelocs for ifunc.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Similarly.

10 years agoPR 17287, DT_NEEDED of unneeded libraries affects --as-needed
Alan Modra [Mon, 18 Aug 2014 05:13:03 +0000 (14:43 +0930)]
PR 17287, DT_NEEDED of unneeded libraries affects --as-needed

PR 17287
bfd/
* elflink.c (on_needed_list): Only consider libraries that have
been loaded.
ld/
* ld.texinfo (--as-needed): Clarify that references from libraries
must be from needed libraries.
ld/testsuite/
* ld-plugin/needed3.c: New file.
* ld-elf/shared.exp: Add needed3 test.

10 years agoReturn error status from bfd_elf_discard_info.
Alan Modra [Mon, 18 Aug 2014 00:03:35 +0000 (09:33 +0930)]
Return error status from bfd_elf_discard_info.

bfd/
* elflink.c (bfd_elf_discard_info): Return int error status.
* stabs.c (_bfd_discard_section_stabs): Comment typo fix.
* bfd-in.h (bfd_elf_discard_info): Updata prototype.
* bfd-in2.h: Regenerate.
ld/
* emultempl/aarch64elf.em (gld${EMULATION_NAME}_after_allocation):
Handle error status from bfd_elf_discard_info.
* emultempl/armelf.em: Likewise.
* emultempl/elf32.em: Likewise.
* emultempl/hppaelf.em: Likewise.
* emultempl/metagelf.em: Likewise.
* emultempl/nios2elf.em: Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/tic6xdsbt.em: Likewise.
* emultempl/vms.em: Likewise.

10 years agoCast result of TC_PARSE_CONS_EXPRESSION
Alan Modra [Mon, 18 Aug 2014 00:01:01 +0000 (09:31 +0930)]
Cast result of TC_PARSE_CONS_EXPRESSION

* read.c (parse_mri_cons): Warning fix.

10 years agodaily update
Alan Modra [Mon, 18 Aug 2014 00:00:46 +0000 (09:30 +0930)]
daily update

10 years agodaily update
Alan Modra [Sun, 17 Aug 2014 00:00:44 +0000 (09:30 +0930)]
daily update

10 years agoAdd new argument NOSIDE to find_overload_match.
Siva Chandra [Wed, 9 Jul 2014 17:25:48 +0000 (10:25 -0700)]
Add new argument NOSIDE to find_overload_match.

This is a fix for PR c++/17132.
If this new argument is set to EVAL_AVOID_SIDE_EFFECTS, then the object's
memory will not be read while picking the best overload match.

gdb/

* eval.c: Update all calls to find_overload_match.
* valarith.c: Likewise.
(value_user_defined_cpp_op, value_user_defined_op): New
argument NOSIDE.  Update all callers.
* valops.c (find_overload_match): New argument NOSIDE.
* value.h (find_overload_match): Update signature.

gdb/testsuite

* gdb.cp/pr17132.cc: New file.
* gdb.cp/pr17132.exp: New file.

10 years agoFix xmethod Python so that it works with Python3.
Siva Chandra [Tue, 5 Aug 2014 01:07:43 +0000 (18:07 -0700)]
Fix xmethod Python so that it works with Python3.

gdb/

* python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
'items' methods instead of 'iteritems' method on dictionaries.

gdb/testsuite/

* gdb.python/py-xmethods.py (A_getarrayind)
(E_method_char_worker.__call__, E_method_int_worker.__call__):
Use 'print' with function call syntax.
(E_method_matcher.match): Fix tab vs space indentation mixup.

10 years agodaily update
Alan Modra [Sat, 16 Aug 2014 00:01:03 +0000 (09:31 +0930)]
daily update

10 years ago(dwarf_decode_lines_1): Move definition of adj_opcode closer to use.
Doug Evans [Fri, 15 Aug 2014 23:22:51 +0000 (16:22 -0700)]
(dwarf_decode_lines_1): Move definition of adj_opcode closer to use.

* dwarf2read.c (dwarf_decode_lines_1): Move definition of adj_opcode
closer to use.

10 years agodwarf2read.c (dwarf_decode_lines_1): Add comment.
Doug Evans [Fri, 15 Aug 2014 23:05:47 +0000 (16:05 -0700)]
dwarf2read.c (dwarf_decode_lines_1): Add comment.

* dwarf2read.c (dwarf_decode_lines_1): Add comment.

10 years agoRegenerate sim configury.
Roland McGrath [Fri, 15 Aug 2014 22:46:40 +0000 (15:46 -0700)]
Regenerate sim configury.

10 years ago(dwarf_decode_lines_1): Delete local "column", unused.
Doug Evans [Fri, 15 Aug 2014 22:38:56 +0000 (15:38 -0700)]
(dwarf_decode_lines_1): Delete local "column", unused.

* dwarf2read.c (dwarf_decode_lines_1): Delete local "column", unused.

10 years ago(dwarf_decode_lines_1): Delete local basic_block, unused.
Doug Evans [Fri, 15 Aug 2014 22:24:35 +0000 (15:24 -0700)]
(dwarf_decode_lines_1): Delete local basic_block, unused.

* dwarf2read.c (dwarf_decode_lines_1): Delete local basic_block,
unused.

10 years agoAvoid compiler warnings about incomplete parameter types.
Eli Zaretskii [Fri, 15 Aug 2014 14:04:27 +0000 (17:04 +0300)]
Avoid compiler warnings about incomplete parameter types.

gdb/ChangeLog:

* dcache.h: Include target.h, to avoid compile time warnings.

10 years agoAdd "frame.h" #include in gdbarch.h.
Joel Brobecker [Wed, 13 Aug 2014 18:15:00 +0000 (11:15 -0700)]
Add "frame.h" #include in gdbarch.h.

This include is needed because gdbarch_dummy_id needs the full
definition of struct frame_id.

gdb/ChangeLog:

        * gdbarch.sh: #include "frame.h" in gdbarch.h.  Delete "struct
        frame_info" partial declaration.
        * gdbarch.h: Regenerate.

Tested on x86_64-linux by rebuilding GDB.

10 years agoSkip tfile.exp if unable to generate trace file
Yao Qi [Thu, 14 Aug 2014 07:24:58 +0000 (15:24 +0800)]
Skip tfile.exp if unable to generate trace file

I added proc generate_tracefile in this patch
https://sourceware.org/ml/gdb-patches/2014-03/msg00591.html but
tfile.exp isn't skipped as changelog entry said:

* gdb.trace/tfile.exp: Skip the test if generate_tracefile
return 0.

it is a mistake I made at the last minute.  Patch below fixed it.

gdb/testsuite:

2014-08-15  Yao Qi  <yao@codesourcery.com>

* gdb.trace/tfile.exp: Return -1 if generate_tracefile returns
false.

10 years agodaily update
Alan Modra [Fri, 15 Aug 2014 00:01:09 +0000 (09:31 +0930)]
daily update

10 years agoSet print symbol off in some tests
Yao Qi [Thu, 14 Aug 2014 02:51:10 +0000 (10:51 +0800)]
Set print symbol off in some tests

GDB in default prints the symbol associated on an address, and tests
assume that there is no symbol on address zero.  However, on bare
metal target, address may be mapped to zero and there may be a
symbol.  Then, some tests fail as below:

print const_cast<void *> (0)^M
$8 = (void *) 0x0 <_ftext>^M
(gdb) FAIL: gdb.cp/casts.exp: const_cast of 0

p acp->c1^M
$9 = (A *) 0x0 <_ftext>^M
(gdb) FAIL: gdb.cp/class2.exp: p acp->c1

This patch is to set print symbol off in these tests, like what
I did previously https://sourceware.org/ml/gdb-patches/2014-07/msg00257.html

gdb/testsuite:

2014-08-15  Yao Qi  <yao@codesourcery.com>

* gdb.cp/casts.exp: Set print symbol off.
* gdb.cp/class2.exp: Likewise.
* gdb.cp/overload.exp: Likewise.
* gdb.cp/templates.exp: Likewise.

10 years agoRemove pst from dwarf_decode_lines_1
Yao Qi [Mon, 4 Aug 2014 06:26:25 +0000 (14:26 +0800)]
Remove pst from dwarf_decode_lines_1

Hi,
Parameter 'pst' of function dwarf_decode_lines_1 isn't used except
to compute decode_for_pst_p, which has been got in the caller
dwarf_decode_lines.  I wonder it would be good if we just pass
'decode_for_pst_p'.

gdb:

2014-08-15  Yao Qi  <yao@codesourcery.com>

* dwarf2read.c (dwarf_decode_lines_1): Remove parameter 'pst'.
Add parameter 'decode_for_pst_p'.  Callers update.

10 years agoopcodes: blackfin: convert ad-hoc ints to bfd_boolean
Mike Frysinger [Sat, 26 Jul 2014 18:27:28 +0000 (23:57 +0530)]
opcodes: blackfin: convert ad-hoc ints to bfd_boolean

These various int fields are being used as booleans, so change to the
existing bfd_boolean style.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoopcodes: blackfin: simplify decode_CC2stat_0 logic
Mike Frysinger [Wed, 4 Dec 2013 00:17:03 +0000 (19:17 -0500)]
opcodes: blackfin: simplify decode_CC2stat_0 logic

These multiple if statements can be condensed down into a single if
statement and an array of strings.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoopcodes: blackfin: avoid duplicate memory reads
Mike Frysinger [Sat, 5 Feb 2011 21:47:02 +0000 (16:47 -0500)]
opcodes: blackfin: avoid duplicate memory reads

Rather than reading the same memory twice, pass the value back up.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoFix for objdump segfault on broken PE executable
Alan Modra [Thu, 14 Aug 2014 06:23:19 +0000 (15:53 +0930)]
Fix for objdump segfault on broken PE executable

* peXXigen.c (pe_print_reloc): Protect against access past end
of .reloc section.

10 years agoLinker part of PR16563 fix
Alan Modra [Thu, 14 Aug 2014 04:19:31 +0000 (13:49 +0930)]
Linker part of PR16563 fix

Presents .eh_frame input sections to the optimisation machinery in
elf-eh-frame.c in the order they are given by the linker script.

PR 16563
bfd/
* elflink.c (bfd_elf_discard_info): Process .eh_frame and .stab
in the order they are mapped to output sections.
ld/
* ldlang.c (map_head_is_link_order): Rename from
stripped_excluded_sections.
(lang_clear_os_map): New function, extracted from..
(strip_excluded_output_sections): ..here.
* ldlang.h (lang_clear_os_map): Declare.
* ldwrite.c (ldwrite): Call lang_clear_os_map.
* emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_after_allocation):
Likewise.

10 years agoconfigury changes to make ld plugin support controlled by --enable-plugins
Alan Modra [Thu, 14 Aug 2014 04:16:09 +0000 (13:46 +0930)]
configury changes to make ld plugin support controlled by --enable-plugins

This also makes --enable-plugins default to on for hosts that can
support plugins, so we have consistent lto toolchain support.  The
ACX_LARGEFILE moves aren't strictly necessary, but are harmless and
will be necessary if plugin support is extended to more hosts via
libtool's dlopen support.  I started down that path then decided it
was more work than I was interested in doing.  (ACX_LARGEFILE invokes
AC_PLUGINS.)

config/
* plugins.m4: Test for dlfcn.h or windows.h here to set default
for --enable-plugins.  Report error if someone tries to enable
plugins on a host we don't support.
bfd/
* configure.ac: Delete redundant plugin related checks.
* configure: Regenerate.
binutils/
* configure.ac: Move ACX_LARGEFILE after LT_INIT.
* config.in: Regenerate.
* configure: Regenerate.
gas/
* configure.ac: Move ACX_LARGEFILE after LT_INIT.
* config.in: Regenerate.
* configure: Regenerate.
gprof/
* configure.ac: Move ACX_LARGEFILE after LT_INIT.
* configure: Regenerate.
* gconfig.in: Regenerate.
ld/
* configure.ac: Move AC_PROG_CC and other macros earlier.  Delete
plugin checks now done in config/plugins.m4.
* config.in: Regenerate.
* configure: Regenerate.

10 years agoSimplify is_ir_dummy_bfd test
Alan Modra [Thu, 14 Aug 2014 01:13:41 +0000 (10:43 +0930)]
Simplify is_ir_dummy_bfd test

is_ir_dummy_bfd started life before BFD_PLUGIN was invented.

* plugin.c (is_ir_dummy_bfd): Test BFD_PLUGIN flag rather than
flags.claimed.

10 years agoAdd option -no-pie.
Sriraman Tallam [Thu, 14 Aug 2014 01:40:19 +0000 (18:40 -0700)]
Add option -no-pie.

10 years agodaily update
Alan Modra [Thu, 14 Aug 2014 00:01:08 +0000 (09:31 +0930)]
daily update

10 years agobfd: or1k: avoid emitting R_OR1K_INSN_REL_26 in shared libs
Stefan Kristiansson [Wed, 13 Aug 2014 20:17:50 +0000 (23:17 +0300)]
bfd: or1k: avoid emitting R_OR1K_INSN_REL_26 in shared libs

This fixes a bug where R_OR1K_INSN_REL_26 relocations would be emitted
into shared libraries even when the referenced symbol was hidden
or the symbol was contained in the same .so which had been
linked with -Bsymbolic.

bfd/
* elf32-or1k.c (or1k_elf_relocate_section, or1k_elf_check_relocs,
allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL, SYMBOL_CALLS_LOCAL
and SYMBOLIC_BIND.

10 years agoopcodes: blackfin: push down global state
Mike Frysinger [Sat, 5 Feb 2011 21:37:39 +0000 (16:37 -0500)]
opcodes: blackfin: push down global state

The variables used to track insn state should be pushed down into the
private_data structure to avoid pollution across calls.

This also happens to fix the output when hitting comments/invalid insns
which needs to tweak a gas test.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoopcodes: blackfin: do not force align the PC
Mike Frysinger [Sat, 26 Jul 2014 18:14:37 +0000 (23:44 +0530)]
opcodes: blackfin: do not force align the PC

If the user gives us an unaligned PC, then dump an error as such.
Otherwise if you try to disassemble at an odd address, the output
will look weird (it'll read one byte earlier).

This can be seen in one of the gas tests where data is in the middle
of .text, so move the data to .data like it should be in the first place.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoopcodes: blackfin: handle memory read errors
Mike Frysinger [Sat, 5 Feb 2011 06:42:19 +0000 (01:42 -0500)]
opcodes: blackfin: handle memory read errors

The current code ignores memory read errors which isn't a great idea.
So add a helper function which takes care of error checking and update
the code to use that.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
10 years agoThis is necessary for adding __cxa_atexit support for Cygwin in GCC without
Yaakov Selkowitz [Wed, 13 Aug 2014 10:43:28 +0000 (11:43 +0100)]
This is necessary for adding __cxa_atexit support for Cygwin in GCC without
exporting __dso_handle from every DLL.

* pe-dll.c (autofilter_entry_type autofilter_symbollist_i386): Add
__dso_handle.

10 years agoFix build/17104
Yao Qi [Tue, 1 Jul 2014 00:53:41 +0000 (08:53 +0800)]
Fix build/17104

This patch is to fix the build error when GDB is configured as:

  CFLAGS=-Wall ./configure --with-babeltrace; make

This patch adds one line of code in configure test to use local
variable 'pos'.

Note that we append -Werror to CFLAGS to catch the warning related to
assignment to scope.  See more in this thread
https://sourceware.org/ml/gdb-patches/2014-08/msg00045.html

2014-08-13  Yao Qi  <yao@codesourcery.com>

PR build/17104
* configure.ac: Use local variable 'pos'.
* configure: Regenerated.

10 years agodaily update
Alan Modra [Wed, 13 Aug 2014 00:01:13 +0000 (09:31 +0930)]
daily update

10 years agoRemove type directive
H.J. Lu [Tue, 12 Aug 2014 22:53:48 +0000 (15:53 -0700)]
Remove type directive

* gas/i386/omit-lock.s: Remove type directive.

10 years agoFix non-ELF build breakage
Alan Modra [Tue, 12 Aug 2014 22:02:21 +0000 (07:32 +0930)]
Fix non-ELF build breakage

* ldlang.c (open_input_bfds): Don't use bfd_elf_get_dyn_lib_class.

10 years agoTighten test for ld plugin support
Alan Modra [Tue, 12 Aug 2014 10:57:19 +0000 (20:27 +0930)]
Tighten test for ld plugin support

To not match spu --plugin option.

* lib/ld-lib.exp (check_plugin_api_available): Match "-plugin PLUGIN".

10 years agoFix build breakage when ld plugins disabled
Alan Modra [Tue, 12 Aug 2014 09:59:33 +0000 (19:29 +0930)]
Fix build breakage when ld plugins disabled

* ldlang.h (struct lang_input_statement_flags): Don't make "reload"
field conditional on ENABLE_PLUGINS.
* ldlang.c (open_input_bfds): Expand plugin_should_reload.
* plugin.h (plugin_should_reload): Delete.
* plugin.c (plugin_should_reload): Delete.

10 years agoChange ld "notice" interface for better handling of indirect symbols
Alan Modra [Tue, 12 Aug 2014 01:13:33 +0000 (10:43 +0930)]
Change ld "notice" interface for better handling of indirect symbols

The main aim of this change was to have non_ir_ref set correctly on
new indirect symbols.  I could have added a "copy" param to the "notice"
function, so that indirect symbols could be created in plugin_notice,
but it seemed cleaner to create indirect syms earlier and pass them
rather than "string" to "notice".

include/
* bfdlink.h (struct bfd_link_callbacks <notice>): Remove "string"
param, add "inh".
bfd/
* coff-aux.c (coff_m68k_aux_link_add_one_symbol): Only call "notice"
here when not calling the generic add_symbol function.  Formatting.
Correct handling of indirect symbols.  Update notice call.
* elflink.c (_bfd_elf_notice_as_needed): Update notice call.
* linker.c (_bfd_generic_link_add_one_symbol): Create indirect
symbols early.  Update notice call.  Add comments regarding weak
symbols vs. indirect.
ld/
* ldmain.c (notice): Update args.
* plugin.c (plugin_notice): Likewise.  Follow warning sym link.
Handle new indirect symbol.

10 years agomissing changelog
Alan Modra [Tue, 12 Aug 2014 01:38:26 +0000 (11:08 +0930)]
missing changelog

10 years agoFix non-plugin warning symbol handling
Alan Modra [Tue, 12 Aug 2014 01:01:41 +0000 (10:31 +0930)]
Fix non-plugin warning symbol handling

PR ld/16746
include/
* bfdlink.h (struct bfd_link_info): Add lto_plugin_active.
bfd/
* linker.c (_bfd_generic_link_add_one_symbol <WARN>): Handle
!lto_plugin_active.
ld/
* plugin.c (plugin_load_plugins): Set link_info.lto_plugin_active.

10 years agoDelete "Loaded symbols for ..." message, it is redundant.
Doug Evans [Tue, 12 Aug 2014 00:21:07 +0000 (17:21 -0700)]
Delete "Loaded symbols for ..." message, it is redundant.

* solib.c (solib_read_symbols): Delete "Loaded symbols for ..."
message, it is redundant with "Reading symbols from ..." message.

testsuite/
* gdb.base/print-symbol-loading.exp (test_load_core): Update.
(test_load_shlib): Update.

10 years agodaily update
Alan Modra [Tue, 12 Aug 2014 00:00:56 +0000 (09:30 +0930)]
daily update

10 years agolinux-nat.c (linux_nat_thread_address_space): Delete dead code.
Doug Evans [Mon, 11 Aug 2014 04:09:29 +0000 (21:09 -0700)]
linux-nat.c (linux_nat_thread_address_space): Delete dead code.

10 years agodaily update
Alan Modra [Mon, 11 Aug 2014 00:00:44 +0000 (09:30 +0930)]
daily update

10 years agodaily update
Alan Modra [Sun, 10 Aug 2014 00:01:02 +0000 (09:31 +0930)]
daily update

10 years agoFix PR remote/9053: remove dead code on query packet size
Yao Qi [Fri, 8 Aug 2014 05:45:23 +0000 (13:45 +0800)]
Fix PR remote/9053: remove dead code on query packet size

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.

10 years agoRemove duplicated code on checking address 0x0 is accessiable
Yao Qi [Thu, 7 Aug 2014 08:09:38 +0000 (16:09 +0800)]
Remove duplicated code on checking address 0x0 is accessiable

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.

10 years agoMake test messages in gdb.mi/mi-var-display.exp unique
Yao Qi [Thu, 7 Aug 2014 07:01:22 +0000 (15:01 +0800)]
Make test messages in gdb.mi/mi-var-display.exp unique

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.

10 years ago * ldlang.h (struct lang_input_statement_flags): Add pushed
Ulrich Drepper [Sat, 9 Aug 2014 00:26:41 +0000 (20:26 -0400)]
    * ldlang.h (struct lang_input_statement_flags): Add pushed
        member.
        * ldlex.h (enum option_values): Add OPTION_PUSH_STATE and
        OPTION_POP_STATE.
        * lexsup.c (ld_options): Add entries for --push-state and
        --pop-state.
        (parse_args): Handle OPTION_PUSH_STATE and OPTION_POP_STATE.
        * ld.texinfo: Document --push-state and --pop-state.

10 years agodaily update
Alan Modra [Sat, 9 Aug 2014 00:00:59 +0000 (09:30 +0930)]
daily update

10 years agogold aarch64 patch to enable linking hello_wolrd.
Jing Yu [Fri, 8 Aug 2014 21:18:35 +0000 (14:18 -0700)]
gold aarch64 patch to enable linking hello_wolrd.

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.