While casting works as expected with expression debugging turned off,
this seems to be an indication that the D language parser function is
doing something wrong in the building of the expression.
Without changing the grammar, using UNOP_CAST_TYPE is the right thing to
do here, as the TypeExp handler has already wrapped the type around a
pair of OP_TYPE opcodes.
gdb/ChangeLog:
* d-exp.y (CastExpression): Emit UNOP_CAST_TYPE.
gdb/testsuite/ChangeLog:
* gdb.dlang/debug-expr.exp: New file.
Building PIE executable from non-PIC code results in broken binaries.
With this patch the problem is detected at link-time.
bfd/ChangeLog:
2017-01-07 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* elf64-s390.c (elf_s390_relocate_section): Issue error for
non-PLT relocs of shared libary symbol in exectuable.
Plus some paranoia in symval_for_branch. We shouldn't get there with
dynamic symbols, but if we ever did the static_cast to Powerpc_relobj
would be wrong.
* powerpc.cc: Use shorter equivalent elfcpp typedef for
Reltype and reloc_size throughout.
(Target_powerpc::symval_for_branch): Exclude dynamic symbols.
(Target_powerpc::Scan::local): Use local var r_sym.
(Target_powerpc::Scan::global: Likewise.
(Target_powerpc::Relocate::relocate): Delete shadowing r_sym.
$ make check-headers CHECK_HEADERS="x86-linux-nat.h"
...
../../binutils-gdb/gdb/x86-linux-nat.h:29:8: error: 'ps_err_e' does not name a type
extern ps_err_e x86_linux_get_thread_area (pid_t pid, void *addr,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* x86-linux-nat.h: Include gdb_proc_service.h.
$ make check-headers CHECK_HEADERS="ser-base.h"
...
../../binutils-gdb/gdb/ser-base.h:33:8: error: 'serial_ttystate' does not name a type
extern serial_ttystate ser_base_get_tty_state (struct serial *scb);
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* ser-base.h: Include serial.h.
$ make check-headers CHECK_HEADERS="ppc-linux-tdep.h"
...
../../binutils-gdb/gdb/ppc-linux-tdep.h:34:24: error: 'PPC_NUM_REGS' was not declared in this scope
PPC_ORIG_R3_REGNUM = PPC_NUM_REGS,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* ppc-linux-tdep.h: Include ppc-tdep.h.
$ make check-headers CHECK_HEADERS="nat/amd64-linux-siginfo.h"
....
../../binutils-gdb/gdb/nat/amd64-linux-siginfo.h:52:39: error: 'siginfo_t' was not declared in this scope
int amd64_linux_siginfo_fixup_common (siginfo_t *native, gdb_byte *inf,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* nat/amd64-linux-siginfo.h: Include signal.h.
$ make check-headers CHECK_HEADERS="nat/aarch64-linux-hw-point.h"
...
../../binutils-gdb/gdb/nat/aarch64-linux-hw-point.h:169:37: error: use of enum 'target_hw_bp_type' without previous declaration
int aarch64_handle_breakpoint (enum target_hw_bp_type type, CORE_ADDR addr,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* nat/aarch64-linux-hw-point.h: Include break-common.h.
$ make check-headers CHECK_HEADERS="mi/mi-parse.h"
...
../../binutils-gdb/gdb/mi/mi-parse.h:77:6: error: use of enum 'print_values' without previous declaration
enum print_values mi_parse_print_values (const char *name);
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* mi/mi-parse.h: Include mi-cmds.h.
$ make check-headers CHECK_HEADERS="target.h inf-loop.h"
...
../../binutils-gdb/gdb/inf-loop.h:23:42: error: use of enum 'inferior_event_type' without previous declaration
extern void inferior_event_handler (enum inferior_event_type event_type,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* inf-loop.c: Don't include "target.h".
* inf-loop.h: Include it here.
$ make check-headers CHECK_HEADERS="dfp.h"
...
../../binutils-gdb/gdb/dfp.h:39:8: error: 'DOUBLEST' does not name a type
extern DOUBLEST decimal_to_doublest (const gdb_byte *from, int len,
^
../../binutils-gdb/gdb/dfp.h:41:33: error: use of enum 'exp_opcode' without previous declaration
extern void decimal_binop (enum exp_opcode,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* dfp.h: Include "dboulest.h" and "expression.h".
$ make check-headers CHECK_HEADERS="ax-gdb.h"
...
../../binutils-gdb/gdb/ax-gdb.h:104:8: error: 'agent_expr_up' does not name a type
extern agent_expr_up gen_trace_for_expr (CORE_ADDR, struct expression *,
^
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* ax-gdb.h: Include "ax.h"
Commit e379037 (Move gdb_ptrace.h to nat/), so we should update
file name in HFILES_NO_SRCDIR too. Otherwise, 'make tags' complains,
$ make tags
make: *** No rule to make target `gdb_ptrace.h', needed by `TAGS'. Stop.
gdb:
2017-01-06 Yao Qi <yao.qi@linaro.org>
* Makefile.in (HFILES_NO_SRCDIR): Replace gdb_ptrace.h
with nat/gdb_ptrace.h.
This patch splits the expression before the && operator instead of
after it.
gdb:
2017-01-05 Yao Qi <yao.qi@linaro.org>
* mips-fbsd-tdep.c (mips_fbsd_sigframe_init): Move && to
new line.
(mips64_fbsd_sigframe_init): Likewise.
PR 20946
* frv-desc.c (lookup_mach_via_bfd_name): Return NULL if the name
could not be matched.
(frv_cgen_cpu_open): Allow for lookup_mach_via_bfd_name returning
NULL.
sim/aarch64/
* cpustate.c: Include math.h.
(aarch64_set_FP_float): Use signbit to check for signed zero.
(aarch64_set_FP_double): Likewise.
* simulator.c (do_vec_MOV_immediate, case 0x8): Add missing break.
(do_vec_mul): In all DO_VEC_WIDENING_MUL calls, make second and fourth
args same size as third arg.
(fmaxnm): Use isnan instead of fpclassify.
(fminnm, dmaxnm, dminnm): Likewise.
(do_vec_MLS): Reverse order of subtraction operands.
(dexSimpleFPCondSelect): Call aarch64_get_FP_double or
aarch64_get_FP_float to get source register contents.
(UINT_MIN, ULONG_MIN, FLOAT_UINT_MAX, FLOAT_UINT_MIN,
DOUBLE_UINT_MAX, DOUBLE_UINT_MIN, FLOAT_ULONG_MAX, FLOAT_ULONG_MIN,
DOUBLE_ULONG_MAX, DOUBLE_ULONG_MIN): New.
(do_fcvtzu): Use ULONG instead of LONG, and UINT instead of INT in
raise_exception calls.
sim/testsuite/sim/aarch64/
* fcsel.s: New.
* fcvtz.s: New.
* fminnm.s: New.
* mls.s: New.
* mul.s: New.
This has been tested for the n64 and o32 ABIs. Signal frame unwinders for
both ABIs are provided. FreeBSD/mips requires custom linkmap offsets since
it contains an additional l_off member in 'struct link_map' that other
FreeBSD platforms do not have. Support for collecting and supplying
general purpose and floating point register sets are provided. Common
routines for working with native format register sets are exported for
use by the native target.
gdb/ChangeLog:
* Makefile.in (ALL_TARGET_OBS): Add mips-fbsd-tdep.o.
(ALLDEPFILES): Add mips-fbsd-tdep.c.
* NEWS: Mention new FreeBSD/mips target.
* configure.tgt: Add mips*-*-freebsd*.
* mips-fbsd-tdep.c: New file.
* mips-fbsd-tdep.h: New file.
gdb/doc/ChangeLog:
* gdb.texinfo (Contributors): Add SRI International and University
of Cambridge for FreeBSD/mips.
This is a modified form of gcc's contrib/update-copyright.py.
* update-copyright.py: New file.
* add-log.el: Update copyright year range.
* texi2pod.pl: Likewise.
The weaker release consistency support of ARMv8.3-A is allowed as an optional
extension for ARMv8.2-A, so separate command line option and feature flag is
added: -march=armv8.2-a+rcpc turns LDAPR, LDAPRB, LDAPRH instructions on.
opcodes/
* aarch64-tbl.h (RCPC, RCPC_INSN): Define.
(aarch64_opcode_table): Use RCPC_INSN.
include/
* opcode/aarch64.h (AARCH64_FEATURE_RCPC): Define.
(AARCH64_ARCH_V8_3): Update.
gas/
* config/tc-aarch64.c (aarch64_features): Add rcpc.
* doc/c-aarch64.texi (AArch64 Extensions): Document rcpc.
* testsuite/gas/aarch64/ldst-exclusive-armv8_3.d: Rename to ...
* testsuite/gas/aarch64/ldst-rcpc.d: This.
* testsuite/gas/aarch64/ldst-exclusive-armv8_3.s: Rename to ...
* testsuite/gas/aarch64/ldst-rcpc.s: This.
* testsuite/gas/aarch64/ldst-rcpc-armv8_2.d: New test.
In ee40d8d (Move computed value's frame id to piece_closure), I only
updated read_pieced_value to use frame_id from piece_closure, but
forgot to update write_pieced_value, so it causes the following
internal error on arm-linux,
set variable l = 4^M
gdb/git/gdb/value.c:1579: internal-error: frame_id* deprecated_value_next_frame_id_hack(value*): Assertion `value->lval == lval_register' failed.^M
A problem internal to GDB has been detected,^M
further debugging may prove unreliable.^M
Quit this debugging session? (y or n) FAIL: gdb.base/store.exp: var longest l; setting l to 4 (GDB internal error)
This patch fixes the internal error.
gdb:
2017-01-04 Yao Qi <yao.qi@linaro.org>
* dwarf2loc.c (write_pieced_value): Don't use VALUE_FRAME_ID (to),
use c->frame_id when the piece location is DWARF_VALUE_REGISTER.
Without this, ld has been seen to crash in libc when freeing tsec_free:
*** Error in `/usr/bin/ld': double free or corruption (!prev): 0x0000000120ceb6a0 ***
_bfd_elf_link_read_relocs will always return the cached value if
present, even if keep_memory is false, therefore setting tsec_free to
NULL only when keep_memory is true is not sufficient.
* elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
if relocs are cached.
gas * config/tc-riscv.c (riscv_set_arch): Whitelist the "q" ISA
extension.
(riscv_after_parse_args): Set FLOAT_ABI_QUAD when the Q ISA is
enabled and no other ABI is specified.
include * opcode/riscv-opc.h: Add support for the "q" ISA extension.
opcodes * riscv-opc.c (riscv-opcodes): Add support for the "q" ISA
extension.
* riscv-opcodes/all-opcodes: Likewise.
The PRU GAS port I originally submitted does not build on 32bit hosts.
This patch fixes it by aligning md_number_to_chars's definition with
the global declaration in tc.h.
Here is the original bug report I got:
https://github.com/rcn-ee/repos/pull/23#issuecomment-269915175
* config/tc-pru.c (md_number_to_chars): Fix parameter to be
valueT, as declared in tc.h.
(md_apply_fix): Fix to work on 32-bit hosts.
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
I noticed that PRU LD is broken when BFD is configured
with --enable-targets=all. This patch fixes it, and takes the
opportunity to clean the epruelf.c dependencies.
* Makefile.am (ALL_EMULATION_SOURCES): Add epruelf.c.
(epruelf.c): Remove unneeded dependencies.
* Makefile.in: Regenerate
Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
Needed for cross-builds without --sysroot, where USE_LIBPATH isn't
set. See elf32.em after_open. Perhap ld ought to look at -rpath in
this case?
* testsuite/ld-elf/shared.exp: Add -rpath-link and -no-as-needed
to various tests.
* testsuite/ld-elfweak/elfweak.exp: Likewise.
* testsuite/ld-elfvers/vers.exp (vers19): Fix -rpath-link option.
Removing the [isnative] check requires that we test for a C compiler.
* testsuite/ld-elf/elf.exp: Check that $CC exists before C tests.
* testsuite/ld-pie/pie.exp: Likewise.
* testsuite/ld-plugin/lto.exp: Likewise.