From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26820 invoked by alias); 8 Jan 2017 17:14:41 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 26710 invoked by uid 9674); 8 Jan 2017 17:14:35 -0000 Date: Sun, 08 Jan 2017 17:14:00 -0000 Message-ID: <20170108171435.26680.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] users/jkratoch/dwarf5readelf: Merge remote-tracking branch 'gdb/master' into readelf X-Git-Refname: refs/heads/users/jkratoch/dwarf5readelf X-Git-Reftype: branch X-Git-Oldrev: 5bb1a81b08217370fdee052830f23e7cd39756a0 X-Git-Newrev: 8955e1475d36a84b6f8e47c86bfb1ddd4a00346d X-SW-Source: 2017-q1/txt/msg00015.txt.bz2 List-Id: The branch, users/jkratoch/dwarf5readelf has been updated via 8955e1475d36a84b6f8e47c86bfb1ddd4a00346d (commit) via f5e6296e2194add209b546ad49039753a10242f5 (commit) via 2efa21564b81bd6d8a7ee23c2868a4bd6749b11c (commit) via 431e5de3f224e94fb0d061edb3a56d8e3c3f4403 (commit) from 5bb1a81b08217370fdee052830f23e7cd39756a0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8955e1475d36a84b6f8e47c86bfb1ddd4a00346d Merge: 5bb1a81 f5e6296 Author: Jan Kratochvil Date: Sun Jan 8 18:13:28 2017 +0100 Merge remote-tracking branch 'gdb/master' into readelf commit f5e6296e2194add209b546ad49039753a10242f5 Author: Iain Buclaw Date: Sun Jan 8 11:17:54 2017 +0100 [D] Fix crash when debug expression enabled. 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. commit 2efa21564b81bd6d8a7ee23c2868a4bd6749b11c Author: GDB Administrator Date: Sun Jan 8 00:00:24 2017 +0000 Automatic date update in version.in commit 431e5de3f224e94fb0d061edb3a56d8e3c3f4403 Author: Andreas Krebbel Date: Thu Jan 5 19:53:14 2017 +0100 S/390: Issue error for overflowing relocs. 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 * elf64-s390.c (elf_s390_relocate_section): Issue error for non-PLT relocs of shared libary symbol in exectuable. ----------------------------------------------------------------------- Summary of changes: bfd/elf64-s390.c | 12 +++++++++ bfd/version.h | 2 +- gdb/ChangeLog | 4 +++ gdb/d-exp.y | 9 ++---- gdb/testsuite/ChangeLog | 4 +++ gdb/testsuite/gdb.dlang/debug-expr.exp | 40 ++++++++++++++++++++++++++++++++ 6 files changed, 64 insertions(+), 7 deletions(-) create mode 100644 gdb/testsuite/gdb.dlang/debug-expr.exp First 500 lines of diff: diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index bbfcd2e..edc9b86 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -2701,6 +2701,18 @@ elf_s390_relocate_section (bfd *output_bfd, case R_390_PC32: case R_390_PC32DBL: case R_390_PC64: + if (h != NULL + && bfd_link_pie (info) + && !h->def_regular) + { + _bfd_error_handler (_("%B: `%s' non-PLT reloc for symbol defined " + "in shared library and accessed " + "from executable " + "(rebuild file with -fPIC ?)"), + input_bfd, h->root.root.string); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } /* The target of these relocs are instruction operands residing in read-only sections. We cannot emit a runtime reloc for it. */ diff --git a/bfd/version.h b/bfd/version.h index f2b6007..589838e 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20170107 +#define BFD_VERSION_DATE 20170108 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fec9974..7f16a5f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2017-01-08 Iain Buclaw + + * d-exp.y (CastExpression): Emit UNOP_CAST_TYPE. + 2017-01-06 Yao Qi * x86-linux-nat.h: Include gdb_proc_service.h. diff --git a/gdb/d-exp.y b/gdb/d-exp.y index 077e645..b526575 100644 --- a/gdb/d-exp.y +++ b/gdb/d-exp.y @@ -321,15 +321,12 @@ UnaryExpression: CastExpression: CAST_KEYWORD '(' TypeExp ')' UnaryExpression - { write_exp_elt_opcode (pstate, UNOP_CAST); - write_exp_elt_type (pstate, $3); - write_exp_elt_opcode (pstate, UNOP_CAST); } + { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } /* C style cast is illegal D, but is still recognised in the grammar, so we keep this around for convenience. */ | '(' TypeExp ')' UnaryExpression - { write_exp_elt_opcode (pstate, UNOP_CAST); - write_exp_elt_type (pstate, $2); - write_exp_elt_opcode (pstate, UNOP_CAST); } + { write_exp_elt_opcode (pstate, UNOP_CAST_TYPE); } + ; PowExpression: diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d12072b..8a03282 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2017-01-08 Iain Buclaw + + * gdb.dlang/debug-expr.exp: New file. + 2016-12-23 Luis Machado Fix test names for the following files: diff --git a/gdb/testsuite/gdb.dlang/debug-expr.exp b/gdb/testsuite/gdb.dlang/debug-expr.exp new file mode 100644 index 0000000..d62dcc6 --- /dev/null +++ b/gdb/testsuite/gdb.dlang/debug-expr.exp @@ -0,0 +1,40 @@ +# Copyright 2017 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test "set debug expr 1" on d expressions. + +if { [skip_d_tests] } { return -1 } + +gdb_start +gdb_test_no_output "set language d" +gdb_test_no_output "set debug expression 1" + +# Test whether the expression debug machinery accepts the expression. + +proc test_debug_expr { cmd output } { + global gdb_prompt + + gdb_test_multiple $cmd "" { + -re ".*Invalid expression.*\r\n$gdb_prompt $" { + fail $cmd + } + -re ".*\[\r\n\]$output\r\n$gdb_prompt $" { + pass $cmd + } + } +} + +# This caused gdb to segfault. +test_debug_expr "print *(int*)(0)" "Cannot access memory at address 0x0" hooks/post-receive -- Repository for Project Archer.