public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-05-24 7:20 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-05-24 7:20 UTC (permalink / raw)
To: archer-commits
The branch, users/jkratoch/indexcxx has been updated
via 480030250901adfbd6e8080e87143fc9959f372e (commit)
via 60fd657792228e3eb59e87c26fcdeccbfe94d224 (commit)
via f7241d4f27cd59357a75bf802e9ffa7d95036deb (commit)
via d489d81d0934c4fda8c8aa68fbec1b1315cf8df0 (commit)
via 6e92fed5946111a76064feb8a2a184d224deae1a (commit)
via 590b87ffa386ea403e2cb61525c6aafef77097a2 (commit)
via 6e3f3473e2136e77d6346d5bca894c38e5389116 (commit)
via 8e7f04f17c60069143078dafd3d3eb8cd15f10fb (commit)
via 575dcd27f8be6ecd3f89539a8210a8d3f0a271b1 (commit)
via 903b2a564d78b8e47f2460a2a452f442e6e5e979 (commit)
via 176efed15cabb932a7e9fb2c5e6ef0753e8351a0 (commit)
via 04ef582ace91cad765d056cc95624478e0421144 (commit)
via 25f94347373b1b6f4bfc79eeb38e79d383195779 (commit)
via 9a6465c207ed4e34be92741316d78fc00f0836e4 (commit)
via 3c0367d0e2df21717b7345a1ccadef39183457ab (commit)
via e11b3cdc565c5e86e43ef79d25fc5e8b88162ec1 (commit)
via 0f068fb5e5b65038c3ded3cfd2a4b8805196956c (commit)
via ca49a96781f723d43ec49471cbbb50aa511d063e (commit)
via e6cf65f283b8be44014fad0ad0aebfbcc71fceac (commit)
from 3c31c689159535ec278253668e1f59155f18da2b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 480030250901adfbd6e8080e87143fc9959f372e
Merge: 3c31c68 60fd657
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 24 09:18:58 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 60fd657792228e3eb59e87c26fcdeccbfe94d224
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 24 00:00:45 2017 +0000
Automatic date update in version.in
commit f7241d4f27cd59357a75bf802e9ffa7d95036deb
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 18 10:49:44 2017 -0700
Use mips_regnum instead of constants for FreeBSD/mips register operations.
gdb/ChangeLog:
* mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove.
(MIPS_FP0_REGNUM): Remove.
(MIPS_FSR_REGNUM): Remove.
(mips_fbsd_supply_fpregs): Use mips_regnum.
(mips_fbsd_supply_gregs): Likewise.
(mips_fbsd_collect_fpregs): Likewise.
(mips_fbsd_collect_gregs): Likewise.
commit d489d81d0934c4fda8c8aa68fbec1b1315cf8df0
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 18 10:49:44 2017 -0700
Cleanups to FreeBSD/mips native register operations.
Compare against the "raw" PC register number instead of the cooked
register number when determining if a register was handled by
PT_GETREGS. Previously the register fetch/store operations only tried
PT_GETREGS to fetch any individual register. The result was that
fetching or storing an individual register not covered by PT_GETREGS
(such as floating point registers) did not work.
While here, remove an early exit to simplify the code flow from the
PT_GETREGS / PT_SETREGS case, and add a getfpregs_supplies similar to
getregs_supplies to describe the registers supplied by PT_GETFPREGS
and PT_SETFPREGS.
gdb/ChangeLog:
* mips-fbsd-nat.c (getregs_supplies): Fix upper bound comparison.
(getpfpregs_supplies): New function.
(mips_fbsd_fetch_inferior_registers): Remove early exit and use
getfpregs_supplies.
(mips_fbsd_store_inferior_registers): Likewise.
commit 6e92fed5946111a76064feb8a2a184d224deae1a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 23 06:49:35 2017 -0700
x86: Update notrackbad tests for non-ELF targets
* gas/testsuite/gas/i386/notrackbad.l: Updated for non-ELF
targets.
* gas/testsuite/gas/i386/x86-64-notrackbad.l: Likewise.
commit 590b87ffa386ea403e2cb61525c6aafef77097a2
Author: Alan Modra <amodra@gmail.com>
Date: Mon May 22 21:31:34 2017 +0930
PR21503, Gold doesn't create linker stub symbols on ppc64
PR 21503
* options.h: Add --emit-stub-syms option.
* powerpc.cc (object_id): New.
(Powerpc_relobj): Add uniq_ and accessor. Sort variables for
better packing.
(Powerpc_dynobj): Sort variables for better packing.
(Target_powerpc::define_local): New function.
(Target_powerpc::group_sections): Pass stub table size to
Stub_table constructor.
(Target_powerpc::do_relax): Define stub and glink symbols.
(Stub_table): Add uniq_ variable, and id param to constructor.
(Stub_table::Plt_stub_ent): Add indx_ variable.
(Stub_table::Branch_stub_entries): Move typedef earlier.
(Stub_table::branch_stub_size): Replace "to" parameter with a
Branch_stub_entries iterator.
(Stub_table::add_long_branch_entry): Adjust to suit.
(Stub_table::add_plt_call_entry): Set indx_.
(Stub_table::define_stub_syms): New function.
commit 6e3f3473e2136e77d6346d5bca894c38e5389116
Author: claziss <claziss@synopsys.com>
Date: Tue May 23 12:18:11 2017 +0200
[ARC] Reformat error messages.
gas/
2017-05-23 Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (md_apply_fix): Use as_bad_where.
(assemble_insn): Use as_bad.
commit 8e7f04f17c60069143078dafd3d3eb8cd15f10fb
Author: claziss <claziss@synopsys.com>
Date: Tue May 23 12:18:10 2017 +0200
[ARC] Fix fall through warnings.
bfd/
2017-05-23 Dilian Palauzov <git-dpa@aegee.org>
* elf32-arc.c (arc_elf_merge_attributes): Add fall through
comments.
commit 575dcd27f8be6ecd3f89539a8210a8d3f0a271b1
Author: claziss <claziss@synopsys.com>
Date: Tue May 23 12:18:10 2017 +0200
[ARC] Update MAX_INSN_FLGS.
It is required to parse instructions like ldb.x.a.di.
include/
2017-05-23 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (MAX_INSN_FLGS): Update to 4.
commit 903b2a564d78b8e47f2460a2a452f442e6e5e979
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 23 00:00:37 2017 +0000
Automatic date update in version.in
commit 176efed15cabb932a7e9fb2c5e6ef0753e8351a0
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Mon May 15 10:11:57 2017 +0100
gdb: Document vMustReplyEmpty remote packet
Add mention of the vMustReplyEmpty to the remote serial protocol
documentation. It is important that this packet be treated in the same
fashion as any other unknown 'v' packet, and I have tried to reflect
this in the description of the packet, it is not simply the case that we
_must_ return the empty string for this packet.
As the intention is that we should treat this packet as unknown then an
argument could be made that we should not document it, however, for
someone implementing a gdbserver from scratch, seeing an undocumented
packet arrive from gdb is confusing, and will probably cause them to
have to read the code in order to check how this packet should be
handled, which is not ideal.
gdb/doc/ChangeLog:
* gdb.texinfo (Packets): Document vMustReplyEmpty packet.
commit 04ef582ace91cad765d056cc95624478e0421144
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 22 11:02:46 2017 -0700
x86: Add NOTRACK prefix support
For register indirect branches, NOTRACK prefix (0x3e), which is also
the DS segment register prefix, can be used to ignore the CET indirect
branch track.
gas/
* config/tc-i386.c (REX_PREFIX): Changed to 7.
(NOTRACK_PREFIX): New.
(MAX_PREFIXES): Changed to 8.
(_i386_insn): Add notrack_prefix.
(PREFIX_GROUP): Add PREFIX_DS.
(add_prefix): Return PREFIX_DS for DS_PREFIX_OPCODE.
(md_assemble): Check if NOTRACK prefix is supported.
(parse_insn): Set notrack_prefix and issue an error for
other prefixes after NOTRACK prefix.
* testsuite/gas/i386/i386.exp: Run tests for NOTRACK prefix.
* testsuite/gas/i386/notrack-intel.d: New file.
* testsuite/gas/i386/notrack.d: Likewise.
* testsuite/gas/i386/notrack.s: Likewise.
* testsuite/gas/i386/notrackbad.l: Likewise.
* testsuite/gas/i386/notrackbad.s: Likewise.
* testsuite/gas/i386/x86-64-notrack-intel.d: Likewise.
* testsuite/gas/i386/x86-64-notrack.d: Likewise.
* testsuite/gas/i386/x86-64-notrack.s: Likewise.
* testsuite/gas/i386/x86-64-notrackbad.l: Likewise.
* testsuite/gas/i386/x86-64-notrackbad.s: Likewise.
include/
* include/opcode/i386.h (NOTRACK_PREFIX_OPCODE): New.
opcodes/
* i386-dis.c (NOTRACK_Fixup): New.
(NOTRACK): Likewise.
(NOTRACK_PREFIX): Likewise.
(last_active_prefix): Likewise.
(reg_table): Use NOTRACK on indirect call and jmp.
(ckprefix): Set last_active_prefix.
(prefix_name): Return "notrack" for NOTRACK_PREFIX.
* i386-gen.c (opcode_modifiers): Add NoTrackPrefixOk.
* i386-opc.h (NoTrackPrefixOk): New.
(i386_opcode_modifier): Add notrackprefixok.
* i386-opc.tbl: Add NoTrackPrefixOk to indirect call and jmp.
Add notrack.
* i386-tbl.h: Regenerated.
commit 25f94347373b1b6f4bfc79eeb38e79d383195779
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 22 07:41:16 2017 -0700
x86-64: Use dynobj instead of htab->elf.dynobj
* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use
dynobj instead of htab->elf.dynobj.
commit 9a6465c207ed4e34be92741316d78fc00f0836e4
Author: Jiong Wang <jiong.wang@arm.com>
Date: Mon May 22 09:50:29 2017 +0100
[AArch64, ld] Support ILP32 triplet aarch64*-linux-gnu_ilp32
This patch allows AArch64 LD defaulting to ILP32 if it is configured with
aarch64*-linux-gnu_ilp32.
ld/
* configure.tgt: Set "targ_emul" to "aarch64linux32b" for
aarch64_be-*-linux-gnu_ilp32. Set "targ_emul" to "aarch64linux32" for
aarch64-*-linux-gnu_ilp32.
commit 3c0367d0e2df21717b7345a1ccadef39183457ab
Author: Jiong Wang <jiong.wang@arm.com>
Date: Mon May 22 09:50:19 2017 +0100
[AArch64, gas] Support ILP32 triplet aarch64*-linux-gnu_ilp32
This patch allows AArch64 GAS defaulting to ILP32 if it is configured with
aarch64*-linux-gnu_ilp32.
"md_after_parse_args" is implemented to update ABI into ILP32 if DEFAULT_ARCH is
"aarch64:32".
gas/
* configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64".
Recognize the new triplet name aarch64*-linux-gnu_ilp32.
* configure.ac: Output DEFAULT_ARCH macro for AArch64.
* configure: Regenerate.
* config/tc-aarch64.h (aarch64_after_parse_args): New declaration.
(md_after_parse_args): New define.
* config/tc-aarch64.c (aarch64_abi_type): New enumeration
AARCH64_ABI_NONE.
(DEFAULT_ARCH): New define.
(aarch64_abi): Set default value to AARCH64_ABI_NONE.
(aarch64_after_parse_args): New function.
commit e11b3cdc565c5e86e43ef79d25fc5e8b88162ec1
Author: Pedro Alves <palves@redhat.com>
Date: Mon May 22 11:58:19 2017 +0100
gdb: Add John Baldwin as FreeBSD Maintainer
gdb/ChangeLog:
2017-05-22 Pedro Alves <palves@redhat.com>
* MAINTAINERS (Host/Native): Add John Baldwin as FreeBSD
maintainer.
commit 0f068fb5e5b65038c3ded3cfd2a4b8805196956c
Author: Alan Hayward <alan.hayward@arm.com>
Date: Mon May 22 09:23:22 2017 +0100
Add PPC_MAX_REGISTER_SIZE
gdb/
* ppc-linux-nat.c (fetch_register): Use PPC_MAX_REGISTER_SIZE.
(store_register): Likewise.
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Likewise.
(get_decimal_float_return_value): Likewise.
(do_ppc_sysv_return_value): Likewise.
(ppc64_sysv_abi_push_integer): Likewise.
(ppc64_sysv_abi_push_freg): Likewise.
(ppc64_sysv_abi_return_value_base): Likewise.
(ppc64_sysv_abi_return_value): Likewise.
* rs6000-aix-tdep.c (rs6000_push_dummy_call): Likewise.
* rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call): Likewise.
* rs6000-nat.c: Likewise.
* rs6000-tdep.c (rs6000_register_to_value): Likewise.
(rs6000_value_to_register): Likewise.
* ppc-tdep.h (PPC_MAX_REGISTER_SIZE): Add.
commit ca49a96781f723d43ec49471cbbb50aa511d063e
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon May 22 00:00:35 2017 +0000
Automatic date update in version.in
commit e6cf65f283b8be44014fad0ad0aebfbcc71fceac
Author: Tom Tromey <tom@tromey.com>
Date: Sun May 21 17:00:10 2017 -0600
Print Rust unsized array types a bit more nicely
It's a bit difficult to create an unsized array type in Rust, but if
you do, right now ptype will show something like "[u8; ]". It really
should print "[u8]", though, which is what this patch implements.
This is part of PR 21466.
Built and regtested on x86-64 Fedora 25. I'm checking this in.
ChangeLog
2017-05-21 Tom Tromey <tom@tromey.com>
PR rust/21466:
* rust-lang.c (rust_print_type) <TYPE_CODE_ARRAY>: Print unsized
arrays as "[T]", not "[T; ]".
testsuite/ChangeLog
2017-05-21 Tom Tromey <tom@tromey.com>
PR rust/21466:
* gdb.rust/unsized.exp: New file.
* gdb.rust/unsized.rs: New file.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 10 +
bfd/elf32-arc.c | 4 +
bfd/elf64-x86-64.c | 3 +-
bfd/version.h | 2 +-
gas/ChangeLog | 48 +
gas/config/tc-aarch64.c | 30 +-
gas/config/tc-aarch64.h | 3 +
gas/config/tc-arc.c | 21 +-
gas/config/tc-i386.c | 75 +-
gas/configure | 2 +-
gas/configure.ac | 2 +-
gas/configure.tgt | 9 +-
gas/testsuite/gas/i386/i386.exp | 6 +
gas/testsuite/gas/i386/notrack-intel.d | 29 +
gas/testsuite/gas/i386/notrack.d | 28 +
gas/testsuite/gas/i386/notrack.s | 35 +
gas/testsuite/gas/i386/notrackbad.l | 53 +
gas/testsuite/gas/i386/notrackbad.s | 22 +
gas/testsuite/gas/i386/x86-64-notrack-intel.d | 30 +
gas/testsuite/gas/i386/x86-64-notrack.d | 29 +
gas/testsuite/gas/i386/x86-64-notrack.s | 40 +
gas/testsuite/gas/i386/x86-64-notrackbad.l | 53 +
gas/testsuite/gas/i386/x86-64-notrackbad.s | 22 +
gdb/ChangeLog | 47 +
gdb/MAINTAINERS | 1 +
gdb/doc/ChangeLog | 4 +
gdb/doc/gdb.texinfo | 13 +
gdb/mips-fbsd-nat.c | 24 +-
gdb/mips-fbsd-tdep.c | 29 +-
gdb/ppc-linux-nat.c | 4 +-
gdb/ppc-sysv-tdep.c | 34 +-
gdb/ppc-tdep.h | 3 +
gdb/rs6000-aix-tdep.c | 6 +-
gdb/rs6000-lynx178-tdep.c | 6 +-
gdb/rs6000-nat.c | 4 +-
gdb/rs6000-tdep.c | 4 +-
gdb/rust-lang.c | 5 +-
gdb/testsuite/ChangeLog | 6 +
gdb/testsuite/gdb.rust/unsized.exp | 35 +
gdb/testsuite/gdb.rust/unsized.rs | 33 +
gold/ChangeLog | 21 +
gold/options.h | 4 +
gold/powerpc.cc | 192 +-
include/ChangeLog | 8 +
include/opcode/arc.h | 2 +-
include/opcode/i386.h | 1 +
ld/ChangeLog | 6 +
ld/configure.tgt | 8 +
opcodes/ChangeLog | 16 +
opcodes/i386-dis.c | 44 +-
opcodes/i386-gen.c | 1 +
opcodes/i386-opc.h | 3 +
opcodes/i386-opc.tbl | 15 +-
opcodes/i386-tbl.h |21299 +++++++++++++------------
54 files changed, 11660 insertions(+), 10774 deletions(-)
create mode 100644 gas/testsuite/gas/i386/notrack-intel.d
create mode 100644 gas/testsuite/gas/i386/notrack.d
create mode 100644 gas/testsuite/gas/i386/notrack.s
create mode 100644 gas/testsuite/gas/i386/notrackbad.l
create mode 100644 gas/testsuite/gas/i386/notrackbad.s
create mode 100644 gas/testsuite/gas/i386/x86-64-notrack-intel.d
create mode 100644 gas/testsuite/gas/i386/x86-64-notrack.d
create mode 100644 gas/testsuite/gas/i386/x86-64-notrack.s
create mode 100644 gas/testsuite/gas/i386/x86-64-notrackbad.l
create mode 100644 gas/testsuite/gas/i386/x86-64-notrackbad.s
create mode 100644 gdb/testsuite/gdb.rust/unsized.exp
create mode 100644 gdb/testsuite/gdb.rust/unsized.rs
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 38462fe..4d15e1a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,13 @@
+2017-05-23 Dilian Palauzov <git-dpa@aegee.org>
+
+ * elf32-arc.c (arc_elf_merge_attributes): Add fall through
+ comments.
+
+2017-05-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Use
+ dynobj instead of htab->elf.dynobj.
+
2017-05-19 Maciej W. Rozycki <macro@imgtec.com>
* elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index 3e99cab..ef0d893 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -728,9 +728,11 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ARC_ABI_pic:
tagname = "PIC";
+ /* fall through */
case Tag_ARC_ABI_sda:
if (!tagname)
tagname = "SDA";
+ /* fall through */
case Tag_ARC_ABI_tls:
{
const char *tagval[] = { "Absent", "MWDT", "GNU" };
@@ -756,9 +758,11 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
case Tag_ARC_ABI_double_size:
tagname = "Double size";
+ /* fall through */
case Tag_ARC_ABI_enumsize:
if (!tagname)
tagname = "Enum size";
+ /* fall through */
case Tag_ARC_ABI_exceptions:
if (!tagname)
tagname = "ABI exceptions";
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 00cf70a..7beb78e 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -7245,8 +7245,7 @@ error_alignment:
/* MPX PLT is supported only for non-NaCl target in 64-bit
mode and is needed only for lazy binding. */
if (lazy_plt
- && info->bndplt
- && ABI_64_P (htab->elf.dynobj))
+ && info->bndplt && ABI_64_P (dynobj))
{
/* Create the second PLT for Intel MPX support. */
sec = bfd_make_section_anyway_with_flags (dynobj,
diff --git a/bfd/version.h b/bfd/version.h
index 10ba349..e8c13d4 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20170521
+#define BFD_VERSION_DATE 20170524
#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/gas/ChangeLog b/gas/ChangeLog
index 8fff0e4..2e7bb8d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,51 @@
+2017-05-23 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/testsuite/gas/i386/notrackbad.l: Updated for non-ELF
+ targets.
+ * gas/testsuite/gas/i386/x86-64-notrackbad.l: Likewise.
+
+2017-05-23 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/tc-arc.c (md_apply_fix): Use as_bad_where.
+ (assemble_insn): Use as_bad.
+
+2017-05-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (REX_PREFIX): Changed to 7.
+ (NOTRACK_PREFIX): New.
+ (MAX_PREFIXES): Changed to 8.
+ (_i386_insn): Add notrack_prefix.
+ (PREFIX_GROUP): Add PREFIX_DS.
+ (add_prefix): Return PREFIX_DS for DS_PREFIX_OPCODE.
+ (md_assemble): Check if NOTRACK prefix is supported.
+ (parse_insn): Set notrack_prefix and issue an error for
+ other prefixes after NOTRACK prefix.
+ * testsuite/gas/i386/i386.exp: Run tests for NOTRACK prefix.
+ * testsuite/gas/i386/notrack-intel.d: New file.
+ * testsuite/gas/i386/notrack.d: Likewise.
+ * testsuite/gas/i386/notrack.s: Likewise.
+ * testsuite/gas/i386/notrackbad.l: Likewise.
+ * testsuite/gas/i386/notrackbad.s: Likewise.
+ * testsuite/gas/i386/x86-64-notrack-intel.d: Likewise.
+ * testsuite/gas/i386/x86-64-notrack.d: Likewise.
+ * testsuite/gas/i386/x86-64-notrack.s: Likewise.
+ * testsuite/gas/i386/x86-64-notrackbad.l: Likewise.
+ * testsuite/gas/i386/x86-64-notrackbad.s: Likewise.
+
+2017-05-22 Jiong Wang <jiong.wang@arm.com>
+
+ * configure.tgt: Set "arch" to "aarch64" if ${cpu} equals "aarch64".
+ Recognize the new triplet name aarch64*-linux-gnu_ilp32.
+ * configure.ac: Output DEFAULT_ARCH macro for AArch64.
+ * configure: Regenerate.
+ * config/tc-aarch64.h (aarch64_after_parse_args): New declaration.
+ (md_after_parse_args): New define.
+ * config/tc-aarch64.c (aarch64_abi_type): New enumeration
+ AARCH64_ABI_NONE.
+ (DEFAULT_ARCH): New define.
+ (aarch64_abi): Set default value to AARCH64_ABI_NONE.
+ (aarch64_after_parse_args): New function.
+
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (sparc_arch_table): Entries for `sparc6',
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 72b98fd..cdb2903 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -62,12 +62,20 @@ static symbolS *GOT_symbol;
/* Which ABI to use. */
enum aarch64_abi_type
{
- AARCH64_ABI_LP64 = 0,
- AARCH64_ABI_ILP32 = 1
+ AARCH64_ABI_NONE = 0,
+ AARCH64_ABI_LP64 = 1,
+ AARCH64_ABI_ILP32 = 2
};
+#ifndef DEFAULT_ARCH
+#define DEFAULT_ARCH "aarch64"
+#endif
+
+/* DEFAULT_ARCH is initialized in gas/configure.tgt. */
+static const char *default_arch = DEFAULT_ARCH;
+
/* AArch64 ABI for the output file. */
-static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_LP64;
+static enum aarch64_abi_type aarch64_abi = AARCH64_ABI_NONE;
/* When non-zero, program to a 32-bit model, in which the C data types
int, long and all pointer types are 32-bit objects (ILP32); or to a
@@ -7975,6 +7983,22 @@ aarch64_force_relocation (struct fix *fixp)
#ifdef OBJ_ELF
+/* Implement md_after_parse_args. This is the earliest time we need to decide
+ ABI. If no -mabi specified, the ABI will be decided by target triplet. */
+
+void
+aarch64_after_parse_args (void)
+{
+ if (aarch64_abi != AARCH64_ABI_NONE)
+ return;
+
+ /* DEFAULT_ARCH will have ":32" extension if it's configured for ILP32. */
+ if (strlen (default_arch) > 7 && strcmp (default_arch + 7, ":32") == 0)
+ aarch64_abi = AARCH64_ABI_ILP32;
+ else
+ aarch64_abi = AARCH64_ABI_LP64;
+}
+
const char *
elf64_aarch64_target_format (void)
{
diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h
index 5bf1399..4aa3494 100644
--- a/gas/config/tc-aarch64.h
+++ b/gas/config/tc-aarch64.h
@@ -192,6 +192,9 @@ struct aarch64_segment_info_type
#define tc_regname_to_dw2regnum tc_aarch64_regname_to_dw2regnum
#define tc_cfi_frame_initial_instructions tc_aarch64_frame_initial_instructions
+extern void aarch64_after_parse_args (void);
+#define md_after_parse_args() aarch64_after_parse_args ()
+
#else /* Not OBJ_ELF. */
#define GLOBAL_OFFSET_TABLE_NAME "__GLOBAL_OFFSET_TABLE_"
#endif
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index a092892..173a1a0 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -2966,8 +2966,10 @@ md_apply_fix (fixS *fixP,
break;
default:
if ((int) fixP->fx_r_type < 0)
- as_fatal (_("PC relative relocation not allowed for (internal) type %d"),
- fixP->fx_r_type);
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("PC relative relocation not allowed for (internal)"
+ " type %d"),
+ fixP->fx_r_type);
break;
}
}
@@ -3942,9 +3944,8 @@ assemble_insn (const struct arc_opcode *opcode,
{
case O_plt:
if (opcode->insn_class == JUMP)
- as_bad_where (frag_now->fr_file, frag_now->fr_line,
- _("Unable to use @plt relocation for insn %s"),
- opcode->name);
+ as_bad (_("Unable to use @plt relocation for insn %s"),
+ opcode->name);
needGOTSymbol = TRUE;
reloc = find_reloc ("plt", opcode->name,
pflags, nflg,
@@ -3962,9 +3963,8 @@ assemble_insn (const struct arc_opcode *opcode,
reloc = ARC_RELOC_TABLE (t->X_md)->reloc;
if (arc_opcode_len (opcode) == 2
|| opcode->insn_class == JUMP)
- as_bad_where (frag_now->fr_file, frag_now->fr_line,
- _("Unable to use @pcl relocation for insn %s"),
- opcode->name);
+ as_bad (_("Unable to use @pcl relocation for insn %s"),
+ opcode->name);
}
else
{
@@ -4130,8 +4130,9 @@ assemble_insn (const struct arc_opcode *opcode,
/* Check if the current instruction is legally used. */
if (arc_last_insns[1].has_delay_slot
&& is_br_jmp_insn_p (arc_last_insns[0].opcode))
- as_bad_where (frag_now->fr_file, frag_now->fr_line,
- _("A jump/branch instruction in delay slot."));
+ as_bad (_("Insn %s has a jump/branch instruction %s in its delay slot."),
+ arc_last_insns[1].opcode->name,
+ arc_last_insns[0].opcode->name);
}
void
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 6250793..6c1091e 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -66,8 +66,11 @@
#define HLE_PREFIX REP_PREFIX
#define BND_PREFIX REP_PREFIX
#define LOCK_PREFIX 5
-#define REX_PREFIX 6 /* must come last. */
-#define MAX_PREFIXES 7 /* max prefixes per opcode */
+/* Only one of NOTRACK_PREFIX and SEG_PREFIX can be used at the same
+ time. */
+#define NOTRACK_PREFIX 6
+#define REX_PREFIX 7 /* must come last. */
+#define MAX_PREFIXES 8 /* max prefixes per opcode */
/* we define the syntax here (modulo base,index,scale syntax) */
#define REGISTER_PREFIX '%'
@@ -388,6 +391,9 @@ struct _i386_insn
/* Have BND prefix. */
const char *bnd_prefix;
+ /* Have NOTRACK prefix. */
+ const char *notrack_prefix;
+
/* Error message. */
enum i386_error error;
};
@@ -2144,6 +2150,7 @@ enum PREFIX_GROUP
PREFIX_EXIST = 0,
PREFIX_LOCK,
PREFIX_REP,
+ PREFIX_DS,
PREFIX_OTHER
};
@@ -2152,7 +2159,8 @@ enum PREFIX_GROUP
same class already exists.
b. PREFIX_LOCK if lock prefix is added.
c. PREFIX_REP if rep/repne prefix is added.
- d. PREFIX_OTHER if other prefix is added.
+ d. PREFIX_DS if ds prefix is added.
+ e. PREFIX_OTHER if other prefix is added.
*/
static enum PREFIX_GROUP
@@ -2177,8 +2185,10 @@ add_prefix (unsigned int prefix)
default:
abort ();
- case CS_PREFIX_OPCODE:
case DS_PREFIX_OPCODE:
+ ret = PREFIX_DS;
+ /* Fall through. */
+ case CS_PREFIX_OPCODE:
case ES_PREFIX_OPCODE:
case FS_PREFIX_OPCODE:
case GS_PREFIX_OPCODE:
@@ -3702,6 +3712,15 @@ md_assemble (char *line)
if (i.bnd_prefix && !i.tm.opcode_modifier.bndprefixok)
as_bad (_("expecting valid branch instruction after `bnd'"));
+ /* Check NOTRACK prefix. */
+ if (i.notrack_prefix
+ && (!i.tm.opcode_modifier.notrackprefixok
+ || i.reg_operands != 1
+ || i.disp_operands != 0
+ || i.mem_operands != 0
+ || i.imm_operands != 0))
+ as_bad (_("expecting register indirect branch instruction after `notrack'"));
+
if (i.tm.cpu_flags.bitfield.cpumpx)
{
if (flag_code == CODE_64BIT && i.prefix[ADDR_PREFIX])
@@ -3964,20 +3983,42 @@ parse_insn (char *line, char *mnemonic)
else
{
/* Add prefix, checking for repeated prefixes. */
- switch (add_prefix (current_templates->start->base_opcode))
+ enum PREFIX_GROUP p
+ = add_prefix (current_templates->start->base_opcode);
+ if (p == PREFIX_DS
+ && current_templates->start->cpu_flags.bitfield.cpucet)
{
- case PREFIX_EXIST:
- return NULL;
- case PREFIX_REP:
- if (current_templates->start->cpu_flags.bitfield.cpuhle)
- i.hle_prefix = current_templates->start->name;
- else if (current_templates->start->cpu_flags.bitfield.cpumpx)
- i.bnd_prefix = current_templates->start->name;
- else
- i.rep_prefix = current_templates->start->name;
- break;
- default:
- break;
+ i.notrack_prefix = current_templates->start->name;
+ /* Move NOTRACK_PREFIX_OPCODE to NOTRACK_PREFIX slot so
+ that it is placed before others. */
+ i.prefix[SEG_PREFIX] = 0;
+ i.prefix[NOTRACK_PREFIX] = NOTRACK_PREFIX_OPCODE;
+ }
+ else
+ {
+ switch (p)
+ {
+ case PREFIX_EXIST:
+ return NULL;
+ case PREFIX_REP:
+ if (current_templates->start->cpu_flags.bitfield.cpuhle)
+ i.hle_prefix = current_templates->start->name;
+ else if (current_templates->start->cpu_flags.bitfield.cpumpx)
+ i.bnd_prefix = current_templates->start->name;
+ else
+ i.rep_prefix = current_templates->start->name;
+ break;
+ default:
+ break;
+ }
+
+ if (i.notrack_prefix != NULL)
+ {
+ /* There must be no other prefixes after NOTRACK
+ prefix. */
+ as_bad (_("expecting no other prefixes after `notrack'"));
+ return NULL;
+ }
}
}
/* Skip past PREFIX_SEPARATOR and reset token_start. */
diff --git a/gas/configure b/gas/configure
index d3ae96e..96fa7cb 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12583,7 +12583,7 @@ $as_echo "#define NDS32_DEFAULT_AUDIO_EXT 1" >>confdefs.h
$as_echo "$enable_audio_ext" >&6; }
;;
- i386 | riscv | s390 | sparc)
+ aarch64 | i386 | riscv | s390 | sparc)
if test $this_target = $target ; then
cat >>confdefs.h <<_ACEOF
diff --git a/gas/configure.ac b/gas/configure.ac
index cc70aa7..da161b7 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -511,7 +511,7 @@ changequote([,])dnl
AC_MSG_RESULT($enable_audio_ext)
;;
- i386 | riscv | s390 | sparc)
+ aarch64 | i386 | riscv | s390 | sparc)
if test $this_target = $target ; then
AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
fi
diff --git a/gas/configure.tgt b/gas/configure.tgt
index ca58b69..9d5e781 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -46,8 +46,8 @@ eval `echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
# endian and arch.
# Note: This table is alpha-sorted, please try to keep it that way.
case ${cpu} in
- aarch64) cpu_type=aarch64 endian=little ;;
- aarch64_be) cpu_type=aarch64 endian=big ;;
+ aarch64) cpu_type=aarch64 endian=little arch=aarch64;;
+ aarch64_be) cpu_type=aarch64 endian=big arch=aarch64;;
alpha*) cpu_type=alpha ;;
am33_2.0) cpu_type=mn10300 endian=little ;;
arc*eb) cpu_type=arc endian=big ;;
@@ -126,7 +126,10 @@ generic_target=${cpu_type}-$vendor-$os
case ${generic_target} in
aarch64*-*-elf*) fmt=elf;;
aarch64*-*-fuchsia*) fmt=elf;;
- aarch64*-*-linux*) fmt=elf em=linux ;;
+ aarch64*-*-linux*) fmt=elf em=linux
+ case ${cpu}-${os} in
+ aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;;
+ esac ;;
alpha-*-*vms*) fmt=evax ;;
alpha-*-osf*) fmt=ecoff ;;
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index c1d6af7..67a7a13 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -385,6 +385,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "cet"
run_dump_test "cet-intel"
run_dump_test "pseudos"
+ run_dump_test "notrack"
+ run_dump_test "notrack-intel"
+ run_list_test "notrackbad" "-al"
# These tests require support for 8 and 16 bit relocs,
# so we only run them for ELF and COFF targets.
@@ -805,6 +808,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-cet"
run_dump_test "x86-64-cet-intel"
run_dump_test "x86-64-pseudos"
+ run_dump_test "x86-64-notrack"
+ run_dump_test "x86-64-notrack-intel"
+ run_list_test "x86-64-notrackbad" "-al"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/notrack-intel.d b/gas/testsuite/gas/i386/notrack-intel.d
new file mode 100644
index 0000000..b99e194
--- /dev/null
+++ b/gas/testsuite/gas/i386/notrack-intel.d
@@ -0,0 +1,29 @@
+#source: notrack.s
+#objdump: -dw -Mintel
+#name: i386 NOTRACK prefix (Intel disassembly)
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+: 3e ff d0 notrack call eax
+[ ]*[a-f0-9]+: 66 3e ff d0 notrack call ax
+[ ]*[a-f0-9]+: 3e ff e0 notrack jmp eax
+[ ]*[a-f0-9]+: 66 3e ff e0 notrack jmp ax
+[ ]*[a-f0-9]+: f2 3e ff d0 bnd notrack call eax
+[ ]*[a-f0-9]+: 66 f2 3e ff d0 bnd notrack call ax
+[ ]*[a-f0-9]+: f2 3e ff e0 bnd notrack jmp eax
+[ ]*[a-f0-9]+: 66 f2 3e ff e0 bnd notrack jmp ax
+[ ]*[a-f0-9]+: 3e ff d0 notrack call eax
+[ ]*[a-f0-9]+: 66 3e ff d0 notrack call ax
+[ ]*[a-f0-9]+: 3e ff e0 notrack jmp eax
+[ ]*[a-f0-9]+: 66 3e ff e0 notrack jmp ax
+[ ]*[a-f0-9]+: f2 3e ff d0 bnd notrack call eax
+[ ]*[a-f0-9]+: 66 f2 3e ff d0 bnd notrack call ax
+[ ]*[a-f0-9]+: f2 3e ff e0 bnd notrack jmp eax
+[ ]*[a-f0-9]+: 66 f2 3e ff e0 bnd notrack jmp ax
+[ ]*[a-f0-9]+: 3e f2 ff d0 ds bnd call eax
+[ ]*[a-f0-9]+: 3e 66 ff d0 ds call ax
+#pass
diff --git a/gas/testsuite/gas/i386/notrack.d b/gas/testsuite/gas/i386/notrack.d
new file mode 100644
index 0000000..eda09eb
--- /dev/null
+++ b/gas/testsuite/gas/i386/notrack.d
@@ -0,0 +1,28 @@
+#objdump: -dw
+#name: i386 NOTRACK prefix
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-05-24 20:35 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-05-24 20:35 UTC (permalink / raw)
To: archer-commits
The branch, users/jkratoch/indexcxx has been updated
via a5a2c6c693bd290b3a5ffe924aa2c2e30b7d221f (commit)
via 88c1242dc0a1e1ab582a65ea8bd05eb5f244c59b (commit)
via f4985dba0f53b38efcca4eef42cfbfca5ef44ee2 (commit)
via ab20fa4ae95212c58e369916de347f3d518530c2 (commit)
via f532ab94387d1bc47de619ae08ead522753d89fa (commit)
via 39503f82427e22ed8e04d986ccdc8562091ec62e (commit)
via 003ca0fd22863aaf1a9811c8a35a0133a2d27fb1 (commit)
from 480030250901adfbd6e8080e87143fc9959f372e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit a5a2c6c693bd290b3a5ffe924aa2c2e30b7d221f
Merge: 4800302 88c1242
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 24 22:35:25 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 88c1242dc0a1e1ab582a65ea8bd05eb5f244c59b
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Move print_insn_XXX to an opcodes internal header
With the changes done in previous patches, print_insn_XXX functions
don't have to be external visible out of opcodes, because both gdb
and objdump select disassemblers through a single interface.
This patch moves these print_insn_XXX declarations from
include/dis-asm.h to opcodes/disassemble.h, which is a new header
added by this patch.
include:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* dis-asm.h: Move some function declarations to
opcodes/disassemble.h.
opcodes:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* alpha-dis.c: Include disassemble.h, don't include
dis-asm.h.
* avr-dis.c, bfin-dis.c, cr16-dis.c: Likewise.
* crx-dis.c, d10v-dis.c, d30v-dis.c: Likewise.
* disassemble.c, dlx-dis.c, epiphany-dis.c: Likewise.
* fr30-dis.c, ft32-dis.c, h8300-dis.c, h8500-dis.c: Likewise.
* hppa-dis.c, i370-dis.c, i386-dis.c: Likewise.
* i860-dis.c, i960-dis.c, ip2k-dis.c: Likewise.
* iq2000-dis.c, lm32-dis.c, m10200-dis.c: Likewise.
* m10300-dis.c, m32r-dis.c, m68hc11-dis.c: Likewise.
* m68k-dis.c, m88k-dis.c, mcore-dis.c: Likewise.
* metag-dis.c, microblaze-dis.c, mmix-dis.c: Likewise.
* moxie-dis.c, msp430-dis.c, mt-dis.c:
* nds32-dis.c, nios2-dis.c, ns32k-dis.c: Likewise.
* or1k-dis.c, pdp11-dis.c, pj-dis.c: Likewise.
* ppc-dis.c, pru-dis.c, riscv-dis.c: Likewise.
* rl78-dis.c, s390-dis.c, score-dis.c: Likewise.
* sh-dis.c, sh64-dis.c, tic30-dis.c: Likewise.
* tic4x-dis.c, tic54x-dis.c, tic6x-dis.c: Likewise.
* tic80-dis.c, tilegx-dis.c, tilepro-dis.c: Likewise.
* v850-dis.c, vax-dis.c, visium-dis.c: Likewise.
* w65-dis.c, wasm32-dis.c, xc16x-dis.c: Likewise.
* xgate-dis.c, xstormy16-dis.c, xtensa-dis.c: Likewise.
* z80-dis.c, z8k-dis.c: Likewise.
* disassemble.h: New file.
commit f4985dba0f53b38efcca4eef42cfbfca5ef44ee2
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Use disassemble.c:disassembler select rs6000 disassembler
Nowadays, rs6000 disassembler is selected in different ways in
opcodes and gdb,
opcodes:
case bfd_arch_rs6000:
if (mach == bfd_mach_ppc_620)
disassemble = print_insn_big_powerpc;
else
disassemble = print_insn_rs6000;
break;
gdb:
if (arch == bfd_arch_rs6000)
set_gdbarch_print_insn (gdbarch, print_insn_rs6000);
else
set_gdbarch_print_insn (gdbarch, gdb_print_insn_powerpc);
I am not sure which one is the right one. However, such selection
should be done in one place instead of two.
gdb:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* rs6000-tdep.c (gdb_print_insn_powerpc): Remove.
(rs6000_gdbarch_init): Don't call set_gdbarch_print_insn.
commit ab20fa4ae95212c58e369916de347f3d518530c2
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Use disassemble.c:disassembler select rl78 disassembler
This patch changes rl78 to let disassble.c:disassembler select
disassembler. rl78_get_disassembler doesn't handle the case
that abfd is NULL, so this patch also fix it.
gdb:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* rl78-tdep.c (rl78_gdbarch_init): Don't call
set_gdbarch_print_insn.
opcodes:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* rl78-dis.c (rl78_get_disassembler): If parameter abfd
is NULL, set cpu to E_FLAG_RL78_ANY_CPU.
commit f532ab94387d1bc47de619ae08ead522753d89fa
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Use disassemble.c:disassembler select h8300 disassembler
opcodes/disassble.c:disassembler select h8300 disassembler like this,
if (mach == bfd_mach_h8300h || mach == bfd_mach_h8300hn)
disassemble = print_insn_h8300h;
else if (mach == bfd_mach_h8300s
|| mach == bfd_mach_h8300sn
|| mach == bfd_mach_h8300sx
|| mach == bfd_mach_h8300sxn)
disassemble = print_insn_h8300s;
else
disassemble = print_insn_h8300;
which is the same as what gdb/h8300-tdpe.c does,
switch (info.bfd_arch_info->mach)
{
case bfd_mach_h8300:
...
set_gdbarch_print_insn (gdbarch, print_insn_h8300);
case bfd_mach_h8300h:
case bfd_mach_h8300hn:
...
set_gdbarch_print_insn (gdbarch, print_insn_h8300h);
case bfd_mach_h8300s:
case bfd_mach_h8300sn:
...
set_gdbarch_print_insn (gdbarch, print_insn_h8300s);
so we can leave disassble.c:disassembler doing the selection.
gdb:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* h8300-tdep.c (h8300_gdbarch_init): Don't call
set_gdbarch_print_insn.
commit 39503f82427e22ed8e04d986ccdc8562091ec62e
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Delegate opcodes to select disassembler in GDB
This patch changes GDB to use disassembler selected by opcodes in
default, so that we don't have to duplicate the selection logic again
in GDB side. For example, gdb/score-tdep.c has
static int
score_print_insn (bfd_vma memaddr, struct disassemble_info *info)
{
if (info->endian == BFD_ENDIAN_BIG)
return print_insn_big_score (memaddr, info);
else
return print_insn_little_score (memaddr, info);
}
and opcodes/disassemble.c has the same logic,
case bfd_arch_score:
if (big)
disassemble = print_insn_big_score;
else
disassemble = print_insn_little_score;
This patch removes the logic in GDB and calls
opcodes/disassemble.c:disassembler in default to select disassembler.
gdb:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* alpha-tdep.c (alpha_gdbarch_init): Don't call
set_gdbarch_print_insn.
* arc-tdep.c (arc_gdbarch_init): Likewise.
* arch-utils.c: include dis-asm.h.
(default_print_insn): New function.
* arch-utils.h (default_print_insn): Declare.
* avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_print_insn.
* bfin-tdep.c (bfin_gdbarch_init): Likewise.
* cris-tdep.c (cris_delayed_get_disassembler): Remove.
(cris_gdbarch_init): Don't call set_gdbarch_print_insn.
* frv-tdep.c (frv_gdbarch_init): Likewise.
* ft32-tdep.c (ft32_gdbarch_init): Likewise.
* gdbarch.sh (print_insn): Use default_print_insn.
* gdbarch.c: Regenerated.
* hppa-tdep.c (hppa_gdbarch_init): Likewise.
* iq2000-tdep.c (iq2000_gdbarch_init): Likewise.
* lm32-tdep.c (lm32_gdbarch_init): Likewise.
* m32c-tdep.c (m32c_gdbarch_init): Likewise.
* m32r-tdep.c (m32r_gdbarch_init): Likewise.
* m68hc11-tdep.c (gdb_print_insn_m68hc11): Remove.
(m68hc11_gdbarch_init): Don't call set_gdbarch_print_insn.
* m68k-tdep.c (m68k_gdbarch_init): Likewise.
* m88k-tdep.c (m88k_gdbarch_init): Likewise.
* microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
* mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
* moxie-tdep.c (moxie_gdbarch_init): Likewise.
* msp430-tdep.c (msp430_gdbarch_init): Likewise.
* mt-tdep.c (mt_gdbarch_init): Likewise.
* nds32-tdep.c (nds32_gdbarch_init): Likewise.
* nios2-tdep.c (nios2_print_insn): Remove.
(nios2_gdbarch_init): Don't call set_gdbarch_print_insn.
* rx-tdep.c (rx_gdbarch_init): Likewise.
* s390-linux-tdep.c (s390_gdbarch_init): Likewise.
* score-tdep.c (score_print_insn): Remove.
(score_gdbarch_init): Don't call set_gdbarch_print_insn.
* sh-tdep.c (sh_gdbarch_init): Likewise.
* sh64-tdep.c (sh64_gdbarch_init): Likewise.
* sparc-tdep.c (sparc32_gdbarch_init): Likewise.
* tic6x-tdep.c (tic6x_print_insn): Remove.
(tic6x_gdbarch_init): Don't call set_gdbarch_print_insn.
* tilegx-tdep.c (tilegx_gdbarch_init): Likewise.
* v850-tdep.c (v850_gdbarch_init): Likewise.
* vax-tdep.c (vax_gdbarch_init): Likewise.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
* xtensa-tdep.c (xtensa_gdbarch_init): Likewise.
commit 003ca0fd22863aaf1a9811c8a35a0133a2d27fb1
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 24 17:23:52 2017 +0100
Refactor disassembler selection
Nowadays, opcodes/disassemble.c:disassembler selects the proper
disassembler according to ABFD only. However, it actually
selects disassemblers according to arch, mach, endianess, and
abfd. This patch adds them to the parameters of disassembler,
so that its caller can still select disassemblers in case that
abfd is NULL (a typical case in GDB).
There isn't any functionality change.
binutils:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* objdump.c (disassemble_data): Caller update.
include:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* dis-asm.h (disassembler): Update declaration.
opcodes:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* disassemble.c (disassembler): Add arguments a, big and mach.
Use them.
sim/common:
2017-05-24 Yao Qi <yao.qi@linaro.org>
* sim-trace.c (trace_disasm): Caller update.
-----------------------------------------------------------------------
Summary of changes:
binutils/ChangeLog | 4 ++
binutils/objdump.c | 4 +-
gdb/ChangeLog | 63 ++++++++++++++++++++++++++++
gdb/alpha-tdep.c | 3 -
gdb/arc-tdep.c | 2 -
gdb/arch-utils.c | 20 +++++++++
gdb/arch-utils.h | 2 +
gdb/avr-tdep.c | 1 -
gdb/bfin-tdep.c | 1 -
gdb/cris-tdep.c | 18 --------
gdb/frv-tdep.c | 1 -
gdb/ft32-tdep.c | 2 -
gdb/gdbarch.c | 4 +-
gdb/gdbarch.sh | 2 +-
gdb/h8300-tdep.c | 4 --
gdb/hppa-tdep.c | 2 -
gdb/iq2000-tdep.c | 1 -
gdb/lm32-tdep.c | 3 -
gdb/m32c-tdep.c | 3 -
gdb/m32r-tdep.c | 2 -
gdb/m68hc11-tdep.c | 11 -----
gdb/m68k-tdep.c | 4 --
gdb/m88k-tdep.c | 2 -
gdb/microblaze-tdep.c | 2 -
gdb/mn10300-tdep.c | 2 -
gdb/moxie-tdep.c | 2 -
gdb/msp430-tdep.c | 3 -
gdb/mt-tdep.c | 1 -
gdb/nds32-tdep.c | 2 -
gdb/nios2-tdep.c | 14 ------
gdb/rl78-tdep.c | 3 -
gdb/rs6000-tdep.c | 14 ------
gdb/rx-tdep.c | 2 -
gdb/s390-linux-tdep.c | 2 -
gdb/score-tdep.c | 10 -----
gdb/sh-tdep.c | 1 -
gdb/sh64-tdep.c | 2 -
gdb/sparc-tdep.c | 2 -
gdb/tic6x-tdep.c | 10 -----
gdb/tilegx-tdep.c | 2 -
gdb/v850-tdep.c | 2 -
gdb/vax-tdep.c | 2 -
gdb/xstormy16-tdep.c | 2 -
gdb/xtensa-tdep.c | 2 -
include/ChangeLog | 9 ++++
include/dis-asm.h | 88 ++++------------------------------------
opcodes/ChangeLog | 38 +++++++++++++++++
opcodes/alpha-dis.c | 2 +-
opcodes/avr-dis.c | 2 +-
opcodes/bfin-dis.c | 2 +-
opcodes/cr16-dis.c | 2 +-
opcodes/crx-dis.c | 2 +-
opcodes/d10v-dis.c | 2 +-
opcodes/d30v-dis.c | 2 +-
opcodes/disassemble.c | 43 ++++++++++++-------
opcodes/disassemble.h | 102 ++++++++++++++++++++++++++++++++++++++++++++++
opcodes/dlx-dis.c | 2 +-
opcodes/epiphany-dis.c | 2 +-
opcodes/fr30-dis.c | 2 +-
opcodes/frv-dis.c | 2 +-
opcodes/ft32-dis.c | 2 +-
opcodes/h8300-dis.c | 2 +-
opcodes/h8500-dis.c | 2 +-
opcodes/hppa-dis.c | 2 +-
opcodes/i370-dis.c | 2 +-
opcodes/i386-dis.c | 2 +-
opcodes/i860-dis.c | 2 +-
opcodes/i960-dis.c | 2 +-
opcodes/ip2k-dis.c | 2 +-
opcodes/iq2000-dis.c | 2 +-
opcodes/lm32-dis.c | 2 +-
opcodes/m10200-dis.c | 2 +-
opcodes/m10300-dis.c | 2 +-
opcodes/m32r-dis.c | 2 +-
opcodes/m68hc11-dis.c | 2 +-
opcodes/m68k-dis.c | 2 +-
opcodes/m88k-dis.c | 2 +-
opcodes/mcore-dis.c | 2 +-
opcodes/metag-dis.c | 2 +-
opcodes/microblaze-dis.c | 2 +-
opcodes/mmix-dis.c | 2 +-
opcodes/moxie-dis.c | 2 +-
opcodes/msp430-dis.c | 2 +-
opcodes/mt-dis.c | 2 +-
opcodes/nds32-dis.c | 2 +-
opcodes/nios2-dis.c | 2 +-
opcodes/ns32k-dis.c | 2 +-
opcodes/or1k-dis.c | 2 +-
opcodes/pdp11-dis.c | 2 +-
opcodes/pj-dis.c | 2 +-
opcodes/ppc-dis.c | 2 +-
opcodes/pru-dis.c | 2 +-
opcodes/riscv-dis.c | 2 +-
opcodes/rl78-dis.c | 8 +++-
opcodes/s390-dis.c | 2 +-
opcodes/score-dis.c | 2 +-
opcodes/sh-dis.c | 2 +-
opcodes/sh64-dis.c | 2 +-
opcodes/tic30-dis.c | 2 +-
opcodes/tic4x-dis.c | 2 +-
opcodes/tic54x-dis.c | 2 +-
opcodes/tic6x-dis.c | 2 +-
opcodes/tic80-dis.c | 2 +-
opcodes/tilegx-dis.c | 2 +-
opcodes/tilepro-dis.c | 2 +-
opcodes/v850-dis.c | 2 +-
opcodes/vax-dis.c | 2 +-
opcodes/visium-dis.c | 2 +-
opcodes/w65-dis.c | 2 +-
opcodes/wasm32-dis.c | 2 +-
opcodes/xc16x-dis.c | 2 +-
opcodes/xgate-dis.c | 2 +-
opcodes/xstormy16-dis.c | 2 +-
opcodes/xtensa-dis.c | 2 +-
opcodes/z80-dis.c | 2 +-
opcodes/z8k-dis.c | 2 +-
sim/common/ChangeLog | 4 ++
sim/common/sim-trace.c | 6 ++-
118 files changed, 360 insertions(+), 311 deletions(-)
create mode 100644 opcodes/disassemble.h
First 500 lines of diff:
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 60a199a..b2f0f11 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
+ * objdump.c (disassemble_data): Caller update.
+
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* objcopy.c (merge_gnu_build_notes): Remove workaround that
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 5972da1..81d47a0 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -2386,7 +2386,9 @@ disassemble_data (bfd *abfd)
}
/* Use libopcodes to locate a suitable disassembler. */
- aux.disassemble_fn = disassembler (abfd);
+ aux.disassemble_fn = disassembler (bfd_get_arch (abfd),
+ bfd_big_endian (abfd),
+ bfd_get_mach (abfd), abfd);
if (!aux.disassemble_fn)
{
non_fatal (_("can't disassemble for architecture %s\n"),
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c8bd6fd..a96e71f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,66 @@
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
+ * rs6000-tdep.c (gdb_print_insn_powerpc): Remove.
+ (rs6000_gdbarch_init): Don't call set_gdbarch_print_insn.
+
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
+ * rl78-tdep.c (rl78_gdbarch_init): Don't call
+ set_gdbarch_print_insn.
+
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
+ * h8300-tdep.c (h8300_gdbarch_init): Don't call
+ set_gdbarch_print_insn.
+
+2017-05-24 Yao Qi <yao.qi@linaro.org>
+
+ * alpha-tdep.c (alpha_gdbarch_init): Don't call
+ set_gdbarch_print_insn.
+ * arc-tdep.c (arc_gdbarch_init): Likewise.
+ * arch-utils.c: include dis-asm.h.
+ (default_print_insn): New function.
+ * arch-utils.h (default_print_insn): Declare.
+ * avr-tdep.c (avr_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * bfin-tdep.c (bfin_gdbarch_init): Likewise.
+ * cris-tdep.c (cris_delayed_get_disassembler): Remove.
+ (cris_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * frv-tdep.c (frv_gdbarch_init): Likewise.
+ * ft32-tdep.c (ft32_gdbarch_init): Likewise.
+ * gdbarch.sh (print_insn): Use default_print_insn.
+ * gdbarch.c: Regenerated.
+ * hppa-tdep.c (hppa_gdbarch_init): Likewise.
+ * iq2000-tdep.c (iq2000_gdbarch_init): Likewise.
+ * lm32-tdep.c (lm32_gdbarch_init): Likewise.
+ * m32c-tdep.c (m32c_gdbarch_init): Likewise.
+ * m32r-tdep.c (m32r_gdbarch_init): Likewise.
+ * m68hc11-tdep.c (gdb_print_insn_m68hc11): Remove.
+ (m68hc11_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * m68k-tdep.c (m68k_gdbarch_init): Likewise.
+ * m88k-tdep.c (m88k_gdbarch_init): Likewise.
+ * microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+ * moxie-tdep.c (moxie_gdbarch_init): Likewise.
+ * msp430-tdep.c (msp430_gdbarch_init): Likewise.
+ * mt-tdep.c (mt_gdbarch_init): Likewise.
+ * nds32-tdep.c (nds32_gdbarch_init): Likewise.
+ * nios2-tdep.c (nios2_print_insn): Remove.
+ (nios2_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * rx-tdep.c (rx_gdbarch_init): Likewise.
+ * s390-linux-tdep.c (s390_gdbarch_init): Likewise.
+ * score-tdep.c (score_print_insn): Remove.
+ (score_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * sh-tdep.c (sh_gdbarch_init): Likewise.
+ * sh64-tdep.c (sh64_gdbarch_init): Likewise.
+ * sparc-tdep.c (sparc32_gdbarch_init): Likewise.
+ * tic6x-tdep.c (tic6x_print_insn): Remove.
+ (tic6x_gdbarch_init): Don't call set_gdbarch_print_insn.
+ * tilegx-tdep.c (tilegx_gdbarch_init): Likewise.
+ * v850-tdep.c (v850_gdbarch_init): Likewise.
+ * vax-tdep.c (vax_gdbarch_init): Likewise.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
+ * xtensa-tdep.c (xtensa_gdbarch_init): Likewise.
+
2017-05-23 John Baldwin <jhb@FreeBSD.org>
* mips-fbsd-tdep.c (MIPS_PC_REGNUM): Remove.
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index d62566c..b1bc6a1 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -1798,9 +1798,6 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Prologue heuristics. */
set_gdbarch_skip_prologue (gdbarch, alpha_skip_prologue);
- /* Disassembler. */
- set_gdbarch_print_insn (gdbarch, print_insn_alpha);
-
/* Call info. */
set_gdbarch_return_value (gdbarch, alpha_return_value);
diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index 4f866a9..d9ee5c6 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -2013,8 +2013,6 @@ arc_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_align (gdbarch, arc_frame_align);
- set_gdbarch_print_insn (gdbarch, arc_delayed_print_insn);
-
set_gdbarch_cannot_step_breakpoint (gdbarch, 1);
/* "nonsteppable" watchpoint means that watchpoint triggers before
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index b1cec80..c011b0f 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -37,6 +37,7 @@
#include "floatformat.h"
+#include "dis-asm.h"
struct displaced_step_closure *
simple_displaced_step_copy_insn (struct gdbarch *gdbarch,
@@ -973,6 +974,25 @@ default_guess_tracepoint_registers (struct gdbarch *gdbarch,
regcache_raw_supply (regcache, pc_regno, regs);
}
+int
+default_print_insn (bfd_vma memaddr, disassemble_info *info)
+{
+ disassembler_ftype disassemble_fn;
+
+ if (exec_bfd != NULL)
+ {
+ gdb_assert (info->arch == bfd_get_arch (exec_bfd));
+ gdb_assert (info->endian == (bfd_big_endian (exec_bfd)
+ ? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE));
+ gdb_assert (info->mach == bfd_get_mach (exec_bfd));
+ }
+ disassemble_fn = disassembler (info->arch, info->endian == BFD_ENDIAN_BIG,
+ info->mach, exec_bfd);
+
+ gdb_assert (disassemble_fn != NULL);
+ return (*disassemble_fn) (memaddr, info);
+}
+
/* -Wmissing-prototypes */
extern initialize_file_ftype _initialize_gdbarch_utils;
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index 967a4b1..040afca 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -273,4 +273,6 @@ extern void default_guess_tracepoint_registers (struct gdbarch *gdbarch,
struct regcache *regcache,
CORE_ADDR addr);
+extern int default_print_insn (bfd_vma memaddr, disassemble_info *info);
+
#endif
diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
index ec9db1c..3d041c6 100644
--- a/gdb/avr-tdep.c
+++ b/gdb/avr-tdep.c
@@ -1499,7 +1499,6 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_pseudo_register_write (gdbarch, avr_pseudo_register_write);
set_gdbarch_return_value (gdbarch, avr_return_value);
- set_gdbarch_print_insn (gdbarch, print_insn_avr);
set_gdbarch_push_dummy_call (gdbarch, avr_push_dummy_call);
diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c
index c590a91..bfb5d57 100644
--- a/gdb/bfin-tdep.c
+++ b/gdb/bfin-tdep.c
@@ -838,7 +838,6 @@ bfin_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_args_skip (gdbarch, 8);
set_gdbarch_unwind_pc (gdbarch, bfin_unwind_pc);
set_gdbarch_frame_align (gdbarch, bfin_frame_align);
- set_gdbarch_print_insn (gdbarch, print_insn_bfin);
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index eb39772..e554e24 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -3785,19 +3785,6 @@ cris_gdb_func (struct gdbarch *gdbarch, enum cris_op_type op_type,
}
}
-/* This wrapper is to avoid cris_get_assembler being called before
- exec_bfd has been set. */
-
-static int
-cris_delayed_get_disassembler (bfd_vma addr, struct disassemble_info *info)
-{
- int (*print_insn) (bfd_vma addr, struct disassemble_info *info);
-
- print_insn = cris_get_disassembler (exec_bfd);
- gdb_assert (print_insn != NULL);
- return print_insn (addr, info);
-}
-
/* Originally from <asm/elf.h>. */
typedef unsigned char cris_elf_greg_t[4];
@@ -4134,10 +4121,5 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
- /* FIXME: cagney/2003-08-27: It should be possible to select a CRIS
- disassembler, even when there is no BFD. Does something like
- "gdb; target remote; disassmeble *0x123" work? */
- set_gdbarch_print_insn (gdbarch, cris_delayed_get_disassembler);
-
return gdbarch;
}
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index 8744733..c0257bd 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -1582,7 +1582,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
break;
}
- set_gdbarch_print_insn (gdbarch, print_insn_frv);
if (frv_abi (gdbarch) == FRV_ABI_FDPIC)
set_gdbarch_convert_from_func_ptr_addr (gdbarch,
frv_convert_from_func_ptr_addr);
diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c
index 5b28275..966a593 100644
--- a/gdb/ft32-tdep.c
+++ b/gdb/ft32-tdep.c
@@ -637,8 +637,6 @@ ft32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_unwind_pc (gdbarch, ft32_unwind_pc);
- set_gdbarch_print_insn (gdbarch, print_insn_ft32);
-
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 9c827ac..257c39f 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -429,6 +429,7 @@ gdbarch_alloc (const struct gdbarch_info *info,
gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr;
gdbarch->convert_from_func_ptr_addr = convert_from_func_ptr_addr_identity;
gdbarch->addr_bits_remove = core_addr_identity;
+ gdbarch->print_insn = default_print_insn;
gdbarch->skip_trampoline_code = generic_skip_trampoline_code;
gdbarch->skip_solib_resolver = generic_skip_solib_resolver;
gdbarch->in_solib_return_trampoline = generic_in_solib_return_trampoline;
@@ -621,8 +622,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of addr_bits_remove, invalid_p == 0 */
/* Skip verify of software_single_step, has predicate. */
/* Skip verify of single_step_through_delay, has predicate. */
- if (gdbarch->print_insn == 0)
- log.puts ("\n\tprint_insn");
+ /* Skip verify of print_insn, invalid_p == 0 */
/* Skip verify of skip_trampoline_code, invalid_p == 0 */
/* Skip verify of skip_solib_resolver, invalid_p == 0 */
/* Skip verify of in_solib_return_trampoline, invalid_p == 0 */
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index 753819f..7992cbe 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -643,7 +643,7 @@ F;std::vector<CORE_ADDR>;software_single_step;struct regcache *regcache;regcache
M;int;single_step_through_delay;struct frame_info *frame;frame
# FIXME: cagney/2003-08-28: Need to find a better way of selecting the
# disassembler. Perhaps objdump can handle it?
-f;int;print_insn;bfd_vma vma, struct disassemble_info *info;vma, info;;0;
+f;int;print_insn;bfd_vma vma, struct disassemble_info *info;vma, info;;default_print_insn;;0
f;CORE_ADDR;skip_trampoline_code;struct frame_info *frame, CORE_ADDR pc;frame, pc;;generic_skip_trampoline_code;;0
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index 7b260b1..1e8bde1 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -1275,7 +1275,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_ptr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
set_gdbarch_return_value (gdbarch, h8300_return_value);
- set_gdbarch_print_insn (gdbarch, print_insn_h8300);
break;
case bfd_mach_h8300h:
case bfd_mach_h8300hn:
@@ -1296,7 +1295,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
}
set_gdbarch_return_value (gdbarch, h8300h_return_value);
- set_gdbarch_print_insn (gdbarch, print_insn_h8300h);
break;
case bfd_mach_h8300s:
case bfd_mach_h8300sn:
@@ -1317,7 +1315,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
}
set_gdbarch_return_value (gdbarch, h8300h_return_value);
- set_gdbarch_print_insn (gdbarch, print_insn_h8300s);
break;
case bfd_mach_h8300sx:
case bfd_mach_h8300sxn:
@@ -1338,7 +1335,6 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_addr_bit (gdbarch, 2 * TARGET_CHAR_BIT);
}
set_gdbarch_return_value (gdbarch, h8300h_return_value);
- set_gdbarch_print_insn (gdbarch, print_insn_h8300s);
break;
}
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 2636a27..229b061 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -3122,8 +3122,6 @@ hppa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Helper for function argument information. */
set_gdbarch_fetch_pointer_argument (gdbarch, hppa_fetch_pointer_argument);
- set_gdbarch_print_insn (gdbarch, print_insn_hppa);
-
/* When a hardware watchpoint triggers, we'll move the inferior past
it by removing all eventpoints; stepping past the instruction
that caused the trigger; reinserting eventpoints; and checking
diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c
index 7d8ed3c..99824b7 100644
--- a/gdb/iq2000-tdep.c
+++ b/gdb/iq2000-tdep.c
@@ -838,7 +838,6 @@ iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_args_skip (gdbarch, 0);
set_gdbarch_skip_prologue (gdbarch, iq2000_skip_prologue);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
- set_gdbarch_print_insn (gdbarch, print_insn_iq2000);
set_gdbarch_register_type (gdbarch, iq2000_register_type);
set_gdbarch_frame_align (gdbarch, iq2000_frame_align);
set_gdbarch_unwind_sp (gdbarch, iq2000_unwind_sp);
diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c
index bd3e182..84ece3e 100644
--- a/gdb/lm32-tdep.c
+++ b/gdb/lm32-tdep.c
@@ -565,9 +565,6 @@ lm32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_push_dummy_call (gdbarch, lm32_push_dummy_call);
set_gdbarch_return_value (gdbarch, lm32_return_value);
- /* Instruction disassembler. */
- set_gdbarch_print_insn (gdbarch, print_insn_lm32);
-
lm32_add_reggroups (gdbarch);
set_gdbarch_register_reggroup_p (gdbarch, lm32_register_reggroup_p);
diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
index 7376372..1bc5950 100644
--- a/gdb/m32c-tdep.c
+++ b/gdb/m32c-tdep.c
@@ -2639,9 +2639,6 @@ m32c_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Register set. */
make_regs (gdbarch);
- /* Disassembly. */
- set_gdbarch_print_insn (gdbarch, print_insn_m32c);
-
/* Breakpoints. */
set_gdbarch_breakpoint_kind_from_pc (gdbarch, m32c_breakpoint::kind_from_pc);
set_gdbarch_sw_breakpoint_from_kind (gdbarch, m32c_breakpoint::bp_from_kind);
diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c
index 0820af9..2d14ced 100644
--- a/gdb/m32r-tdep.c
+++ b/gdb/m32r-tdep.c
@@ -947,8 +947,6 @@ m32r_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Return the unwound PC value. */
set_gdbarch_unwind_pc (gdbarch, m32r_unwind_pc);
- set_gdbarch_print_insn (gdbarch, print_insn_m32r);
-
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index 893d9c2..b19ddf7 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -1344,16 +1344,6 @@ m68hc11_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
if (flags & STO_M68HC12_INTERRUPT)
MSYMBOL_SET_RTI (msym);
}
-
-static int
-gdb_print_insn_m68hc11 (bfd_vma memaddr, disassemble_info *info)
-{
- if (info->arch == bfd_arch_m68hc11)
- return print_insn_m68hc11 (memaddr, info);
- else
- return print_insn_m68hc12 (memaddr, info);
-}
-
\f
/* 68HC11/68HC12 register groups.
@@ -1525,7 +1515,6 @@ m68hc11_gdbarch_init (struct gdbarch_info info,
m68hc11_breakpoint::kind_from_pc);
set_gdbarch_sw_breakpoint_from_kind (gdbarch,
m68hc11_breakpoint::bp_from_kind);
- set_gdbarch_print_insn (gdbarch, gdb_print_insn_m68hc11);
m68hc11_add_reggroups (gdbarch);
set_gdbarch_register_reggroup_p (gdbarch, m68hc11_register_reggroup_p);
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 7c3bf4c..5b4736d 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -1240,10 +1240,6 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_return_in_first_hidden_param_p (gdbarch,
m68k_return_in_first_hidden_param_p);
-
- /* Disassembler. */
- set_gdbarch_print_insn (gdbarch, print_insn_m68k);
-
#if defined JB_PC && defined JB_ELEMENT_SIZE
tdep->jb_pc = JB_PC;
tdep->jb_elt_size = JB_ELEMENT_SIZE;
diff --git a/gdb/m88k-tdep.c b/gdb/m88k-tdep.c
index 57fe644..d08a913 100644
--- a/gdb/m88k-tdep.c
+++ b/gdb/m88k-tdep.c
@@ -838,8 +838,6 @@ m88k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_iterate_over_regset_sections
(gdbarch, m88k_iterate_over_regset_sections);
- set_gdbarch_print_insn (gdbarch, print_insn_m88k);
-
set_gdbarch_skip_prologue (gdbarch, m88k_skip_prologue);
/* Stack grows downward. */
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 59f94c5..86cb090 100644
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -738,8 +738,6 @@ microblaze_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_args_skip (gdbarch, 8);
- set_gdbarch_print_insn (gdbarch, print_insn_microblaze);
-
set_gdbarch_write_pc (gdbarch, microblaze_write_pc);
set_gdbarch_unwind_pc (gdbarch, microblaze_unwind_pc);
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
index 0f5e10f..1e2526f 100644
--- a/gdb/mn10300-tdep.c
+++ b/gdb/mn10300-tdep.c
@@ -1444,8 +1444,6 @@ mn10300_gdbarch_init (struct gdbarch_info info,
set_gdbarch_sw_breakpoint_from_kind (gdbarch,
mn10300_breakpoint::bp_from_kind);
/* decr_pc_after_break? */
- /* Disassembly. */
- set_gdbarch_print_insn (gdbarch, print_insn_mn10300);
/* Stage 2 */
set_gdbarch_return_value (gdbarch, mn10300_return_value);
diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c
index 2972d52..91248cc 100644
--- a/gdb/moxie-tdep.c
+++ b/gdb/moxie-tdep.c
@@ -1142,8 +1142,6 @@ moxie_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_unwind_pc (gdbarch, moxie_unwind_pc);
- set_gdbarch_print_insn (gdbarch, print_insn_moxie);
-
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c
index d9eebf0..d730e1b 100644
--- a/gdb/msp430-tdep.c
+++ b/gdb/msp430-tdep.c
@@ -997,9 +997,6 @@ msp430_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
msp430_breakpoint::bp_from_kind);
set_gdbarch_decr_pc_after_break (gdbarch, 1);
- /* Disassembly. */
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-05-21 17:30 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-05-21 17:30 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 77276 bytes --]
The branch, users/jkratoch/indexcxx has been updated
via 3c31c689159535ec278253668e1f59155f18da2b (commit)
via 56298620acb02ab589ce3ddf398788227ab20211 (commit)
via b4f5b984e5e771e75cee43942e56455531a02e68 (commit)
via 43cc5389bc4662b31cad02a9f13358bd367d0ab3 (commit)
via a9dba87af1aeabffb01769004ab893173f3ef472 (commit)
via e5713223cbc1025f484fa2548d58f74173646b8a (commit)
via f0681695daa9d4fd493f3ca88f194675c9affbff (commit)
via 147c65bdf374e9f9250d20c2428cde8c3c18a9e7 (commit)
via 64517994807b0d6bb3c6fd106f117c03242fac72 (commit)
via 92f7d783c1038841beacaba28a5f5d740a5ccad6 (commit)
via ae0264a6474d777650d65da261732748126f0190 (commit)
via f4203b2b8830e66e5229b7f9d30cd29b088566b5 (commit)
via 6e7e1744e96abbf1a4229d5f269caf2cc921ec58 (commit)
via 7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70 (commit)
via 1933fd8ee01ad2e74a9c6341bc40f54962a8f889 (commit)
via eb026f09eb6fcb96a5de1e655cdde041ba44affb (commit)
via 50e1d299ef1d21b0833c2fe1484d3cc374e6486f (commit)
via dd47d677f0164800ceba1ab67f6cd2add0021101 (commit)
via 8038128b23576f93a56caf7779a4406a84716727 (commit)
via ec8df23454873916c6b6b918967af631b268acd8 (commit)
via 3e3e7faebe89bfab0d245040b19fd7347d186065 (commit)
via 3aa2d05a728216bbb99dbb5718be9bb36429cf41 (commit)
via 59cc050d893d1e8c75547de950a35e809588f12f (commit)
via c8f6abd10d62f82874e31959bf986606bd919d39 (commit)
via d2a03b77450dce58f6b4f9f7fdd3c346a555bcf7 (commit)
via 9d43118ee54de3fbffea27a5a10ae11ba5ee00d0 (commit)
via 535b785fb0c97220dea23a18f07baad6b5d77ae5 (commit)
via 087ea22225435ab5800e6c29671acab40dc6ca82 (commit)
via a406db9163e45ab55c3addff2ce1e61796f1bddc (commit)
via c2a79cd51ba9d0823e7efc564938611958138c03 (commit)
via b7c871edcd83ccdc5fcd8148a7f433efd6b52255 (commit)
via 0d5c69990c1992289f7b286600a43de4d5d44062 (commit)
via 21873064e835ffb16e92048482e34f19e6a415da (commit)
via 2b351b19efc8dd36ac8a8bda005c7411536b93ec (commit)
via a0a110b0dd5077373c4102d1502130eb159c366b (commit)
via 4ebcabb38ef8acfb6e26d2b40e00abfe10aea895 (commit)
via 854062337d056ffc8b805e0d5a8c1a66b99a4076 (commit)
via 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac (commit)
via 91cb9803fcf6d1c7001395d80f79120ae8e6338a (commit)
via bc4e12ded1d4c8d589d82b2a10ade6b47f219db3 (commit)
via 4070765b1a1640ff8f43483cd9ee06727f658dfe (commit)
via 8cc2a9796024f2dd472985cc8ed1c65a85ec9a35 (commit)
via 0c38a3d1942067100580e9673bcf0cbe27f3d6e8 (commit)
via d8cbc93b65ace8a36002839d5ee944efff59d643 (commit)
from dfba29cc316c649da098a49b084fbdd8ba3d84f2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 3c31c689159535ec278253668e1f59155f18da2b
Merge: 147c65b 5629862
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sun May 21 08:31:42 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 56298620acb02ab589ce3ddf398788227ab20211
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun May 21 00:00:39 2017 +0000
Automatic date update in version.in
commit b4f5b984e5e771e75cee43942e56455531a02e68
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri May 19 23:45:29 2017 -0700
binutils: remove sparc64/mips64 workaround in objcopy build notes merge code
This patch removes a workaround recently installed in objcopy that
avoided removing duplicated notes in targets for which the number of
internal relocations may be bigger than the number of external
relocations. With the recent fixes in sparc64 and mips64, this
workaround is no longer necessary.
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* objcopy.c (merge_gnu_build_notes): Remove workaround that
prevented deleting relocations in duplicated notes in mips64 and
sparc.
commit 43cc5389bc4662b31cad02a9f13358bd367d0ab3
Author: Tom Tromey <tom@tromey.com>
Date: Sun May 14 11:12:14 2017 -0600
Use watchpoint's language when re-parsing expression
PR rust/21484 notes that watch -location does not work with Rust:
(gdb) watch -location a
syntax error in expression, near `) 0x00007fffffffe0f4'.
update_watchpoint tries to tell gdb that the new expression it creates
has C syntax:
/* The above expression is in C. */
b->language = language_c;
However, update_watchpoint doesn't actually use this language when
re-parsing the expression.
Originally I was going to fix this by saving and restoring the
language in update_watchpoint, but this regressed
gdb.dlang/watch-loc.exp, because the constructed expression actually
has D syntax (specifically the name is not parseable by C).
Next I looked at directly constructing an expression, and not relying
on the parser at all; but it seemed to me that upon a re-set, we'd
want to reparse the type, and there is no existing API to do this
correctly.
So, in the end I made a hook to let each language choose what
expression to use. I made all the languages other than Rust use the C
expression, because that is the status quo ante. However, this is
probably not truly correct. After this patch, at least, it is easy to
correct by someone who knows the language(s) in question.
Regtested by the buildbot.
ChangeLog
2017-05-19 Tom Tromey <tom@tromey.com>
PR rust/21484:
* rust-lang.c (exp_descriptor_rust): New function.
(rust_language_defn): Use it.
* p-lang.c (pascal_language_defn): Update.
* opencl-lang.c (opencl_language_defn): Update.
* objc-lang.c (objc_language_defn): Update.
* m2-lang.c (m2_language_defn): Update.
* language.h (struct language_defn)
<la_watch_location_expression>: New member.
* language.c (unknown_language_defn, auto_language_defn)
(local_language_defn): Update.
* go-lang.c (go_language_defn): Update.
* f-lang.c (f_language_defn): Update.
* d-lang.c (d_language_defn): Update.
* c-lang.h (c_watch_location_expression): Declare.
* c-lang.c (c_watch_location_expression): New function.
(c_language_defn, cplus_language_defn, asm_language_defn)
(minimal_language_defn): Use it.
* breakpoint.c (watch_command_1): Call
la_watch_location_expression.
* ada-lang.c (ada_language_defn): Update.
testsuite/ChangeLog
2017-05-19 Tom Tromey <tom@tromey.com>
PR rust/21484:
* gdb.rust/watch.exp: New file.
* gdb.rust/watch.rs: New file.
commit a9dba87af1aeabffb01769004ab893173f3ef472
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat May 20 00:00:43 2017 +0000
Automatic date update in version.in
commit e5713223cbc1025f484fa2548d58f74173646b8a
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Fri May 19 15:11:31 2017 +0100
MIPS/BFD: For n64 hold the number of internal relocs in `->reloc_count'
Revert parts of commit fee24f1c5bfe ("objdump improvements for mips
elf64"), <https://sourceware.org/ml/binutils/2003-03/msg00108.html>, and
make the `->reloc_count' member of `struct bfd_section' hold the actual
number of internal relocations stored in its `->relocation' vector. To
do so adjust `mips_elf64_slurp_one_reloc_table' to set `->reloc_count'
to the actual number of internal relocations retrieved and discard
`mips_elf64_canonicalize_reloc', `mips_elf64_canonicalize_dynamic_reloc'
and their corresponding target macros. Contrary to the description of
`mips_elf64_slurp_one_reloc_table', adjusted appropriately, this makes
generic relocation processing code happy and satisfies the "merge notes
section" binutils test case.
Add extra binutils test cases to expand the coverage of the generic
"merge notes section" test case, now passing with the n64 ABI, across
the MIPS o32, n32 and n64 ABIs regardless of the default ABI selected in
target configuration, and also to verify correctness of the relocations
produced. Conversely, do not provide any additional test cases for the
original issue addressed with the commit referred:
- objdump would display only 1/3 of the total number of relocations,
because it used the external relocation count, but each external
relocation is brought in as 3 internal relocations.
as n64 ABI relocation processing with `objdump -r' and `objdump -R' is
already widely covered across the GAS and LD test suites.
bfd/
* elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype
and function.
(mips_elf64_canonicalize_dynamic_reloc): Likewise.
(mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the
actual number of internal relocations retrieved. Adjust
function description.
(bfd_elf64_canonicalize_reloc): Remove macro.
(bfd_elf64_canonicalize_dynamic_reloc): Likewise.
binutils/
* testsuite/binutils-all/mips/mips-note-2.d: New test.
* testsuite/binutils-all/mips/mips-note-2r.d: New test.
* testsuite/binutils-all/mips/mips-note-2-n32.d: New test.
* testsuite/binutils-all/mips/mips-note-2-n64.d: New test.
* testsuite/binutils-all/mips/mips-note-2r-n32.d: New test.
* testsuite/binutils-all/mips/mips-note-2r-n64.d: New test.
* testsuite/binutils-all/mips/mips.exp: Define `has_newabi'.
Run the new tests.
commit f0681695daa9d4fd493f3ca88f194675c9affbff
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Fri May 19 15:08:16 2017 +0100
binutils/testsuite: Permit the reuse of dump patterns
Complement commit 89210bdc8fd2 ("GAS: Permit the reuse of dump
patterns"), <https://sourceware.org/ml/binutils/2010-07/msg00269.html>,
and commit ef2b5578f693 ("MIPS: Enable NewABI tests for SDE targets"),
<https://sourceware.org/ml/binutils/2012-08/msg00017.html>, and like the
GAS and LD versions make the binutils version of `run_dump_test' also
support the `dump' keyword, for reusing dump patterns between tests.
binutils/
* testsuite/lib/utils-lib.exp (run_dump_test): Handle the `dump'
option.
commit 147c65bdf374e9f9250d20c2428cde8c3c18a9e7
Merge: c2a79cd 6451799
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri May 19 22:25:35 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 64517994807b0d6bb3c6fd106f117c03242fac72
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri May 19 09:27:08 2017 -0700
binutils: support for the SPARC M8 processor
This patch adds support for the new SPARC M8 processor (implementing OSA
2017) to binutils.
New instructions:
- Dictionary Unpack
+ dictunpack
- Partitioned Compare with shifted result
+ Signed variants: fpcmp{le,gt,eq,ne}{8,16,32}shl
+ Unsigned variants: fpcmpu{le,gt}{8,16,32}shl
- Partitioned Dual-Equal compared, with shifted result
+ fpcmpde{8,16,32}shl
- Partitioned Unsigned Range Compare, with shifted result
+ fpcmpur{8,16,32}shl
- 64-bit shifts on Floating-Point registers
+ fps{ll,ra,rl}64x
- Misaligned loads and stores
+ ldm{sh,uh,sw,uw,x,ux}
+ ldm{sh,uh,sw,uw,x,ux}a
+ ldmf{s,d}
+ ldmf{s,d}a
+ stm{h,w,x}
+ stm{h,w,x}a
+ stmf{s,d}
+ stmf{s,d}a
- Oracle Numbers
+ on{add,sub,mul,div}
- Reverse Bytes/Bits
+ revbitsb
+ revbytes{h,w,x}
- Run-Length instructions
+ rle_burst
+ rle_length
- New crypto instructions
+ sha3
- Instruction to read the new register %entropy
+ rd %entropy
New Alternate Address Identifiers:
- 0x24, #ASI_CORE_COMMIT_COUNT
- 0x24, #ASI_CORE_SELECT_COUNT
- 0x48, #ASI_ARF_ECC_REG
- 0x53, #ASI_ITLB_PROBE
- 0x58, #ASI_DSFAR
- 0x5a, #ASI_DTLB_PROBE_PRIMARY
- 0x5b, #ASI_DTLB_PROBE_REAL
- 0x64, #ASI_CORE_SELECT_COMMIT_NHT
The new assembler command-line options for selecting the M8 architecture
are:
-Av9m8 or -Asparc6 for 64-bit binaries.
-Av8plusm8 for 32-bit (v8+) binaries.
The corresponding disassembler command-line options are:
-msparc:v9m8 for 64-bit binaries.
-msparc:v8plusm8 for 32-bit (v8+) binaries.
Tested for regressions in the following targets:
sparc-aout sparc-linux sparc-vxworks sparc64-linux
bfd/ChangeLog:
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* archures.c (bfd_mach_sparc_v9m8): Define.
(bfd_mach_sparc_v8plusm8): Likewise.
(bfd_mach_sparc_v9_p): Adjust to M8.
(bfd_mach_sparc_64bit_p): Likewise.
* aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and
bfd_mach_sparc_v8plusm8.
* bfd-in2.h: Regenerated.
* cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and
sparc:v8plusm8.
* elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle
bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw
capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and
SHA3.
* elf32-sparc.c (elf32_sparc_final_write_processing): Handle
bfd_mach_sparc_v8plusm8.
binutils/ChangeLog:
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* NEWS: Mention the SPARC M8 support.
gas/ChangeLog:
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (sparc_arch_table): Entries for `sparc6',
`v9m8' and `v8plusm8'.
(sparc_md_end): Handle SPARC_OPCODE_ARCH_M8.
(get_hwcap_name): Support the M8 hardware capabilities.
(sparc_ip): Handle new operand types.
* doc/c-sparc.texi (Sparc-Opts): Document -Av9m8, -Av8plusm8 and
-Asparc6, and the corresponding -xarch aliases.
* testsuite/gas/sparc/sparc6.s: New file.
* testsuite/gas/sparc/sparc6.d: Likewise.
* testsuite/gas/sparc/sparc6-diag.s: Likewise.
* testsuite/gas/sparc/sparc6-diag.l: Likewise.
* testsuite/gas/sparc/fpcmpshl.s: Likewise.
* testsuite/gas/sparc/fpcmpshl.d: Likewise.
* testsuite/gas/sparc/fpcmpshl-diag.s: Likewise.
* testsuite/gas/sparc/fpcmpshl-diag.l: Likewise.
* testsuite/gas/sparc/ldm-stm.s: Likewise.
* testsuite/gas/sparc/ldm-stm.d: Likewise.
* testsuite/gas/sparc/ldm-stm-diag.s: Likewise.
* testsuite/gas/sparc/ldm-stm-diag.l: Likewise.
* testsuite/gas/sparc/ldmf-stmf.s: Likewise.
* testsuite/gas/sparc/ldmf-stmf.d: Likewise.
* testsuite/gas/sparc/ldmf-stmf-diag.s: Likewise.
* testsuite/gas/sparc/ldmf-stmf-diag.l: Likewise.
* testsuite/gas/sparc/on.s: Likewise.
* testsuite/gas/sparc/on.d: Likewise.
* testsuite/gas/sparc/on-diag.s: Likewise.
* testsuite/gas/sparc/on-diag.l: Likewise.
* testsuite/gas/sparc/rle.s: Likewise.
* testsuite/gas/sparc/rle.d: Likewise.
* testsuite/gas/sparc/sparc.exp (gas_64_check): Run new tests.
* testsuite/gas/sparc/rdasr.s: Add test for RDENTROPY.
* testsuite/gas/sparc/rdasr.d: Likewise.
include/ChangeLog:
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* elf/sparc.h (ELF_SPARC_HWCAP2_SPARC6): Define.
(ELF_SPARC_HWCAP2_ONADDSUB): Likewise.
(ELF_SPARC_HWCAP2_ONMUL): Likewise.
(ELF_SPARC_HWCAP2_ONDIV): Likewise.
(ELF_SPARC_HWCAP2_DICTUNP): Likewise.
(ELF_SPARC_HWCAP2_FPCMPSHL): Likewise.
(ELF_SPARC_HWCAP2_RLE): Likewise.
(ELF_SPARC_HWCAP2_SHA3): Likewise.
* opcode/sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_M8
and adjust SPARC_OPCODE_ARCH_MAX.
(HWCAP2_SPARC6): Define.
(HWCAP2_ONADDSUB): Likewise.
(HWCAP2_ONMUL): Likewise.
(HWCAP2_ONDIV): Likewise.
(HWCAP2_DICTUNP): Likewise.
(HWCAP2_FPCMPSHL): Likewise.
(HWCAP2_RLE): Likewise.
(HWCAP2_SHA3): Likewise.
(OPM): Likewise.
(OPMI): Likewise.
(ONFCN): Likewise.
(REVFCN): Likewise.
(SIMM10): Likewise.
opcodes/ChangeLog:
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-dis.c (MASK_V9): Include SPARC_OPCODE_ARCH_M8.
(X_IMM2): Define.
(compute_arch_mask): Handle bfd_mach_sparc_v8plusm8 and
bfd_mach_sparc_v9m8.
(print_insn_sparc): Handle new operand types.
* sparc-opc.c (MASK_M8): Define.
(v6): Add MASK_M8.
(v6notlet): Likewise.
(v7): Likewise.
(v8): Likewise.
(v9): Likewise.
(v9a): Likewise.
(v9b): Likewise.
(v9c): Likewise.
(v9d): Likewise.
(v9e): Likewise.
(v9v): Likewise.
(v9m): Likewise.
(v9andleon): Likewise.
(m8): Define.
(HWS_VM8): Define.
(HWS2_VM8): Likewise.
(sparc_opcode_archs): Add entry for "m8".
(sparc_opcodes): Add OSA2017 and M8 instructions
dictunpack, fpcmp{ule,ugt,eq,ne,de,ur}{8,16,32}shl,
fpx{ll,ra,rl}64x,
ldm{sh,uh,sw,uw,x,ux}, ldm{sh,uh,sw,uw,x,ux}a, ldmf{s,d},
ldmf{s,d}a, on{add,sub,mul,div}, rdentropy, revbitsb,
revbytes{h,w,x}, rle_burst, rle_length, sha3, stm{h,w,x},
stm{h,w,x}a, stmf{s,d}, stmf{s,d}a.
(asi_table): New M8 ASIs ASI_CORE_COMMIT_COUNT,
ASI_CORE_SELECT_COUNT, ASI_ARF_ECC_REG, ASI_ITLB_PROBE, ASI_DSFAR,
ASI_DTLB_PROBE_PRIMARY, ASI_DTLB_PROBE_REAL,
ASI_CORE_SELECT_COMMIT_NHT.
commit 92f7d783c1038841beacaba28a5f5d740a5ccad6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 19 08:36:06 2017 -0700
x86: Add GC testcases with property sections
Verify that debug section is removed by garbage collection when there
is a .note.gnu.property section.
* testsuite/ld-i386/i386.exp: Run property-x86-4a and
property-x86-4b.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/property-x86-4a.d: New file.
* testsuite/ld-i386/property-x86-4a.s: Likewise.
* testsuite/ld-i386/property-x86-4b.d: Likewise.
* testsuite/ld-i386/property-x86-4b.s: Likewise.
* testsuite/ld-x86-64/property-x86-4a.d: Likewise.
* testsuite/ld-x86-64/property-x86-4a.s: Likewise.
* testsuite/ld-x86-64/property-x86-4b.d: Likewise.
* testsuite/ld-x86-64/property-x86-4b.s: Likewise.
commit ae0264a6474d777650d65da261732748126f0190
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri May 19 06:59:41 2017 -0700
gas: fix tests call-relax and asi-bump-warn in 32-bit SPARC ELF targets
Tested in targets:
sparc-aout sparc-linux sparc-vxworks sparc64-linux
2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
* testsuite/gas/sparc/call-relax.d: Support 32-bit targets.
* testsuite/gas/sparc/sparc.exp (gas_64_check): Use -64 to
run asi-bump-warn.
commit f4203b2b8830e66e5229b7f9d30cd29b088566b5
Author: eorg-Johann Lay <avr@gjlay.de>
Date: Fri May 19 15:06:33 2017 +0100
Update avrxmega3 linker emulation to support avrxmega2 devices with flash memory visible in the SRAM address range.
PR ld/21472
ld * emulparams/avrxmega3.sh (RODATA_PM_OFFSET): Set to 0x8000.
* scripttempl/avr.sc
(__RODATA_PM_OFFSET__) [RODATA_PM_OFFSET]: Use RODATA_PM_OFFSET
as default if not already defined.
(.data) [!RODATA_PM_OFFSET]: Don't include .rodata and friends.
(.rodata) [RODATA_PM_OFFSET]: Put at an offset of
__RODATA_PM_OFFSET__.
gas * config/tc-avr.c (mcu_types): Add entries for: attiny416,
attiny417, attiny816, attiny817.
commit 6e7e1744e96abbf1a4229d5f269caf2cc921ec58
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date: Fri May 19 15:08:45 2017 +0200
Fix tui compilation with Solaris libcurses: clear define (PR tui/21482)
On both mainline and the 8.0 branch, gdb compilation fails on Solaris 10
with the native libcurses like this:
In file included from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/gdb_curses.h:42:
0,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-data.h:2
6,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c
:31:
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c: In function `CORE_A
DDR tui_disassemble(gdbarch*, tui_asm_line*, CORE_ADDR, int)':
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c:71:19: error: `class
string_file' has no member named `wclear'; did you mean `clear'?
gdb_dis_out.clear ();
^
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-disasm.c:78:19: error: `class
string_file' has no member named `wclear'; did you mean `clear'?
gdb_dis_out.clear ();
^
make[2]: *** [Makefile:1927: tui-disasm.o] Error 1
It turned out this happens because <curses.h> has
#define clear() wclear(stdscr)
This can be avoided by defining NOMACROS, which the patch below does.
ncurses potentially has a similar problem, which can be avoided by defining
NCURSES_NOMACROS.
PR tui/21482
* gdb_curses.h (NOMACROS): Define.
(NCURSES_NOMACROS): Define.
commit 7a6e7fcc77997bf7679cce4f1cfebcd57ba8af70
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date: Fri May 19 14:16:55 2017 +0200
Fix tui compilation with Solaris libcurses: non-const last arg to mvwaddstr (PR tui/21482)
On both mainline and the 8.0 branch, gdb compilation fails on Solaris 10
with the native libcurses in gdb/tui for several instances of the same problem:
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c: In function `void tui_erase_source_content(tui_win_info*, int)':
/vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:257:18: error: invalid conversion from `const char*' to `char*' [-fpermissive]
no_src_str);
^
In file included from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/gdb_curses.h:42:0,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-data.h:26,
from /vol/src/gnu/gdb/gdb-8.0-branch/local/gdb/tui/tui-winsource.c:33:
/vol/gcc-7/lib/gcc/sparc-sun-solaris2.10/7.1.0/include-fixed/curses.h:699:12: note: initializing argument 4 of `int mvwaddstr(WINDOW*, int, int, char*)'
extern int mvwaddstr(WINDOW *, int, int, char *);
^~~~~~~~~
make[2]: *** [Makefile:1927: tui-winsource.o] Error 1
Unlike ncurses, <curses.h> declares
extern int mvwaddstr(WINDOW *, int, int, char *);
i.e. the last arg is char *, not const char *.
The patch fixes this by casting the last arg to mvwaddstr to char *,
as was recently done on mainline in a newterm() call (the only
difference between 8.0 and mainline gdb/tui).
* tui/tui-windata.c (tui_erase_data_content): Cast last mvwaddstr
arg to char *.
* tui/tui-wingeneral.c (box_win): Likewise.
* tui/tui-winsource.c (tui_erase_source_content): Likewise.
(tui_show_source_line): Likewise.
(tui_show_exec_info_content): Likewise.
commit 1933fd8ee01ad2e74a9c6341bc40f54962a8f889
Author: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
Date: Fri May 19 03:06:19 2017 -0700
gdb: fix TYPE_CODE_ARRAY handling in sparc targets
gdb has a special type (TYPE_CODE_ARRAY) to support the gcc extension
(https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html).
TYPE_CODE_ARRAY is handled incorrectly for both (32- and 64-bit) modes
on Sparc machines.
Tested on sparc64-linux-gnu and sparc-solaris (32- and 64-bit mode).
6 tests ( from gdb/testsuite/gdb.base/gnu_vector.exp) failed on
sparc64-Linux and on sparc-Solaris in 32- and 64-bit mode. Now all
these tests passed. gdb/testsuite/gdb.base/gnu_vector.exp has 117
different cases for small (and not small) arrays and structures.
No regressions.
gdb/ChangeLog:
2017-05-19 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
* sparc-tdep.c (sparc_structure_return_p)
(sparc_arg_on_registers_p): New functions.
(sparc32_store_arguments): Use them.
* sparc64-tdep.c (sparc64_16_byte_align_p)
(sparc64_store_floating_fields, sparc64_extract_floating_fields):
Handle TYPE_CODE_ARRAY.
commit eb026f09eb6fcb96a5de1e655cdde041ba44affb
Author: Alan Modra <amodra@gmail.com>
Date: Fri May 19 12:40:10 2017 +0930
garbage collect debug sections when no alloc sections are kept
The pr20882 testcase fails on a number of targets that add attribute
or note sections to object files, and the default linker script says
those sections should be kept. This patch changes --gc-sections to
drop debug and special sections like .comment when no SEC_ALLOC
section in an object file is kept. The assumption is that debug
sections are describing code and data that will become part of the
final image in memory.
* elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep
debug and special sections when no non-note alloc sections in an
object are kept.
commit 50e1d299ef1d21b0833c2fe1484d3cc374e6486f
Author: Eli Zaretskii <eliz@gnu.org>
Date: Fri May 19 11:05:59 2017 +0300
Avoid MinGW compilation warning in readline/input.c
This change was already accepted upstream in Readline.
readline/ChangeLog.gdb:
2017-05-19 Eli Zaretskii <eliz@gnu.org>
* input.c [_WIN32]: Include <conio.h> to avoid compiler warning on
MinGW.
commit dd47d677f0164800ceba1ab67f6cd2add0021101
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Fri May 19 07:53:21 2017 +0100
MIPS/binutils/testsuite: Bail out right away if !ELF
We have but ELF binutils tests in the MIPS subset, and non-ELF MIPS/GAS
ports are gone, making a future addition of any non-ELF tests unlikely.
Bail out right away then if non-ELF, consuming one level of indentation
across the actual tests run.
binutils/
* testsuite/binutils-all/mips/mips.exp: Bail out right away if
non-ELF.
commit 8038128b23576f93a56caf7779a4406a84716727
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri May 19 00:00:39 2017 +0000
Automatic date update in version.in
commit ec8df23454873916c6b6b918967af631b268acd8
Author: Tom Tromey <tom@tromey.com>
Date: Thu May 18 17:31:41 2017 -0600
Fix test failure with Rust 1.18 and 1.19
With Rust 1.18 and 1.19, I saw some test suite failures. They were
all of the same form -- Box seems to be qualified in the output now,
like:
print box_some
$64 = core::option::Option<alloc::boxed::Box<u8>>::Some(0x7ffff6c21018 "\001\000")
... where the test was expecting Option<Box<u8>>.
This patch fixes the problem in a way that should work with earlier
versions of Rust.
gdb/testsuite/ChangeLog
2017-05-18 Tom Tromey <tom@tromey.com>
* gdb.rust/simple.exp: Allow Box to be qualified.
commit 3e3e7faebe89bfab0d245040b19fd7347d186065
Author: Thomas Preud'homme <thomas.preudhomme@arm.com>
Date: Thu May 18 16:31:40 2017 +0100
Expect prompt after no FPU warning
2017-05-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
gdb/testsuite/
* gdb.base/float.exp: Expect GDB prompt for targets without FPU.
commit 3aa2d05a728216bbb99dbb5718be9bb36429cf41
Author: Nick Clifton <nickc@redhat.com>
Date: Thu May 18 15:07:59 2017 +0100
Treat a prefix of "$SYSROOT" in the same way as "=" when parsing linker search paths.
PR ld/21251
* ldfile.c (ldfile_add_library_path): If the path starts with
$SYSROOT then use the sysroot as the real prefix.
* ldlang.c (lang_add_input_file): Treat $SYSROOT in the same
way as =.
* ldlex.l: Add $SYSROOT as allow prefix for a filename.
* ld.texinfo (-L): Document that $SYSROOT acts like = when
prefixing a library search path.
(INPUT): Likewise.
* testsuite/ld-scripts/sysroot-prefix.exp: Add $SYSROOT prefix
tests.
commit 59cc050d893d1e8c75547de950a35e809588f12f
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 18 11:40:08 2017 +0100
gdb.base/fileio.c: Fix several -Wmaybe-uninitialized warnings
src/gdb/testsuite/gdb.base/fileio.c: In function âtest_writeâ:
src/gdb/testsuite/gdb.base/fileio.c:158:5: warning: âretâ may be used uninitialized in this function [-Wmaybe-uninitialized]
printf ("write 1: ret = %d, errno = %d\n", ret, errno);
^
gdb/ChangeLog:
2017-05-18 Pedro Alves <palves@redhat.com>
* gdb.base/fileio.c (test_write, test_read, test_close)
(test_fstat): Don't print 'ret' in the fail path.
commit c8f6abd10d62f82874e31959bf986606bd919d39
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 18 11:37:55 2017 +0100
gdb.base/fileio.c: Fix several -Wreturn-type warnings
All the "test_" functions warn like:
src/gdb/testsuite/gdb.base/fileio.c: In function âtest_closeâ:
src/gdb/testsuite/gdb.base/fileio.c:280:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Nothing looks at the return of these functions, so just make them
return void. While at it, "()" is not the same as "(void)" in C - fix
that too.
gdb/ChangeLog:
2017-05-18 Pedro Alves <palves@redhat.com>
* gdb.base/fileio.c (stop, test_open, test_write, test_read)
(test_lseek, test_close, test_stat, test_fstat, test_isatty)
(test_system, test_rename, test_unlink, test_time): Change
prototypes.
* gdb.base/fileio.exp (stop_msg): Adjust.
commit d2a03b77450dce58f6b4f9f7fdd3c346a555bcf7
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 18 11:47:05 2017 +0100
gdb.base/fileio.exp: Remove nowarnings
... and quiet -Wnonnull in a different way.
gdb/testsuite/ChangeLog:
2017-05-18 Pedro Alves <palves@redhat.com>
* gdb.base/fileio.c (null_str): New global.
(test_stat): Use it.
* gdb.base/fileio.exp: Remove nowarnings.
commit 9d43118ee54de3fbffea27a5a10ae11ba5ee00d0
Author: Alan Modra <amodra@gmail.com>
Date: Thu May 18 16:51:48 2017 +0930
fix changelog typo
commit 535b785fb0c97220dea23a18f07baad6b5d77ae5
Author: Alan Modra <amodra@gmail.com>
Date: Thu May 18 14:47:40 2017 +0930
Don't compare boolean values against TRUE or FALSE
bfd/
* arc-got.h: Don't compare boolean values against TRUE or FALSE.
* elf-m10300.c: Likewise.
* elf.c: Likewise.
* elf32-arc.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-nds32.c: Likewise.
* elf32-tilepro.c: Likewise.
* elflink.c: Likewise.
* elfnn-aarch64.c: Likewise.
* elfnn-riscv.c: Likewise.
* elfxx-tilegx.c: Likewise.
* mach-o.c: Likewise.
* peXXigen.c: Likewise.
* vms-alpha.c: Likewise.
* vms-lib.c: Likewise.
opcodes/
* aarch64-asm.c: Don't compare boolean values against TRUE or FALSE.
* aarch64-dis.c: Likewise.
* aarch64-gen.c: Likewise.
* aarch64-opc.c: Likewise.
binutils/
* strings.c: Don't compare boolean values against TRUE or FALSE.
gas/
* config/tc-aarch64.c: Don't compare booleans against TRUE or FALSE.
* config/tc-hppa.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-score7.c: Likewise.
ld/
* emultempl/elf32.em: Don't compare boolean values against TRUE or FALSE.
* emultempl/pe.em: Likewise.
* emultempl/pep.em: Likewise.
* emultempl/xtensaelf.em: Likewise.
commit 087ea22225435ab5800e6c29671acab40dc6ca82
Author: Alan Modra <amodra@gmail.com>
Date: Thu May 18 14:28:17 2017 +0930
pr20882 testcase
-gdwarf-sections doesn't work on targets that lack support to emit
address size relative relocs. The testcase as it was avoided
-gdwarf-sections doing anything by providing a non-empty .debug_line.
It's better to not use -gdwarf-sections. Also, the testcase failed
to match the output for 16-bit address targets like avr.
PR ld/20882
* testsuite/ld-gc/pr20882.d: Don't pass -gdwarf-sections to gas.
Allow for 16-bit address targets and match expected data fully.
* testsuite/ld-gc/pr20882a.s: Delete .debug_line section.
* testsuite/ld-gc/pr20882b.s: Likewise.
* testsuite/ld-gc/pr20882c.s: Likewise.
commit a406db9163e45ab55c3addff2ce1e61796f1bddc
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu May 18 00:00:47 2017 +0000
Automatic date update in version.in
commit c2a79cd51ba9d0823e7efc564938611958138c03
Merge: dfba29c b7c871e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed May 17 18:48:12 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit b7c871edcd83ccdc5fcd8148a7f433efd6b52255
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 17 07:57:15 2017 -0700
Mark debug sections referenced by kept debug sections
If a debug section is referenced by a kept debug section, it should
also be kept.
Some targets, like mips, keep input files when there are some special
sections, like .gnu.attributes, even if input file is unused otherwise.
In this case, all debug sections are kept. The new test will fail on
such targets. We can either fix those targets or XFAIL the test.
bfd/
PR ld/20882
* elflink.c (elf_gc_mark_debug_section): New function.
(_bfd_elf_gc_mark_extra_sections): Mark any debug sections
referenced by kept debug sections.
ld/
PR ld/20882
* testsuite/ld-gc/gc.exp: Run pr20882.
* testsuite/ld-gc/pr20882.d: New file.
* testsuite/ld-gc/pr20882a.s: Likewise.
* testsuite/ld-gc/pr20882b.s: Likewise.
* testsuite/ld-gc/pr20882c.s: Likewise.
commit 0d5c69990c1992289f7b286600a43de4d5d44062
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 17 14:46:17 2017 +0100
Add nowarnings in gdb.base/fileio.exp
I see the following warning in gdb.base/fileio.c,
testsuite/gdb.base/fileio.c:297:3: warning: null argument where non-null required (argument 1) [-Wnonnull]
ret = stat (NULL, &st);
^
This patch adds "nowarnings" to the list passed to gdb_compile.
gdb/testsuite:
2017-05-17 Yao Qi <yao.qi@linaro.org>
* gdb.base/fileio.exp: Pass nowarnings to gdb_compile.
commit 21873064e835ffb16e92048482e34f19e6a415da
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed May 17 14:22:04 2017 +0100
Add alias command to cmd_list_element
When we add alias command, we call add_alias_cmd and pass the alias name
and command name. This implicitly requires the command and its prefix
commands are already added to cmdlist. This may not be true, for example,
add_com_alias ("tty", "set inferior-tty", class_alias, 0);
"inferior-tty" command is added to setlist, but setlist may not be added
to cmdlist (It depends on the order of related _initialize_XXX functions
called) so that we can't find "set inferior-tty" from cmdlist.
This patch fixes this problem by passing cmd_list_element of "inferior-tty"
to add_alias_cmd, so that cmd_list_element of "inferior-tty" doesn't have
to be reachable from cmdlist at that moment.
gdb:
2017-05-17 Yao Qi <yao.qi@linaro.org>
* cli/cli-decode.c (add_alias_cmd): New function.
* command.h (add_alias_cmd): Declare.
* infcmd.c (_initialize_infcmd): Don't call add_com_alias,
instead call add_alias_cmd.
gdb/testsuite:
2017-05-17 Simon Marchi <simon.marchi@ericsson.com>
* gdb.base/set-inferior-tty.exp (test_set_inferior_tty): Add
argument command.
(top-level): Invoke test_set_inferior_tty.
commit 2b351b19efc8dd36ac8a8bda005c7411536b93ec
Author: Pedro Alves <palves@redhat.com>
Date: Wed May 17 13:56:19 2017 +0100
nat_extra_makefile_frag -> nat_makefile_frag
gdb/ChangeLog:
2017-05-17 Pedro Alves <palves@redhat.com>
* Makefile.in (nat_extra_makefile_frag): Rename to ...
(nat_makefile_frag): ... this. All references updated.
* configure.ac: Likewise.
* configure.nat: Likewise. Enhance comments.
* configure: Regenerate.
commit a0a110b0dd5077373c4102d1502130eb159c366b
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Wed May 17 12:39:39 2017 +0200
S/390: Fix arch level of pckmo instruction.
Fix wrong architecture level of PCKMO instruction.
Committed to mainline.
opcodes/ChangeLog:
2017-05-17 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* s390-opc.txt: PCKMO change arch level to z196.
gas/ChangeLog:
2017-05-17 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* testsuite/gas/s390/zarch-z10.d: Remove pckmo.
* testsuite/gas/s390/zarch-z10.s: Remove pckmo.
* testsuite/gas/s390/zarch-z196.d: Add pckmo.
* testsuite/gas/s390/zarch-z196.s: Add pckmo.
commit 4ebcabb38ef8acfb6e26d2b40e00abfe10aea895
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 17 00:00:53 2017 +0000
Automatic date update in version.in
commit 854062337d056ffc8b805e0d5a8c1a66b99a4076
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 16 09:09:20 2017 -0700
Fix commit 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac
commit 0a7d38897b9fb1ec7a064ca3347cbac3ba49e5ac
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 16 08:52:01 2017 -0700
Run PR ld/21481 tests only if IFUNC is supported
PR ld/21481
* testsuite/ld-x86-64/x86-64.exp: Run PR ld/21481 tests only
if IFUNC is supported by run-time.
commit 91cb9803fcf6d1c7001395d80f79120ae8e6338a
Author: Alan Modra <amodra@gmail.com>
Date: Tue May 16 08:43:24 2017 +0930
Allow target files access to default TC_FORCE_RELOCATION defines
* write.c (GENERIC_FORCE_RELOCATION_LOCAL): Define.
(TC_FORCE_RELOCATION_LOCAL): Use it.
(GENERIC_FORCE_RELOCATION_SUB_SAME): Define.
(TC_FORCE_RELOCATION_SUB_SAME): Use it.
* config/tc-arm.h (TC_FORCE_RELOCATION_LOCAL,
TC_FORCE_RELOCATION_SUB_SAME): Use GENERIC defines.
* config/tc-aarch64.h: Similarly.
* config/tc-avr.h: Similarly.
* config/tc-cris.h: Similarly.
* config/tc-i386.h: Similarly.
* config/tc-i960.h: Similarly.
* config/tc-ia64.h: Similarly.
* config/tc-microblaze.h: Similarly.
* config/tc-mips.h: Similarly.
* config/tc-msp430.h: Similarly.
* config/tc-nds32.h: Similarly.
* config/tc-pru.h: Similarly.
* config/tc-riscv.h: Similarly.
* config/tc-rl78.h: Similarly.
* config/tc-s390.h: Similarly.
* config/tc-sh.h: Similarly.
* config/tc-sh64.h: Similarly.
* config/tc-sparc.h: Similarly.
* config/tc-xtensa.h: Similarly.
* config/tc-mn10300.h: Similarly.
(GENERIC_FORCE_RELOCATION_LOCAL): Define.
* config/tc-msp430.c (msp430_force_relocation_local): Modify to
be addition to rather than replacement of standard
TC_FORCE_RELOCATION_LOCAL.
commit bc4e12ded1d4c8d589d82b2a10ade6b47f219db3
Author: Alan Modra <amodra@gmail.com>
Date: Tue May 16 07:58:14 2017 +0930
Rename non_ir_ref to non_ir_ref_regular
Since the flag is now set only for regular object refs.
include/
* bfdlink.h (struct bfd_link_hash_entry <non_ir_ref>): Rename to
non_ir_ref_regular.
bfd/
* elf-m10300.c: Rename occurrences of non_ir_ref.
* elf32-arm.c: Likewise.
* elf32-bfin.c: Likewise.
* elf32-cr16.c: Likewise.
* elf32-cris.c: Likewise.
* elf32-d10v.c: Likewise.
* elf32-dlx.c: Likewise.
* elf32-fr30.c: Likewise.
* elf32-frv.c: Likewise.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf32-i386.c: Likewise.
* elf32-iq2000.c: Likewise.
* elf32-lm32.c: Likewise.
* elf32-m32c.c: Likewise.
* elf32-m32r.c: Likewise.
* elf32-m68hc1x.c: Likewise.
* elf32-m68k.c: Likewise.
* elf32-mcore.c: Likewise.
* elf32-metag.c: Likewise.
* elf32-microblaze.c: Likewise.
* elf32-moxie.c: Likewise.
* elf32-msp430.c: Likewise.
* elf32-mt.c: Likewise.
* elf32-nios2.c: Likewise.
* elf32-or1k.c: Likewise.
* elf32-ppc.c: Likewise.
* elf32-rl78.c: Likewise.
* elf32-s390.c: Likewise.
* elf32-score.c: Likewise.
* elf32-score7.c: Likewise.
* elf32-sh.c: Likewise.
* elf32-tic6x.c: Likewise.
* elf32-tilepro.c: Likewise.
* elf32-v850.c: Likewise.
* elf32-vax.c: Likewise.
* elf32-xstormy16.c: Likewise.
* elf32-xtensa.c: Likewise.
* elf64-alpha.c: Likewise.
* elf64-hppa.c: Likewise.
* elf64-ia64-vms.c: Likewise.
* elf64-mmix.c: Likewise.
* elf64-ppc.c: Likewise.
* elf64-s390.c: Likewise.
* elf64-sh64.c: Likewise.
* elf64-x86-64.c: Likewise.
* elflink.c: Likewise.
* elfnn-aarch64.c: Likewise.
* elfnn-ia64.c: Likewise.
* elfnn-riscv.c: Likewise.
* elfxx-mips.c: Likewise.
* elfxx-sparc.c: Likewise.
* elfxx-tilegx.c: Likewise.
* linker.c: Likewise.
ld/
* plugin.c: Rename occurrences of non_ir_ref.
commit 4070765b1a1640ff8f43483cd9ee06727f658dfe
Author: Alan Modra <amodra@gmail.com>
Date: Tue May 16 07:56:41 2017 +0930
non_ir_ref_dynamic
dynamic_ref_after_ir_def is a little odd compared to other symbol
flags in that as the name suggests, it is set only for certain
references after a definition. It turns out that setting a flag for
any non-ir reference from a dynamic object can be used to solve the
problem for which this flag was invented, which I think is a cleaner.
This patch does that, and sets non_ir_ref only for regular object
references.
include/
* bfdlink.h (struct bfd_link_hash_entry): Update non_ir_ref
comment. Rename dynamic_ref_after_ir_def to non_ir_ref_dynamic.
ld/
* plugin.c (is_visible_from_outside): Use non_ir_ref_dynamic.
(plugin_notice): Set non_ir_ref for references from regular
objects, non_ir_ref_dynamic for references from dynamic objects.
bfd/
* elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic.
* elflink.c (elf_link_add_object_symbols): Update to use
non_ir_ref_dynamic.
(elf_link_input_bfd): Test non_ir_ref_dynamic in addition to
non_ir_ref.
* linker.c (_bfd_generic_link_add_one_symbol): Likewise.
commit 8cc2a9796024f2dd472985cc8ed1c65a85ec9a35
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 16 00:00:31 2017 +0000
Automatic date update in version.in
commit 0c38a3d1942067100580e9673bcf0cbe27f3d6e8
Author: Eric Christopher <echristo@gmail.com>
Date: Mon May 15 15:59:52 2017 -0700
2017-05-15 Eric Christopher <echristo@gmail.com>
* layout.cc (Layout::segment_precedes): Add a case for testing
pointer equality when determining which segment precedes
another.
commit d8cbc93b65ace8a36002839d5ee944efff59d643
Author: Jeff Law <law@redhat.com>
Date: Mon May 15 10:48:41 2017 -0600
2017-05-15 Jeff Law <law@redhat.com>
* readelf.c (display_arc_attribute): Avoid implicit fallthru.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 127 ++++++++++++
bfd/aoutx.h | 4 +-
bfd/arc-got.h | 6 +-
bfd/archures.c | 7 +-
bfd/bfd-in2.h | 7 +-
bfd/cpu-sparc.c | 30 +++
bfd/elf-m10300.c | 4 +-
bfd/elf.c | 2 +-
bfd/elf32-arc.c | 22 +-
bfd/elf32-arm.c | 2 +-
bfd/elf32-bfin.c | 6 +-
bfd/elf32-cr16.c | 2 +-
bfd/elf32-cris.c | 2 +-
bfd/elf32-d10v.c | 2 +-
bfd/elf32-dlx.c | 2 +-
bfd/elf32-fr30.c | 2 +-
bfd/elf32-frv.c | 2 +-
bfd/elf32-hppa.c | 2 +-
bfd/elf32-i370.c | 2 +-
bfd/elf32-i386.c | 2 +-
bfd/elf32-iq2000.c | 2 +-
bfd/elf32-lm32.c | 2 +-
bfd/elf32-m32c.c | 2 +-
bfd/elf32-m32r.c | 2 +-
bfd/elf32-m68hc1x.c | 2 +-
bfd/elf32-m68k.c | 4 +-
bfd/elf32-mcore.c | 2 +-
bfd/elf32-metag.c | 2 +-
bfd/elf32-microblaze.c | 2 +-
bfd/elf32-moxie.c | 2 +-
bfd/elf32-msp430.c | 2 +-
bfd/elf32-mt.c | 2 +-
bfd/elf32-nds32.c | 8 +-
bfd/elf32-nios2.c | 2 +-
bfd/elf32-or1k.c | 2 +-
bfd/elf32-ppc.c | 2 +-
bfd/elf32-rl78.c | 2 +-
bfd/elf32-s390.c | 2 +-
bfd/elf32-score.c | 2 +-
bfd/elf32-score7.c | 2 +-
bfd/elf32-sh.c | 2 +-
bfd/elf32-sparc.c | 1 +
bfd/elf32-tic6x.c | 2 +-
bfd/elf32-tilepro.c | 4 +-
bfd/elf32-v850.c | 2 +-
bfd/elf32-vax.c | 2 +-
bfd/elf32-xstormy16.c | 2 +-
bfd/elf32-xtensa.c | 2 +-
bfd/elf64-alpha.c | 2 +-
bfd/elf64-hppa.c | 2 +-
bfd/elf64-ia64-vms.c | 2 +-
bfd/elf64-mips.c | 82 +-------
bfd/elf64-mmix.c | 2 +-
bfd/elf64-ppc.c | 7 +-
bfd/elf64-s390.c | 2 +-
bfd/elf64-sh64.c | 2 +-
bfd/elf64-x86-64.c | 2 +-
bfd/elflink.c | 111 +++++++----
bfd/elfnn-aarch64.c | 8 +-
bfd/elfnn-ia64.c | 2 +-
bfd/elfnn-riscv.c | 4 +-
bfd/elfxx-mips.c | 2 +-
bfd/elfxx-sparc.c | 19 ++-
bfd/elfxx-tilegx.c | 4 +-
bfd/linker.c | 3 +-
bfd/mach-o.c | 2 +-
bfd/peXXigen.c | 18 +-
bfd/version.h | 2 +-
bfd/vms-alpha.c | 32 ++--
bfd/vms-lib.c | 18 +-
binutils/ChangeLog | 39 ++++
binutils/NEWS | 3 +
binutils/objcopy.c | 7 -
binutils/readelf.c | 7 +-
binutils/strings.c | 4 +-
.../testsuite/binutils-all/mips/mips-note-2-n32.d | 7 +
.../testsuite/binutils-all/mips/mips-note-2-n64.d | 7 +
binutils/testsuite/binutils-all/mips/mips-note-2.d | 7 +
.../testsuite/binutils-all/mips/mips-note-2r-n32.d | 11 +
.../testsuite/binutils-all/mips/mips-note-2r-n64.d | 15 ++
.../testsuite/binutils-all/mips/mips-note-2r.d | 11 +
binutils/testsuite/binutils-all/mips/mips.exp | 45 +++--
binutils/testsuite/lib/utils-lib.exp | 14 ++-
gas/ChangeLog | 86 ++++++++
gas/config/tc-aarch64.c | 10 +-
gas/config/tc-aarch64.h | 5 +-
gas/config/tc-arm.h | 10 +-
gas/config/tc-avr.c | 4 +
gas/config/tc-avr.h | 3 +-
gas/config/tc-cris.h | 5 +-
gas/config/tc-hppa.c | 2 +-
gas/config/tc-i386.h | 5 +-
gas/config/tc-i960.h | 7 +-
gas/config/tc-ia64.h | 5 +-
gas/config/tc-microblaze.h | 11 +-
gas/config/tc-mips.c | 2 +-
gas/config/tc-mips.h | 3 +-
gas/config/tc-mn10300.h | 18 ++-
gas/config/tc-msp430.c | 5 +-
gas/config/tc-msp430.h | 9 +-
gas/config/tc-nds32.h | 3 +-
gas/config/tc-pru.h | 2 +-
gas/config/tc-riscv.h | 4 +-
gas/config/tc-rl78.h | 4 +-
gas/config/tc-s390.h | 3 +-
gas/config/tc-score7.c | 2 +-
gas/config/tc-sh.h | 7 +-
gas/config/tc-sh64.h | 7 +-
gas/config/tc-sparc.c | 76 +++++++-
gas/config/tc-sparc.h | 5 +-
gas/config/tc-xtensa.h | 3 +-
gas/doc/c-sparc.texi | 28 ++-
gas/testsuite/gas/s390/zarch-z10.d | 1 -
gas/testsuite/gas/s390/zarch-z10.s | 1 -
gas/testsuite/gas/s390/zarch-z196.d | 1 +
gas/testsuite/gas/s390/zarch-z196.s | 1 +
gas/testsuite/gas/sparc/call-relax.d | 2 +-
gas/testsuite/gas/sparc/fpcmpshl-diag.l | 6 +
gas/testsuite/gas/sparc/fpcmpshl-diag.s | 7 +
gas/testsuite/gas/sparc/fpcmpshl.d | 27 +++
gas/testsuite/gas/sparc/fpcmpshl.s | 19 ++
gas/testsuite/gas/sparc/ldm-stm-diag.l | 3 +
gas/testsuite/gas/sparc/ldm-stm-diag.s | 4 +
gas/testsuite/gas/sparc/ldm-stm.d | 70 +++++++
gas/testsuite/gas/sparc/ldm-stm.s | 63 ++++++
gas/testsuite/gas/sparc/ldmf-stmf-diag.l | 11 +
gas/testsuite/gas/sparc/ldmf-stmf-diag.s | 12 +
gas/testsuite/gas/sparc/ldmf-stmf.d | 37 ++++
gas/testsuite/gas/sparc/ldmf-stmf.s | 31 +++
gas/testsuite/gas/sparc/on-diag.l | 5 +
gas/testsuite/gas/sparc/on-diag.s | 6 +
gas/testsuite/gas/sparc/on.d | 13 ++
gas/testsuite/gas/sparc/on.s | 6 +
gas/testsuite/gas/sparc/rdasr.d | 3 +-
gas/testsuite/gas/sparc/rdasr.s | 1 +
gas/testsuite/gas/sparc/rle.d | 12 +
gas/testsuite/gas/sparc/rle.s | 4 +
gas/testsuite/gas/sparc/sparc.exp | 13 +-
gas/testsuite/gas/sparc/sparc6-diag.l | 7 +
gas/testsuite/gas/sparc/sparc6-diag.s | 8 +
gas/testsuite/gas/sparc/sparc6.d | 18 ++
gas/testsuite/gas/sparc/sparc6.s | 11 +
gas/write.c | 10 +-
gdb/ChangeLog | 64 ++++++
gdb/Makefile.in | 2 +-
gdb/ada-lang.c | 1 +
gdb/breakpoint.c | 11 +-
gdb/c-lang.c | 14 ++
gdb/c-lang.h | 3 +
gdb/cli/cli-decode.c | 29 ++-
gdb/command.h | 6 +
gdb/configure | 4 +-
gdb/configure.ac | 4 +-
gdb/configure.nat | 11 +-
gdb/d-lang.c | 1 +
gdb/f-lang.c | 1 +
gdb/gdb_curses.h | 7 +
gdb/go-lang.c | 1 +
gdb/infcmd.c | 5 +-
gdb/language.c | 4 +
gdb/language.h | 6 +
gdb/m2-lang.c | 1 +
gdb/objc-lang.c | 1 +
gdb/opencl-lang.c | 1 +
gdb/p-lang.c | 2 +
gdb/rust-lang.c | 15 ++
gdb/sparc-tdep.c | 72 +++++--
gdb/sparc64-tdep.c | 43 ++++-
gdb/testsuite/ChangeLog | 43 ++++
gdb/testsuite/gdb.base/fileio.c | 66 +++---
gdb/testsuite/gdb.base/fileio.exp | 2 +-
gdb/testsuite/gdb.base/float.exp | 10 +-
gdb/testsuite/gdb.base/set-inferior-tty.exp | 10 +-
gdb/testsuite/gdb.rust/simple.exp | 8 +-
gdb/testsuite/gdb.rust/watch.exp | 35 +++
gdb/testsuite/gdb.rust/watch.rs | 24 +++
gdb/tui/tui-windata.c | 2 +-
gdb/tui/tui-wingeneral.c | 2 +-
gdb/tui/tui-winsource.c | 7 +-
gold/ChangeLog | 6 +
gold/layout.cc | 5 +
include/ChangeLog | 36 ++++
include/bfdlink.h | 12 +-
include/elf/sparc.h | 9 +
include/opcode/sparc.h | 25 ++-
ld/ChangeLog | 80 +++++++
ld/emulparams/avrxmega3.sh | 1 +
ld/emultempl/elf32.em | 2 +-
ld/emultempl/pe.em | 2 +-
ld/emultempl/pep.em | 2 +-
ld/emultempl/xtensaelf.em | 2 +-
ld/ld.texinfo | 11 +-
ld/ldfile.c | 2 +
ld/ldlang.c | 7 +-
ld/ldlex.l | 5 +
ld/plugin.c | 67 ++++---
ld/scripttempl/avr.sc | 51 +++++-
ld/testsuite/ld-gc/gc.exp | 1 +
ld/testsuite/ld-gc/pr20882.d | 9 +
ld/testsuite/ld-gc/pr20882a.s | 8 +
ld/testsuite/ld-gc/pr20882b.s | 5 +
ld/testsuite/ld-gc/pr20882c.s | 5 +
ld/testsuite/ld-i386/i386.exp | 2 +
ld/testsuite/ld-i386/property-x86-4a.d | 10 +
ld/testsuite/ld-i386/property-x86-4a.s | 5 +
ld/testsuite/ld-i386/property-x86-4b.d | 10 +
ld/testsuite/ld-i386/property-x86-4b.s | 20 ++
ld/testsuite/ld-scripts/sysroot-prefix.exp | 9 +-
ld/testsuite/ld-x86-64/property-x86-4a.d | 10 +
ld/testsuite/ld-x86-64/property-x86-4a.s | 5 +
ld/testsuite/ld-x86-64/property-x86-4b.d | 10 +
ld/testsuite/ld-x86-64/property-x86-4b.s | 20 ++
ld/testsuite/ld-x86-64/x86-64.exp | 42 +++--
opcodes/ChangeLog | 44 ++++
opcodes/aarch64-asm.c | 5 +-
opcodes/aarch64-dis.c | 8 +-
opcodes/aarch64-gen.c | 6 +-
opcodes/aarch64-opc.c | 8 +-
opcodes/s390-opc.txt | 2 +-
opcodes/sparc-dis.c | 26 +++-
opcodes/sparc-opc.c | 217 ++++++++++++++++++--
readline/ChangeLog.gdb | 5 +
readline/input.c | 1 +
223 files changed, 2332 insertions(+), 556 deletions(-)
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2-n32.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2-n64.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r-n32.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r-n64.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-note-2r.d
create mode 100644 gas/testsuite/gas/sparc/fpcmpshl-diag.l
create mode 100644 gas/testsuite/gas/sparc/fpcmpshl-diag.s
create mode 100644 gas/testsuite/gas/sparc/fpcmpshl.d
create mode 100644 gas/testsuite/gas/sparc/fpcmpshl.s
create mode 100644 gas/testsuite/gas/sparc/ldm-stm-diag.l
create mode 100644 gas/testsuite/gas/sparc/ldm-stm-diag.s
create mode 100644 gas/testsuite/gas/sparc/ldm-stm.d
create mode 100644 gas/testsuite/gas/sparc/ldm-stm.s
create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf-diag.l
create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf-diag.s
create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf.d
create mode 100644 gas/testsuite/gas/sparc/ldmf-stmf.s
create mode 100644 gas/testsuite/gas/sparc/on-diag.l
create mode 100644 gas/testsuite/gas/sparc/on-diag.s
create mode 100644 gas/testsuite/gas/sparc/on.d
create mode 100644 gas/testsuite/gas/sparc/on.s
create mode 100644 gas/testsuite/gas/sparc/rle.d
create mode 100644 gas/testsuite/gas/sparc/rle.s
create mode 100644 gas/testsuite/gas/sparc/sparc6-diag.l
create mode 100644 gas/testsuite/gas/sparc/sparc6-diag.s
create mode 100644 gas/testsuite/gas/sparc/sparc6.d
create mode 100644 gas/testsuite/gas/sparc/sparc6.s
create mode 100644 gdb/testsuite/gdb.rust/watch.exp
create mode 100644 gdb/testsuite/gdb.rust/watch.rs
create mode 100644 ld/testsuite/ld-gc/pr20882.d
create mode 100644 ld/testsuite/ld-gc/pr20882a.s
create mode 100644 ld/testsuite/ld-gc/pr20882b.s
create mode 100644 ld/testsuite/ld-gc/pr20882c.s
create mode 100644 ld/testsuite/ld-i386/property-x86-4a.d
create mode 100644 ld/testsuite/ld-i386/property-x86-4a.s
create mode 100644 ld/testsuite/ld-i386/property-x86-4b.d
create mode 100644 ld/testsuite/ld-i386/property-x86-4b.s
create mode 100644 ld/testsuite/ld-x86-64/property-x86-4a.d
create mode 100644 ld/testsuite/ld-x86-64/property-x86-4a.s
create mode 100644 ld/testsuite/ld-x86-64/property-x86-4b.d
create mode 100644 ld/testsuite/ld-x86-64/property-x86-4b.s
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 52c192d..38462fe 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,130 @@
+2017-05-19 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elf64-mips.c (mips_elf64_canonicalize_reloc): Remove prototype
+ and function.
+ (mips_elf64_canonicalize_dynamic_reloc): Likewise.
+ (mips_elf64_slurp_one_reloc_table): Set `reloc_count' to the
+ actual number of internal relocations retrieved. Adjust
+ function description.
+ (bfd_elf64_canonicalize_reloc): Remove macro.
+ (bfd_elf64_canonicalize_dynamic_reloc): Likewise.
+
+2017-05-19 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * archures.c (bfd_mach_sparc_v9m8): Define.
+ (bfd_mach_sparc_v8plusm8): Likewise.
+ (bfd_mach_sparc_v9_p): Adjust to M8.
+ (bfd_mach_sparc_64bit_p): Likewise.
+ * aoutx.h (machine_type): Handle bfd_mach_sparc_v9m8 and
+ bfd_mach_sparc_v8plusm8.
+ * bfd-in2.h: Regenerated.
+ * cpu-sparc.c (arch_info_struct): Entries for sparc:v9m8 and
+ sparc:v8plusm8.
+ * elfxx-sparc.c (_bfd_sparc_elf_object_p): Handle
+ bfd_mach_sparc_v8plusm8 and bfd_mach_sparc_v9m8 using the new hw
+ capabilities ONADDSUB, ONMUL, ONDIV, DICTUNP, FPCPSHL, RLE and
+ SHA3.
+ * elf32-sparc.c (elf32_sparc_final_write_processing): Handle
+ bfd_mach_sparc_v8plusm8.
+
+2017-05-19 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't keep
+ debug and special sections when no non-note alloc sections in an
+ object are kept.
+
+2017-05-18 Alan Modra <amodra@gmail.com>
+
+ * arc-got.h: Don't compare boolean values against TRUE or FALSE.
+ * elf-m10300.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arc.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-nds32.c: Likewise.
+ * elf32-tilepro.c: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-riscv.c: Likewise.
+ * elfxx-tilegx.c: Likewise.
+ * mach-o.c: Likewise.
+ * peXXigen.c: Likewise.
+ * vms-alpha.c: Likewise.
+ * vms-lib.c: Likewise.
+
+2017-05-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20882
+ * elflink.c (elf_gc_mark_debug_section): New function.
+ (_bfd_elf_gc_mark_extra_sections): Mark any debug sections
+ referenced by kept debug sections.
+
+2017-05-16 Alan Modra <amodra@gmail.com>
+
+ * elf-m10300.c: Rename occurrences of non_ir_ref.
+ * elf32-arm.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-cr16.c: Likewise.
+ * elf32-cris.c: Likewise.
+ * elf32-d10v.c: Likewise.
+ * elf32-dlx.c: Likewise.
+ * elf32-fr30.c: Likewise.
+ * elf32-frv.c: Likewise.
+ * elf32-hppa.c: Likewise.
+ * elf32-i370.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-iq2000.c: Likewise.
+ * elf32-lm32.c: Likewise.
+ * elf32-m32c.c: Likewise.
+ * elf32-m32r.c: Likewise.
+ * elf32-m68hc1x.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-mcore.c: Likewise.
+ * elf32-metag.c: Likewise.
+ * elf32-microblaze.c: Likewise.
+ * elf32-moxie.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * elf32-mt.c: Likewise.
+ * elf32-nios2.c: Likewise.
+ * elf32-or1k.c: Likewise.
+ * elf32-ppc.c: Likewise.
+ * elf32-rl78.c: Likewise.
+ * elf32-s390.c: Likewise.
+ * elf32-score.c: Likewise.
+ * elf32-score7.c: Likewise.
+ * elf32-sh.c: Likewise.
+ * elf32-tic6x.c: Likewise.
+ * elf32-tilepro.c: Likewise.
+ * elf32-v850.c: Likewise.
+ * elf32-vax.c: Likewise.
+ * elf32-xstormy16.c: Likewise.
+ * elf32-xtensa.c: Likewise.
+ * elf64-alpha.c: Likewise.
+ * elf64-hppa.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-mmix.c: Likewise.
+ * elf64-ppc.c: Likewise.
+ * elf64-s390.c: Likewise.
+ * elf64-sh64.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfnn-riscv.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * elfxx-sparc.c: Likewise.
+ * elfxx-tilegx.c: Likewise.
+ * linker.c: Likewise.
+
+2017-05-16 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (add_symbol_adjust): Transfer non_ir_ref_dynamic.
+ * elflink.c (elf_link_add_object_symbols): Update to use
+ non_ir_ref_dynamic.
+ (elf_link_input_bfd): Test non_ir_ref_dynamic in addition to
+ non_ir_ref.
+ * linker.c (_bfd_generic_link_add_one_symbol): Likewise.
+
2017-05-15 Maciej W. Rozycki <macro@imgtec.com>
* elfxx-mips.c (print_mips_ases): Handle MIPS16e2 ASE.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 9a5f7ce..3d38fda 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -738,6 +738,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
|| machine == bfd_mach_sparc_v8pluse
|| machine == bfd_mach_sparc_v8plusv
|| machine == bfd_mach_sparc_v8plusm
+ || machine == bfd_mach_sparc_v8plusm8
|| machine == bfd_mach_sparc_v9
|| machine == bfd_mach_sparc_v9a
|| machine == bfd_mach_sparc_v9b
@@ -745,7 +746,8 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
|| machine == bfd_mach_sparc_v9d
|| machine == bfd_mach_sparc_v9e
|| machine == bfd_mach_sparc_v9v
- || machine == bfd_mach_sparc_v9m)
+ || machine == bfd_mach_sparc_v9m
+ || machine == bfd_mach_sparc_v9m8)
arch_flags = M_SPARC;
else if (machine == bfd_mach_sparc_sparclet)
arch_flags = M_SPARCLET;
diff --git a/bfd/arc-got.h b/bfd/arc-got.h
index abf3815..b8a6d15 100644
--- a/bfd/arc-got.h
+++ b/bfd/arc-got.h
@@ -318,7 +318,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
}
- if (entry && entry->processed == FALSE)
+ if (entry && !entry->processed)
{
switch (entry->type)
{
@@ -427,7 +427,7 @@ create_got_dynrelocs_for_single_entry (struct got_entry *list,
bfd_vma got_offset = list->offset;
if (list->type == GOT_NORMAL
- && list->created_dyn_relocation == FALSE)
+ && !list->created_dyn_relocation)
{
if (bfd_link_pic (info)
&& h != NULL
@@ -446,7 +446,7 @@ create_got_dynrelocs_for_single_entry (struct got_entry *list,
list->created_dyn_relocation = TRUE;
}
else if (list->existing_entries != TLS_GOT_NONE
- && list->created_dyn_relocation == FALSE)
+ && !list->created_dyn_relocation)
{
/* TODO TLS: This is not called for local symbols.
In order to correctly implement TLS, this should also
diff --git a/bfd/archures.c b/bfd/archures.c
index c6e7152..2fefec5 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -147,9 +147,11 @@ DESCRIPTION
.#define bfd_mach_sparc_v9v 18 {* with OSA2011 and T4 and IMA and FJMAU add'ns. *}
.#define bfd_mach_sparc_v8plusm 19 {* with OSA2015 and M7 add'ns. *}
.#define bfd_mach_sparc_v9m 20 {* with OSA2015 and M7 add'ns. *}
+.#define bfd_mach_sparc_v8plusm8 21 {* with OSA2017 and M8 add'ns. *}
+.#define bfd_mach_sparc_v9m8 22 {* with OSA2017 and M8 add'ns. *}
.{* Nonzero if MACH has the v9 instruction set. *}
.#define bfd_mach_sparc_v9_p(mach) \
-. ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+. ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
. && (mach) != bfd_mach_sparc_sparclite_le)
.{* Nonzero if MACH is a 64 bit sparc architecture. *}
.#define bfd_mach_sparc_64bit_p(mach) \
@@ -159,7 +161,8 @@ DESCRIPTION
. && (mach) != bfd_mach_sparc_v8plusd \
. && (mach) != bfd_mach_sparc_v8pluse \
. && (mach) != bfd_mach_sparc_v8plusv \
-. && (mach) != bfd_mach_sparc_v8plusm)
+. && (mach) != bfd_mach_sparc_v8plusm \
+. && (mach) != bfd_mach_sparc_v8plusm8)
. bfd_arch_spu, {* PowerPC SPU *}
.#define bfd_mach_spu 256
. bfd_arch_mips, {* MIPS Rxxxx *}
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 8617881..ae2fceb 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2004,9 +2004,11 @@ enum bfd_architecture
#define bfd_mach_sparc_v9v 18 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */
#define bfd_mach_sparc_v8plusm 19 /* with OSA2015 and M7 add'ns. */
#define bfd_mach_sparc_v9m 20 /* with OSA2015 and M7 add'ns. */
+#define bfd_mach_sparc_v8plusm8 21 /* with OSA2017 and M8 add'ns. */
+#define bfd_mach_sparc_v9m8 22 /* with OSA2017 and M8 add'ns. */
/* Nonzero if MACH has the v9 instruction set. */
#define bfd_mach_sparc_v9_p(mach) \
- ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
+ ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \
&& (mach) != bfd_mach_sparc_sparclite_le)
/* Nonzero if MACH is a 64 bit sparc architecture. */
#define bfd_mach_sparc_64bit_p(mach) \
@@ -2016,7 +2018,8 @@ enum bfd_architecture
&& (mach) != bfd_mach_sparc_v8plusd \
&& (mach) != bfd_mach_sparc_v8pluse \
&& (mach) != bfd_mach_sparc_v8plusv \
- && (mach) != bfd_mach_sparc_v8plusm)
+ && (mach) != bfd_mach_sparc_v8plusm \
+ && (mach) != bfd_mach_sparc_v8plusm8)
bfd_arch_spu, /* PowerPC SPU */
#define bfd_mach_spu 256
bfd_arch_mips, /* MIPS Rxxxx */
diff --git a/bfd/cpu-sparc.c b/bfd/cpu-sparc.c
index ff843ec..a6f54e2 100644
--- a/bfd/cpu-sparc.c
+++ b/bfd/cpu-sparc.c
@@ -307,6 +307,36 @@ static const bfd_arch_info_type arch_info_struct[] =
bfd_default_compatible,
bfd_default_scan,
bfd_arch_default_fill,
+ &arch_info_struct[19],
+ },
+ {
+ 32, /* bits in a word */
+ 32, /* bits in an address */
+ 8, /* bits in a byte */
+ bfd_arch_sparc,
+ bfd_mach_sparc_v8plusm8,
+ "sparc",
+ "sparc:v8plusm8",
+ 3,
+ FALSE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
+ &arch_info_struct[20],
+ },
+ {
+ 64, /* bits in a word */
+ 64, /* bits in an address */
+ 8, /* bits in a byte */
+ bfd_arch_sparc,
+ bfd_mach_sparc_v9m8,
+ "sparc",
+ "sparc:v9m8",
+ 3,
+ FALSE,
+ bfd_default_compatible,
+ bfd_default_scan,
+ bfd_arch_default_fill,
0,
}
};
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index f9d8089..e59f083 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -1094,7 +1094,7 @@ mn10300_elf_check_relocs (bfd *abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
r_type = ELF32_R_TYPE (rel->r_info);
@@ -1520,7 +1520,7 @@ mn10300_elf_final_link_relocate (reloc_howto_type *howto,
/* Do not generate relocs when an R_MN10300_32 has been used
with an R_MN10300_SYM_DIFF to compute a difference of two
symbols. */
- && is_sym_diff_reloc == FALSE
+ && !is_sym_diff_reloc
/* Also, do not generate a reloc when the symbol associated
with the R_MN10300_32 reloc is absolute - there is no
need for a run time computation in this case. */
diff --git a/bfd/elf.c b/bfd/elf.c
index a08e0f8..863bd61 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -7358,7 +7358,7 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd)
for (section = obfd->sections; section != NULL;
section = section->next)
{
- if (section->segment_mark == FALSE)
+ if (!section->segment_mark)
goto rewrite;
else
section->segment_mark = FALSE;
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index b00207e..3e99cab 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -1259,7 +1259,7 @@ arc_do_relocation (bfd_byte * contents,
struct elf_link_hash_table *htab ATTRIBUTE_UNUSED = elf_hash_table (info);
bfd_reloc_status_type flag;
- if (reloc_data.should_relocate == FALSE)
+ if (!reloc_data.should_relocate)
return bfd_reloc_ok;
switch (reloc_data.howto->size)
@@ -1464,9 +1464,9 @@ elf_arc_relocate_section (bfd * output_bfd,
h2 = elf_link_hash_lookup (elf_hash_table (info), "__SDATA_BEGIN__",
FALSE, FALSE, TRUE);
- if (reloc_data.sdata_begin_symbol_vma_set == FALSE
- && h2 != NULL && h2->root.type != bfd_link_hash_undefined
- && h2->root.u.def.section->output_section != NULL)
+ if (!reloc_data.sdata_begin_symbol_vma_set
+ && h2 != NULL && h2->root.type != bfd_link_hash_undefined
+ && h2->root.u.def.section->output_section != NULL)
/* TODO: Verify this condition. */
{
reloc_data.sdata_begin_symbol_vma =
@@ -1784,7 +1784,7 @@ elf_arc_relocate_section (bfd * output_bfd,
bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc);
- if (relocate == FALSE)
+ if (!relocate)
continue;
}
break;
@@ -1793,7 +1793,7 @@ elf_arc_relocate_section (bfd * output_bfd,
}
if (is_reloc_SDA_relative (howto)
- && (reloc_data.sdata_begin_symbol_vma_set == FALSE))
+ && !reloc_data.sdata_begin_symbol_vma_set)
{
_bfd_error_handler
("Error: Linker symbol __SDATA_BEGIN__ not found");
@@ -1907,8 +1907,8 @@ elf_arc_check_relocs (bfd * abfd,
howto = arc_elf_howto (r_type);
if (dynobj == NULL
- && (is_reloc_for_GOT (howto) == TRUE
- || is_reloc_for_TLS (howto) == TRUE))
+ && (is_reloc_for_GOT (howto)
+ || is_reloc_for_TLS (howto)))
{
dynobj = elf_hash_table (info)->dynobj = abfd;
if (! _bfd_elf_create_got_section (abfd, info))
@@ -1985,7 +1985,7 @@ elf_arc_check_relocs (bfd * abfd,
break;
}
- if (is_reloc_for_PLT (howto) == TRUE)
+ if (is_reloc_for_PLT (howto))
{
if (h == NULL)
continue;
@@ -1994,8 +1994,8 @@ elf_arc_check_relocs (bfd * abfd,
}
/* Add info to the symbol got_entry_list. */
- if (is_reloc_for_GOT (howto) == TRUE
- || is_reloc_for_TLS (howto) == TRUE)
+ if (is_reloc_for_GOT (howto)
+ || is_reloc_for_TLS (howto))
{
arc_fill_got_info_for_reloc (
arc_got_entry_type_for_reloc (howto),
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 23a02c0..1725c22 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -14556,7 +14556,7 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info,
/* PR15323, ref flags aren't set for references in the
same object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
}
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index ff1bcc6..b3e09bd 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -329,11 +329,11 @@ bfin_bfd_reloc (bfd *abfd,
/* Here the variable relocation holds the final address of the
symbol we are relocating against, plus any addend. */
- if (howto->pc_relative == TRUE)
+ if (howto->pc_relative)
{
relocation -= input_section->output_section->vma + input_section->output_offset;
- if (howto->pcrel_offset == TRUE)
+ if (howto->pcrel_offset)
relocation -= reloc_entry->address;
}
@@ -1191,7 +1191,7 @@ bfin_check_relocs (bfd * abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index 92aa0c8..c36388e 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -738,7 +738,7 @@ cr16_elf_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
/* Some relocs require a global offset table. */
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index d4bbceb..83c4101 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -3178,7 +3178,7 @@ cris_elf_check_relocs (bfd *abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
r_type = ELF32_R_TYPE (rel->r_info);
diff --git a/bfd/elf32-d10v.c b/bfd/elf32-d10v.c
index 6b6fb34..d284d4f 100644
--- a/bfd/elf32-d10v.c
+++ b/bfd/elf32-d10v.c
@@ -294,7 +294,7 @@ elf32_d10v_check_relocs (bfd *abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-dlx.c b/bfd/elf32-dlx.c
index 965d866..b12d24a 100644
--- a/bfd/elf32-dlx.c
+++ b/bfd/elf32-dlx.c
@@ -454,7 +454,7 @@ elf32_dlx_check_relocs (bfd *abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-fr30.c b/bfd/elf32-fr30.c
index f668074..94070d8 100644
--- a/bfd/elf32-fr30.c
+++ b/bfd/elf32-fr30.c
@@ -673,7 +673,7 @@ fr30_elf_check_relocs (bfd *abfd,
/* PR15323, ref flags aren't set for references in the same
object. */
- h->root.non_ir_ref = 1;
+ h->root.non_ir_ref_regular = 1;
}
switch (ELF32_R_TYPE (rel->r_info))
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index d4b7727..ef609ff 100644
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-05-07 20:21 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-05-07 20:21 UTC (permalink / raw)
To: archer-commits
The branch, users/jkratoch/indexcxx has been updated
via bdbdd8567e59bc6d54749dbfcc001502fffe18a9 (commit)
via 618a737b59008a0153f6454ae9a6d42814384828 (commit)
via e50f25ecdb24505bccb695e6c63add45f0032b9a (commit)
via 21ea5acdd1bcfe89984b16b5bac730050c5cf05e (commit)
via 7b937cba77df45962ced7e0e03802561beab549f (commit)
via 7ed1acafa0b5d135342f9dcc0eb0387dff95005a (commit)
via e13cb306f099a8cd450c9fba0dfa22521aaa3c95 (commit)
via 323449189c3474d1ab352b49172f4f59670ea73e (commit)
via d512d31c395e3c45f83778e01b9824efe45cac5f (commit)
via 5ed8105e02d0c6648b7faea9f4e941237b932717 (commit)
via f6223dbb50b5d8780df633633adf0742c662173d (commit)
via 3c3ae77e68a9032ef9f174bf6b1cc992b6a4cb35 (commit)
via f91d48deb29d9e6f4b530f586db0140943ed0d83 (commit)
via 45eba0ab7d26435121facb68847fbd0cd4a313c1 (commit)
via b660e9eb7a45cfe99e719c5d16af35913a2fdc96 (commit)
via 8293e73636484b403150ae94a93619779bcbae96 (commit)
via 8507b6e79772ffeb83a0142d12a63e02dcc44562 (commit)
via 90cef2edd256c48d2ff9a03d4a6c1bcb575db07c (commit)
via b22908217d8593185af3f76fab6f0f01457b0600 (commit)
via f81fdd350e688bd0216486b30884a52ebc4f32b8 (commit)
via 35837774a77d641ba3ae75930a7b08ed853759ad (commit)
via c94fee56f5f8e5e26a115a1ca155ddada9d43b31 (commit)
via e78bb25cb636a331f27e9cc4cba5522939567695 (commit)
via 35387fdec5e10b281c218c9dc4f3dc33c3fcc522 (commit)
via 82d808edbc7a06f706b82064cec6c3ed88f0c4be (commit)
via 3d8505928a06e00b05bb162c1ad0dd612c1c16af (commit)
via 43e379d74c994fe431368b5f25f778bf601a2981 (commit)
via 763a5fa4f330d6d3859c94a69ba1fcab09330cf9 (commit)
via 640226f048b67d79da85742728e40114c9ee5da0 (commit)
via 2ecf0cc317d065cfeb960c61688897351521bce0 (commit)
via d17f7b365cf3896b3129b9077d55b3154fc43131 (commit)
via b560ebd6605503276e09b2ef75c94e1d10f176f2 (commit)
via f2f46dfcdafe6bd32152d80b5e832d2fab4e6900 (commit)
via a0ff9e1ad221c11f58a9d8d12a84c21579132d85 (commit)
via ea480a306d46efe3dd1839618137f0e73a80e9b3 (commit)
via 1395c6ce47510babad3dcb9892f6f2517a3f2b59 (commit)
via 73ec947d59c511411377ad51ef792a5fcdd3f0cc (commit)
via a4ddc54ec1cd187c844ca631fe0315bf1d78e96f (commit)
via 39ff1b79f687b65f4144ddb379f22587003443fb (commit)
via d050f7d7f474c7e3ba26902a9cbb185910921a11 (commit)
via 14f819c8c5f7d080e5eea9256f0ec7453aac750e (commit)
via 0ed5da759e34c6e85cb2a9ea0fdc7b680f897a81 (commit)
via 913aeadd9d6b8bdea5131b16dc7ede395097656d (commit)
via a3be24ad59d683d1b08df28e093739743a7cf256 (commit)
via ae20e79ae852fee8f7d42701a54a95de3b79ecea (commit)
via 8d0050ea192c41349c1f2b000866c1bdb761abeb (commit)
via fe50e98c9a22a89ca2e032b17aa7162452c3ad3b (commit)
via 122a483d4f19c8b0a7f3d265dad882bd4f2c868a (commit)
via 0aae7e72a2a11ef1fd2a3b4fd18c8d8d49e0c21b (commit)
via 3f380b502769e55bbcdf7b9587c62344913c6ee8 (commit)
via ee7e95efb98186c09dc2c39b32263aa15b147bb0 (commit)
via 6224c858130fe5c5e5d8b2abdec1cea35986d9e7 (commit)
via 020bf56c8e55bfbe5a53989eac0c72b8d2416feb (commit)
from 98bebcd98b51d05daf04b0d5c4d7f6e112597c57 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit bdbdd8567e59bc6d54749dbfcc001502fffe18a9
Merge: 98bebcd 618a737
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sun May 7 22:09:54 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 618a737b59008a0153f6454ae9a6d42814384828
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun May 7 00:00:54 2017 +0000
Automatic date update in version.in
commit e50f25ecdb24505bccb695e6c63add45f0032b9a
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Tue May 2 21:32:33 2017 -0400
Rearrange gdb/configure.nat to make it simpler and less redundant
The previous commit introduced gdb/configure.nat, but it was just a
copy-and-past (with the necessary adjustments) from the files under
gdb/config/. We can do better than that.
Instead of using one big 'case' statement that matches the
${gdb_host_cpu} and then match each ${gdb_host}, it is possible to
remove a lof of redundancy by matching the most common ${gdb_host}'s
first, setting the common variables for each, and then proceed to
matching specific ${gdb_host}'s and ${gdb_host_cpu}'s. In other
words, reverse the order of the 'case's and take advantage of the fact
that a lot of parameters are the same for each host.
This commit was tested on x86_64 without regressions.
gdb/ChangeLog:
2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com>
* configure.nat: Rearrange 'case' statements to match
host before cpu.
commit 21ea5acdd1bcfe89984b16b5bac730050c5cf05e
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Tue Apr 25 16:03:39 2017 -0400
Introduce "gdb/configure.nat" (and delete "gdb/config/*/*.mh" files)
Due to my ongoing work to make it possible for gdbserver to start the
inferior using the shell, I had to share the fork_inferior function
under the "nat/" directory. In order to do that, I created a new file
and put the function there; however, this meant that I now had to
update some of the *.mh files (under "gdb/config") and add the new
file as a dependency to be built natively. Bleh...
After talking a bit to Pedro about this, the idea came up to write a
new "gdb/configure.nat" file, a la "gdb/configure.tgt", which would
concentrate all of the native settings for each host/system. I
decided to tackle this issue.
The patch is simple. All of the previous Makefile variables that were
being declared inside the *.mh files are now inside "gdb/Makefile.in",
and "gdb/configure" is responsible for AC_SUBST'ing them. The
definitions of these variables were put inside "gdb/configure.nat", so
now they're shell variables. For excerpts of Makefile code, one must
create a file under "gdb/config/${gdb_cpu_host}" and reference it on
the "nat_extra_makefile_frag" variable.
It should now be easier to update the native dependencies of hosts in
this single file.
This has been tested on x86_64 without regressions.
gdb/ChangeLog:
2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in: Remove "@host_makefile_frag@". Add variables
NAT_FILE, NATDEPFILES, NAT_CDEPS, LOADLIBES, MH_CFLAGS, XM_CLIBS,
NAT_GENERATED_FILES, HAVE_NATIVE_GCORE_HOST. Add
"@nat_extra_makefile_frag@".
(Makefile): Remove dependency on "@frags@".
($(GNULIB_BUILDDIR)/Makefile): Likewise.
(data-directory/Makefile): Likewise.
* config/aarch64/linux.mh: Deleted; moved contents to
"gdb/configure.nat".
* config/alpha/alpha-linux.mh: Likewise.
* config/alpha/nbsd.mh: Likewise.
* config/arm/linux.mh: Likewise.
* config/arm/nbsdelf.mh: Likewise.
* config/i386/cygwin.mh: Likewise.
* config/i386/cygwin64.mh: Likewise.
* config/i386/darwin.mh: Likewise.
* config/i386/fbsd.mh: Likewise.
* config/i386/fbsd64.mh: Likewise.
* config/i386/go32.mh: Likewise.
* config/i386/i386gnu.mh: Likewise.
* config/i386/i386sol2.mh: Likewise.
* config/i386/linux.mh: Likewise.
* config/i386/linux64.mh: Likewise.
* config/i386/mingw.mh: Likewise.
* config/i386/mingw64.mh: Likewise.
* config/i386/nbsd64.mh: Likewise.
* config/i386/nbsdelf.mh: Likewise.
* config/i386/nto.mh: Likewise.
* config/i386/obsd.mh: Likewise.
* config/i386/obsd64.mh: Likewise.
* config/i386/sol2-64.mh: Likewise.
* config/ia64/linux.mh: Likewise.
* config/m32r/linux.mh: Likewise.
* config/m68k/linux.mh: Likewise.
* config/m68k/nbsdelf.mh: Likewise.
* config/m68k/obsd.mh: Likewise.
* config/m88k/obsd.mh: Likewise.
* config/mips/fbsd.mh: Likewise.
* config/mips/linux.mh: Likewise.
* config/mips/nbsd.mh: Likewise.
* config/mips/obsd64.mh: Likewise.
* config/pa/linux.mh: Likewise.
* config/pa/nbsd.mh: Likewise.
* config/pa/obsd.mh: Likewise.
* config/powerpc/aix.mh: Likewise.
* config/powerpc/fbsd.mh: Likewise.
* config/powerpc/linux.mh: Likewise.
* config/powerpc/nbsd.mh: Likewise.
* config/powerpc/obsd.mh: Likewise.
* config/powerpc/ppc64-linux.mh: Likewise.
* config/powerpc/spu-linux.mh: Likewise.
* config/s390/linux.mh: Likewise.
* config/sh/nbsd.mh: Likewise.
* config/sparc/fbsd.mh: Likewise.
* config/sparc/linux.mh: Likewise.
* config/sparc/linux64.mh: Likewise.
* config/sparc/nbsd64.mh: Likewise.
* config/sparc/nbsdelf.mh: Likewise.
* config/sparc/obsd64.mh: Likewise.
* config/sparc/sol2.mh: Likewise.
* config/tilegx/linux.mh: Likewise.
* config/vax/nbsdelf.mh: Likewise.
* config/vax/obsd.mh: Likewise.
* config/xtensa/linux.mh: Likewise.
* config/i386/i386gnu.mn: New file, with excerpts from
"config/i386/i386gnu.mh".
* configure: Regenerate.
* configure.ac: Rewrite code to use "gdb/configure.nat" instead of
*.mh files under "gdb/config".
* configure.nat: New file, with contents from the
"gdb/config/*/*.mh" files.
gdb/doc/ChangeLog:
2017-05-06 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile: Remove "@host_makefile_frag@".
commit 7b937cba77df45962ced7e0e03802561beab549f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat May 6 00:00:53 2017 +0000
Automatic date update in version.in
commit 7ed1acafa0b5d135342f9dcc0eb0387dff95005a
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Fri May 5 08:20:50 2017 +0200
btrace: Fix memory leak in btrace_clear.
commit e13cb306f099a8cd450c9fba0dfa22521aaa3c95
Author: Pedro Alves <palves@redhat.com>
Date: Fri May 5 01:03:28 2017 +0100
gdb: Disable -Werror for -Wmaybe-uninitialized
Newer GCCs are triggering false-positive -Wmaybe-uninitialized
warnings around code that uses gdb::optional:
https://sourceware.org/ml/gdb-patches/2017-05/msg00118.html
Using std::optional wouldn't help, it triggers the same warnings:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635
Initializing the variables to quiet the warning would defeat the
purpose of gdb::optional. Making the optional ctor memset its storage
would be a pessimization. Wrapping gdb::optional's internals with
"#pragma GCC diagnostic push/ignored/pop" doesn't work, we'd have to
wrap uses of gdb::optional instead, which I think would get unwieldy
and ugly as we start using gdb::optional more and more.
The -Wmaybe-uninitialized warning is documented as producing false
positives (unlike -Wuninialized), so until we find a better
workaround, disable -Werror for this warning. You'll still see the
warning when building gdb, but it won't cause a build failure.
Tested by building with gcc 4.8.5, 5.3.1, and gcc trunk (20170428).
gdb/ChangeLog:
2017-05-05 Pedro Alves <palves@redhat.com>
* warning.m4 (build_warnings): Add -Wno-error=maybe-uninitialized.
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2017-05-05 Pedro Alves <palves@redhat.com>
* configure: Regenerate.
commit 323449189c3474d1ab352b49172f4f59670ea73e
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri May 5 00:00:37 2017 +0000
Automatic date update in version.in
commit d512d31c395e3c45f83778e01b9824efe45cac5f
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 4 16:02:36 2017 +0100
Fix gdb.python/py-record-btrace-threads.exp with Python 3
Fix several instances of:
...
python print not f1calls
File "<string>", line 1
print not f1calls
^
SyntaxError: Missing parentheses in call to 'print'
Error while executing Python code.
(gdb) FAIL: gdb.python/py-record-btrace-threads.exp: thread=1: checking thread 1: python print not f1calls
...
gdb/testsuite/ChangeLog:
2017-05-04 Pedro Alves <palves@redhat.com>
* gdb.python/py-record-btrace-threads.exp (check_insn_for_thread):
Add parens to print call for Python 3.
commit 5ed8105e02d0c6648b7faea9f4e941237b932717
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 4 12:46:44 2017 +0100
RAII-fy make_cleanup_restore_current_thread & friends
After all the make_cleanup_restore_current_thread fixing, I thought
I'd convert that and its relatives (which are all cleanups) to RAII
classes.
scoped_restore_current_pspace_and_thread was put in a separate file to
avoid a circular dependency.
Tested on x86-64 Fedora 23, native and gdbserver.
gdb/ChangeLog:
2017-05-04 Pedro Alves <palves@redhat.com>
* Makefile.in (SFILES): Add progspace-and-thread.c.
(HFILES_NO_SRCDIR): Add progspace-and-thread.h.
(COMMON_OBS): Add progspace-and-thread.o.
* breakpoint.c: Include "progspace-and-thread.h".
(update_inserted_breakpoint_locations)
(insert_breakpoint_locations, create_longjmp_master_breakpoint):
Use scoped_restore_current_pspace_and_thread.
(create_std_terminate_master_breakpoint): Use
scoped_restore_current_program_space.
(remove_breakpoint): Use scoped_restore_current_pspace_and_thread.
(print_breakpoint_location): Use
scoped_restore_current_program_space.
(bp_loc_is_permanent): Use
scoped_restore_current_pspace_and_thread.
(resolve_sal_pc): Use scoped_restore_current_pspace_and_thread.
(download_tracepoint_locations): Use
scoped_restore_current_pspace_and_thread.
(breakpoint_re_set): Use scoped_restore_current_pspace_and_thread.
* exec.c (exec_close_1): Use scoped_restore_current_program_space.
(enum step_over_calls_kind): Moved from inferior.h.
(class scoped_restore_current_thread): New class.
* gdbthread.h (make_cleanup_restore_current_thread): Delete
declaration.
(scoped_restore_current_thread): New class.
* infcmd.c: Include "common/gdb_optional.h".
(continue_1, proceed_after_attach): Use
scoped_restore_current_thread.
(notice_new_inferior): Use scoped_restore_current_thread.
* inferior.c: Include "progspace-and-thread.h".
(restore_inferior, save_current_inferior): Delete.
(add_inferior_command, clone_inferior_command): Use
scoped_restore_current_pspace_and_thread.
* inferior.h (scoped_restore_current_inferior): New class.
* infrun.c: Include "progspace-and-thread.h" and
"common/gdb_optional.h".
(follow_fork_inferior): Use
scoped_restore_current_pspace_and_thread.
(scoped_restore_exited_inferior): New class.
(handle_vfork_child_exec_or_exit): Use
scoped_restore_exited_inferior,
scoped_restore_current_pspace_and_thread,
scoped_restore_current_thread and scoped_restore.
(fetch_inferior_event): Use scoped_restore_current_thread.
* linespec.c (decode_line_full, decode_line_1): Use
scoped_restore_current_program_space.
* mi/mi-main.c: Include "progspace-and-thread.h".
(exec_continue): Use scoped_restore_current_thread.
(mi_cmd_exec_run): Use scoped_restore_current_pspace_and_thread.
(mi_cmd_trace_frame_collected): Use scoped_restore_current_thread.
* proc-service.c (ps_pglobal_lookup): Use
scoped_restore_current_program_space.
* progspace-and-thread.c: New file.
* progspace-and-thread.h: New file.
* progspace.c (release_program_space, clone_program_space): Use
scoped_restore_current_program_space.
(restore_program_space, save_current_program_space)
(save_current_space_and_thread): Delete.
(switch_to_program_space_and_thread): Moved to
progspace-and-thread.c.
* progspace.h (save_current_program_space)
(save_current_space_and_thread): Delete declarations.
(scoped_restore_current_program_space): New class.
* remote.c (remote_btrace_maybe_reopen): Use
scoped_restore_current_thread.
* symtab.c: Include "progspace-and-thread.h".
(skip_prologue_sal): Use scoped_restore_current_pspace_and_thread.
* thread.c (print_thread_info_1): Use
scoped_restore_current_thread.
(struct current_thread_cleanup): Delete.
(do_restore_current_thread_cleanup)
(restore_current_thread_cleanup_dtor): Rename/convert both to ...
(scoped_restore_current_thread::~scoped_restore_current_thread):
... this new dtor.
(make_cleanup_restore_current_thread): Rename/convert to ...
(scoped_restore_current_thread::scoped_restore_current_thread):
... this new ctor.
(thread_apply_all_command): Use scoped_restore_current_thread.
(thread_apply_command): Use scoped_restore_current_thread.
* tracepoint.c (tdump_command): Use scoped_restore_current_thread.
* varobj.c (value_of_root_1): Use scoped_restore_current_thread.
commit f6223dbb50b5d8780df633633adf0742c662173d
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 4 14:43:34 2017 +0100
make_cleanup_restore_current_thread: Look up thread earlier
The unconditional is_stopped call already asserts that the thread exists.
gdb/ChangeLog:
2017-05-04 Pedro Alves <palves@redhat.com>
* thread.c (make_cleanup_restore_current_thread): Move
find_thread_ptid call before the is_stopped call. Assert that the
thread is found. Replace is_stopped call by checking the thread's
state directly. Remove unnecessary NULL-thread check.
commit 3c3ae77e68a9032ef9f174bf6b1cc992b6a4cb35
Author: Pedro Alves <palves@redhat.com>
Date: Thu May 4 15:14:37 2017 +0100
Fix get_core_register_section leak, introduce thread_section_name
This plugs a leak introduced in the previous change to
get_core_register_section, which removed an xfree call that is
actually necessary because the 'section_name' local is static.
From [1] it looks like the reason the variable was made static to
begin with, was just "laziness" to avoid having to think about freeing
it on every function return path:
https://sourceware.org/ml/gdb-patches/2005-03/msg00237.html
The easiest to fix that nowadays is to use a std::string.
I don't see a need to xstrdup the section name in the single-threaded
case though, and also there's more than one place that computes a
multi-threaded section name in the same way. So put the section name
computation in a wrapper class with state.
gdb/ChangeLog:
2017-05-04 Pedro Alves <palves@redhat.com>
* corelow.c (thread_section_name): New class.
(get_core_register_section, get_core_siginfo): Use it.
commit f91d48deb29d9e6f4b530f586db0140943ed0d83
Author: Kito Cheng <kito.cheng@gmail.com>
Date: Wed Apr 5 20:58:28 2017 +0800
RISC-V: Fix disassemble for c.li, c.andi and c.addiw
ChangeLog
2017-05-03 Kito Cheng <kito.cheng@gmail.com>
* riscv-dis.c (print_insn_args): Handle 'Co' operands.
commit 45eba0ab7d26435121facb68847fbd0cd4a313c1
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Thu May 4 11:06:10 2017 +0200
Remove some superfluous code in corelow.c
In corelow.c I stumbled upon an extra semicolon and an xfree of a NULL
pointer. Remove them.
gdb/ChangeLog:
* corelow.c (sniff_core_bfd): Remove extra semicolon.
(get_core_register_section): Remove xfree of NULL pointer.
commit b660e9eb7a45cfe99e719c5d16af35913a2fdc96
Author: Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
Date: Mon Apr 24 15:17:14 2017 +0530
Fix PR21404 - assertion fail when calculating symbol size
Fix a host of problems related to adjustment of
symbol values and sizes when relaxing for avr.
1. Adjust symbol size first before adjusting symbol
value. Otherwise, a symbol whose value just got adjusted to the
relaxed address also ends up getting resized. See pr21404-1.s.
2. Reduce symbol sizes only if their span is below an
alignment boundary. Otherwise, the size gets decremented once when the
actual instruction is relaxed and padding bytes are added, and again
when the padding bytes are deleted (if padding ends up being unnecessary).
pr21404-2.s addresses that, and this bug is really the root cause of PR21404.
3. Adjust all symbol values before an alignment boundary.
Previous code did not adjust symbol values if they fell in the
would-be padded area, resulting in incorrect symbol values in some
cases (see pr21404-3.s).
4. Increase symbol sizes if alignment directives require so.
As pr21404-4.s shows
.global nonzero_sym
L1:
jmp L1
nonzero_sym:
nop
nop
.p2align 2
.size nonzero_sym, .-nonzero_sym
The two nops satisfy the 4 byte alignment at assembly time and
therefore the size of nonzero_sym is 4. Relaxation shortens
the 4 byte jmp to a 2 byte rjmp, and to satisfy 4 byte alignment
the code places 2 extra padding bytes after the nops, increasing
nonzero_sym's size by 2. This wasn't handled before.
If the assembly code does not have any align directives, then the
boundary is the section size, and symbol values and sizes == boundary
should also get adjusted. To handle that case, add a did_pad variable
and use that to determine whether it should use < boundary or <= boundary.
Also get rid of reloc_toaddr, which is now redundant. toaddr is now not
adjusted to handle the above case - the newly added
did_pad variable does the job.
pr21404-{5,6,7,8} are the same testcases written for local symbols, as
the code handles them slightly differently.
commit 8293e73636484b403150ae94a93619779bcbae96
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu May 4 00:00:55 2017 +0000
Automatic date update in version.in
commit 8507b6e79772ffeb83a0142d12a63e02dcc44562
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Wed May 3 20:43:10 2017 +0100
MIPS16/GAS: Relax 32-bit non-PIC PC-relative synthetic instructions
Implement the relaxation of MIPS16 PC-relative synthetic LA, DLA, LW and
LD instructions to an equivalent sequence of instructions produced where
the address operand requested is out of range, absolute or requires
linker relocation, for ABIs that use 32-bit addressing and non-PIC code.
The sequence generated uses the register specified for the destination
operand as a temporary and begins with LI to load the high 16-bit part
of the address, then continues with SLL by 16 bits to move that part
into place and finally completes with a suitable operation corresponding
to the synthetic instruction used, one of: 2-argument ADDIU, 2-argument
DADDIU, absolute LW, and absolute LD respectively, providing the low
16-bit part of the address. All instructions use the extended encoding.
As a special exception accept absolute addresses for relaxation even in
PIC code.
For example:
la $2, 0x12345678
produces code as:
li $2, 0x1234
sll $2, $2, 16
addiu $2, 0x5678
would.
Where linker relocation is required emit an R_MIPS16_HI16 relocation on
the initial LI instruction and an R_MIPS16_LO16 relocation on the final
operation.
For example (where `foo' is not local):
lw $3, foo
produces code as:
li $3, %hi(foo)
sll $3, $3, 16
lw $3, %lo(foo)($3)
would.
Emit assembly warnings as appropriate where this new relaxation triggers
in the `nomacro' mode or for an instruction manually placed in a branch
delay slot in the `noreorder' mode. Refrain from relaxation where an
explicit instruction size suffix has been used and in the `noautoextend'
mode.
gas/
* config/tc-mips.c (RELAX_MIPS16_ENCODE): Add `pic', `sym32' and
`nomacro' flags.
(RELAX_MIPS16_PIC, RELAX_MIPS16_SYM32, RELAX_MIPS16_NOMACRO):
New macros.
(RELAX_MIPS16_USER_SMALL, RELAX_MIPS16_USER_EXT)
(RELAX_MIPS16_DSLOT, RELAX_MIPS16_JAL_DSLOT)
(RELAX_MIPS16_EXTENDED, RELAX_MIPS16_MARK_EXTENDED)
(RELAX_MIPS16_CLEAR_EXTENDED, RELAX_MIPS16_ALWAYS_EXTENDED)
(RELAX_MIPS16_MARK_ALWAYS_EXTENDED)
(RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): Shift bits.
(RELAX_MIPS16_MACRO, RELAX_MIPS16_MARK_MACRO)
(RELAX_MIPS16_CLEAR_MACRO): New macros.
(append_insn): Pass `mips_pic', HAVE_32BIT_SYMBOLS and
`mips_opts.warn_about_macros' settings to RELAX_MIPS16_ENCODE.
(mips16_macro_frag): New function.
(md_estimate_size_before_relax): Handle HI16/LO16 relaxation.
(mips_relax_frag): Likewise.
(md_convert_frag): Likewise.
* testsuite/gas/mips/mips16@relax-swap3.d: Remove error output,
add dump patterns.
* testsuite/gas/mips/mips16e@relax-swap3.d: New test
subarchitecture.
* testsuite/gas/mips/micromips@relax-swap3.d: Remove trailing
NOP padding.
* testsuite/gas/mips/mips16-pcrel-reloc-2.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-reloc-3.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-reloc-6.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-reloc-7.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-addend-2.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-addend-3.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-absolute.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-pcrel-absolute-1.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16@relax-swap3.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-reloc-2.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-reloc-3.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-reloc-6.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-reloc-7.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-addend-2.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-addend-3.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-absolute.l: Remove file.
* testsuite/gas/mips/mips16-pcrel-absolute-1.l: Remove file.
* testsuite/gas/mips/relax-swap3.s: Adjust trailing padding.
* testsuite/gas/mips/mips16-pcrel-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-2.d: New test.
* testsuite/gas/mips/mips16-pcrel-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-5.d: New test.
* testsuite/gas/mips/mips16-pcrel-pic-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-pic-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-n32-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-n32-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-n64-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-n64-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-delay-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-delay-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-5.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-7.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-8.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-9.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-pic-8.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-pic-9.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n32-8.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n32-9.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n64-8.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-n64-9.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-2.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-5.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-7.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d:
New test.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d:
New test.
* testsuite/gas/mips/mips16-pcrel-0.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-1.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-2.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-3.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-4.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-5.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-delay-0.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-delay-1.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-addend-8.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-addend-9.l: New stderr output.
* testsuite/gas/mips/mips16-pcrel-absolute-4.l: New stderr
output.
* testsuite/gas/mips/mips16-pcrel-absolute-6.l: New stderr
output.
* testsuite/gas/mips/mips16-pcrel-0.s: New test source.
* testsuite/gas/mips/mips16-pcrel-1.s: New test source.
* testsuite/gas/mips/mips16-pcrel-2.s: New test source.
* testsuite/gas/mips/mips16-pcrel-3.s: New test source.
* testsuite/gas/mips/mips16-pcrel-4.s: New test source.
* testsuite/gas/mips/mips16-pcrel-5.s: New test source.
* testsuite/gas/mips/mips16-pcrel-delay-0.s: New test source.
* testsuite/gas/mips/mips16-pcrel-delay-1.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-4.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-5.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-6.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-7.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-8.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-9.s: New test source.
* testsuite/gas/mips/mips16-pcrel-absolute-2.s: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-3.s: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-4.s: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-5.s: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-6.s: New test.
* testsuite/gas/mips/mips16-pcrel-absolute-7.s: New test.
* testsuite/gas/mips/mips.exp: Run the new tests.
ld/
* testsuite/ld-mips-elf/mips16-pcrel-0.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-1.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-addend-2.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-addend-6.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-n32-0.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-n32-1.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-0.d: New test.
* testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-1.d: New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
commit 90cef2edd256c48d2ff9a03d4a6c1bcb575db07c
Author: Keith Seitz <keiths@redhat.com>
Date: Wed May 3 12:41:09 2017 -0700
Make sure malloc is linked into gdb.cp/oranking.cc.
On some platforms, e.g., arm-eabi-none, we need to make certain that
malloc is linked into the program because the test suite uses function
calls requiring malloc:
(gdb) p foo101("abc")
evaluation of this expression requires the program to have a function "malloc".
gdb/testsuite/ChangeLog
* gdb.cp/oranking.cc (dummy): New function to grab malloc.
(main): Call it.
commit b22908217d8593185af3f76fab6f0f01457b0600
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed May 3 07:40:51 2017 -0700
Adjust testsuite/ld-elf/pr21384.d
Adjust testsuite/ld-elf/pr21384.d to accommodate additional dynamic
symbols on some targets.
* testsuite/ld-elf/pr21384.d: Adjusted to accommodate
additional dynamic symbols on some targets.
commit f81fdd350e688bd0216486b30884a52ebc4f32b8
Author: Alan Hayward <alan.hayward@arm.com>
Date: Wed May 3 14:51:40 2017 +0100
Remove MAX_REGISTER_SIZE from frv-linux-tdep.c
gdb/
* frv-linux-tdep.c (frv_linux_supply_gregset): Use raw_supply_zeroed.
* regcache.c (regcache::raw_supply_zeroed): New function.
* regcache.h (regcache::raw_supply_zeroed): New declaration.
commit 35837774a77d641ba3ae75930a7b08ed853759ad
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Wed May 3 09:21:27 2017 -0400
gdbarch.sh: Remove commented out TARGET_CHAR_BIT definition
As Pedro commented on the patch "Change field separator in gdbarch.sh",
this commented out definition is probably not useful and should be
removed. It has been commented out for basically forever, and it
probably serves the same intent as addressable_memory_unit_size.
gdb/ChangeLog:
* gdbarch.sh: Remove commented out definition of
TARGET_CHAR_BIT.
* gdbarch.h: Re-generate.
commit c94fee56f5f8e5e26a115a1ca155ddada9d43b31
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed May 3 09:13:15 2017 -0400
Regenerate gdb/{,gdbserver/}configure (for commit be628ab814f1c90e185d7482d27aa8a991ab5837)
On commit be628ab814f1c90e185d7482d27aa8a991ab5837, both
common/common.m4 was modified in order to check for the presence of
'termios.h', 'termio.h' and 'sgtty.h'. However, I forgot to
regenerate both gdb/configure and gdb/gdbserver/configure. This
commit does that.
gdb/ChangeLog:
2017-05-03 Sergio Durigan Junior <sergiodj@redhat.com>
* configure: Regenerate.
gdb/gdbserver/ChangeLog:
2017-05-03 Sergio Durigan Junior <sergiodj@redhat.com>
* configure: Regenerate.
commit e78bb25cb636a331f27e9cc4cba5522939567695
Author: Nick Clifton <nickc@redhat.com>
Date: Wed May 3 09:52:01 2017 +0100
Prevent a seg-fault in the assembler when provided with a bogus input source file.
PR gas/20941
* symbols.c (snapshot_symbol): Handle the case where
resolve_expression returns a local symbol.
commit 35387fdec5e10b281c218c9dc4f3dc33c3fcc522
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed May 3 00:00:41 2017 +0000
Automatic date update in version.in
commit 82d808edbc7a06f706b82064cec6c3ed88f0c4be
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Wed May 3 00:05:15 2017 +0100
MIPS16/GAS: Fix absolute references with PC-relative synthetic instructions
Complement commit 88a7ef168927 ("MIPS16/GAS: Restore unsupported
relocation diagnostics") and also propagate constant expressions, either
already reduced from absolute symbol references or created from literals
in the first place, used as a PC-relative operand with the MIPS16 LA,
LW, DLA and LD synthetic instructions to relaxation, matching the way
forward absolute symbol references have been handled as from the commit
referred and letting relaxation produce any necessary relocations, if
possible, for the absolute value requested to be reproduced at the run
time.
Call `symbol_append' for any expression symbol created for the purpose
of MIPS16 relaxation as with constant expressions now propagated from
earlier on such symbols may make it through and have R_MIPS16_PC16_S1
relocations emitted against, and therefore need to appear in the symbol
table produced.
gas/
* config/tc-mips.c (append_insn): Call `symbol_append' for any
expression symbol created for MIPS16 relaxation.
(match_mips16_insn): Don't encode a constant value as an
immediate with a PC-relative operand.
* testsuite/gas/mips/mips16-pcrel-absolute-1.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-1.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-2.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-addend-1.d: New
test.
* testsuite/gas/mips/mips16-branch-absolute-n32-1.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-n32-2.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-addend-n32-1.d: New
test.
* testsuite/gas/mips/mips16-branch-absolute-n64-1.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-n64-2.d: New test.
* testsuite/gas/mips/mips16-branch-absolute-addend-n64-1.d: New
test.
* testsuite/gas/mips/mips16-pcrel-absolute-1.l: New stderr
output.
* testsuite/gas/mips/mips16-pcrel-absolute-1.s: New test source.
* testsuite/gas/mips/mips16-branch-absolute-1.s: New test
source.
* testsuite/gas/mips/mips16-branch-absolute-2.s: New test
source.
* testsuite/gas/mips/mips16-branch-absolute-addend-1.s: New test
source.
* testsuite/gas/mips/mips.exp: Run the new tests.
ld/
* testsuite/ld-mips-elf/mips16-branch-absolute-1.d: New test.
* testsuite/ld-mips-elf/mips16-branch-absolute-2.d: New test.
* testsuite/ld-mips-elf/mips16-branch-absolute-addend-1.d: New
test.
* testsuite/ld-mips-elf/mips16-branch-absolute-n32-1.d: New
test.
* testsuite/ld-mips-elf/mips16-branch-absolute-n32-2.d: New
test.
* testsuite/ld-mips-elf/mips16-branch-absolute-addend-n32-1.d:
New test.
* testsuite/ld-mips-elf/mips16-branch-absolute-n64-1.d: New
test.
* testsuite/ld-mips-elf/mips16-branch-absolute-n64-2.d: New
test.
* testsuite/ld-mips-elf/mips16-branch-absolute-addend-n64-1.d:
New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
commit 3d8505928a06e00b05bb162c1ad0dd612c1c16af
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 2 16:00:49 2017 -0700
x86: Add -Wl,--no-as-needed to some TLS tests
* testsuite/ld-i386/tls.exp: Add -Wl,--no-as-needed to
"TLS without PLT (1)" and "TLS without PLT (3)".
* testsuite/ld-x86-64/tls.exp: Add -Wl,--no-as-needed to
to "TLS without PLT (3)".
commit 43e379d74c994fe431368b5f25f778bf601a2981
Author: Michael Clark <michaeljclark@mac.com>
Date: Thu Apr 27 16:08:46 2017 +1200
RISC-V: Change CALL macro to use ra as the temporary address register
e.g.
1: auipc ra, %pcrel_hi(symbol)
jalr ra, %pcrel_lo(1b)(ra)
The use of ra instead of t1 for address construction provides an
opportunity for a microarchitecture to elide the write of the
destination address, and instead read the target address as an
immediate spread across the fused auipc+jalr pair. The link
register ra in the jalr overwrites the target address temporary.
2017-05-01 Michael Clark <michaeljclark@mac.com>
* riscv-opc.c (riscv_opcodes) <call>: Use RA not T1 as a temporary
register.
commit 763a5fa4f330d6d3859c94a69ba1fcab09330cf9
Author: Palmer Dabbelt <palmer@dabbelt.com>
Date: Mon May 1 10:26:32 2017 -0700
RISC-V: Allow 32-bit BFD to handle 64-bit objects
We've been telling people that the riscv32-* and riscv64-* toolchains
are exactly the same, but it turns out we were lying: the riscv32-* BFD
doesn't handle 64-bit objects. This fixes that difference, so the ports
are actually the same.
bfd/ChangeLog
2017-05-01 Palmer Dabbelt <palmer@dabbelt.com>
* config.bfd (riscv32-*): Enable rv64.
commit 640226f048b67d79da85742728e40114c9ee5da0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 2 13:54:22 2017 -0700
Add a test for PR ld/21384
PR ld/21384
* testsuite/ld-elf/pr21384.d: New file.
* testsuite/ld-elf/pr21384.dl: Likewise.
* testsuite/ld-elf/pr21384.ld: Likewise.
* testsuite/ld-elf/pr21384.s: Likewise.
commit 2ecf0cc317d065cfeb960c61688897351521bce0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 2 12:16:26 2017 -0700
Cast relcount to unsigned long when comparing with sec->reloc_count
The type of relcount is long and the type of sec->reloc_count is
unsigned int. On 32-bit hosts, GCC issues an error:
objcopy.c:2144:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
if (relcount > sec->reloc_count)
Cast relcount to unsigned long to silence GCC.
* objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned
long when comparing with sec->reloc_count.
commit d17f7b365cf3896b3129b9077d55b3154fc43131
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue May 2 14:25:43 2017 -0400
solib-target: Remove local variables
Now that we use std::vector, these local variables are not very useful.
They're not much shorter than the expressions they stand for.
gdb/ChangeLog:
* solib-target.c (solib_target_relocate_section_addresses):
Remove num_section_bases, num_bases, segment_bases variables.
commit b560ebd6605503276e09b2ef75c94e1d10f176f2
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Tue May 2 13:30:09 2017 -0400
Remove definition of VEC (CORE_ADDR)
gdb/ChangeLog:
* common/gdb_vecs.h (DEF_VEC_I (CORE_ADDR)): Remove.
commit f2f46dfcdafe6bd32152d80b5e832d2fab4e6900
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Tue May 2 13:30:08 2017 -0400
Use std::vector in lm_info_target
Replace the two VEC fields with std::vector.
gdb/ChangeLog:
* solib-target.c: Include <vector>
(struct lm_info_target) <~lm_info_target>: Remove.
<segment_bases, section_bases>: Change type to
std::vector<CORE_ADDR>.
(library_list_start_segment, library_list_start_section,
library_list_end_library,
solib_target_relocate_section_addresses): Adjust.
commit a0ff9e1ad221c11f58a9d8d12a84c21579132d85
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Tue May 2 13:30:07 2017 -0400
Change return type of gdbarch_software_single_step to vector<CORE_ADDR>
This is a relatively straightforward patch that changes
gdbarch_software_single_step so it returns an std::vector<CORE_ADDR>
instead of a VEC (CORE_ADDR).
gdb/ChangeLog:
* gdbarch.sh (software_single_step): Change return type to
std::vector<CORE_ADDR>.
* gdbarch.c, gdbarch.h: Re-generate.
* arch/arm-get-next-pcs.c (thumb_deal_with_atomic_sequence_raw):
Adjust.
(arm_deal_with_atomic_sequence_raw): Adjust.
(thumb_get_next_pcs_raw): Adjust.
(arm_get_next_pcs_raw): Adjust.
(arm_get_next_pcs): Adjust.
* arch/arm-get-next-pcs.h (arm_get_next_pcs): Adjust.
* aarch64-tdep.c (aarch64_software_single_step): Adjust.
* alpha-tdep.c (alpha_deal_with_atomic_sequence): Adjust.
(alpha_software_single_step): Adjust.
* alpha-tdep.h (alpha_software_single_step): Adjust.
* arm-linux-tdep.c (arm_linux_software_single_step): Adjust.
* arm-tdep.c (arm_software_single_step): Adjust.
(arm_breakpoint_kind_from_current_state): Adjust.
* arm-tdep.h (arm_software_single_step): Adjust.
* breakpoint.c (insert_single_step_breakpoint): Adjust.
* cris-tdep.c (cris_software_single_step): Adjust.
* mips-tdep.c (mips_deal_with_atomic_sequence): Adjust.
(micromips_deal_with_atomic_sequence): Adjust.
(deal_with_atomic_sequence): Adjust.
(mips_software_single_step): Adjust.
* mips-tdep.h (mips_software_single_step): Adjust.
* moxie-tdep.c (moxie_software_single_step): Adjust.
* nios2-tdep.c (nios2_software_single_step): Adjust.
* ppc-tdep.h (ppc_deal_with_atomic_sequence): Adjust.
* rs6000-aix-tdep.c (rs6000_software_single_step): Adjust.
* rs6000-tdep.c (ppc_deal_with_atomic_sequence): Adjust.
* s390-linux-tdep.c (s390_software_single_step): Adjust.
* sparc-tdep.c (sparc_software_single_step): Adjust.
* spu-tdep.c (spu_software_single_step): Adjust.
* tic6x-tdep.c (tic6x_software_single_step): Adjust.
gdb/gdbserver/ChangeLog:
* linux-arm-low.c (arm_gdbserver_get_next_pcs): Adjust to
software_single_step change of return type to
std::vector<CORE_ADDR>.
* linux-low.c (install_software_single_step_breakpoints):
Likewise.
* linux-low.h (install_software_single_step_breakpoints):
Likewise.
commit ea480a306d46efe3dd1839618137f0e73a80e9b3
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Tue May 2 13:30:07 2017 -0400
Change field separator in gdbarch.sh
The fields in the description of the gdbarch interface are separated
using colons. That becomes a problem if we want to use things like
std::vector in it. This patch changes the field separator to use
semicolons instead.
I think there's very little chance we'll ever want to use a semicolon in
one of the fields, but if you think another character would be more
appropriate, let me know.
gdb/ChangeLog:
* gdbarch.sh: Use semi-colon as field separator instead of colon.
* gdbarch.h: Re-generate.
commit 1395c6ce47510babad3dcb9892f6f2517a3f2b59
Author: Nick Clifton <nickc@redhat.com>
Date: Tue May 2 16:54:53 2017 +0100
Don't merge notes when the relocs associated with them cannot be reliably deleted.
* objcopy.c (merge_gnu_build_notes): Disable merge if there are
more internal relocs than external relocs.
commit 73ec947d59c511411377ad51ef792a5fcdd3f0cc
Author: Alan Modra <amodra@gmail.com>
Date: Tue May 2 21:56:43 2017 +0930
PR 21384, --dynamic-list regression with f02cb058
The commit to "Always descend into output section statements in
lang_do_assignments" meant that linker script symbols were not
bfd_link_hash_new when ld called bfd_elf_record_link_assignment.
This patch corrects that problem by testing h->non_elf instead.
PR 21384
* elflink.c (bfd_elf_link_mark_dynamic_symbol): Test h->non_elf
rather than h->root.type == bfd_link_hash_new.
(bfd_elf_record_link_assignment): Similarly, call
bfd_elf_link_mark_dynamic_symbol when h->non_elf.
commit a4ddc54ec1cd187c844ca631fe0315bf1d78e96f
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue May 2 11:53:30 2017 +0100
MIPS16/opcodes: Keep the LSB of PC-relative offsets in disassembly
Correct the disassembly of the PC-relative immediate argument of the
MIPS16 synthetic LA, LW, DLA and LD instructions and do not mask the
LSB, which in this case is a part of the data address rather than the
ISA bit and has to be fully presented.
opcodes/
* mips-dis.c (print_insn_arg): Only clear the ISA bit for jumps
and branches and not synthetic data instructions.
binutils/
* testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the
disassembly of PC-relative LA and LW synthetic instructions.
commit 39ff1b79f687b65f4144ddb379f22587003443fb
Author: Nick Clifton <nickc@redhat.com>
Date: Tue May 2 11:54:53 2017 +0100
Prevent memory exhaustion from a corrupt PE binary with an overlarge number of relocs.
PR 21440
* objdump.c (dump_relocs_in_section): Check for an excessive
number of relocs before attempting to dump them.
commit d050f7d7f474c7e3ba26902a9cbb185910921a11
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Introduce gdb.Instruction class
This adds a generic instruction class to Python and has gdb.RecordInstruction
inherit from it.
commit 14f819c8c5f7d080e5eea9256f0ec7453aac750e
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Move and rename gdb.BtraceFunction
Remove gdb.BtraceFunctionCall and replace by gdb.FunctionSegment. Additionally,
rename prev_segment and next_segment to prev and next.
commit 0ed5da759e34c6e85cb2a9ea0fdc7b680f897a81
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Move and rename gdb.BtraceInstruction
Remove gdb.BtraceInstruction and replace by gdb.RecordInstruction.
commit 913aeadd9d6b8bdea5131b16dc7ede395097656d
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Introduce gdb.RecordGap class
As discussed here: https://sourceware.org/ml/gdb-patches/2017-04/msg00157.html
A gap is not an instruction and it should not pretend to be one.
gdb.Record.instruction_history is now a list of gdb.RecordInstruction and
gdb.RecordGap objects. This allows the user to deal with Gaps in the record
in a more sane way.
commit a3be24ad59d683d1b08df28e093739743a7cf256
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Remove ptid from gdb.Record interface
As discussed here: https://sourceware.org/ml/gdb-patches/2017-04/msg00166.html
commit ae20e79ae852fee8f7d42701a54a95de3b79ecea
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Use correct ptid in btrace recording
The user would always get the instruction_history and function_call_history
objects of the current thread, not the thread for which the gdb.Record object
was created.
The attached testcase fails without this patch and passes with the patch.
commit 8d0050ea192c41349c1f2b000866c1bdb761abeb
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue May 2 11:35:54 2017 +0200
Python: Fix indentation in py-record-btrace.c
commit fe50e98c9a22a89ca2e032b17aa7162452c3ad3b
Author: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date: Tue May 2 10:28:09 2017 +0100
Fix value in comment of disassembled ARM type A opcodes.
* arm-dis.c (print_insn_thumb32): Fix value_in_comment.
commit 122a483d4f19c8b0a7f3d265dad882bd4f2c868a
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue May 2 00:00:39 2017 +0000
Automatic date update in version.in
commit 0aae7e72a2a11ef1fd2a3b4fd18c8d8d49e0c21b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon May 1 11:02:55 2017 -0700
x86: Run GNU2 TLS tests with working GNU2 TLS support
Check if GNU2 TLS really works before running GNU2 TLS tests.
* testsuite/ld-i386/tls.exp: Run GNU2 TLS tests only if there
is working GNU2 TLS support.
* testsuite/ld-x86-64/tls.exp: Likewise.
* testsuite/lib/ld-lib.exp (check_gnu2_tls_available): New proc.
commit 3f380b502769e55bbcdf7b9587c62344913c6ee8
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon May 1 09:59:15 2017 -0700
gdb/MAINTAINERS: Move Daniel J and Mark to the Past Maintainers section.
gdb/ChangeLog:
* MAINTAINERS: Move Daniel Jacobowitz and Mark Kettenis to
the past maintainers section.
commit ee7e95efb98186c09dc2c39b32263aa15b147bb0
Author: Alan Modra <amodra@gmail.com>
Date: Mon May 1 14:11:27 2017 +0930
merge_gnu_build_notes reloc deletion
If moving relocs, the next reloc to look at is at the same location.
* objcopy.c (merge_gnu_build_notes): Correct code deleting
relocs.
commit 6224c858130fe5c5e5d8b2abdec1cea35986d9e7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon May 1 00:00:35 2017 +0000
Automatic date update in version.in
commit 020bf56c8e55bfbe5a53989eac0c72b8d2416feb
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 30 00:00:31 2017 +0000
Automatic date update in version.in
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 21 +
bfd/config.bfd | 3 +-
bfd/elf32-avr.c | 91 ++-
bfd/elflink.c | 12 +-
bfd/version.h | 2 +-
binutils/ChangeLog | 26 +
binutils/objcopy.c | 20 +-
binutils/objdump.c | 8 +
.../testsuite/binutils-all/mips/mips16-undecoded.d | 20 +-
gas/ChangeLog | 185 ++++++
gas/config/tc-mips.c | 319 +++++++++---
gas/symbols.c | 20 +-
gas/testsuite/gas/mips/micromips@relax-swap3.d | 1 -
gas/testsuite/gas/mips/mips.exp | 66 +++
gas/testsuite/gas/mips/mips16-branch-absolute-1.d | 20 +
gas/testsuite/gas/mips/mips16-branch-absolute-1.s | 22 +
gas/testsuite/gas/mips/mips16-branch-absolute-2.d | 4 +
gas/testsuite/gas/mips/mips16-branch-absolute-2.s | 20 +
.../gas/mips/mips16-branch-absolute-addend-1.d | 4 +
.../gas/mips/mips16-branch-absolute-addend-1.s | 22 +
.../gas/mips/mips16-branch-absolute-addend-n32-1.d | 5 +
.../gas/mips/mips16-branch-absolute-addend-n64-1.d | 5 +
.../gas/mips/mips16-branch-absolute-n32-1.d | 5 +
.../gas/mips/mips16-branch-absolute-n32-2.d | 5 +
.../gas/mips/mips16-branch-absolute-n64-1.d | 5 +
.../gas/mips/mips16-branch-absolute-n64-2.d | 5 +
gas/testsuite/gas/mips/mips16-pcrel-0.d | 47 ++
gas/testsuite/gas/mips/mips16-pcrel-0.l | 5 +
gas/testsuite/gas/mips/mips16-pcrel-0.s | 39 ++
gas/testsuite/gas/mips/mips16-pcrel-1.d | 47 ++
gas/testsuite/gas/mips/mips16-pcrel-1.l | 5 +
gas/testsuite/gas/mips/mips16-pcrel-1.s | 39 ++
gas/testsuite/gas/mips/mips16-pcrel-2.d | 5 +
gas/testsuite/gas/mips/mips16-pcrel-2.l | 5 +
gas/testsuite/gas/mips/mips16-pcrel-2.s | 43 ++
gas/testsuite/gas/mips/mips16-pcrel-3.d | 3 +
gas/testsuite/gas/mips/mips16-pcrel-3.l | 7 +
gas/testsuite/gas/mips/mips16-pcrel-3.s | 29 +
gas/testsuite/gas/mips/mips16-pcrel-4.d | 3 +
gas/testsuite/gas/mips/mips16-pcrel-4.l | 15 +
gas/testsuite/gas/mips/mips16-pcrel-4.s | 52 ++
gas/testsuite/gas/mips/mips16-pcrel-5.d | 3 +
gas/testsuite/gas/mips/mips16-pcrel-5.l | 15 +
gas/testsuite/gas/mips/mips16-pcrel-5.s | 54 ++
gas/testsuite/gas/mips/mips16-pcrel-absolute-1.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-1.s | 18 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-2.d | 16 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-2.s | 18 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-3.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-3.s | 18 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-4.d | 34 ++
gas/testsuite/gas/mips/mips16-pcrel-absolute-4.l | 9 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-4.s | 24 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-5.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-5.s | 24 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-6.d | 34 ++
gas/testsuite/gas/mips/mips16-pcrel-absolute-6.l | 9 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-6.s | 24 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-7.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-absolute-7.s | 24 +
.../gas/mips/mips16-pcrel-absolute-n32-4.d | 5 +
.../gas/mips/mips16-pcrel-absolute-n32-6.d | 5 +
.../gas/mips/mips16-pcrel-absolute-n64-4.d | 4 +
.../gas/mips/mips16-pcrel-absolute-n64-6.d | 4 +
.../gas/mips/mips16-pcrel-absolute-n64-sym32-4.d | 5 +
.../gas/mips/mips16-pcrel-absolute-n64-sym32-6.d | 5 +
.../gas/mips/mips16-pcrel-absolute-pic-4.d | 5 +
.../gas/mips/mips16-pcrel-absolute-pic-6.d | 5 +
.../gas/mips/mips16-pcrel-absolute-pic-n32-4.d | 5 +
.../gas/mips/mips16-pcrel-absolute-pic-n32-6.d | 5 +
.../gas/mips/mips16-pcrel-absolute-pic-n64-4.d | 4 +
.../gas/mips/mips16-pcrel-absolute-pic-n64-6.d | 4 +
.../mips/mips16-pcrel-absolute-pic-n64-sym32-4.d | 5 +
.../mips/mips16-pcrel-absolute-pic-n64-sym32-6.d | 5 +
gas/testsuite/gas/mips/mips16-pcrel-absolute.d | 15 +-
gas/testsuite/gas/mips/mips16-pcrel-absolute.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-addend-2.d | 20 +-
gas/testsuite/gas/mips/mips16-pcrel-addend-2.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-addend-3.d | 19 +-
gas/testsuite/gas/mips/mips16-pcrel-addend-3.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-addend-4.d | 13 +
gas/testsuite/gas/mips/mips16-pcrel-addend-4.s | 25 +
gas/testsuite/gas/mips/mips16-pcrel-addend-5.d | 13 +
gas/testsuite/gas/mips/mips16-pcrel-addend-5.s | 25 +
gas/testsuite/gas/mips/mips16-pcrel-addend-6.d | 21 +
gas/testsuite/gas/mips/mips16-pcrel-addend-6.s | 26 +
gas/testsuite/gas/mips/mips16-pcrel-addend-7.d | 20 +
gas/testsuite/gas/mips/mips16-pcrel-addend-7.s | 16 +
gas/testsuite/gas/mips/mips16-pcrel-addend-8.d | 50 ++
gas/testsuite/gas/mips/mips16-pcrel-addend-8.l | 9 +
gas/testsuite/gas/mips/mips16-pcrel-addend-8.s | 22 +
gas/testsuite/gas/mips/mips16-pcrel-addend-9.d | 50 ++
gas/testsuite/gas/mips/mips16-pcrel-addend-9.l | 9 +
gas/testsuite/gas/mips/mips16-pcrel-addend-9.s | 22 +
gas/testsuite/gas/mips/mips16-pcrel-addend-n32-8.d | 51 ++
gas/testsuite/gas/mips/mips16-pcrel-addend-n32-9.d | 51 ++
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-8.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-9.d | 4 +
.../gas/mips/mips16-pcrel-addend-n64-sym32-8.d | 83 +++
.../gas/mips/mips16-pcrel-addend-n64-sym32-9.d | 83 +++
gas/testsuite/gas/mips/mips16-pcrel-addend-pic-8.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-addend-pic-9.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-delay-0.d | 35 ++
gas/testsuite/gas/mips/mips16-pcrel-delay-0.l | 5 +
gas/testsuite/gas/mips/mips16-pcrel-delay-0.s | 36 ++
gas/testsuite/gas/mips/mips16-pcrel-delay-1.d | 40 ++
gas/testsuite/gas/mips/mips16-pcrel-delay-1.l | 5 +
gas/testsuite/gas/mips/mips16-pcrel-delay-1.s | 35 ++
gas/testsuite/gas/mips/mips16-pcrel-n32-0.d | 48 ++
gas/testsuite/gas/mips/mips16-pcrel-n32-1.d | 48 ++
gas/testsuite/gas/mips/mips16-pcrel-n64-0.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-n64-1.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d | 64 +++
gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d | 64 +++
gas/testsuite/gas/mips/mips16-pcrel-pic-0.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-pic-1.d | 4 +
gas/testsuite/gas/mips/mips16-pcrel-reloc-2.d | 20 +-
gas/testsuite/gas/mips/mips16-pcrel-reloc-2.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-reloc-3.d | 19 +-
gas/testsuite/gas/mips/mips16-pcrel-reloc-3.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-reloc-6.d | 20 +-
gas/testsuite/gas/mips/mips16-pcrel-reloc-6.l | 3 -
gas/testsuite/gas/mips/mips16-pcrel-reloc-7.d | 19 +-
gas/testsuite/gas/mips/mips16-pcrel-reloc-7.l | 3 -
gas/testsuite/gas/mips/mips16@relax-swap3.d | 23 +-
gas/testsuite/gas/mips/mips16@relax-swap3.l | 3 -
gas/testsuite/gas/mips/mips16e@relax-swap3.d | 21 +
gas/testsuite/gas/mips/relax-swap3.s | 6 +-
gdb/ChangeLog | 389 +++++++++++++
gdb/MAINTAINERS | 17 +-
gdb/Makefile.in | 29 +-
gdb/aarch64-tdep.c | 17 +-
gdb/alpha-tdep.c | 23 +-
gdb/alpha-tdep.h | 3 +-
gdb/arch/arm-get-next-pcs.c | 89 ++--
gdb/arch/arm-get-next-pcs.h | 5 +-
gdb/arm-linux-tdep.c | 21 +-
gdb/arm-tdep.c | 30 +-
gdb/arm-tdep.h | 4 +-
gdb/breakpoint.c | 107 ++---
gdb/btrace.c | 9 +-
gdb/common/gdb_vecs.h | 2 -
gdb/config/aarch64/linux.mh | 29 -
gdb/config/alpha/alpha-linux.mh | 15 -
gdb/config/alpha/nbsd.mh | 4 -
gdb/config/arm/linux.mh | 10 -
gdb/config/arm/nbsdelf.mh | 2 -
gdb/config/i386/cygwin.mh | 3 -
gdb/config/i386/cygwin64.mh | 20 -
gdb/config/i386/darwin.mh | 4 -
gdb/config/i386/fbsd.mh | 8 -
gdb/config/i386/fbsd64.mh | 7 -
gdb/config/i386/go32.mh | 11 -
gdb/config/i386/{i386gnu.mh => i386gnu.mn} | 12 -
gdb/config/i386/i386sol2.mh | 4 -
gdb/config/i386/linux.mh | 14 -
gdb/config/i386/linux64.mh | 15 -
gdb/config/i386/mingw.mh | 3 -
gdb/config/i386/mingw64.mh | 1 -
gdb/config/i386/nbsd64.mh | 3 -
gdb/config/i386/nbsdelf.mh | 5 -
gdb/config/i386/nto.mh | 4 -
gdb/config/i386/obsd.mh | 5 -
gdb/config/i386/obsd64.mh | 5 -
gdb/config/i386/sol2-64.mh | 4 -
gdb/config/ia64/linux.mh | 13 -
gdb/config/m32r/linux.mh | 10 -
gdb/config/m68k/linux.mh | 14 -
gdb/config/m68k/nbsdelf.mh | 4 -
gdb/config/m68k/obsd.mh | 4 -
gdb/config/m88k/obsd.mh | 2 -
gdb/config/mips/fbsd.mh | 3 -
gdb/config/mips/linux.mh | 11 -
gdb/config/mips/nbsd.mh | 2 -
gdb/config/mips/obsd64.mh | 2 -
gdb/config/pa/linux.mh | 10 -
gdb/config/pa/nbsd.mh | 2 -
gdb/config/pa/obsd.mh | 2 -
gdb/config/powerpc/aix.mh | 8 -
gdb/config/powerpc/fbsd.mh | 24 -
gdb/config/powerpc/linux.mh | 12 -
gdb/config/powerpc/nbsd.mh | 4 -
gdb/config/powerpc/obsd.mh | 4 -
gdb/config/powerpc/ppc64-linux.mh | 15 -
gdb/config/powerpc/spu-linux.mh | 8 -
gdb/config/s390/linux.mh | 9 -
gdb/config/sh/nbsd.mh | 2 -
gdb/config/sparc/fbsd.mh | 7 -
gdb/config/sparc/linux.mh | 13 -
gdb/config/sparc/linux64.mh | 13 -
gdb/config/sparc/nbsd64.mh | 5 -
gdb/config/sparc/nbsdelf.mh | 5 -
gdb/config/sparc/obsd64.mh | 5 -
gdb/config/sparc/sol2.mh | 6 -
gdb/config/tilegx/linux.mh | 13 -
gdb/config/vax/nbsdelf.mh | 5 -
gdb/config/vax/obsd.mh | 5 -
gdb/config/xtensa/linux.mh | 11 -
gdb/configure | 43 +-
gdb/configure.ac | 37 +-
gdb/configure.nat | 484 ++++++++++++++++
gdb/corelow.c | 80 ++-
gdb/cris-tdep.c | 8 +-
gdb/doc/ChangeLog | 26 +
gdb/doc/Makefile.in | 3 -
gdb/doc/python.texi | 108 ++--
gdb/exec.c | 15 +-
gdb/frv-linux-tdep.c | 7 +-
gdb/gdbarch.c | 2 +-
gdb/gdbarch.h | 11 +-
gdb/gdbarch.sh | 389 +++++++-------
gdb/gdbserver/ChangeLog | 22 +
gdb/gdbserver/configure | 4 +-
gdb/gdbserver/linux-arm-low.c | 7 +-
gdb/gdbserver/linux-low.c | 9 +-
gdb/gdbserver/linux-low.h | 2 +-
gdb/gdbthread.h | 22 +-
gdb/infcmd.c | 31 +-
gdb/inferior.c | 29 +-
gdb/inferior.h | 23 +-
gdb/infrun.c | 65 ++-
gdb/linespec.c | 6 +-
gdb/mi/mi-main.c | 12 +-
gdb/mips-tdep.c | 57 +-
gdb/mips-tdep.h | 3 +-
gdb/moxie-tdep.c | 26 +-
gdb/nios2-tdep.c | 7 +-
gdb/ppc-tdep.h | 3 +-
gdb/proc-service.c | 18 +-
gdb/progspace-and-thread.c | 43 ++
gdb/progspace-and-thread.h | 40 ++
gdb/progspace.c | 80 +---
gdb/progspace.h | 32 +-
gdb/python/py-instruction.c | 67 +++
gdb/python/py-instruction.h | 30 +
gdb/python/py-record-btrace.c | 596 ++++++++------------
gdb/python/py-record-btrace.h | 42 ++
gdb/python/py-record.c | 424 +++++++++++++-
gdb/python/py-record.h | 74 +++
gdb/python/python-internal.h | 2 +
gdb/python/python.c | 1 +
gdb/regcache.c | 20 +
gdb/regcache.h | 2 +
gdb/remote.c | 5 +-
gdb/rs6000-aix-tdep.c | 10 +-
gdb/rs6000-tdep.c | 15 +-
gdb/s390-linux-tdep.c | 15 +-
gdb/solib-target.c | 61 +--
gdb/sparc-tdep.c | 8 +-
gdb/spu-tdep.c | 9 +-
gdb/symtab.c | 12 +-
gdb/testsuite/ChangeLog | 29 +
gdb/testsuite/gdb.cp/oranking.cc | 17 +
.../gdb.python/py-record-btrace-threads.c | 58 ++
.../gdb.python/py-record-btrace-threads.exp | 81 +++
gdb/testsuite/gdb.python/py-record-btrace.exp | 6 +-
gdb/thread.c | 249 ++++-----
gdb/tic6x-tdep.c | 7 +-
gdb/tracepoint.c | 6 +-
gdb/varobj.c | 5 +-
gdb/warning.m4 | 2 +-
ld/ChangeLog | 79 +++
ld/testsuite/ld-avr/pr21404-1.d | 12 +
ld/testsuite/ld-avr/pr21404-1.s | 11 +
ld/testsuite/ld-avr/pr21404-2.d | 16 +
ld/testsuite/ld-avr/pr21404-2.s | 25 +
ld/testsuite/ld-avr/pr21404-3.d | 10 +
ld/testsuite/ld-avr/pr21404-3.s | 10 +
ld/testsuite/ld-avr/pr21404-4.d | 10 +
ld/testsuite/ld-avr/pr21404-4.s | 10 +
ld/testsuite/ld-avr/pr21404-5.d | 11 +
ld/testsuite/ld-avr/pr21404-5.s | 9 +
ld/testsuite/ld-avr/pr21404-6.d | 16 +
ld/testsuite/ld-avr/pr21404-6.s | 19 +
ld/testsuite/ld-avr/pr21404-7.d | 10 +
ld/testsuite/ld-avr/pr21404-7.s | 9 +
ld/testsuite/ld-avr/pr21404-8.d | 10 +
ld/testsuite/ld-avr/pr21404-8.s | 9 +
ld/testsuite/ld-elf/pr21384.d | 12 +
ld/testsuite/ld-elf/pr21384.dl | 4 +
ld/testsuite/ld-elf/pr21384.ld | 22 +
ld/testsuite/ld-elf/pr21384.s | 2 +
ld/testsuite/ld-i386/tls.exp | 9 +-
ld/testsuite/ld-mips-elf/mips-elf.exp | 27 +
.../ld-mips-elf/mips16-branch-absolute-1.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-2.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-addend-1.d | 6 +
.../mips16-branch-absolute-addend-n32-1.d | 6 +
.../mips16-branch-absolute-addend-n64-1.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-n32-1.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-n32-2.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-n64-1.d | 6 +
.../ld-mips-elf/mips16-branch-absolute-n64-2.d | 6 +
ld/testsuite/ld-mips-elf/mips16-pcrel-0.d | 41 ++
ld/testsuite/ld-mips-elf/mips16-pcrel-1.d | 41 ++
ld/testsuite/ld-mips-elf/mips16-pcrel-addend-2.d | 19 +
ld/testsuite/ld-mips-elf/mips16-pcrel-addend-6.d | 19 +
ld/testsuite/ld-mips-elf/mips16-pcrel-n32-0.d | 6 +
ld/testsuite/ld-mips-elf/mips16-pcrel-n32-1.d | 6 +
.../ld-mips-elf/mips16-pcrel-n64-sym32-0.d | 6 +
.../ld-mips-elf/mips16-pcrel-n64-sym32-1.d | 6 +
ld/testsuite/ld-x86-64/tls.exp | 7 +-
ld/testsuite/lib/ld-lib.exp | 64 +++
opcodes/ChangeLog | 18 +
opcodes/arm-dis.c | 4 +-
opcodes/mips-dis.c | 7 +-
opcodes/riscv-dis.c | 1 +
opcodes/riscv-opc.c | 2 +-
308 files changed, 6270 insertions(+), 2049 deletions(-)
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-2.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-n32-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-addend-n64-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n32-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n32-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n64-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-absolute-n64-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-0.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-2.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-3.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-4.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-5.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-2.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-3.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-3.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-4.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-5.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-5.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-6.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-7.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-7.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-absolute.l
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-2.l
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-3.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-4.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-5.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-5.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-6.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-6.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-7.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-7.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-8.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-9.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n32-8.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n32-9.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-8.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-9.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-pic-8.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-addend-pic-9.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-0.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.l
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-delay-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n32-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n32-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-pic-0.d
create mode 100644 gas/testsuite/gas/mips/mips16-pcrel-pic-1.d
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-2.l
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-3.l
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-6.l
delete mode 100644 gas/testsuite/gas/mips/mips16-pcrel-reloc-7.l
delete mode 100644 gas/testsuite/gas/mips/mips16@relax-swap3.l
create mode 100644 gas/testsuite/gas/mips/mips16e@relax-swap3.d
delete mode 100644 gdb/config/aarch64/linux.mh
delete mode 100644 gdb/config/alpha/alpha-linux.mh
delete mode 100644 gdb/config/alpha/nbsd.mh
delete mode 100644 gdb/config/arm/linux.mh
delete mode 100644 gdb/config/arm/nbsdelf.mh
delete mode 100644 gdb/config/i386/cygwin.mh
delete mode 100644 gdb/config/i386/cygwin64.mh
delete mode 100644 gdb/config/i386/darwin.mh
delete mode 100644 gdb/config/i386/fbsd.mh
delete mode 100644 gdb/config/i386/fbsd64.mh
delete mode 100644 gdb/config/i386/go32.mh
rename gdb/config/i386/{i386gnu.mh => i386gnu.mn} (79%)
delete mode 100644 gdb/config/i386/i386sol2.mh
delete mode 100644 gdb/config/i386/linux.mh
delete mode 100644 gdb/config/i386/linux64.mh
delete mode 100644 gdb/config/i386/mingw.mh
delete mode 100644 gdb/config/i386/mingw64.mh
delete mode 100644 gdb/config/i386/nbsd64.mh
delete mode 100644 gdb/config/i386/nbsdelf.mh
delete mode 100644 gdb/config/i386/nto.mh
delete mode 100644 gdb/config/i386/obsd.mh
delete mode 100644 gdb/config/i386/obsd64.mh
delete mode 100644 gdb/config/i386/sol2-64.mh
delete mode 100644 gdb/config/ia64/linux.mh
delete mode 100644 gdb/config/m32r/linux.mh
delete mode 100644 gdb/config/m68k/linux.mh
delete mode 100644 gdb/config/m68k/nbsdelf.mh
delete mode 100644 gdb/config/m68k/obsd.mh
delete mode 100644 gdb/config/m88k/obsd.mh
delete mode 100644 gdb/config/mips/fbsd.mh
delete mode 100644 gdb/config/mips/linux.mh
delete mode 100644 gdb/config/mips/nbsd.mh
delete mode 100644 gdb/config/mips/obsd64.mh
delete mode 100644 gdb/config/pa/linux.mh
delete mode 100644 gdb/config/pa/nbsd.mh
delete mode 100644 gdb/config/pa/obsd.mh
delete mode 100644 gdb/config/powerpc/aix.mh
delete mode 100644 gdb/config/powerpc/fbsd.mh
delete mode 100644 gdb/config/powerpc/linux.mh
delete mode 100644 gdb/config/powerpc/nbsd.mh
delete mode 100644 gdb/config/powerpc/obsd.mh
delete mode 100644 gdb/config/powerpc/ppc64-linux.mh
delete mode 100644 gdb/config/powerpc/spu-linux.mh
delete mode 100644 gdb/config/s390/linux.mh
delete mode 100644 gdb/config/sh/nbsd.mh
delete mode 100644 gdb/config/sparc/fbsd.mh
delete mode 100644 gdb/config/sparc/linux.mh
delete mode 100644 gdb/config/sparc/linux64.mh
delete mode 100644 gdb/config/sparc/nbsd64.mh
delete mode 100644 gdb/config/sparc/nbsdelf.mh
delete mode 100644 gdb/config/sparc/obsd64.mh
delete mode 100644 gdb/config/sparc/sol2.mh
delete mode 100644 gdb/config/tilegx/linux.mh
delete mode 100644 gdb/config/vax/nbsdelf.mh
delete mode 100644 gdb/config/vax/obsd.mh
delete mode 100644 gdb/config/xtensa/linux.mh
create mode 100644 gdb/configure.nat
create mode 100644 gdb/progspace-and-thread.c
create mode 100644 gdb/progspace-and-thread.h
create mode 100644 gdb/python/py-instruction.c
create mode 100644 gdb/python/py-instruction.h
create mode 100644 gdb/python/py-record.h
create mode 100644 gdb/testsuite/gdb.python/py-record-btrace-threads.c
create mode 100644 gdb/testsuite/gdb.python/py-record-btrace-threads.exp
create mode 100644 ld/testsuite/ld-avr/pr21404-1.d
create mode 100644 ld/testsuite/ld-avr/pr21404-1.s
create mode 100644 ld/testsuite/ld-avr/pr21404-2.d
create mode 100644 ld/testsuite/ld-avr/pr21404-2.s
create mode 100644 ld/testsuite/ld-avr/pr21404-3.d
create mode 100644 ld/testsuite/ld-avr/pr21404-3.s
create mode 100644 ld/testsuite/ld-avr/pr21404-4.d
create mode 100644 ld/testsuite/ld-avr/pr21404-4.s
create mode 100644 ld/testsuite/ld-avr/pr21404-5.d
create mode 100644 ld/testsuite/ld-avr/pr21404-5.s
create mode 100644 ld/testsuite/ld-avr/pr21404-6.d
create mode 100644 ld/testsuite/ld-avr/pr21404-6.s
create mode 100644 ld/testsuite/ld-avr/pr21404-7.d
create mode 100644 ld/testsuite/ld-avr/pr21404-7.s
create mode 100644 ld/testsuite/ld-avr/pr21404-8.d
create mode 100644 ld/testsuite/ld-avr/pr21404-8.s
create mode 100644 ld/testsuite/ld-elf/pr21384.d
create mode 100644 ld/testsuite/ld-elf/pr21384.dl
create mode 100644 ld/testsuite/ld-elf/pr21384.ld
create mode 100644 ld/testsuite/ld-elf/pr21384.s
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-2.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-n32-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-addend-n64-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n32-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n32-2.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n64-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-branch-absolute-n64-2.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-0.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-addend-2.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-addend-6.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n32-0.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n32-1.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-0.d
create mode 100644 ld/testsuite/ld-mips-elf/mips16-pcrel-n64-sym32-1.d
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index dff6a59..27ac8c3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,24 @@
+2017-05-01 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ PR ld/21404
+ * elf32-avr.c (avr_should_move_sym): New function.
+ (avr_should_reduce_sym_size): Likewise.
+ (avr_should_increase_sym_size): Likewise.
+ (elf32_avr_relax_delete_bytes): Adjust symbol values
+ and sizes by calling new functions.
+
+2017-05-01 Palmer Dabbelt <palmer@dabbelt.com>
+
+ * config.bfd (riscv32-*): Enable rv64.
+
+2017-05-02 Alan Modra <amodra@gmail.com>
+
+ PR 21384
+ * elflink.c (bfd_elf_link_mark_dynamic_symbol): Test h->non_elf
+ rather than h->root.type == bfd_link_hash_new.
+ (bfd_elf_record_link_assignment): Similarly, call
+ bfd_elf_link_mark_dynamic_symbol when h->non_elf.
+
2017-04-29 Alan Modra <amodra@gmail.com>
PR 21432
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 151de95..eb6a958 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -1441,10 +1441,9 @@ case "${targ}" in
#ifdef BFD64
riscv32-*-*)
targ_defvec=riscv_elf32_vec
- targ_selvecs="riscv_elf32_vec"
+ targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
want64=true
;;
-
riscv64-*-*)
targ_defvec=riscv_elf64_vec
targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index 0f6c188..f140aa7 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -1854,6 +1854,40 @@ elf32_avr_adjust_reloc_if_spans_insn (bfd *abfd,
}
}
+static bfd_boolean
+avr_should_move_sym (symvalue symval,
+ bfd_vma start,
+ bfd_vma end,
+ bfd_boolean did_pad)
+{
+ bfd_boolean sym_within_boundary =
+ did_pad ? symval < end : symval <= end;
+ return (symval > start && sym_within_boundary);
+}
+
+static bfd_boolean
+avr_should_reduce_sym_size (symvalue symval,
+ symvalue symend,
+ bfd_vma start,
+ bfd_vma end,
+ bfd_boolean did_pad)
+{
+ bfd_boolean sym_end_within_boundary =
+ did_pad ? symend < end : symend <= end;
+ return (symval <= start && symend > start && sym_end_within_boundary);
+}
+
+static bfd_boolean
+avr_should_increase_sym_size (symvalue symval,
+ symvalue symend,
+ bfd_vma start,
+ bfd_vma end,
+ bfd_boolean did_pad)
+{
+ return avr_should_move_sym (symval, start, end, did_pad)
+ && symend >= end && did_pad;
+}
+
/* Delete some bytes from a section while changing the size of an instruction.
The parameter "addr" denotes the section-relative offset pointing just
behind the shrinked instruction. "addr+count" point at the first
@@ -1875,13 +1909,14 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
Elf_Internal_Rela *irel, *irelend;
Elf_Internal_Sym *isym;
Elf_Internal_Sym *isymbuf = NULL;
- bfd_vma toaddr, reloc_toaddr;
+ bfd_vma toaddr;
struct elf_link_hash_entry **sym_hashes;
struct elf_link_hash_entry **end_hashes;
unsigned int symcount;
struct avr_relax_info *relax_info;
struct avr_property_record *prop_record = NULL;
bfd_boolean did_shrink = FALSE;
+ bfd_boolean did_pad = FALSE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
@@ -1912,17 +1947,6 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
}
}
- /* We need to look at all relocs with offsets less than toaddr. prop
- records handling adjusts toaddr downwards to avoid moving syms at the
- address of the property record, but all relocs with offsets between addr
- and the current value of toaddr need to have their offsets adjusted.
- Assume addr = 0, toaddr = 4 and count = 2. After prop records handling,
- toaddr becomes 2, but relocs with offsets 2 and 3 still need to be
- adjusted (to 0 and 1 respectively), as the first 2 bytes are now gone.
- So record the current value of toaddr here, and use it when adjusting
- reloc offsets. */
- reloc_toaddr = toaddr;
-
irel = elf_section_data (sec)->relocs;
irelend = irel + sec->reloc_count;
@@ -1962,10 +1986,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
to remember we didn't delete anything i.e. don't set did_shrink,
so that we don't corrupt reloc offsets or symbol values.*/
memset (contents + toaddr - count, fill, count);
-
- /* Adjust the TOADDR to avoid moving symbols located at the address
- of the property record, which has not moved. */
- toaddr -= count;
+ did_pad = TRUE;
}
if (!did_shrink)
@@ -1981,7 +2002,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
/* Get the new reloc address. */
if ((irel->r_offset > addr
- && irel->r_offset < reloc_toaddr))
+ && irel->r_offset < toaddr))
{
if (debug_relax)
printf ("Relocation at address 0x%x needs to be moved.\n"
@@ -2059,7 +2080,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
{
/* If there is an alignment boundary, we only need to
adjust addends that end up below the boundary. */
- bfd_vma shrink_boundary = (reloc_toaddr
+ bfd_vma shrink_boundary = (toaddr
+ sec->output_section->vma
+ sec->output_offset);
@@ -2102,12 +2123,10 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
{
if (isym->st_shndx == sec_shndx)
{
- if (isym->st_value > addr
- && isym->st_value <= toaddr)
- isym->st_value -= count;
-
- if (isym->st_value <= addr
- && isym->st_value + isym->st_size > addr)
+ symvalue symval = isym->st_value;
+ symvalue symend = symval + isym->st_size;
+ if (avr_should_reduce_sym_size (symval, symend,
+ addr, toaddr, did_pad))
{
/* If this assert fires then we have a symbol that ends
part way through an instruction. Does that make
@@ -2115,6 +2134,12 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
BFD_ASSERT (isym->st_value + isym->st_size >= addr + count);
isym->st_size -= count;
}
+ else if (avr_should_increase_sym_size (symval, symend,
+ addr, toaddr, did_pad))
+ isym->st_size += count;
+
+ if (avr_should_move_sym (symval, addr, toaddr, did_pad))
+ isym->st_value -= count;
}
}
}
@@ -2131,20 +2156,24 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
|| sym_hash->root.type == bfd_link_hash_defweak)
&& sym_hash->root.u.def.section == sec)
{
- if (sym_hash->root.u.def.value > addr
- && sym_hash->root.u.def.value <= toaddr)
- sym_hash->root.u.def.value -= count;
+ symvalue symval = sym_hash->root.u.def.value;
+ symvalue symend = symval + sym_hash->size;
- if (sym_hash->root.u.def.value <= addr
- && (sym_hash->root.u.def.value + sym_hash->size > addr))
+ if (avr_should_reduce_sym_size (symval, symend,
+ addr, toaddr, did_pad))
{
/* If this assert fires then we have a symbol that ends
part way through an instruction. Does that make
sense? */
- BFD_ASSERT (sym_hash->root.u.def.value + sym_hash->size
- >= addr + count);
+ BFD_ASSERT (symend >= addr + count);
sym_hash->size -= count;
}
+ else if (avr_should_increase_sym_size (symval, symend,
+ addr, toaddr, did_pad))
+ sym_hash->size += count;
+
+ if (avr_should_move_sym (symval, addr, toaddr, did_pad))
+ sym_hash->root.u.def.value -= count;
}
}
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 4af4b1c..9acc069 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -580,7 +580,7 @@ bfd_elf_link_mark_dynamic_symbol (struct bfd_link_info *info,
&& (ELF_ST_TYPE (sym->st_info) == STT_OBJECT
|| ELF_ST_TYPE (sym->st_info) == STT_COMMON))))
|| (d != NULL
- && h->root.type == bfd_link_hash_new
+ && h->non_elf
&& (*d->match) (&d->head, NULL, h->root.root.string)))
h->dynamic = 1;
}
@@ -623,6 +623,14 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
}
}
+ /* Symbols defined in a linker script but not referenced anywhere
+ else will have non_elf set. */
+ if (h->non_elf)
+ {
+ bfd_elf_link_mark_dynamic_symbol (info, h, NULL);
+ h->non_elf = 0;
+ }
+
switch (h->root.type)
{
case bfd_link_hash_defined:
@@ -639,8 +647,6 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
bfd_link_repair_undef_list (&htab->root);
break;
case bfd_link_hash_new:
- bfd_elf_link_mark_dynamic_symbol (info, h, NULL);
- h->non_elf = 0;
break;
case bfd_link_hash_indirect:
/* We had a versioned symbol in a dynamic library. We make the
diff --git a/bfd/version.h b/bfd/version.h
index a5c3e29..53986ea 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20170429
+#define BFD_VERSION_DATE 20170507
#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/binutils/ChangeLog b/binutils/ChangeLog
index 9eea3a0..b3a539a 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,29 @@
+2017-05-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ * objcopy.c (merge_gnu_build_notes): Cast relcount to unsigned
+ long when comparing with sec->reloc_count.
+
+2017-05-02 Nick Clifton <nickc@redhat.com>
+
+ * objcopy.c (merge_gnu_build_notes): Disable merge if there are
+ more internal relocs than external relocs.
+
+2017-05-02 Maciej W. Rozycki <macro@imgtec.com>
+
+ * testsuite/binutils-all/mips/mips16-undecoded.d: Adjust the
+ disassembly of PC-relative LA and LW synthetic instructions.
+
+2017-05-02 Nick Clifton <nickc@redhat.com>
+
+ PR 21440
+ * objdump.c (dump_relocs_in_section): Check for an excessive
+ number of relocs before attempting to dump them.
+
+2017-05-01 Alan Modra <amodra@gmail.com>
+
+ * objcopy.c (merge_gnu_build_notes): Correct code deleting
+ relocs.
+
2017-04-28 Nick Clifton <nickc@redhat.com>
PR binutils/21439
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 9bad4b7..ccb5e12 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -2137,6 +2137,13 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte
relcount = 0;
}
+ /* A few targets (eg MIPS, SPARC) create multiple internal relocs to
+ represent a single external reloc. Unfortunately the current BFD
+ API does not handle deleting relocs in such situations very well
+ and so it is unsafe to proceed. */
+ if ((unsigned long) relcount > sec->reloc_count)
+ goto done;
+
/* Eliminate the duplicates. */
new = new_contents = xmalloc (size);
for (pnote = pnotes, old = contents;
@@ -2185,15 +2192,18 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte
if (relcount > 0)
{
- arelent ** rel;
+ arelent **rel = relpp;
- for (rel = relpp; rel < relpp + relcount; rel ++)
- if ((* rel)->howto == NULL)
+ while (rel < relpp + relcount)
+ if ((*rel)->howto != NULL)
+ rel++;
+ else
{
/* Delete eliminated relocs.
FIXME: There are better ways to do this. */
- memmove (rel, rel + 1, ((relcount - (rel - relpp)) - 1) * sizeof (* rel));
- relcount --;
+ memmove (rel, rel + 1,
+ ((relcount - (rel - relpp)) - 1) * sizeof (*rel));
+ relcount--;
}
bfd_set_reloc (abfd, sec, relpp, relcount);
}
diff --git a/binutils/objdump.c b/binutils/objdump.c
index bc61000..5972da1 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -3379,6 +3379,14 @@ dump_relocs_in_section (bfd *abfd,
return;
}
+ if ((bfd_get_file_flags (abfd) & (BFD_IN_MEMORY | BFD_LINKER_CREATED)) == 0
+ && relsize > get_file_size (bfd_get_filename (abfd)))
+ {
+ printf (" (too many: 0x%x)\n", section->reloc_count);
+ bfd_set_error (bfd_error_file_truncated);
+ bfd_fatal (bfd_get_filename (abfd));
+ }
+
relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms);
diff --git a/binutils/testsuite/binutils-all/mips/mips16-undecoded.d b/binutils/testsuite/binutils-all/mips/mips16-undecoded.d
index 42a5cdf..b455419 100644
--- a/binutils/testsuite/binutils-all/mips/mips16-undecoded.d
+++ b/binutils/testsuite/binutils-all/mips/mips16-undecoded.d
@@ -11,11 +11,11 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> f008 0231 addiu v0,sp,16401
[0-9a-f]+ <[^>]*> f008 0251 addiu v0,sp,16401
[0-9a-f]+ <[^>]*> f008 0291 addiu v0,sp,16401
-[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004024 <foo\+0x4024>
-[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004028 <foo\+0x4028>
-[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402c <foo\+0x402c>
-[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004030 <foo\+0x4030>
-[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004034 <foo\+0x4034>
+[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004025 <foo\+0x4025>
+[0-9a-f]+ <[^>]*> f008 0a11 la v0,00004029 <foo\+0x4029>
+[0-9a-f]+ <[^>]*> f008 0a31 la v0,0000402d <foo\+0x402d>
+[0-9a-f]+ <[^>]*> f008 0a51 la v0,00004031 <foo\+0x4031>
+[0-9a-f]+ <[^>]*> f008 0a91 la v0,00004035 <foo\+0x4035>
[0-9a-f]+ <[^>]*> f008 1011 b 0000804e <foo\+0x804e>
[0-9a-f]+ <[^>]*> f008 1011 b 00008052 <foo\+0x8052>
[0-9a-f]+ <[^>]*> f008 1031 b 00008056 <foo\+0x8056>
@@ -64,11 +64,11 @@ Disassembly of section \.text:
[0-9a-f]+ <[^>]*> f008 9231 lw v0,16401\(sp\)
[0-9a-f]+ <[^>]*> f008 9251 lw v0,16401\(sp\)
[0-9a-f]+ <[^>]*> f008 9291 lw v0,16401\(sp\)
-[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040f8 <foo\+0x40f8>
-[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fc <foo\+0x40fc>
-[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004100 <foo\+0x4100>
-[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004104 <foo\+0x4104>
-[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004108 <foo\+0x4108>
+[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040f9 <foo\+0x40f9>
+[0-9a-f]+ <[^>]*> f008 b211 lw v0,000040fd <foo\+0x40fd>
+[0-9a-f]+ <[^>]*> f008 b231 lw v0,00004101 <foo\+0x4101>
+[0-9a-f]+ <[^>]*> f008 b251 lw v0,00004105 <foo\+0x4105>
+[0-9a-f]+ <[^>]*> f008 b291 lw v0,00004109 <foo\+0x4109>
[0-9a-f]+ <[^>]*> f008 d211 sw v0,16401\(sp\)
[0-9a-f]+ <[^>]*> f008 d211 sw v0,16401\(sp\)
[0-9a-f]+ <[^>]*> f008 d231 sw v0,16401\(sp\)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index d5849c0..37a0b9b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,188 @@
+2017-05-03 Maciej W. Rozycki <macro@imgtec.com>
+
+ * config/tc-mips.c (RELAX_MIPS16_ENCODE): Add `pic', `sym32' and
+ `nomacro' flags.
+ (RELAX_MIPS16_PIC, RELAX_MIPS16_SYM32, RELAX_MIPS16_NOMACRO):
+ New macros.
+ (RELAX_MIPS16_USER_SMALL, RELAX_MIPS16_USER_EXT)
+ (RELAX_MIPS16_DSLOT, RELAX_MIPS16_JAL_DSLOT)
+ (RELAX_MIPS16_EXTENDED, RELAX_MIPS16_MARK_EXTENDED)
+ (RELAX_MIPS16_CLEAR_EXTENDED, RELAX_MIPS16_ALWAYS_EXTENDED)
+ (RELAX_MIPS16_MARK_ALWAYS_EXTENDED)
+ (RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): Shift bits.
+ (RELAX_MIPS16_MACRO, RELAX_MIPS16_MARK_MACRO)
+ (RELAX_MIPS16_CLEAR_MACRO): New macros.
+ (append_insn): Pass `mips_pic', HAVE_32BIT_SYMBOLS and
+ `mips_opts.warn_about_macros' settings to RELAX_MIPS16_ENCODE.
+ (mips16_macro_frag): New function.
+ (md_estimate_size_before_relax): Handle HI16/LO16 relaxation.
+ (mips_relax_frag): Likewise.
+ (md_convert_frag): Likewise.
+
+ * testsuite/gas/mips/mips16@relax-swap3.d: Remove error output,
+ add dump patterns.
+ * testsuite/gas/mips/mips16e@relax-swap3.d: New test
+ subarchitecture.
+ * testsuite/gas/mips/micromips@relax-swap3.d: Remove trailing
+ NOP padding.
+ * testsuite/gas/mips/mips16-pcrel-reloc-2.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-reloc-3.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-reloc-6.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-reloc-7.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-addend-2.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-addend-3.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-absolute.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16-pcrel-absolute-1.d: Remove error
+ output, add dump patterns.
+ * testsuite/gas/mips/mips16@relax-swap3.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-reloc-2.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-reloc-3.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-reloc-6.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-reloc-7.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-addend-2.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-addend-3.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-absolute.l: Remove file.
+ * testsuite/gas/mips/mips16-pcrel-absolute-1.l: Remove file.
+ * testsuite/gas/mips/relax-swap3.s: Adjust trailing padding.
+
+ * testsuite/gas/mips/mips16-pcrel-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-2.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-3.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-5.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-pic-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-pic-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n32-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n32-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n64-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-n64-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-delay-0.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-delay-1.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-5.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-6.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-7.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-8.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-9.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-pic-8.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-pic-9.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n32-8.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n32-9.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n64-8.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-addend-n64-9.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-2.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-3.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-5.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-6.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-7.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-pic-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d: New test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d: New
+ test.
+ * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d: New
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-04-29 22:28 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-04-29 22:28 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 123800 bytes --]
The branch, users/jkratoch/indexcxx has been updated
via 98bebcd98b51d05daf04b0d5c4d7f6e112597c57 (commit)
via a941291cab71b9ac356e1c03968c177c03e602ab (commit)
via 45ce1b47e4490993b5c1a04f4a8acb62d9ec5039 (commit)
via a93866c8bfd4ad4b32c81e73e6a73aa9d831d350 (commit)
via 0749542484129e77a30f1089d6d671197be5035f (commit)
via deb1fa3edaf10c65d1f39951779927da955e3a57 (commit)
via b421c83cb866120ab347d60fda20fb0e2011be8c (commit)
via ef79d9a3c6ed1e3ccd466bae76956019a7c5d376 (commit)
via f8fdb78eafb3f70661f6e4a43beb004dde9e0921 (commit)
via 9ccbfd7bc1b7228d67f2d4ca878224d493918264 (commit)
via 76e75227c37bc058449a09fe5017eeb40cda0781 (commit)
via 51046d9e60727cd6a4cfeae29a05ce2e1e394dc9 (commit)
via 4023ae762ed9b52e4925242b705d0b3a50f6ed13 (commit)
via af43057bafa7260dbcc453d2acc47eb63b974c50 (commit)
via b091120773f8a740065b6449617cfbf1e0e789f4 (commit)
via 6c401f72e979ddd7e2f890dcc88f93f683233d74 (commit)
via d0e449a1865c741c5e0c9d43a7d61a0621163aa7 (commit)
via 434a40239548115cf04a80410e4f570f35c361c1 (commit)
via 1670f9c1546818c4ffe02e8f460df1c1c4b1601d (commit)
via d6f48aed23d1004a4ed8ab3b2742b0bf7c838c1c (commit)
via 428544e8ae6252a615a3100889f3df7d2c5483c4 (commit)
via 750eaa47f10f48d19aacbec74ab6867da0164677 (commit)
via 4621115fe529869e938dca605bb90190ea52316a (commit)
via b06b2c92c06cf100f259f218337d007ee0b1c884 (commit)
via 4e3afec278d1fb55b983751d02119f65566bd094 (commit)
via d949ff5607b9f595e0eed2ff15fbe5eb84eb3a34 (commit)
via 339053c29abac25e5f86a1ccccd4e8e3b2d362df (commit)
via 7974a6050b6e2c44722a533e2d5d9131e7db00ff (commit)
via 343b374c61f793f745b820c3cf61f69186566b18 (commit)
via e15c3eb45bdc8bd5717fd5ceddcc30c3de07b58f (commit)
via 5b66fac4bad619766fb1a5f5179c08b67d48a8c5 (commit)
via 72bc1d246686ff38ef01f5a35769ebdbe39f023c (commit)
via de9a3c4285fad1914929ee304ddaa26e76af8031 (commit)
via da3d25afa26476bf24247b8696fd00ab31f39db9 (commit)
via fba37edd96c8dc65a63bd5b4fef5366de45b165a (commit)
via 1f78f649e868979d36490d7c2ea0b3d41abc5ec6 (commit)
via 55bcecda5703eb4647165cb3ddb86aed63fd44d2 (commit)
via 14f72d45a22f25f6d00a62fc03bcf9827df226f5 (commit)
via 1425c41dcd68350d9be9670910c547cc7ab91e0e (commit)
via 5c99fcf8031bcf96f2c948e9fc5d3b03c97f631a (commit)
via f2d830a50def7a00a911620a3e9c7d920e5ef0f0 (commit)
via 76c20d54ca5042e11af9ddf5723cc24cf47736ec (commit)
via d7153c4ac333c9127c18efcf184607d368bb142d (commit)
via 641338d8e9b62bde9672f13f0dca2324b61e46e2 (commit)
via 21d68fcd0c2f9113369d860ee1e5841bfacc35ff (commit)
via a61d92b7bd4da998dd5d73e9205b4871f7c4825d (commit)
via 7a81a73b2e5d00b76e15d97db7b8f0c9809ba1b7 (commit)
via ce8ad8721313d288a05a95b62d95ca43db584ebb (commit)
via 97d343d40012b1030f1fd219f91efcab180fb3ef (commit)
via 04b31182bf3f8a1a76e995bdfaaaab4c009b9cb2 (commit)
via d21f3ddb0d5f95aff5c769ae283ce5522262f48d (commit)
via 740a463062bd5d1641bdfb639295dafe89341b9b (commit)
via 3e6b644558f941d3fe482e15efbc53d8f39ef8b7 (commit)
via b41c5a85a734b9ca813d4a314b66ef4b4b4d1b11 (commit)
via 23ec1e32b1ab714649a7c25e49b5d721fe3bd3db (commit)
via c46cec3a8cfe02fbe0f6c67ba53abc5369c5c659 (commit)
via bbdd9a6894d7875407da59d490faf5588163d21c (commit)
via e63d123268f23a4cbc45ee55fb6dbc7d84729da3 (commit)
via c185f580b2b3baf7cee762c8ab31ab6925b9534a (commit)
via 19c4559475791cd70e319eaf5c1e23d23d9ae81e (commit)
via 03def0812a9ee962d9dcfe9b0ba37783e58acfb8 (commit)
via 4658f12e9c5ec0d2efb04f1688f6cd6bd9f1a47d (commit)
via c4ab9505b53cdc899506ed421fddb7e1f8faf7a3 (commit)
via 919383ac718c2a3187ee2a9ad659daa22da26258 (commit)
via 126124cc0f3f0417913bfd84d83e4e525b6facf9 (commit)
via be6a24d8eabdbeef32a9d79e81307af4491fcf56 (commit)
via d581dda88162831ebbd0757312fa93681d945327 (commit)
via 0348fd79d4c32243d91e8a55f20f408a9b4ec20d (commit)
via 6e3d1f0728d980a384c5aa63ce7f2ff3919c5024 (commit)
via adc1273cb27286452ed8b32c5ca3ea263b4854f0 (commit)
via debed3db4887483552103da36d180967ef0dca5f (commit)
via d28b6364b1fba1c0270c001f0d82a69e351e1922 (commit)
via b0b92aeb3828219075fce23543fb39fee8608e99 (commit)
via 16c4d54a71d8052988ed9c8005a03a7f934245f4 (commit)
via b5c3668253b909fd1f5b011893a35bb8dfd3be9b (commit)
via 5625a2864147f4d92b22edfeeab7600818988be2 (commit)
via 23bcc18f470ee4364bd362a8b78c6c1415a9dadb (commit)
via a49abe0bb18e04d3a4b692995fcfae70cd470775 (commit)
via 9e9821ddd80c0d0b3dda54d34cc8867f256d4583 (commit)
via 0dc9a308a1ec9675bf6b33bae9e8b1faa0bad9ed (commit)
via e1ba30532c6de26a14404ab4919bb591e8da3eab (commit)
via e662f84f5d6d014746550ce3d3f623583c043ff0 (commit)
via 1587442d37ee4266e54d59bfdc783574f0587aff (commit)
via 534455547021f3262fa60d32cabb626af01692a3 (commit)
via 8b353c47b70568ab9f0cfd619b7a19e931c2b0c8 (commit)
via 957f6b39cab6cac0e4c54e650c7f75109544ac1d (commit)
via 9ad8982091eeb76b380e459fe721aaeacf7b8f24 (commit)
via 42354845ae5e00ec1c3519e1f2166b79a9533401 (commit)
via 7034215fd6d99f275998f7f0f8a346ab35fcbee6 (commit)
via b02cd3e978e9273074f7cbe2ca1d5b372225a56d (commit)
via 7eacd66b086cabb1daab20890d5481894d4f56b2 (commit)
via bce964aa6c777d236fbd641f2bc7bb931cfe4bf3 (commit)
via 97e83a100aa8250be783304bfe0429761c6e6b6b (commit)
via f082820db966c79e47a143da774700055a1fad41 (commit)
via b43eea27e99f5fd270b3bec455054ea53ac700bb (commit)
via bf1554384b186b448904dbc13ee5374239c88520 (commit)
via 10f489e57677e670bf980e93896762594e9ad908 (commit)
via 0092b74da6d86185c4d0c0fa0f540b97647bf44a (commit)
via a14a62ddff9eadbb8a7ad101ab06b02e44b6c00a (commit)
via 46b9c12945629fffb61001a8f13a37c96675c0b7 (commit)
via 2e78302469502f4f8a98144b60c09d4d9b6438fd (commit)
from c5141d02425a95ed688b640eebfc99ede92e61de (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 98bebcd98b51d05daf04b0d5c4d7f6e112597c57
Merge: c5141d0 a941291
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Apr 29 23:58:43 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit a941291cab71b9ac356e1c03968c177c03e602ab
Author: Alan Modra <amodra@gmail.com>
Date: Sat Apr 29 14:48:16 2017 +0930
PR21432, buffer overflow in perform_relocation
The existing reloc offset range tests didn't catch small negative
offsets less than the size of the reloc field.
PR 21432
* reloc.c (reloc_offset_in_range): New function.
(bfd_perform_relocation, bfd_install_relocation): Use it.
(_bfd_final_link_relocate): Likewise.
commit 45ce1b47e4490993b5c1a04f4a8acb62d9ec5039
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Fri Mar 31 13:24:36 2017 -0400
Make environ.exp run on all platforms (and create info-program.exp)
This has been on my TODO list for a while. There's a really old bug
about this (PR testsuite/8595), and there was no reason for
environ.exp to be specific for hppa* targets. So this patch removes
this constraint, modernizes the testcase, and cleans up some things.
Most of the tests remained, and some were rewritten (especially the
one that checks if "show environment" works, which is something kind
of hard to do).
As a bonus, I'm adding a separated info-program.exp file containing
all the tests related to "info program" that were present on
environ.exp.
Tested locally, everything still passes.
gdb/testsuite/ChangeLog:
2017-04-28 Sergio Durigan Junior <sergiodj@redhat.com>
PR testsuite/8595
* gdb.base/environ.exp: Make test available in all architectures.
Move bits related to "info program" testing to
gdb.base/info-program.exp. Rewrite tests to use the two new
procedures mentione below.
(test_set_show_env_var) New procedure.
(test_set_show_env_var_equal): Likewise.
* gdb.base/info-program.exp: New file.
commit a93866c8bfd4ad4b32c81e73e6a73aa9d831d350
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 29 00:00:38 2017 +0000
Automatic date update in version.in
commit 0749542484129e77a30f1089d6d671197be5035f
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 22:48:42 2017 +0100
Remove cleanup in get_return_value
With regcache ctor, we can use it to create local object in
get_return_value (), so that the cleanup can be removed.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* infcmd.c (get_return_value): Use regcache ctor, and remove
cleanup.
commit deb1fa3edaf10c65d1f39951779927da955e3a57
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 22:48:42 2017 +0100
Use tag dispatch regcache ctor in regcache_dup
This patch adds a tag dispatch ctor to create read-only regcache from
a write-through regcache, also this patch deletes copy ctor and
assignment operator.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
Pedro Alves <palves@redhat.com>
* regcache.c (regcache::regcache): New tag dispatch ctor.
(do_cooked_read): Moved above.
(regcache_dup): Use the tag dispatch ctor..
* regcache.h (regcache): Declare ctor, delete copy ctor and
assignment operator, remove friend regcache_dup.
commit b421c83cb866120ab347d60fda20fb0e2011be8c
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 22:48:42 2017 +0100
Simplify regcache_dup
regcache_dup, in fact, is to create a readonly regcache from a
non-readonly regcache. This patch adds an assert that src is not
readonly.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* regcache.c (regcache_dup): Assert !src->m_readonly_p and
call method save instead of regcache_cpy.
* regcache.h (struct regcache): Make regcache_dup a friend.
commit ef79d9a3c6ed1e3ccd466bae76956019a7c5d376
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 22:48:42 2017 +0100
Class-fy regcache
This patch moves regcache declaration to regcache.h, and converts
regcache apis to member functions, for example, regcache_invalidate
is changed to regcache::invalidate.
This patch also add "m_" prefix to these private fields.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* regcache.c (struct regcache): Move to regcache.h
(regcache::arch): New method.
(regcache_get_ptid): Update.
(get_regcache_arch): Call arch method.
(get_regcache_aspace): Call method aspace.
(register_buffer): Change it to method.
(regcache_save): Change it to regcache::save.
(regcache_restore): Likewise.
(regcache_cpy_no_passthrough): Remove the declaration.
(regcache_cpy): Call methods restore and cpy_no_passthrough.
(regcache_cpy_no_passthrough): Change it to method
cpy_no_passthrough.
(regcache_register_status): Change it to method
get_register_status.
(regcache_invalidate): Change it to method invalidate.
(regcache_thread_ptid_changed): Use methods ptid and set_ptid.
(regcache_raw_update): Change it to method raw_update.
(regcache_raw_read): Likewise.
(regcache_raw_read_signed): Likewise.
(regcache_raw_read_unsigned): Likewise.
(regcache_raw_write_signed): Likewise.
(regcache_raw_write_unsigned): Likewise.
(regcache_cooked_read): Likewise.
(regcache_cooked_read_value): Likewise.
(regcache_cooked_read_signed): Likewise.
(regcache_cooked_read_unsigned): Likewise.
(regcache_cooked_write_signed): Likewise.
(regcache_cooked_write_unsigned): Likewise.
(regcache_raw_set_cached_value): Likewise.
(regcache_raw_write): Likewise.
(regcache_cooked_write): Likewise.
(regcache_xfer_part): Likewise.
(regcache_raw_read_part): Likewise.
(regcache_raw_write_part): Likewise.
(regcache_cooked_read_part): Likewise.
(regcache_cooked_write_part): Likewise.
(regcache_raw_supply): Likewise.
(regcache_raw_collect): Likewise.
(regcache_transfer_regset): Likewise.
(regcache_supply_regset): Likewise.
(regcache_collect_regset): Likewise.
(regcache_debug_print_register): Likewise.
(enum regcache_dump_what): Move it to regcache.h.
(regcache_dump): Change it to method dump.
* regcache.h (enum regcache_dump_what): New.
(class regcache): New.
* target.c (target_fetch_registers): Call method
debug_print_register.
(target_store_registers): Likewise.
commit f8fdb78eafb3f70661f6e4a43beb004dde9e0921
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:18 2017 -0400
Class-ify lm_info_windows
This patch makes lm_info_windows a "real" class. It initializes the field
and replaces XCNEW/xfree with new/delete.
gdb/ChangeLog:
* windows-nat.c (struct lm_info_windows): Initialize field.
(windows_make_so): Allocate lm_info_windows with new.
(windows_free_so): Free lm_info_windows with delete.
commit 9ccbfd7bc1b7228d67f2d4ca878224d493918264
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:18 2017 -0400
Class-ify lm_info_darwin
This patch makes lm_info_darwin a "real" class. It initializes the
field and replaces XCNEW/xfree with new/delete.
gdb/ChangeLog:
* solib-darwin.c (struct lm_info_darwin): Initialize field.
(darwin_current_sos): Allocate lm_info_darwin with new, remove
cleanup.
(darwin_free_so): Free lm_info_darwin with delete.
commit 76e75227c37bc058449a09fe5017eeb40cda0781
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:17 2017 -0400
Class-ify lm_info_svr4
This patch makes lm_info_svr4 a "real" class. It initializes fields,
uses bool and replaces XCNEW/xfree with new/delete.
The memcpy in svr4_copy_library_list is replaced by a usage of the
default copy constructor.
gdb/ChangeLog:
* solib-svr4.h (struct lm_info_svr4): Initialize fields.
<l_addr_p>: Change type to bool.
* solib-svr4.c (lm_info_read): Allocate lm_info_svr4 with new.
(svr4_free_so): Free lm_info_svr4 with delete.
(svr4_copy_library_list): Replace memcpy with call to copy
constructor.
(library_list_start_library, svr4_default_sos): Allocate
lm_info_svr4 with new.
commit 51046d9e60727cd6a4cfeae29a05ce2e1e394dc9
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:16 2017 -0400
Class-ify lm_info_target
This patch makes lm_info_target a "real" class. It adds a destructor,
uses std::string, initializes the fields and replaces XCNEW/xfree with
new/delete.
gdb/ChangeLog:
* solib-target.c (struct lm_info_target): Add destructor,
initialize fields.
<name>: Change type to std::string.
(library_list_start_library): Allocate lm_info_target with new.
(solib_target_free_library_list): Free lm_info_target with
delete.
(solib_target_current_sos): Adapt to std::string.
(solib_target_free_so): Free lm_info_target with delete.
commit 4023ae762ed9b52e4925242b705d0b3a50f6ed13
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:16 2017 -0400
Class-ify lm_info_frv
This patches makes lm_info_frv a "real" class. It adds a destructor,
initializes the fields and replaces XCNEW/xfree with new/delete.
gdb/ChangeLog:
* solib-frv.c (struct lm_info_frv): Add destructor, initialize
fields.
(frv_current_sos): Allocate lm_info_frv with new.
(frv_relocate_main_executable): Free lm_info_frv with delete,
allocate with new.
(frv_clear_solib, frv_free_so): Free lm_info_frv with delete.
commit af43057bafa7260dbcc453d2acc47eb63b974c50
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:15 2017 -0400
Fix indentation of lm_info_frv
This patch fixes the indentation of lm_info_frv, so that the real
changes of the following patch are not lost in the reformatting.
gdb/ChangeLog:
* solib-frv.c (struct lm_info_frv): Fix indentation.
commit b091120773f8a740065b6449617cfbf1e0e789f4
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:14 2017 -0400
Class-ify lm_info_dsbt
This patches makes lm_info_dsbt a "real" class. It introduces a
destructor, initializes the field and replaces XCNEW/xfree with
new/delete.
gdb/ChangeLog:
* solib-dsbt.c (struct lm_info_dsbt): Add destructor, initialize
map field.
(dsbt_current_sos): Allocate lm_info_dsbt with new.
(dsbt_relocate_main_executable): Free lm_info_dsbt with delete
and allocate with new.
(dsbt_clear_solib, dsbt_free_so): Free lm_info_dsbt with delete.
commit 6c401f72e979ddd7e2f890dcc88f93f683233d74
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:14 2017 -0400
Class-ify lm_info_aix
This patch makes lm_info_aix a "real" class. It uses std::string,
initializes fields in-class and replaces XCNEW/xfree with new/delete.
The solib_aix_new_lm_info can be replaced by using the default copy
constructor.
gdb/ChangeLog:
* solib-aix.c (struct lm_info_aix): Initialize fields in-class.
<filename, member_name>: Change type to std::string.
(solib_aix_new_lm_info, solib_aix_xfree_lm_info): Remove.
(library_list_start_library): Allocate lm_info_aix with new.
(solib_aix_free_library_list, solib_aix_free_so): Free with delete.
(solib_aix_current_sos): Adapt to std::string, copy lm_info_aix
with copy constructor.
commit d0e449a1865c741c5e0c9d43a7d61a0621163aa7
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:13 2017 -0400
Make various lm_info implementations inherit from a base class
The lm_info structure is used to store target specific information about
mapped libraries. It is currently defined as an opaque type in solist.h
and a pointer to it is included in solist, the target-agnostic object
representing a loaded shared library. Multiple targets define their own
implementation of lm_info.
In anticipation of using C++ stuff (e.g. vector) in the lm_info objects,
we first need to avoid different definitions of classes with the same
name (which violates the one definition rule). This patch does it by
having a base class (lm_info_base) from which all the specific lm_info
derive. Each implementation is renamed to something that makes sense
(e.g. lm_info_aix for AIX). The next logical step would probably be to
derive directly from so_list, it's not really obvious, so I'll keep that
for another day.
One special case is the Neutrino (nto) support. It uses SVR4-style
libraries, but overrides some methods. To do that, it needed to have
its own copy of SVR4's lm_info structure in nto-tdep.c, because it was
just not possible to put it in solib-svr4.h and include that file. Over
time, that copy got out of sync, which is still the case today. I can
only assume that the lm_addr function in nto-tdep.c is broken right now.
The first field of the old lm_info was a pointer (gdb_byte *), whereas
in the new lm_info it's an address in the inferior (CORE_ADDR). Trying
to use that field today probably results in a crash. With this
refactor, it's now possible to put lm_info_svr4 in solib-svr4.h and just
include it. I have adapted the code in nto-tdep.c to that it builds,
but it's probably not correct. Since I don't have the knowledge nor
setup to try this on Neutrino, somebody else would have to fix it. But
I am confident that I am not making things worse than they already are.
gdb/ChangeLog:
* solist.h (struct lm_info): Remove.
(struct lm_info_base): New class.
(struct so_list) <lm_info>: Change type to lm_info_base *.
* nto-tdep.c (struct lm_info): Remove.
(lm_addr): Adjust.
* solib-aix.c (struct lm_info): Rename to ...
(struct lm_info_aix): ... this. Extend lm_info_base.
(lm_info_p): Rename to ...
(lm_info_aix_p): ... this, and adjust.
(solib_aix_new_lm_info, solib_aix_xfree_lm_info,
solib_aix_parse_libraries, library_list_start_library,
solib_aix_free_library_list, solib_aix_parse_libraries,
solib_aix_get_library_list,
solib_aix_relocate_section_addresses, solib_aix_free_so,
solib_aix_get_section_offsets,
solib_aix_solib_create_inferior_hook, solib_aix_current_sos):
Adjust.
(struct solib_aix_inferior_data) <library_list>: Adjust.
* solib-darwin.c (struct lm_info): Rename to ...
(struct lm_info_darwin): ... this. Extend lm_info_base.
(darwin_current_sos, darwin_relocate_section_addresses): Adjust.
* solib-dsbt.c (struct lm_info): Rename to ...
(struct lm_info_dsbt): ... this. Extend lm_info_base.
(struct dsbt_info) <main_executable_lm_info): Adjust.
(dsbt_current_sos, dsbt_relocate_main_executable, dsbt_free_so,
dsbt_relocate_section_addresses): Adjust.
* solib-frv.c (struct lm_info): Rename to ...
(struct lm_info_frv): ... this. Extend lm_info_base.
(main_executable_lm_info): Adjust.
(frv_current_sos, frv_relocate_main_executable, frv_free_so,
frv_relocate_section_addresses, frv_fdpic_find_global_pointer,
find_canonical_descriptor_in_load_object,
frv_fdpic_find_canonical_descriptor): Adjust.
* solib-svr4.c (struct lm_info): Move to solib-svr4.h, renamed
to lm_info_svr4.
(lm_info_read, lm_addr_check, svr4_keep_data_in_core,
svr4_clear_so, svr4_copy_library_list,
library_list_start_library, svr4_default_sos, svr4_read_so_list,
svr4_current_sos, svr4_fetch_objfile_link_map,
solist_update_incremental): Adjust.
* solib-svr4.h (struct lm_info_svr4): Move here from
solib-svr4.c.
* solib-target.c (struct lm_info): Rename to ...
(struct lm_info_target): ... this. Extend lm_info_base.
(lm_info_p): Rename to ...
(lm_info_target_p): ... this.
(solib_target_parse_libraries, library_list_start_segment,
library_list_start_section, library_list_start_library,
library_list_end_library, solib_target_free_library_list,
solib_target_current_sos, solib_target_free_so,
solib_target_relocate_section_addresses): Adjust.
* windows-nat.c (struct lm_info): Rename to ...
(struct lm_info_windows): ... this. Extend lm_info_base.
(windows_make_so, handle_load_dll, handle_unload_dll,
windows_xfer_shared_libraries): Adjust.
commit 434a40239548115cf04a80410e4f570f35c361c1
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 28 17:16:12 2017 -0400
Standardize darwin's lm_info
Darwin's lm_info structure is used a little bit differently than the
other solib implementations. The other implementations first allocate
an so_list object, then instanciate their specific lm_info structure,
and assign it to so_list::lm_info.
The Darwin implementation allocates both at the same time
(darwin_so_list). This patch changes it to be like the others, so that
we'll be able to do some generalizations later.
gdb/ChangeLog:
* solib-darwin.c (struct darwin_so_list): Remove.
(darwin_current_sos): Allocate an so_list object instead of a
darwin_so_list, separately allocate an lm_info object.
(darwin_free_so): Free lm_info.
commit 1670f9c1546818c4ffe02e8f460df1c1c4b1601d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 28 12:42:05 2017 -0700
x86: Add run-time tests for -mtls-dialect=gnu2
* testsuite/config/default.exp (GNU2_CFLAGS): New. Set
to -mtls-dialect=gnu2 if target compiler supports it.
* testsuite/ld-i386/tls.exp: Run -mtls-dialect=gnu2 tests.
* testsuite/ld-x86-64/tls.exp: Likewise.
* testsuite/ld-i386/tlsdesc1a.c: New file.
* testsuite/ld-i386/tlsdesc1b.c: Likewise.
* testsuite/ld-x86-64/tlsdesc1a.c: Likewise.
* testsuite/ld-x86-64/tlsdesc1b.c: Likewise.
commit d6f48aed23d1004a4ed8ab3b2742b0bf7c838c1c
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 28 12:29:29 2017 -0700
ELF: Add run-time tests for -z now
* testsuite/ld-elf/shared.exp: Add run-time tests for -z now.
* testsuite/ld-i386/tls.exp: Likewise.
* testsuite/ld-ifunc/ifunc.exp: Likewise.
* testsuite/ld-x86-64/tls.exp: Likewise.
commit 428544e8ae6252a615a3100889f3df7d2c5483c4
Author: John Baldwin <jhb@FreeBSD.org>
Date: Fri Apr 28 09:34:52 2017 -0700
Consistently use fprintf_filtered when displaying MIPS registers.
One line was using printf_filtered instead of fprintf_filtered
to the requested file.
gdb/ChangeLog:
* mips-tdep.c (print_gp_register_row): Replace printf_filtered
with fprintf_filtered.
commit 750eaa47f10f48d19aacbec74ab6867da0164677
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 28 07:26:45 2017 -0700
x86: Check plt_got before using .plt.got
Since the GOT procedure linkage table is supported only if plt_got
isn't NULL, we need to check plt_got before using it.
* elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got
before using .plt.got.
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
commit 4621115fe529869e938dca605bb90190ea52316a
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 14:43:13 2017 +0100
Add constructor and destructor to regcache
This patch adds ctor and dtor to regcache.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* regcache.c (regcache::regcache): New function.
(regcache::~regcache): New function.
(regcache_xmalloc_1): Remove.
(regcache_xmalloc): Call new regcache.
(regcache_xfree): Call delete regcache.
(get_thread_arch_aspace_regcache): Call new regcache.
commit b06b2c92c06cf100f259f218337d007ee0b1c884
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 28 12:09:14 2017 +0100
Fix off by one error when checking for empty note names.
PR binutils/21439
* readelf.c (print_gnu_build_attribute_name): Allow for an empty
name field.
commit 4e3afec278d1fb55b983751d02119f65566bd094
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 28 11:21:53 2017 +0100
Fix heap-buffer address violation when reading version data from a corrupt binary.
PR binutils/21437
* readelf.c (process_version_sections): Check for underflow when
computing the start address of the auxillary version data.
commit d949ff5607b9f595e0eed2ff15fbe5eb84eb3a34
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 28 10:28:04 2017 +0100
Fix heap-buffer overflow bugs caused when dumping debug information from a corrupt binary.
PR binutils/21438
* dwarf.c (process_extended_line_op): Do not assume that the
string extracted from the section is NUL terminated.
(fetch_indirect_string): If the string retrieved from the section
is not NUL terminated, return an error message.
(fetch_indirect_line_string): Likewise.
(fetch_indexed_string): Likewise.
commit 339053c29abac25e5f86a1ccccd4e8e3b2d362df
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 09:50:51 2017 +0100
Use ptid method lwp in mips_linux_new_thread
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* mips-linux-nat.c (mips_linux_new_thread): Use ptid method
lwp instead of ptid_get_lwp.
commit 7974a6050b6e2c44722a533e2d5d9131e7db00ff
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 28 09:33:16 2017 +0100
[MIPS] Use lwpid from lwp_info instead of inferior_ptid
RAJESH reported that GDB gets "Couldn't write debug register: No such
process." on mips64 when GDB attaches to a multi threaded application.
Looks GDB nows PTRACE_GET_WATCH_REGS for inferior_ptid but
PTRACE_SET_WATCH_REGS for lwp->ptid, they may be different.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
* mips-linux-nat.c (mips_linux_new_thread): Get lwpid from
lwp_info instead of getting from inferior_ptid.
commit 343b374c61f793f745b820c3cf61f69186566b18
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 28 00:00:34 2017 +0000
Automatic date update in version.in
commit e15c3eb45bdc8bd5717fd5ceddcc30c3de07b58f
Author: Keith Seitz <keiths@redhat.com>
Date: Thu Apr 27 15:55:26 2017 -0700
Fix overload resolution involving rvalue references and cv qualifiers.
The following patch fixes several outstanding overload resolution problems
with rvalue references and cv qualifiers in the test suite. The tests for
these problems typically passed with one compiler version and failed with
another. This behavior occurs because of the ordering of the overloaded
functions in the debug info. So the first best match "won out" over the
a subsequent better match.
One of the bugs addressed by this patch is the failure of rank_one_type to
account for type equality of two overloads based on CV qualifiers. This was
leading directly to problems evaluating rvalue reference overload quality,
but it is also highlighted in gdb.cp/oranking.exp, where two test KFAIL as
a result of this shortcoming.
I found the overload resolution code committed with the rvalue reference
patch (f9aeb8d49) needlessly over-complicated, and I have greatly simplified
it. This fixes some KFAILing tests in gdb.exp/rvalue-ref-overload.exp.
gdb/ChangeLog
* gdbtypes.c (LVALUE_REFERENCE_TO_RVALUE_BINDING_BADNESS)
DIFFERENT_REFERENCE_TYPE_BADNESS): Remove.
(CV_CONVERSION_BADNESS): Define.
(rank_one_type): Remove overly restrictive rvalue reference
rank checks.
Add cv-qualifier checks and subranks for type equality.
* gdbtypes.h (REFERENCE_CONVERSION_RVALUE,
REFERENCE_CONVERSION_CONST_LVALUE, CV_CONVERSION_BADNESS,
CV_CONVERSION_CONST, CV_CONVERSION_VOLATILE): Declare.
gdb/testsuite/ChangeLog
* gdb.cp/oranking.cc (test15): New function.
(main): Call test15 and declare additional variables for testing.
* gdb.cp/oranking.exp: Remove kfail status for "p foo4(&a)" and
"p foo101('abc')" tests.
* gdb.cp/rvalue-ref-overloads.exp: Remove kfail status for
"lvalue reference overload" test.
* gdb.cp/rvalue-ref-params.exp: Remove kfail status for
"print value of f1 on Child&& in f2" test.
commit 5b66fac4bad619766fb1a5f5179c08b67d48a8c5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 27 15:24:08 2017 -0700
x86-64: Use "=" instead of "+=" to update 0
Use
if (htab->elf.splt->size == 0)
htab->elf.splt->size = GET_PLT_ENTRY_SIZE (output_bfd);
instead of
if (htab->elf.splt->size == 0)
htab->elf.splt->size += GET_PLT_ENTRY_SIZE (output_bfd);
* elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "="
instead of "+=" to update 0.
commit 72bc1d246686ff38ef01f5a35769ebdbe39f023c
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Thu Apr 27 17:03:20 2017 -0400
Add missing incref when creating Inferior Python object
The test py-inferior.exp fails when using a debug build of Python 3.6. I don't
see it failing with my system's default Python, but it might be related to the
different memory allocation scheme used when doing a build with pydebug.
The issue is that we are missing a Py_INCREF in
inferior_to_inferior_object. The PyObject_New function initializes the
object with a refcount of 1. If we assume that this refcount
corresponds to the reference we are returning, then we are missing an
incref for the reference in the inferior data.
The counterpart for the incref that corresponds to the reference in the
inferior data is in py_free_inferior, in the form the gdbpy_ref instance.
Here's how I can get it to crash (with some debug output):
$ ./gdb -nx -ex "set debug python 1"
(gdb) add-inferior
Added inferior 2
(gdb) python infs = gdb.inferiors()
Creating Python Inferior object inf = 1
Creating Python Inferior object inf = 2
(gdb) remove-inferiors 2
py_free_inferior inf = 2
infpy_dealloc inf = <unknown>
(gdb) python infs = None
Fatal Python error: Objects/tupleobject.c:243 object at 0x7f9cf1a568d8 has negative ref count -1
Current thread 0x00007f9cf1b68780 (most recent call first):
File "<string>", line 1 in <module>
[1] 408 abort (core dumped) ./gdb -nx -ex "set debug python 1"
After having created the inferiors object, their refcount is 1 (which
comes from PyObject_New), but it should be two. The gdb inferior object
has a reference and the "infs" list has a reference.
When invoking remove-inferiors, py_free_inferior gets called. It does
the decref that corresponds to the reference that the gdb inferior
object kept. At this moment, the refcount drops to 0 and the object
gets deallocated, even though the "infs" list still has a reference.
When we set "infs" to None, Python tries to decref the already zero
refcount and the assert triggers.
With this patch, it looks better:
(gdb) add-inferior
Added inferior 2
(gdb) python infs = gdb.inferiors()
Creating Python Inferior object inf = 1
Creating Python Inferior object inf = 2
(gdb) remove-inferiors 2
py_free_inferior inf = 2
(gdb) python infs = None
infpy_dealloc inf = <unknown>
gdb/ChangeLog:
* python/py-inferior.c (inferior_to_inferior_object): Increment reference
count when creating the object.
commit de9a3c4285fad1914929ee304ddaa26e76af8031
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 27 13:55:31 2017 -0700
x86: Create dynamic sections in create_dynamic_sections
This patch creates dynamic sections in i386/x86-64 create_dynamic_sections
instead of creating them on demend. Linker will strip them if they are
empty. It changes order in x86-64 .eh_frame section. The extra DW_CFA_nop
paddings is due to
https://sourceware.org/bugzilla/show_bug.cgi?id=21441
bfd/
* elf32-i386.c (elf_i386_create_dynamic_sections): Create the
.plt.got section here.
(elf_i386_check_relocs): Don't create the .plt.got section.
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create
the .plt.got and .plt.bnd sections here.
(elf_x86_64_check_relocs): Don't create the .plt.got nor
.plt.bnd sections.
ld/
* testsuite/ld-x86-64/pr21038a.d: Update DW_CFA_nop paddings
in .eh_frame section.
* testsuite/ld-x86-64/pr21038c.d: Update .eh_frame order.
commit da3d25afa26476bf24247b8696fd00ab31f39db9
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 27 09:32:35 2017 -0700
Remove has_bnd_reloc from elf_x86_64_link_hash_entry
has_bnd_reloc was added to elf_x86_64_link_hash_entry track BND
relocations by
commit 0ff2b86e7c14177ec7f9e1257f8e697814794017
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Nov 20 09:01:04 2013 -0800
Create the second PLT for BND relocations
Since BND relocations have been deprecated by
commit d258b828287a863376af60a1ef7ceafbccc83d93
Author: Igor Zamyatin <igor.zamyatin@intel.com>
Date: Tue Nov 18 10:52:36 2014 +0300
Add -z bndplt to generate BND prefix in PLT entries
This patch removes has_bnd_reloc from elf_x86_64_link_hash_entry and
checks bndplt instead of has_bnd_reloc.
* elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove
has_bnd_reloc.
(elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc.
(elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc.
(elf_x86_64_check_relocs): Don't set has_bnd_reloc.
(elf_x86_64_finish_dynamic_symbol): Check bndplt instead of
has_bnd_reloc.
Remove has_bnd_reloc
commit fba37edd96c8dc65a63bd5b4fef5366de45b165a
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 27 09:07:23 2017 -0700
Change _bfd_elf_link_setup_gnu_properties to bfd *
Change setup_gnu_properties to return the first relocatable ELF input
with GNU properties so that a backend can make decision based on GNU
properties.
* elf-bfd.h (elf_backend_data): Change setup_gnu_properties
to return bfd *.
(_bfd_elf_link_setup_gnu_properties): Return bfd *.
* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return
the first relocatable ELF input with GNU properties.
commit 1f78f649e868979d36490d7c2ea0b3d41abc5ec6
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 27 08:55:36 2017 -0700
i386: Simplify VxWorks for non-PIC
Change
if (PIC)
{
#1
}
else
{
#2
if (VxWorks)
{
#3
}
}
#4
if (VxWorks && !PIC)
{
#5
}
to
#4
if (PIC)
{
#1
}
else
{
#2
if (VxWorks)
{
#3
#5
}
}
* elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify
VxWorks for non-PIC.
commit 55bcecda5703eb4647165cb3ddb86aed63fd44d2
Author: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Date: Thu Apr 27 15:57:08 2017 +0200
Read corrrect auxiliary entry in AIX
Fix handling of XCOFF function auxiliary entries, in particular when
the xlc -qfuncsect or gcc -ffunction-sections compiler option is used
in AIX. Also handle C_WEAKEXT storage class.
gdb/
2016-10-21 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
* xcoffread.c (read_xcoff_symtab): Read correct function auxiliary
entry if xlc -qfuncsect or gcc -ffunction-sections compiler option
is used in AIX.
(read_xcoff_symtab): Handle C_WEAKEXT storage class.
(process_xcoff_symbol): Likewise.
(scan_xcoff_symtab): Likewise.
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
commit 14f72d45a22f25f6d00a62fc03bcf9827df226f5
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Apr 27 02:25:33 2017 +0100
MIPS16/GAS: Factor out duplicate symbol value conversion code
Factor out and consolidate duplicate section-relative to PC-relative
symbol value conversion in `mips16_extended_frag' and `md_convert_frag'
used for MIPS16 relaxation, observing that the final calculation in the
latter function implies `stretch == 0'. Sanitize the formatting of code
moved.
gas/
* config/tc-mips.c (mips16_pcrel_val): New function, factored
out from...
(mips16_extended_frag): ... here.
(md_convert_frag): Use `mips16_pcrel_val' rather than repeated
code in MIPS16 relaxation, with `stretch' hardcoded to 0.
commit 1425c41dcd68350d9be9670910c547cc7ab91e0e
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Apr 27 02:13:21 2017 +0100
MIPS16/GAS: Rename the LONG_BRANCH relaxation flag
Following commit 177b4a6ad004 ("infinite loop in mips16 assembler
relaxation"), <https://sourceware.org/ml/binutils/2002-03/msg00345.html>
the LONG_BRANCH flag used in MIPS16 relaxation has lost its use for
branches. Complement commit 88a7ef168927 ("MIPS16/GAS: Restore
unsupported relocation diagnostics") then, which has removed the remains
of code deactivated by the former commit, and rename the flag to
ALWAYS_EXTENDED, more accurately reflecting its current use to select
the extended form of PC-relative ADDIU, DADDIU, LD and LW instructions.
gas/
* config/tc-mips.c (RELAX_MIPS16_LONG_BRANCH): Rename to...
(RELAX_MIPS16_ALWAYS_EXTENDED): ... this.
(RELAX_MIPS16_MARK_LONG_BRANCH): Rename to...
(RELAX_MIPS16_MARK_ALWAYS_EXTENDED): ... this.
(RELAX_MIPS16_CLEAR_LONG_BRANCH): Rename to...
(RELAX_MIPS16_CLEAR_ALWAYS_EXTENDED): ... this.
(mips16_extended_frag): Adjust accordingly.
commit 5c99fcf8031bcf96f2c948e9fc5d3b03c97f631a
Author: Alan Hayward <alan.hayward@arm.com>
Date: Thu Apr 27 11:38:14 2017 +0100
Remove some MAX_REGISTER_SIZE uses in ia64-tdep.c
gdb/
* ia64-tdep.c (examine_prologue): Use get_frame_register_unsigned.
(ia64_sigtramp_frame_prev_register): Use read_memory_unsigned_integer.
(ia64_access_reg): Use get_frame_register_unsigned.
(ia64_access_rse_reg): Likewise.
(ia64_libunwind_frame_prev_register): Likewise.
commit f2d830a50def7a00a911620a3e9c7d920e5ef0f0
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 12:20:10 2017 +0930
Tidy S_FORCE_RELOC
Separate out symbol flag reasons from section reasons to force a
reloc. Yes, this adds another section test to the local symbol case
too.
* symbols.c (S_FORCE_RELOC): Separate section and symbol tests.
commit 76c20d54ca5042e11af9ddf5723cc24cf47736ec
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 12:03:39 2017 +0930
Constify elf_backend_eh_frame_address_size
* elf-bfd.h (struct elf_backend_data): Make asection param of
elf_backend_eh_frame_address_size const.
(_bfd_elf_eh_frame_address_size): Likewise.
* elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise.
* elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise.
* elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise.
* elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise.
* elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise.
(next_cie_fde_offset): Constify params.
(offset_adjust, adjust_eh_frame_local_symbols): Likewise.
commit d7153c4ac333c9127c18efcf184607d368bb142d
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 11:08:14 2017 +0930
Edit .eh_frame symbols
Experimental support for moving symbols defined in .eh_frame as their
CIEs/FDEs are edited or merged.
* elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len.
(_bfd_elf_adjust_eh_frame_global_symbol): Declare.
* elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and
aug_data_len.
(offset_adjust): New function.
(_bfd_elf_adjust_eh_frame_global_symbol): Likewise.
(adjust_eh_frame_local_symbols): Likewise.
(_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols
after changing anything. Return true if anything changed.
* elflink.c (bfd_elf_discard_info): If .eh_frame changed, call
_bfd_elf_adjust_eh_frame_global_symbol for globals.
commit 641338d8e9b62bde9672f13f0dca2324b61e46e2
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 11:06:33 2017 +0930
Clear dynstr_index when forcing symbols local
This is really just cosmetic, but it does protect a little from
accidentally reading a stale value.
* elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
when force_local.
commit 21d68fcd0c2f9113369d860ee1e5841bfacc35ff
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 09:19:26 2017 +0930
PowerPC undefweak handling
This patch fixes a number of cases where -z nodynamic-undefined-weak
was not effective in preventing dynamic relocations or linkage stubs.
* elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
(ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it.
(ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise.
(ppc_elf_relocate_section): Likewise. Delete silly optimisation
for undef and undefweak dyn_relocs.
* elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
(ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it.
(allocate_got, allocate_dynrelocs): Likewise.
(ppc64_elf_relocate_section): Likewise.
commit a61d92b7bd4da998dd5d73e9205b4871f7c4825d
Author: Alan Modra <amodra@gmail.com>
Date: Thu Apr 27 09:08:09 2017 +0930
[GOLD] testsuite/plugin_section_order.c fix
* testsuite/plugin_section_order.c (onload): Add missing break.
commit 7a81a73b2e5d00b76e15d97db7b8f0c9809ba1b7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 27 00:00:56 2017 +0000
Automatic date update in version.in
commit ce8ad8721313d288a05a95b62d95ca43db584ebb
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Apr 27 00:47:15 2017 +0100
MIPS/GAS: Fix `.option picX' handling with relaxation
Correct the handling of `.option pic0' and `.option pic2' GAS pseudo-ops
in relaxation and use the setting of `mips_pic' (which these directives
control) as at the time a relaxed frag has been created rather than the
final `mips_pic' setting at the end of the source file processed.
To do so record whether `mips_pic' is NO_PIC or not in the frag itself
and use this information throughout relaxation instead of `mips_pic' to
decide which of NO_PIC or SVR4_PIC to produce machine code for, fixing
code generation and removing a possible fatal failure reproducible with:
$ as -32 --relax-branch -o option-pic-relax-3.o option-pic-relax-3.s
option-pic-relax-3.s: Assembler messages:
option-pic-relax-3.s:7: Warning: relaxed out-of-range branch into a jump
option-pic-relax-3.s: Internal error in cvt_frag_to_fill at .../gas/write.c:490.
Please report this bug.
$
using the test source included, due to a buffer overrun in filling the
variable part of a frag.
Likewise use the `fx_tcbit2' flag of a BFD_RELOC_16_PCREL_S2 fixup to
handle the simple case of substituting an out of range unconditional
branch with an equivalent absolute jump in NO_PIC code.
Retain the current way of VXWORKS_PIC use, which commit 41a1578ed17c
("MIPS/GAS: Sanitize `.option picX' pseudo-op") has forbidden the use of
`.option picX' with.
gas/
* config/tc-mips.c (RELAX_ENCODE): Add `PIC' flag.
(RELAX_PIC): New macro.
(RELAX_USE_SECOND, RELAX_SECOND_LONGER, RELAX_NOMACRO)
(RELAX_DELAY_SLOT, RELAX_DELAY_SLOT_16BIT)
(RELAX_DELAY_SLOT_SIZE_FIRST, RELAX_DELAY_SLOT_SIZE_SECOND):
Shift bits.
(RELAX_BRANCH_ENCODE): Add `pic' flag.
(RELAX_BRANCH_UNCOND, RELAX_BRANCH_LIKELY, RELAX_BRANCH_LINK)
(RELAX_BRANCH_TOOFAR): Shift bits.
(RELAX_BRANCH_PIC): New macro.
(RELAX_MICROMIPS_ENCODE): Add `pic' flag.
(RELAX_MICROMIPS_PIC): New macro.
(RELAX_MICROMIPS_UNCOND, RELAX_MICROMIPS_COMPACT)
(RELAX_MICROMIPS_LINK, RELAX_MICROMIPS_NODS)
(RELAX_MICROMIPS_RELAX32): Shift bits.
(relax_close_frag): Pass `mips_pic' setting to RELAX_ENCODE.
(append_insn): Pass `mips_pic' setting to RELAX_BRANCH_ENCODE
and RELAX_MICROMIPS_ENCODE, and record it in `fx_tcbit2' of the
first fixup created.
(md_apply_fix) <BFD_RELOC_16_PCREL_S2>: Use `fx_tcbit2' of the
fixup processed rather than `mips_pic' in choosing to relax an
out of range branch to a jump.
(relaxed_branch_length): Use the `pic' flag of the relaxed frag
rather than `mips_pic'.
(relaxed_micromips_32bit_branch_length): Likewise.
(md_estimate_size_before_relax): Likewise.
(md_convert_frag): Likewise.
* testsuite/gas/mips/option-pic-relax-0.d: New test.
* testsuite/gas/mips/option-pic-relax-1.d: New test.
* testsuite/gas/mips/option-pic-relax-2.d: New test.
* testsuite/gas/mips/option-pic-relax-3.d: New test.
* testsuite/gas/mips/option-pic-relax-3a.d: New test.
* testsuite/gas/mips/option-pic-relax-4.d: New test.
* testsuite/gas/mips/option-pic-relax-5.d: New test.
* testsuite/gas/mips/option-pic-relax-2.l: New stderr output.
* testsuite/gas/mips/option-pic-relax-3.l: New stderr output.
* testsuite/gas/mips/option-pic-relax-4.l: New stderr output.
* testsuite/gas/mips/option-pic-relax-5.l: New stderr output.
* testsuite/gas/mips/option-pic-relax-0.s: New test source.
* testsuite/gas/mips/option-pic-relax-1.s: New test source.
* testsuite/gas/mips/option-pic-relax-2.s: New test source.
* testsuite/gas/mips/option-pic-relax-3.s: New test source.
* testsuite/gas/mips/option-pic-relax-4.s: New test source.
* testsuite/gas/mips/option-pic-relax-5.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.
commit 97d343d40012b1030f1fd219f91efcab180fb3ef
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 26 15:34:00 2017 -0700
x86: Add DT_PLTRELSZ/DT_PLTREL/DT_JMPREL for PLT relocation
x86, PLT relocation may contain R_386_TLS_DESC or R_X86_64_TLSDESC
even though there is no real PLT. We need to add DT_PLTRELSZ, DT_PLTREL
and DT_JMPREL if there is a .rel.plt/.rela.plt section.
bfd/
* elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add
DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section.
* elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys
add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section.
ld/
* testsuite/ld-i386/tlsdesc2.d: New test.
* testsuite/ld-x86-64/tlsdesc2.d: Likewise.
commit 04b31182bf3f8a1a76e995bdfaaaab4c009b9cb2
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 26 16:30:22 2017 +0100
Fix a seg-fault when processing a corrupt binary containing reloc(s) with negative addresses.
PR binutils/21434
* reloc.c (bfd_perform_relocation): Check for a negative address
in the reloc.
commit d21f3ddb0d5f95aff5c769ae283ce5522262f48d
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 26 15:45:41 2017 +0100
Fix PR number in ChangeLog comment.
commit 740a463062bd5d1641bdfb639295dafe89341b9b
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 26 15:42:03 2017 +0100
Fix invocation of stat() on a NULL pointer.
PR binutils/21407
* bucomm.c (get_file_size): Return -1 if file_name is NULL.
* ar.c (main): Fail with usage() invocation if no file names are
provided.
commit 3e6b644558f941d3fe482e15efbc53d8f39ef8b7
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 26 14:23:26 2017 +0100
Improve decoding of corrupt/unrecognised gnu build attribute notes.
* readelf.c (process_section_headers): Warn about overlarge
sections.
(print_gnu_build_attribute_name): Print the number of unrecognised
note types. Fix formatting in the presence of errors.
(testsuite/binutils-all/note-2-32.s): Fix encoding of numeric notes.
(testsuite/binutils-all/note-2-64.s): Likewise.
commit b41c5a85a734b9ca813d4a314b66ef4b4b4d1b11
Author: Jiong Wang <jiong.wang@arm.com>
Date: Wed Apr 26 14:05:03 2017 +0100
[gdbarch] New method "execute_dwarf_cfa_vendor_op" and migrate SPARC to it
Recently a feature called "return address signing" has been added to GCC to
prevent stack smash stack on AArch64. For details please refer:
https://gcc.gnu.org/ml/gcc-patches/2017-01/msg00376.html
GDB needs to be aware of this feature so it can restore the original return
address which is critical for unwinding.
On compiler side, whenever return address, i.e. LR register, is mangled or
restored by hardware instruction, compiler is expected to generate a
DW_CFA_AARCH64_negate_ra_state to toggle return address signing status.
DW_CFA_AARCH64_negate_ra_state is using the same CFI number and
therefore need to be multiplexed with DW_CFA_GNU_window_save which was designed
for SPARC.
A new gdbarch method "execute_dwarf_cfa_vendor_op" is introduced by this patch.
It's parameters has been restricted to those only needed by SPARC and AArch64
for multiplexing DW_CFA_GNU_window_save which is a CFI operation takes none
operand. Should any further DWARF CFI operation want to be multiplexed in the
future, the parameter list can be extended. Below is the current function
prototype.
typedef int (gdbarch_execute_dwarf_cfa_vendor_op_ftype)
(struct gdbarch *gdbarch, gdb_byte op, struct dwarf2_frame_state *fs);
DW_CFA_GNU_window_save support for SPARC is migrated to this new gdbarch
method by this patch.
gdb/
* gdbarch.sh: New gdbarch method execute_dwarf_cfa_vendor_op.
* gdbarch.c: Regenerated.
* gdbarch.h: Regenerated.
* dwarf2-frame.c (dwarf2_frame_state_alloc_regs): Made the
visibility external.
(execute_cfa_program): Call execute_dwarf_cfa_vendor_op for CFI
between DW_CFA_lo_user and DW_CFA_high_user inclusive.
(enum cfa_how_kind): Move to ...
(struct dwarf2_frame_state_reg_info): Likewise.
(struct dwarf2_frame_state): Likewise.
* dwarf2-frame.h: ... here.
(dwarf2_frame_state_alloc_regs): New declaration.
* sparc-tdep.c (sparc_execute_dwarf_cfa_vendor_op): New function.
(sparc32_gdbarch_init): Register execute_dwarf_cfa_vendor_op hook.
commit 23ec1e32b1ab714649a7c25e49b5d721fe3bd3db
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Mon Apr 24 20:15:31 2017 +0100
PR ld/21334: Always call `_bfd_elf_link_renumber_dynsyms' if required
Complement commit e17b0c351f0b ("MIPS/BFD: Respect the ELF gABI dynamic
symbol table sort requirement") and correct an inconsistency in dynamic
symbol accounting data causing an assertion failure in the MIPS backend:
ld: BFD (GNU Binutils) 2.28.51.20170330 assertion fail
../../binutils-gdb/bfd/elfxx-mips.c:3860
in the course of making a GOT entry in a static binary to satisfy a GOT
relocation present in input, due to the local dynamic symbol count not
having been established.
To do so let backends request `_bfd_elf_link_renumber_dynsyms' to be
always called, rather than where a dynamic binary is linked only, and
then make this request in the MIPS backend.
bfd/
PR ld/21334
* elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms'
member.
* elfxx-target.h [!elf_backend_always_renumber_dynsyms]
(elf_backend_always_renumber_dynsyms): Define.
(elfNN_bed): Initialize `always_renumber_dynsyms' member.
* elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define.
* elflink.c (bfd_elf_size_dynamic_sections): Also call
`_bfd_elf_link_renumber_dynsyms' if the backend has requested
it.
(bfd_elf_size_dynsym_hash_dynstr): Likewise.
ld/
PR ld/21334
* testsuite/ld-mips-elf/pr21334.dd: New test.
* testsuite/ld-mips-elf/pr21334.gd: New test.
* testsuite/ld-mips-elf/pr21334.ld: New test linker script.
* testsuite/ld-mips-elf/pr21334.s: New test source.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
commit c46cec3a8cfe02fbe0f6c67ba53abc5369c5c659
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Mon Apr 24 20:13:28 2017 +0100
ELF/BFD: Limit `_bfd_elf_link_renumber_dynsyms' call in section GC
Consistently call `_bfd_elf_link_renumber_dynsyms' only if linking a
dynamic binary, complementing code in `bfd_elf_size_dynsym_hash_dynstr'
and commit ccabcbe51e85 ("New attempt at fixing MIPS --gc-sections et
al."), <https://sourceware.org/ml/binutils/2005-08/msg00258.html>.
bfd/
* elflink.c (bfd_elf_size_dynamic_sections): Only call
`_bfd_elf_link_renumber_dynsyms' after section GC if dynamic
sections have been created.
commit bbdd9a6894d7875407da59d490faf5588163d21c
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Mon Apr 24 20:41:33 2017 +0100
MIPS/readelf: With `-A' also dump GOT in static binaries
A static, non-relocated global offset table will be embedded in static
binaries produced from objects containing any kind of GOT relocations,
generally PIC code. All symbols will have been resolved in static link
in such binaries making all GOT entries local and their values final as
there is no run-time load processing further performed.
Dump such GOT with `readelf -A' like already done with regular GOT, to
make it easier to examine static code that uses accesses via the GOT
pointer. There will be no dynamic segment or section in a static binary
to get the GOT pointer (DT_PLTGOT) from, so use section headers to find
a `.got' section instead.
binutils/
* readelf.c (process_mips_specific): Add static GOT support.
commit e63d123268f23a4cbc45ee55fb6dbc7d84729da3
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Apr 26 13:07:49 2017 +0100
Fix seg-fault attempting to compress a debug section in a corrupt binary.
PR binutils/21431
* compress.c (bfd_init_section_compress_status): Check the return
value from bfd_malloc.
commit c185f580b2b3baf7cee762c8ab31ab6925b9534a
Author: Alan Hayward <alan.hayward@arm.com>
Date: Wed Apr 26 10:32:35 2017 +0100
xtensa_pseudo_register_read/write - Use regcache_raw_read_unsigned
gdb/
* xtensa-tdep.c (xtensa_pseudo_register_read): Use
regcache_raw_read_unsigned.
(xtensa_pseudo_register_write): Likewise.
commit 19c4559475791cd70e319eaf5c1e23d23d9ae81e
Author: Alan Hayward <alan.hayward@arm.com>
Date: Wed Apr 26 09:57:15 2017 +0100
nds32: Abort instead of returning REG_UNKNOWN
gdb/
* nds32-tdep.c (nds32_pseudo_register_read): Abort on errors.
(nds32_pseudo_register_write): Likewise.
commit 03def0812a9ee962d9dcfe9b0ba37783e58acfb8
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 26 00:00:36 2017 +0000
Automatic date update in version.in
commit 4658f12e9c5ec0d2efb04f1688f6cd6bd9f1a47d
Author: Yao Qi <yao.qi@linaro.org>
Date: Tue Apr 25 21:32:05 2017 +0100
Change readonly_p to bool
This patch changes readonly_p type to bool.
gdb:
2017-04-25 Yao Qi <yao.qi@linaro.org>
* regcache.c (struct regcache) <readonly_p>: Change its type
to bool.
(regcache_xmalloc_1): Update parameter type and callers update.
commit c4ab9505b53cdc899506ed421fddb7e1f8faf7a3
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Wed Apr 12 00:03:41 2017 +0100
MIPS/readelf: Simplify GOT[1] data availability check
Unavailable data is handled gracefully in MIPS GOT processing done by
`print_mips_got_entry', so all that is needed in special GOT[1] handling
is to verify whether data can be retrieved for the purpose of the GNU
marker check done with `byte_get'. Remove the extra error reporting
code then, introduced with commit 75ec1fdbb797 ("Fix runtime seg-fault
in readelf when parsing a corrupt MIPS binary.") in the course of
addressing PR binutils/21344, and defer the error case to regular local
GOT entry processing.
binutils/
* readelf.c (process_mips_specific): Remove error reporting from
GOT[1] processing.
commit 919383ac718c2a3187ee2a9ad659daa22da26258
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Wed Apr 12 00:02:13 2017 +0100
MIPS/readelf: Remove extraneous null GOT data check
Null data is handled gracefully throughout in MIPS GOT processing, with
addresses printed normally and unavailable data shown as `<unknown>' by
`print_mips_got_entry', and special processing code for GOT[1] doing an
explicit check. Remove an unwanted null GOT data check then, introduced
with commit 592458412fb2 in the course of addressing PR binutils/12855.
binutils/
* readelf.c (process_mips_specific): Remove null GOT data check.
commit 126124cc0f3f0417913bfd84d83e4e525b6facf9
Author: Claudiu Zissulescu <claziss@synopsys.com>
Date: Tue Apr 25 17:07:00 2017 +0200
[ARC] Enhance enter/leave mnemonics.
enter/leave mnemonics are enhanced to not only accept register ranges
but also single register (i.e., r13) or even no GPR register at all.
gas/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/leave_enter.d: Update test.
* testsuite/gas/arc/leave_enter.s: Likewise.
opcodes/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* arc-dis.c (print_insn_arc): Smartly print enter/leave mnemonics.
* arc-opc.c (insert_r13el): New function.
(R13_EL): Define.
* arc-tbl.h: Add new enter/leave variants.
commit be6a24d8eabdbeef32a9d79e81307af4491fcf56
Author: Claudiu Zissulescu <claziss@synopsys.com>
Date: Tue Apr 25 17:07:00 2017 +0200
[ARC] Prefer NOP instead of MOV 0,0
NOP and MOV 0,0 are having the same encoding. As MOV mnemonic is
located before NOP in the instruction table, the disassembler prints
MOV 0,0 for NOP. Reorder the instructions such that NOP is first.
gas/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/b.d: Update test.
* testsuite/gas/arc/noargs_hs.d: Likewise.
opcode/
2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
* arc-tbl.h: Reorder NOP entry to be before MOV instructions.
commit d581dda88162831ebbd0757312fa93681d945327
Author: Yao Qi <yao.qi@linaro.org>
Date: Tue Apr 25 15:15:54 2017 +0100
Change gdbarch_wchar_bit for AArch64 and ARM
The size of wchar_t on AArch64 and ARM is 4-byte, so we can use the
default value (4*TARGET_CHAR_BIT).
This patch fixes some fails in gdb.cp/wide_char_types.exp on
aarch64-linux.
gdb:
2017-04-25 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c (aarch64_gdbarch_init): Don't call
set_gdbarch_wchar_bit.
* arm-tdep.c (arm_gdbarch_init): Likewise.
commit 0348fd79d4c32243d91e8a55f20f408a9b4ec20d
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue Apr 25 11:49:37 2017 +0100
MIPS16/opcodes: Add `-M no-aliases' disassembler option help text
Complement commit 986e18a5a9fd ("Add a second 'pinfo' member to
mips_opcode to extend number of available bits"),
<https://sourceware.org/ml/binutils/2005-01/msg00261.html>, and add a
help text for the `-M no-aliases' disassembler option.
opcodes/
* mips-dis.c (print_mips_disassembler_options): Add
`no-aliases'.
commit 6e3d1f0728d980a384c5aa63ce7f2ff3919c5024
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue Apr 25 11:44:29 2017 +0100
MIPS16/opcodes: Annotate instruction aliases
Complement commit 986e18a5a9fd ("Add a second 'pinfo' member to
mips_opcode to extend number of available bits"),
<https://sourceware.org/ml/binutils/2005-01/msg00261.html>, and annotate
MIPS16 NOP, LA, DLA and the synthetic forms of LD and LW instructions as
aliases. These correspond to MOVE, and the PC-relative ADDIU, DADDIU,
LD and LW hardware instructions respectively.
binutils/
* testsuite/binutils-all/mips/mips16-alias.d: New test.
* testsuite/binutils-all/mips/mips16-noalias.d: New test.
* testsuite/binutils-all/mips/mips16-alias.s: New test source.
* testsuite/binutils-all/mips/mips.exp: Run the new tests.
opcodes/
* mips16-opc.c (AL): New macro.
(mips16_opcodes): Mark "nop", "la", "dla", and synthetic forms
of "ld" and "lw" as aliases.
commit adc1273cb27286452ed8b32c5ca3ea263b4854f0
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue Apr 25 10:20:14 2017 +0100
MIPS/GAS: Correct BFD_RELOC_MIPS16_16_PCREL_S1 fixup size
Correct the size of a BFD_RELOC_MIPS16_16_PCREL_S1 fixup made in
`md_convert_frag', fixing a bug introduced with commit c9775dde3277
("MIPS16: Add R_MIPS16_PC16_S1 branch relocation support)". Add test
cases to verify that the overflow of this fixup's in-place addend is
still correctly detected.
gas/
* config/tc-mips.c (md_convert_frag): Correct
BFD_RELOC_MIPS16_16_PCREL_S1 fixup size.
* testsuite/gas/mips/mips16-branch-addend-4.d: New test.
* testsuite/gas/mips/mips16-branch-addend-5.d: New test.
* testsuite/gas/mips/mips16-branch-addend-5.l: New stderr
output.
* testsuite/gas/mips/mips16-branch-addend-4.s: New test source.
* testsuite/gas/mips/mips16-branch-addend-5.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.
commit debed3db4887483552103da36d180967ef0dca5f
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 10:58:57 2017 +0100
Fix build on gcc < 5 (std::is_trivially_copyable missing)
Ref: https://sourceware.org/ml/gdb-patches/2017-04/msg00660.html
Simply skip the poisoning on older compilers.
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* common/poison.h [!HAVE_IS_TRIVIALLY_COPYABLE] (IsRelocatable)
(BothAreRelocatable, memcopy, memmove): Don't define.
* common/traits.h (__has_feature, HAVE_IS_TRIVIALLY_COPYABLE): New
macros.
commit d28b6364b1fba1c0270c001f0d82a69e351e1922
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Tue Apr 25 02:40:43 2017 -0700
gas: sparc: fix relaxation of CALL instruction into branches in a.out targets
This patch avoids CALL instructions to be optimized into branches if
the symbols referred to in the CALL instruction are not fully resolved
at the time the assembler writes its output.
Tested in sparc64-linux-gnu and sparc-sun-sunos4.1.3 targets.
No regressions.
gas/ChangeLog:
2017-04-25 Jose E. Marchesi <jose.marchesi@oracle.com>
PR gas/21407
* config/tc-sparc.c (md_apply_fix): Do not transform `call'
instructions into branch instructions in fixups generating
additional relocations.
* testsuite/gas/sparc/call-relax.s: New file.
* testsuite/gas/sparc/call-relax.d: Likewise.
* testsuite/gas/sparc/call-relax-aout.d: Likewise.
* testsuite/gas/sparc/sparc.exp: Test call-relax and call-relax-aout.
commit b0b92aeb3828219075fce23543fb39fee8608e99
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 01:27:41 2017 +0100
Poison non-POD memset & non-trivially-copyable memcpy/memmove
This patch catches invalid initialization of non-POD types with
memset, at compile time.
This is what I used to catch the problems fixed by the previous
patches in the series:
$ make -k 2>&1 | grep "deleted function"
src/gdb/breakpoint.c:951:53: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â
src/gdb/breakpoint.c:7325:32: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â
src/gdb/btrace.c:1153:42: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = btrace_insn; <template-parameter-1-2> = void; size_t = long unsigned int]â
...
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* common/common-defs.h: Include "common/poison.h".
* common/function-view.h: (Not, Or, Requires): Move to traits.h
and adjust.
* common/poison.h: New file.
* common/traits.h: Include <type_traits>.
(Not, Or, Requires): New, moved from common/function-view.h.
commit 16c4d54a71d8052988ed9c8005a03a7f934245f4
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 01:27:42 2017 +0100
Don't memset non-POD types: struct breakpoint
Eh, struct breakpoint was made non-POD just today, with commit
d28cd78ad820e3 ("Change breakpoint event locations to
event_location_up"). :-)
src/gdb/breakpoint.c: In function âvoid init_raw_breakpoint_without_location(breakpoint*, gdbarch*, bptype, const breakpoint_ops*)â:
src/gdb/breakpoint.c:7447:28: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = breakpoint; <template-parameter-1-2> = void; size_t = long unsigned int]â
memset (b, 0, sizeof (*b));
^
In file included from src/gdb/common/common-defs.h:85:0,
from src/gdb/defs.h:28,
from src/gdb/breakpoint.c:20:
src/gdb/common/poison.h:56:7: note: declared here
void *memset (T *s, int c, size_t n) = delete;
^
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* breakpoint.h (struct breakpoint): In-class initialize all
fields. Make boolean fields "bool".
* breakpoint.c (init_raw_breakpoint_without_location): Remove
memset call and initializations no longer necessary.
commit b5c3668253b909fd1f5b011893a35bb8dfd3be9b
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 01:27:42 2017 +0100
Don't memset non-POD types: struct btrace_insn
struct btrace_insn is not a POD [1] so we shouldn't be using memset to
initialize it [2].
Use list-initialization instead, wrapped in a "pt insn to btrace insn"
function, which looks like just begging to be added next to the
existing pt_reclassify_insn/pt_btrace_insn_flags functions.
[1] - because its field "flags" is not POD, because enum_flags has a
non-trivial default ctor.
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* btrace.c (pt_btrace_insn_flags): Change parameter type to
reference.
(pt_btrace_insn): New function.
(ftrace_add_pt): Remove memset call and use pt_btrace_insn.
commit 5625a2864147f4d92b22edfeeab7600818988be2
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 01:27:42 2017 +0100
Don't memset non-POD types: struct bp_location
struct bp_location is not a POD, so we shouldn't be using memset to
initialize it.
Caught like this:
src/gdb/breakpoint.c: In function âbp_location** get_first_locp_gte_addr(CORE_ADDR)â:
src/gdb/breakpoint.c:950:53: error: use of deleted function âvoid* memset(T*, int, size_t) [with T = bp_location; <template-parameter-1-2> = void; size_t = long unsigned int]â
memset (&dummy_loc, 0, sizeof (struct bp_location));
^
In file included from src/gdb/defs.h:28:0,
from src/gdb/breakpoint.c:20:
src/gdb/common/common-defs.h:126:7: note: declared here
void *memset (T *s, int c, size_t n) = delete;
^
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* ada-lang.c (ada_catchpoint_location): Now a "class". Remove
"base" field and inherit from "bp_location" instead. Add
non-default ctor.
(allocate_location_exception): Use new non-default ctor.
* breakpoint.c (get_first_locp_gte_addr): Remove memset call.
(init_bp_location): Convert to ...
(bp_location::bp_location): ... this new ctor, and remove memset
call.
(base_breakpoint_allocate_location): Use the new non-default ctor.
* breakpoint.h (bp_location): Now a class. Declare default and
non-default ctors. In-class initialize all members.
(init_bp_location): Remove declaration.
commit 23bcc18f470ee4364bd362a8b78c6c1415a9dadb
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 25 01:27:42 2017 +0100
Don't memcpy non-trivially-copyable types: Make enum_flags triv. copyable
The delete-memcpy-with-non-trivial-types patch exposed many instances
of this problem:
src/gdb/btrace.h: In function âbtrace_insn_s* VEC_btrace_insn_s_quick_insert(VEC_btrace_insn_s*, unsigned int, const btrace_insn_s*, const char*, unsigned int)â:
src/gdb/common/vec.h:948:62: error: use of deleted function âvoid* memmove(T*, const U*, size_t) [with T = btrace_insn; U = btrace_insn; <template-parameter-1-3> = void; size_t = long unsigned int]â
memmove (slot_ + 1, slot_, (vec_->num++ - ix_) * sizeof (T)); \
^
src/gdb/common/vec.h:436:1: note: in expansion of macro âDEF_VEC_FUNC_Oâ
DEF_VEC_FUNC_O(T) \
^
src/gdb/btrace.h:84:1: note: in expansion of macro âDEF_VEC_Oâ
DEF_VEC_O (btrace_insn_s);
^
[...]
src/gdb/common/vec.h:1060:31: error: use of deleted function âvoid* memcpy(T*, const U*, size_t) [with T = btrace_insn; U = btrace_insn; <template-parameter-1-3> = void; size_t = long unsigned int]â
sizeof (T) * vec2_->num); \
^
src/gdb/common/vec.h:437:1: note: in expansion of macro âDEF_VEC_ALLOC_FUNC_Oâ
DEF_VEC_ALLOC_FUNC_O(T) \
^
src/gdb/btrace.h:84:1: note: in expansion of macro âDEF_VEC_Oâ
DEF_VEC_O (btrace_insn_s);
^
So, VECs (given it's C roots) rely on memcpy/memcpy of VEC elements to
be well defined, in order to grow/reallocate its internal elements
array. This means that we can only put trivially copyable types in
VECs. E.g., if a type requires using a custom copy/move ctor to
relocate, then we can't put it in a VEC (so we use std::vector
instead). But, as shown above, we're violating that requirement.
btrace_insn is currently not trivially copyable, because it contains
an enum_flags field, and that is itself not trivially copyable. This
patch corrects that, by simply removing the user-provided copy
constructor and assignment operator. The compiler-generated versions
work just fine.
Note that std::vector relies on std::is_trivially_copyable too to know
whether it can reallocate its elements with memcpy/memmove instead of
having to call copy/move ctors and dtors, so if we have types in
std::vectors that weren't trivially copyable because of enum_flags,
this will make such vectors more efficient.
gdb/ChangeLog:
2017-04-25 Pedro Alves <palves@redhat.com>
* common/enum-flags.h (enum_flags): Don't implement copy ctor and
assignment operator.
commit a49abe0bb18e04d3a4b692995fcfae70cd470775
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 25 00:00:36 2017 +0000
Automatic date update in version.in
commit 9e9821ddd80c0d0b3dda54d34cc8867f256d4583
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 24 14:37:12 2017 -0700
x86-64: Force symbol dynamic if it isn't undefined weak
Force symbol dynamic if it isn't undefined weak. Generate relative
relocation for GOT reference against non-dynamic symbol in PIC to
avoid unnecessary dynamic symbols.
bfd/
* elf64-x86-64.c (elf_x86_64_link_hash_entry): Add
no_finish_dynamic_symbol.
(elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to
0.
(elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined
weak symbol, don't make it dynamic.
(elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC,
set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE
relocation for GOT reference.
(elf_x86_64_finish_dynamic_symbol): Abort if
no_finish_dynamic_symbol isn't 0.
ld/
* testsuite/ld-x86-64/no-plt.exp: Also check no-plt-1e.nd.
* testsuite/ld-x86-64/no-plt-1e.nd: New file.
commit 0dc9a308a1ec9675bf6b33bae9e8b1faa0bad9ed
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 24 13:42:33 2017 -0700
i386: Force symbol dynamic if it isn't undefined weak
Force symbol dynamic if it isn't undefined weak. Generate R_386_RELATIVE
relocation for R_386_GOT32 relocation against non-dynamic symbol in PIC.
PR ld/21402
* elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't
undefined weak symbol, don't make it dynamic.
(elf_i386_relocate_section): If a symbol isn't dynamic in PIC,
set no_finish_dynamic_symbol and generate R_386_RELATIVE
relocation for R_386_GOT32.
commit e1ba30532c6de26a14404ab4919bb591e8da3eab
Author: Yao Qi <yao.qi@linaro.org>
Date: Mon Apr 24 21:29:12 2017 +0100
Use floatformat_totalsize_bytes
The code can be replaced by floatformat_totalsize_bytes.
gdb:
2017-04-24 Yao Qi <yao.qi@linaro.org>
* doublest.c (convert_doublest_to_floatformat): Call
floatformat_totalsize_bytes.
commit e662f84f5d6d014746550ce3d3f623583c043ff0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 24 09:46:04 2017 -0700
i386: Skip pr12570 tests for nacl targets
commit f129e49f4d07f4d36319ac757fdcf3a8ce7d605b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Jan 10 11:30:25 2017 -0800
Don't use elf_i386_eh_frame_plt directly
fixed i386 PLT eh_frame generation. Skip pr12570 tests since they are
for non-nacl targets.
* testsuite/ld-i386/pr12570a.d: Skip for nacl targets.
* testsuite/ld-i386/pr12570b.d: Likewise.
commit 1587442d37ee4266e54d59bfdc783574f0587aff
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 24 09:37:10 2017 -0700
i386: Set ELF_MAXPAGESIZE to 0x1000 for VxWorks
commit a27e437177412e5b52999723f3c5d5d0d37b9087
Author: Roland McGrath <roland@gnu.org>
Date: Thu Jul 28 22:35:15 2011 +0000
BFD vector for elf32-i386-nacl:
changed ELF_MAXPAGESIZE to 0x10000 for VxWorks. This patch fixes it
and updated testsuite/ld-i386/vxworks2.sd to add space for program
headers.
bfd/
PR ld/21425
* elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks.
ld/
PR ld/20815
* testsuite/ld-i386/vxworks2.sd: Add space for program headers.
commit 534455547021f3262fa60d32cabb626af01692a3
Author: Thomas Preud'homme <thomas.preudhomme@arm.com>
Date: Mon Apr 24 14:49:48 2017 +0100
[GAS/ARM] Fix expansion of ldr pseudo instruction
The LDR rX, =cst pseudo-instruction suffers from two issues for loading
integer constants in Thumb mode:
- movs is used if the constant and register can be encoded using that
instruction which leads to unexpected behavior due to its flag-setting
behavior
- mov.w, movw and mvn are used for r13 (sp) and r15 (pc) but these
encoding are marked as UNPREDICTABLE
This patch fixes those issues and update testing accordingly.
2017-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
gas/
* config/tc-arm.c (move_or_literal_pool): Remove code generating MOVS.
Forbid MOV.W and MOVW if destination is SP or PC.
* testsuite/gas/arm/thumb2_ldr_immediate_highregs_armv6t2.s: Explain
expectation of LDR not generating a MOVS for low registers and small
constants. Add tests of MOVW generation.
* testsuite/gas/arm/thumb2_ldr_immediate_highregs_armv6t2.d: Update
expected disassembly.
commit 8b353c47b70568ab9f0cfd619b7a19e931c2b0c8
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Mon Apr 24 05:31:31 2017 -0700
ld: fix regressions with rett instructions in sparc tests.
A few tests in the ld testsuite were expecting the disassembler to
emit `rett' instructions in V9. This patch updates the tests to
expect `return' instead.
ld/ChangeLog:
2017-04-24 Jose E. Marchesi <jose.marchesi@oracle.com>
* testsuite/ld-sparc/tlssunbin64.dd: Expect `return' instructions
instead of `rett' in V9.
* testsuite/ld-sparc/tlssunnopic64.dd: Likewise.
* testsuite/ld-sparc/tlssunpic64.dd: Likewise.
commit 957f6b39cab6cac0e4c54e650c7f75109544ac1d
Author: Tamar Christina <tamar.christina@arm.com>
Date: Mon Apr 24 11:55:44 2017 +0100
Fix snafu in aarch64 opcodes debugging statement.
* aarch64-opc.c (aarch64_logical_immediate_p): Update DEBUG_TRACE
arguments.
commit 9ad8982091eeb76b380e459fe721aaeacf7b8f24
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 24 00:00:39 2017 +0000
Automatic date update in version.in
commit 42354845ae5e00ec1c3519e1f2166b79a9533401
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 17:39:48 2017 +0930
PR 21418, ar -N lacks arg check
PR 21418
* ar.c (main): Check -a, -b, -i and -N args are given.
commit 7034215fd6d99f275998f7f0f8a346ab35fcbee6
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 17:28:14 2017 +0930
PR 21417, ar arg check failure
PR 21417
* ar.c (main): Check that an archive file is given after options.
commit b02cd3e978e9273074f7cbe2ca1d5b372225a56d
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 18:31:40 2017 +0930
PR 21415, objdump fails to check bfd_get_section_contents status
PR 21415
* objdump.c (disassemble_section): Check bfd_get_section_contents
status.
commit 7eacd66b086cabb1daab20890d5481894d4f56b2
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 15:21:11 2017 +0930
PR 21414, null pointer deref of _bfd_elf_large_com_section sym
PR 21414
* section.c (GLOBAL_SYM_INIT): Make available in bfd.h.
* elf.c (lcomm_sym): New.
(_bfd_elf_large_com_section): Use lcomm_sym section symbol.
* bfd-in2.h: Regenerate.
commit bce964aa6c777d236fbd641f2bc7bb931cfe4bf3
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 11:03:34 2017 +0930
PR 21412, get_reloc_section assumes .rel/.rela name for SHT_REL/RELA.
This patch fixes an assumption made by code that runs for objcopy and
strip, that SHT_REL/SHR_RELA sections are always named starting with a
.rel/.rela prefix. I'm also modifying the interface for
elf_backend_get_reloc_section, so any backend function just needs to
handle name mapping.
PR 21412
* elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change
parameters and comment.
(_bfd_elf_get_reloc_section): Delete.
(_bfd_elf_plt_get_reloc_section): Declare.
* elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section):
New functions. Don't blindly skip over assumed .rel/.rela prefix.
Extracted from..
(_bfd_elf_get_reloc_section): ..here. Delete.
(assign_section_numbers): Call elf_get_reloc_section.
* elf64-ppc.c (elf_backend_get_reloc_section): Define.
* elfxx-target.h (elf_backend_get_reloc_section): Update.
commit 97e83a100aa8250be783304bfe0429761c6e6b6b
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 13:55:49 2017 +0930
PR 21409, segfault in _bfd_dwarf2_find_nearest_line
PR 21409
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when
no symbols.
commit f082820db966c79e47a143da774700055a1fad41
Author: Alan Modra <amodra@gmail.com>
Date: Sun Apr 23 13:49:50 2017 +0930
PR 21408, segfault in display_debug_lines_decoded
PR 21408
* dwarf.c (display_debug_lines_decoded): Don't segfault on NULL
file_table.
commit b43eea27e99f5fd270b3bec455054ea53ac700bb
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 23 00:00:35 2017 +0000
Automatic date update in version.in
commit bf1554384b186b448904dbc13ee5374239c88520
Author: Jim Wilson <jim.wilson@linaro.org>
Date: Sat Apr 22 16:36:01 2017 -0700
Fix ldn/stn multiple instructions. Fix testcases with unaligned data.
sim/aarch64/
* simulator.c (vec_load): Add M argument. Rewrite to iterate over
registers based on structure size.
(LD4, LD3, LD2, LD1_2, LD1_3, LD1_4): Pass new arg to vec_load.
(LD1_1): Replace with call to vec_load.
(vec_store): Add new M argument. Rewrite to iterate over registers
based on structure size.
(ST4, ST3, ST2, ST1_2, ST1_3, ST1_4): Pass new arg to vec_store.
(ST1_1): Replace with call to vec_store.
sim/testsuite/sim/aarch64/
* fcvtz.s, fstur.s, ldn_single.s, ldnr.s, mla.s, mls.s, uzp.s: Align
data.
* sumulh.s: Delete unnecessary data alignment.
* stn_single.s: Align data. Fix unaligned ldr insns. Adjust cmp
arguments to match change.
* ldn_multiple.s, stn_multiple.s: New.
commit 10f489e57677e670bf980e93896762594e9ad908
Author: Tom Tromey <tom@tromey.com>
Date: Wed Apr 12 16:30:21 2017 -0600
Use ui_out_emit_list
This changes some spots to use ui_out_emit_list. This only touches
"easy" cases, where the cleanup was used in a block-structured way.
There's also one more use of ui_out_emit_tuple in here.
ChangeLog
2017-04-22 Tom Tromey <tom@tromey.com>
* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries): Use
ui_out_emit_list.
* stack.c (print_frame): Use ui_out_emit_list.
* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use
ui_out_emit_list.
* mi/mi-main.c (print_one_inferior)
(mi_cmd_data_list_register_names)
(mi_cmd_data_list_register_values, mi_cmd_list_features)
(mi_cmd_list_target_features, mi_cmd_trace_frame_collected): Use
ui_out_emit_list.
* mi/mi-interp.c (mi_on_normal_stop_1): Use ui_out_emit_list.
(mi_output_solib_attribs): Use ui_out_emit_list,
ui_out_emit_tuple.
* mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_list.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames)
(mi_cmd_stack_list_args, list_args_or_locals): Use
ui_out_emit_list.
* disasm.c (do_assembly_only): Use ui_out_emit_list.
* breakpoint.c (print_solib_event, output_thread_groups): Use
ui_out_emit_list.
commit 0092b74da6d86185c4d0c0fa0f540b97647bf44a
Author: Tom Tromey <tom@tromey.com>
Date: Wed Apr 12 16:16:10 2017 -0600
Use ui_out_emit_tuple in more places in MI
This patch changes a few more spots in MI to use ui_out_emit_tuple.
These changes required the use of gdb::optional.
ChangeLog
2017-04-22 Tom Tromey <tom@tromey.com>
* mi/mi-main.c (print_variable_or_computed): Use ui_out_emit_tuple.
* mi/mi-cmd-var.c (varobj_update_one): Use ui_out_emit_tuple.
* mi/mi-cmd-stack.c (list_arg_or_local): Use ui_out_emit_tuple.
commit a14a62ddff9eadbb8a7ad101ab06b02e44b6c00a
Author: Tom Tromey <tom@tromey.com>
Date: Wed Apr 12 16:15:14 2017 -0600
Use ui_out_emit_tuple in tracepoint.c
This changes some code in tracepoint.c to use ui_out_emit_tuple. One
of these involved removing an otherwise unrelated cleanup (changing
type to std::string) and the other involved introducing a new block.
ChangeLog
2017-04-22 Tom Tromey <tom@tromey.com>
* tracepoint.c (tvariables_info_1)
(print_one_static_tracepoint_marker): Use ui_out_emit_tuple.
commit 46b9c12945629fffb61001a8f13a37c96675c0b7
Author: Tom Tromey <tom@tromey.com>
Date: Wed Apr 12 16:10:02 2017 -0600
More uses of ui_out_emit_tuple
This patch adds a few more uses of ui_out_emit_tuple. In these cases
a slightly more complicated change was needed. This also adds
annotate_arg_emitter, for use in stack.c, to avoid having to introduce
a new scope and reindent the code for a single call.
ChangeLog
2017-04-22 Tom Tromey <tom@tromey.com>
* stack.c (print_frame_arg): Use ui_out_emit_tuple,
annotate_arg_emitter.
* breakpoint.c (print_mention_watchpoint)
(print_mention_masked_watchpoint): Use ui_out_emit_tuple.
* annotate.h (struct annotate_arg_emitter): New.
commit 2e78302469502f4f8a98144b60c09d4d9b6438fd
Author: Tom Tromey <tom@tromey.com>
Date: Wed Apr 12 08:23:08 2017 -0600
Use ui_out_emit_tuple
This patch changes various places to use ui_out_emit_tuple,
eliminating a number of cleanups. This patch only tackles "easy"
cases, which are ones where the cleanups in question were
block-structured and did not involve any changes other than the
obvious replacement.
ChangeLog
2017-04-22 Tom Tromey <tom@tromey.com>
* record-btrace.c (record_btrace_insn_history)
(record_btrace_insn_history_range, record_btrace_call_history)
(record_btrace_call_history_range): Use ui_out_emit_tuple.
* thread.c (do_captured_list_thread_ids, print_thread_info_1): Use
ui_out_emit_tuple.
* stack.c (print_frame_info): Use ui_out_emit_tuple.
* solib.c (info_sharedlibrary_command): Use ui_out_emit_tuple.
* skip.c (skip_info): Use ui_out_emit_tuple.
* remote.c (show_remote_cmd): Use ui_out_emit_tuple.
* progspace.c (print_program_space): Use ui_out_emit_tuple.
* probe.c (info_probes_for_ops): Use ui_out_emit_tuple.
* osdata.c (info_osdata): Use ui_out_emit_tuple.
* mi/mi-symbol-cmds.c (mi_cmd_symbol_list_lines): Use
ui_out_emit_tuple.
* mi/mi-main.c (print_one_inferior, list_available_thread_groups)
(output_register, mi_cmd_data_read_memory)
(mi_cmd_data_read_memory_bytes, mi_load_progress)
(mi_cmd_trace_frame_collected): Use ui_out_emit_tuple.
* mi/mi-cmd-var.c (mi_cmd_var_list_children, varobj_update_one):
Use ui_out_emit_tuple.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_args): Use
ui_out_emit_tuple.
* mi/mi-cmd-info.c (mi_cmd_info_ada_exceptions)
(mi_cmd_info_gdb_mi_command): Use ui_out_emit_tuple.
* linux-thread-db.c (info_auto_load_libthread_db): Use
ui_out_emit_tuple.
* inferior.c (print_inferior): Use ui_out_emit_tuple.
* gdb_bfd.c (print_one_bfd): Use ui_out_emit_tuple.
* disasm.c (do_mixed_source_and_assembly_deprecated)
(do_mixed_source_and_assembly): Use ui_out_emit_tuple.
* cp-abi.c (list_cp_abis): Use ui_out_emit_tuple.
* cli/cli-setshow.c (cmd_show_list): Use ui_out_emit_tuple.
* breakpoint.c (print_one_breakpoint_location)
(print_one_breakpoint): Use ui_out_emit_tuple.
* auto-load.c (print_script, info_auto_load_cmd): Use
ui_out_emit_tuple.
* ada-tasks.c (print_ada_task_info): Use ui_out_emit_tuple.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 191 +++++
bfd/bfd-in2.h | 12 +
bfd/compress.c | 19 +-
bfd/dwarf2.c | 2 +-
bfd/elf-bfd.h | 30 +-
bfd/elf-eh-frame.c | 162 ++++-
bfd/elf-properties.c | 11 +-
bfd/elf.c | 67 +-
bfd/elf32-i386.c | 230 +++---
bfd/elf32-m32c.c | 3 +-
bfd/elf32-msp430.c | 3 +-
bfd/elf32-ppc.c | 38 +-
bfd/elf64-ppc.c | 28 +-
bfd/elf64-x86-64.c | 326 ++++----
bfd/elflink.c | 48 +-
bfd/elfxx-mips.c | 2 +-
bfd/elfxx-mips.h | 3 +-
bfd/elfxx-target.h | 8 +-
bfd/reloc.c | 29 +-
bfd/section.c | 24 +-
bfd/version.h | 2 +-
binutils/ChangeLog | 80 ++
binutils/ar.c | 13 +-
binutils/bucomm.c | 3 +
binutils/dwarf.c | 78 ++-
binutils/objdump.c | 7 +-
binutils/readelf.c | 175 ++++-
binutils/testsuite/binutils-all/mips/mips.exp | 2 +
.../testsuite/binutils-all/mips/mips16-alias.d | 15 +
.../testsuite/binutils-all/mips/mips16-alias.s | 20 +
.../testsuite/binutils-all/mips/mips16-noalias.d | 16 +
binutils/testsuite/binutils-all/note-2-32.s | 32 +-
binutils/testsuite/binutils-all/note-2-64.s | 34 +-
gas/ChangeLog | 114 +++
gas/config/tc-arm.c | 14 +-
gas/config/tc-mips.c | 316 ++++----
gas/config/tc-sparc.c | 9 +-
gas/symbols.c | 16 +-
gas/testsuite/gas/arc/b.d | 8 +-
gas/testsuite/gas/arc/leave_enter.d | 41 +-
gas/testsuite/gas/arc/leave_enter.s | 11 +
gas/testsuite/gas/arc/noargs_hs.d | 2 +-
.../arm/thumb2_ldr_immediate_highregs_armv6t2.d | 24 +-
.../arm/thumb2_ldr_immediate_highregs_armv6t2.s | 16 +-
gas/testsuite/gas/mips/mips.exp | 9 +
gas/testsuite/gas/mips/mips16-branch-addend-4.d | 30 +
gas/testsuite/gas/mips/mips16-branch-addend-4.s | 24 +
gas/testsuite/gas/mips/mips16-branch-addend-5.d | 4 +
gas/testsuite/gas/mips/mips16-branch-addend-5.l | 11 +
gas/testsuite/gas/mips/mips16-branch-addend-5.s | 24 +
gas/testsuite/gas/mips/option-pic-relax-0.d | 21 +
gas/testsuite/gas/mips/option-pic-relax-0.s | 15 +
gas/testsuite/gas/mips/option-pic-relax-1.d | 18 +
gas/testsuite/gas/mips/option-pic-relax-1.s | 12 +
gas/testsuite/gas/mips/option-pic-relax-2.d | 28 +
gas/testsuite/gas/mips/option-pic-relax-2.l | 2 +
gas/testsuite/gas/mips/option-pic-relax-2.s | 19 +
gas/testsuite/gas/mips/option-pic-relax-3.d | 20 +
gas/testsuite/gas/mips/option-pic-relax-3.l | 2 +
gas/testsuite/gas/mips/option-pic-relax-3.s | 16 +
gas/testsuite/gas/mips/option-pic-relax-3a.d | 9 +
gas/testsuite/gas/mips/option-pic-relax-4.d | 28 +
gas/testsuite/gas/mips/option-pic-relax-4.l | 2 +
gas/testsuite/gas/mips/option-pic-relax-4.s | 20 +
gas/testsuite/gas/mips/option-pic-relax-5.d | 20 +
gas/testsuite/gas/mips/option-pic-relax-5.l | 2 +
gas/testsuite/gas/mips/option-pic-relax-5.s | 17 +
gas/testsuite/gas/sparc/call-relax-aout.d | 19 +
gas/testsuite/gas/sparc/call-relax.d | 18 +
gas/testsuite/gas/sparc/call-relax.s | 10 +
gas/testsuite/gas/sparc/sparc.exp | 4 +
gdb/ChangeLog | 440 +++++++++++
gdb/aarch64-tdep.c | 1 -
gdb/ada-lang.c | 19 +-
gdb/ada-tasks.c | 4 +-
gdb/annotate.h | 11 +
gdb/arch-utils.c | 9 +
gdb/arch-utils.h | 6 +
gdb/arm-tdep.c | 1 -
gdb/auto-load.c | 16 +-
gdb/breakpoint.c | 81 +--
gdb/breakpoint.h | 125 ++--
gdb/btrace.c | 23 +-
gdb/cli/cli-setshow.c | 15 +-
gdb/common/common-defs.h | 1 +
gdb/common/enum-flags.h | 10 -
gdb/common/function-view.h | 40 +-
gdb/common/poison.h | 87 +++
gdb/common/traits.h | 43 +-
gdb/cp-abi.c | 5 +-
gdb/disasm.c | 19 +-
gdb/doublest.c | 3 +-
gdb/dwarf2-frame.c | 92 +--
gdb/dwarf2-frame.h | 58 ++
gdb/gdb_bfd.c | 4 +-
gdb/gdbarch.c | 23 +
gdb/gdbarch.h | 7 +
gdb/gdbarch.sh | 3 +
gdb/gdbtypes.c | 106 ++--
gdb/gdbtypes.h | 13 +-
gdb/ia64-tdep.c | 61 +-
gdb/infcmd.c | 14 +-
gdb/inferior.c | 5 +-
gdb/linux-thread-db.c | 3 +-
gdb/mi/mi-cmd-file.c | 5 +-
gdb/mi/mi-cmd-info.c | 10 +-
gdb/mi/mi-cmd-stack.c | 28 +-
gdb/mi/mi-cmd-var.c | 21 +-
gdb/mi/mi-interp.c | 12 +-
gdb/mi/mi-main.c | 110 +--
gdb/mi/mi-symbol-cmds.c | 8 +-
gdb/mips-linux-nat.c | 5 +-
gdb/mips-tdep.c | 2 +-
gdb/nds32-tdep.c | 23 +-
gdb/nto-tdep.c | 35 +-
gdb/osdata.c | 29 +-
gdb/probe.c | 5 +-
gdb/progspace.c | 4 +-
gdb/python/py-inferior.c | 7 +-
gdb/record-btrace.c | 22 +-
gdb/regcache.c | 785 +++++++++++---------
gdb/regcache.h | 166 ++++-
gdb/remote.c | 11 +-
gdb/skip.c | 5 +-
gdb/solib-aix.c | 110 ++--
gdb/solib-darwin.c | 32 +-
gdb/solib-dsbt.c | 39 +-
gdb/solib-frv.c | 110 ++--
gdb/solib-svr4.c | 115 ++--
gdb/solib-svr4.h | 23 +
gdb/solib-target.c | 114 ++--
gdb/solib.c | 6 +-
gdb/solist.h | 10 +-
gdb/sparc-tdep.c | 32 +
gdb/stack.c | 44 +-
gdb/target.c | 5 +-
gdb/testsuite/ChangeLog | 23 +
gdb/testsuite/gdb.base/environ.exp | 302 ++-------
gdb/testsuite/gdb.base/info-program.exp | 45 ++
gdb/testsuite/gdb.cp/oranking.cc | 22 +
gdb/testsuite/gdb.cp/oranking.exp | 9 +-
gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 1 -
gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 1 -
gdb/thread.c | 30 +-
gdb/tracepoint.c | 44 +-
gdb/windows-nat.c | 52 +-
gdb/xcoffread.c | 68 ++-
gdb/xtensa-tdep.c | 21 +-
gold/ChangeLog | 4 +
gold/testsuite/plugin_section_order.c | 1 +
ld/ChangeLog | 60 ++
ld/testsuite/config/default.exp | 37 +
ld/testsuite/ld-elf/shared.exp | 86 +++
ld/testsuite/ld-i386/i386.exp | 1 +
ld/testsuite/ld-i386/pr12570a.d | 1 +
ld/testsuite/ld-i386/pr12570b.d | 1 +
ld/testsuite/ld-i386/tls.exp | 111 +++
ld/testsuite/ld-i386/tlsdesc1a.c | 19 +
ld/testsuite/ld-i386/tlsdesc1b.c | 8 +
ld/testsuite/ld-i386/tlsdesc2.d | 10 +
ld/testsuite/ld-i386/vxworks2.sd | 2 +-
ld/testsuite/ld-ifunc/ifunc.exp | 99 +++
ld/testsuite/ld-mips-elf/mips-elf.exp | 10 +
ld/testsuite/ld-mips-elf/pr21334.dd | 10 +
ld/testsuite/ld-mips-elf/pr21334.gd | 11 +
ld/testsuite/ld-mips-elf/pr21334.ld | 9 +
ld/testsuite/ld-mips-elf/pr21334.s | 20 +
ld/testsuite/ld-sparc/tlssunbin64.dd | 2 +-
ld/testsuite/ld-sparc/tlssunnopic64.dd | 2 +-
ld/testsuite/ld-sparc/tlssunpic64.dd | 2 +-
ld/testsuite/ld-x86-64/no-plt-1e.nd | 7 +
ld/testsuite/ld-x86-64/no-plt.exp | 2 +-
ld/testsuite/ld-x86-64/pr21038a.d | 6 +-
ld/testsuite/ld-x86-64/pr21038c.d | 4 +-
ld/testsuite/ld-x86-64/tls.exp | 116 +++
ld/testsuite/ld-x86-64/tlsdesc1a.c | 19 +
ld/testsuite/ld-x86-64/tlsdesc1b.c | 8 +
ld/testsuite/ld-x86-64/tlsdesc2.d | 10 +
ld/testsuite/ld-x86-64/x86-64.exp | 1 +
opcodes/ChangeLog | 27 +
opcodes/aarch64-opc.c | 4 +-
opcodes/arc-dis.c | 19 +-
opcodes/arc-opc.c | 20 +-
opcodes/arc-tbl.h | 8 +-
opcodes/mips-dis.c | 3 +
opcodes/mips16-opc.c | 12 +-
sim/aarch64/ChangeLog | 11 +
sim/aarch64/simulator.c | 290 +++-----
sim/testsuite/sim/aarch64/ChangeLog | 9 +
sim/testsuite/sim/aarch64/fcvtz.s | 1 +
sim/testsuite/sim/aarch64/fstur.s | 1 +
sim/testsuite/sim/aarch64/ldn_multiple.s | 136 ++++
sim/testsuite/sim/aarch64/ldn_single.s | 2 +
sim/testsuite/sim/aarch64/ldnr.s | 2 +
sim/testsuite/sim/aarch64/mla.s | 2 +
sim/testsuite/sim/aarch64/mls.s | 2 +
sim/testsuite/sim/aarch64/stn_multiple.s | 171 +++++
sim/testsuite/sim/aarch64/stn_single.s | 24 +-
sim/testsuite/sim/aarch64/sumulh.s | 3 -
sim/testsuite/sim/aarch64/uzp.s | 2 +
200 files changed, 5385 insertions(+), 2630 deletions(-)
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-alias.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-alias.s
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-noalias.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-4.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-4.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.l
create mode 100644 gas/testsuite/gas/mips/mips16-branch-addend-5.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-0.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-0.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-1.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-1.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.l
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-2.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.l
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-3a.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.l
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-4.s
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.d
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.l
create mode 100644 gas/testsuite/gas/mips/option-pic-relax-5.s
create mode 100644 gas/testsuite/gas/sparc/call-relax-aout.d
create mode 100644 gas/testsuite/gas/sparc/call-relax.d
create mode 100644 gas/testsuite/gas/sparc/call-relax.s
create mode 100644 gdb/common/poison.h
create mode 100644 gdb/testsuite/gdb.base/info-program.exp
create mode 100644 ld/testsuite/ld-i386/tlsdesc1a.c
create mode 100644 ld/testsuite/ld-i386/tlsdesc1b.c
create mode 100644 ld/testsuite/ld-i386/tlsdesc2.d
create mode 100644 ld/testsuite/ld-mips-elf/pr21334.dd
create mode 100644 ld/testsuite/ld-mips-elf/pr21334.gd
create mode 100644 ld/testsuite/ld-mips-elf/pr21334.ld
create mode 100644 ld/testsuite/ld-mips-elf/pr21334.s
create mode 100644 ld/testsuite/ld-x86-64/no-plt-1e.nd
create mode 100644 ld/testsuite/ld-x86-64/tlsdesc1a.c
create mode 100644 ld/testsuite/ld-x86-64/tlsdesc1b.c
create mode 100644 ld/testsuite/ld-x86-64/tlsdesc2.d
create mode 100644 sim/testsuite/sim/aarch64/ldn_multiple.s
create mode 100644 sim/testsuite/sim/aarch64/stn_multiple.s
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ba2d134..dff6a59 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,194 @@
+2017-04-29 Alan Modra <amodra@gmail.com>
+
+ PR 21432
+ * reloc.c (reloc_offset_in_range): New function.
+ (bfd_perform_relocation, bfd_install_relocation): Use it.
+ (_bfd_final_link_relocate): Likewise.
+
+2017-04-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Check plt_got
+ before using .plt.got.
+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
+
+2017-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Use "="
+ instead of "+=" to update 0.
+
+2017-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_create_dynamic_sections): Create the
+ .plt.got section here.
+ (elf_i386_check_relocs): Don't create the .plt.got section.
+ * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Create
+ the .plt.got and .plt.bnd sections here.
+ (elf_x86_64_check_relocs): Don't create the .plt.got nor
+ .plt.bnd sections.
+
+2017-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf64-x86-64.c (elf_x86_64_link_hash_entry): Remove
+ has_bnd_reloc.
+ (elf_x86_64_link_hash_newfunc): Don't clear has_bnd_reloc.
+ (elf_x86_64_copy_indirect_symbol): Don't copy has_bnd_reloc.
+ (elf_x86_64_check_relocs): Don't set has_bnd_reloc.
+ (elf_x86_64_finish_dynamic_symbol): Check bndplt instead of
+ has_bnd_reloc.
+
+2017-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf-bfd.h (elf_backend_data): Change setup_gnu_properties
+ to return bfd *.
+ (_bfd_elf_link_setup_gnu_properties): Return bfd *.
+ * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Return
+ the first relocatable ELF input with GNU properties.
+
+2017-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_finish_dynamic_sections): Simplify
+ VxWorks for non-PIC.
+
+2017-04-27 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (struct elf_backend_data): Make asection param of
+ elf_backend_eh_frame_address_size const.
+ (_bfd_elf_eh_frame_address_size): Likewise.
+ * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): Likewise.
+ * elf32-msp430.c (elf32_msp430_eh_frame_address_size): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_eh_frame_address_size): Likewise.
+ * elfxx-mips.h (_bfd_mips_elf_eh_frame_address_size): Likewise.
+ * elf-eh-frame.c (_bfd_elf_eh_frame_address_size): Likewise.
+ (next_cie_fde_offset): Constify params.
+ (offset_adjust, adjust_eh_frame_local_symbols): Likewise.
+
+2017-04-27 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (struct eh_cie_fde): Add aug_str_len and aug_data_len.
+ (_bfd_elf_adjust_eh_frame_global_symbol): Declare.
+ * elf-eh-frame.c (_bfd_elf_parse_eh_frame): Set aug_str_len and
+ aug_data_len.
+ (offset_adjust): New function.
+ (_bfd_elf_adjust_eh_frame_global_symbol): Likewise.
+ (adjust_eh_frame_local_symbols): Likewise.
+ (_bfd_elf_discard_section_eh_frame): Call adjust_eh_frame_local_symbols
+ after changing anything. Return true if anything changed.
+ * elflink.c (bfd_elf_discard_info): If .eh_frame changed, call
+ _bfd_elf_adjust_eh_frame_global_symbol for globals.
+
+2017-04-27 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_link_hash_hide_symbol): Clear dynstr_index
+ when force_local.
+
+2017-04-27 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
+ (ppc_elf_select_plt_layout, ppc_elf_tls_setup): Use it.
+ (ppc_elf_adjust_dynamic_symbol, allocate_dynrelocs): Likewise.
+ (ppc_elf_relocate_section): Likewise. Delete silly optimisation
+ for undef and undefweak dyn_relocs.
+ * elf64-ppc.c (UNDEFWEAK_NO_DYNAMIC_RELOC): Define.
+ (ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup): Use it.
+ (allocate_got, allocate_dynrelocs): Likewise.
+ (ppc64_elf_relocate_section): Likewise.
+
+2017-04-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_size_dynamic_sections): Alwasys add
+ DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rel.plt section.
+ * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Alwasys
+ add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL for .rela.plt section.
+
+2017-04-26 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21434
+ * reloc.c (bfd_perform_relocation): Check for a negative address
+ in the reloc.
+
+2017-04-26 Maciej W. Rozycki <macro@imgtec.com>
+
+ PR ld/21334
+ * elf-bfd.h (elf_backend_data): Add `always_renumber_dynsyms'
+ member.
+ * elfxx-target.h [!elf_backend_always_renumber_dynsyms]
+ (elf_backend_always_renumber_dynsyms): Define.
+ (elfNN_bed): Initialize `always_renumber_dynsyms' member.
+ * elfxx-mips.h (elf_backend_always_renumber_dynsyms): Define.
+ * elflink.c (bfd_elf_size_dynamic_sections): Also call
+ `_bfd_elf_link_renumber_dynsyms' if the backend has requested
+ it.
+ (bfd_elf_size_dynsym_hash_dynstr): Likewise.
+
+2017-04-26 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elflink.c (bfd_elf_size_dynamic_sections): Only call
+ `_bfd_elf_link_renumber_dynsyms' after section GC if dynamic
+ sections have been created.
+
+2017-04-26 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21431
+ * compress.c (bfd_init_section_compress_status): Check the return
+ value from bfd_malloc.
+
+2017-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add
+ no_finish_dynamic_symbol.
+ (elf_x86_64_link_hash_newfunc): Set no_finish_dynamic_symbol to
+ 0.
+ (elf_x86_64_allocate_dynrelocs): If a symbol isn't undefined
+ weak symbol, don't make it dynamic.
+ (elf_x86_64_relocate_section): If a symbol isn't dynamic in PIC,
+ set no_finish_dynamic_symbol and generate R_X86_64_RELATIVE
+ relocation for GOT reference.
+ (elf_x86_64_finish_dynamic_symbol): Abort if
+ no_finish_dynamic_symbol isn't 0.
+
+2017-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21402
+ * elf32-i386.c (elf_i386_allocate_dynrelocs): If a symbol isn't
+ undefined weak symbol, don't make it dynamic.
+ (elf_i386_relocate_section): If a symbol isn't dynamic in PIC,
+ set no_finish_dynamic_symbol and generate R_386_RELATIVE
+ relocation for R_386_GOT32.
+
+2017-04-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21425
+ * elf32-i386.c (ELF_MAXPAGESIZE): Set to 0x1000 for VxWorks.
+
+2017-04-23 Alan Modra <amodra@gmail.com>
+
+ PR 21414
+ * section.c (GLOBAL_SYM_INIT): Make available in bfd.h.
+ * elf.c (lcomm_sym): New.
+ (_bfd_elf_large_com_section): Use lcomm_sym section symbol.
+ * bfd-in2.h: Regenerate.
+
+2017-04-23 Alan Modra <amodra@gmail.com>
+
+ PR 21412
+ * elf-bfd.h (struct elf_backend_data <get_reloc_section>): Change
+ parameters and comment.
+ (_bfd_elf_get_reloc_section): Delete.
+ (_bfd_elf_plt_get_reloc_section): Declare.
+ * elf.c (_bfd_elf_plt_get_reloc_section, elf_get_reloc_section):
+ New functions. Don't blindly skip over assumed .rel/.rela prefix.
+ Extracted from..
+ (_bfd_elf_get_reloc_section): ..here. Delete.
+ (assign_section_numbers): Call elf_get_reloc_section.
+ * elf64-ppc.c (elf_backend_get_reloc_section): Define.
+ * elfxx-target.h (elf_backend_get_reloc_section): Update.
+
+2017-04-23 Alan Modra <amodra@gmail.com>
+
+ PR 21409
+ * dwarf2.c (_bfd_dwarf2_find_nearest_line): Don't segfault when
+ no symbols.
+
2017-04-21 H.J. Lu <hongjiu.lu@intel.com>
PR ld/21402
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 1d73134..17a35c0 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1839,6 +1839,18 @@ extern asection _bfd_std_section[4];
{ NULL }, { NULL } \
}
+/* We use a macro to initialize the static asymbol structures because
+ traditional C does not permit us to initialize a union member while
+ gcc warns if we don't initialize it.
+ the_bfd, name, value, attr, section [, udata] */
+#ifdef __STDC__
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+ { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
+#else
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+ { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
+#endif
+
void bfd_section_list_clear (bfd *);
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
diff --git a/bfd/compress.c b/bfd/compress.c
index f881c07..c854a20 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -542,7 +542,6 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec)
{
bfd_size_type uncompressed_size;
bfd_byte *uncompressed_buffer;
- bfd_boolean ret;
/* Error if not opened for read. */
if (abfd->direction != read_direction
@@ -558,18 +557,18 @@ bfd_init_section_compress_status (bfd *abfd, sec_ptr sec)
/* Read in the full section contents and compress it. */
uncompressed_size = sec->size;
uncompressed_buffer = (bfd_byte *) bfd_malloc (uncompressed_size);
+ /* PR 21431 */
+ if (uncompressed_buffer == NULL)
+ return FALSE;
+
if (!bfd_get_section_contents (abfd, sec, uncompressed_buffer,
0, uncompressed_size))
- ret = FALSE;
- else
- {
- uncompressed_size = bfd_compress_section_contents (abfd, sec,
- uncompressed_buffer,
- uncompressed_size);
- ret = uncompressed_size != 0;
- }
+ return FALSE;
- return ret;
+ uncompressed_size = bfd_compress_section_contents (abfd, sec,
+ uncompressed_buffer,
+ uncompressed_size);
+ return uncompressed_size != 0;
}
/*
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 132a674..0ef3e1f 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -4205,7 +4205,7 @@ _bfd_dwarf2_find_nearest_line (bfd *abfd,
looking up the function by section + offset uses the
DW_AT_decl_line from the function DW_TAG_subprogram for the line,
which will be the line of the function name. */
- if ((section->flags & SEC_CODE) == 0)
+ if (symbols != NULL && (section->flags & SEC_CODE) == 0)
{
asymbol **tmp;
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index af377ee..4110ace 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -326,6 +326,12 @@ struct eh_cie_fde
or 0 if the CIE doesn't have any. */
unsigned int personality_offset : 8;
+ /* Length of augmentation. aug_str_len is the length of the
+ string including null terminator. aug_data_len is the length
+ of the rest up to the initial insns. */
+ unsigned int aug_str_len : 3;
+ unsigned int aug_data_len : 5;
+
/* True if we have marked relocations associated with this CIE. */
unsigned int gc_mark : 1;
@@ -354,7 +360,7 @@ struct eh_cie_fde
unsigned int merged : 1;
/* Unused bits. */
- unsigned int pad1 : 17;
+ unsigned int pad1 : 9;
} cie;
} u;
unsigned int reloc_index;
@@ -1285,7 +1291,7 @@ struct elf_backend_data
that can't be determined for some reason. The default definition
goes by the bfd's EI_CLASS. */
unsigned int (*elf_backend_eh_frame_address_size)
- (bfd *, asection *);
+ (bfd *, const asection *);
/* These functions tell elf-eh-frame whether to attempt to turn
absolute or lsda encodings into pc-relative ones. The default
@@ -1360,8 +1366,10 @@ struct elf_backend_data
bfd_size_type (*maybe_function_sym) (const asymbol *sym, asection *sec,
bfd_vma *code_off);
- /* Return the section which RELOC_SEC applies to. */
- asection *(*get_reloc_section) (asection *reloc_sec);
+ /* Given NAME, the name of a relocation section stripped of its
+ .rel/.rela prefix, return the section in ABFD to which the
+ relocations apply. */
+ asection *(*get_reloc_section) (bfd *abfd, const char *name);
/* Called to set the sh_flags, sh_link and sh_info fields of OSECTION which
has a type >= SHT_LOOS. Returns TRUE if the fields were initialised,
@@ -1433,7 +1441,7 @@ struct elf_backend_data
elf_property *);
/* Set up GNU properties. */
- void (*setup_gnu_properties) (struct bfd_link_info *);
+ bfd *(*setup_gnu_properties) (struct bfd_link_info *);
/* Encoding used for compact EH tables. */
int (*compact_eh_encoding) (struct bfd_link_info *);
@@ -1529,6 +1537,10 @@ struct elf_backend_data
/* Address of protected data defined in the shared library may be
external, i.e., due to copy relocation. */
unsigned extern_protected_data : 1;
+
+ /* True if `_bfd_elf_link_renumber_dynsyms' must be called even for
+ static binaries. */
+ unsigned always_renumber_dynsyms : 1;
};
/* Information about reloc sections associated with a bfd_elf_section_data
@@ -1975,7 +1987,7 @@ extern void bfd_elf_print_symbol
(bfd *, void *, asymbol *, bfd_print_symbol_type);
extern unsigned int _bfd_elf_eh_frame_address_size
- (bfd *, asection *);
+ (bfd *, const asection *);
extern bfd_byte _bfd_elf_encode_eh_address
(bfd *abfd, struct bfd_link_info *info, asection *osec, bfd_vma offset,
asection *loc_sec, bfd_vma loc_offset, bfd_vma *encoded);
@@ -2174,6 +2186,8 @@ extern bfd_boolean _bfd_elf_end_eh_frame_parsing
extern bfd_boolean _bfd_elf_discard_section_eh_frame
(bfd *, struct bfd_link_info *, asection *,
bfd_boolean (*) (bfd_vma, void *), struct elf_reloc_cookie *);
+extern bfd_boolean _bfd_elf_adjust_eh_frame_global_symbol
+ (struct elf_link_hash_entry *, void *);
extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
(bfd *, struct bfd_link_info *);
extern bfd_vma _bfd_elf_eh_frame_section_offset
@@ -2448,7 +2462,7 @@ extern bfd_boolean _bfd_elf_is_function_type (unsigned int);
extern bfd_size_type _bfd_elf_maybe_function_sym (const asymbol *, asection *,
bfd_vma *);
-extern asection *_bfd_elf_get_reloc_section (asection *);
+extern asection *_bfd_elf_plt_get_reloc_section (bfd *, const char *);
extern int bfd_elf_get_default_section_type (flagword);
@@ -2593,7 +2607,7 @@ extern bfd_boolean _bfd_elf_parse_gnu_properties
(bfd *, Elf_Internal_Note *);
extern elf_property * _bfd_elf_get_property
(bfd *, unsigned int, unsigned int);
-extern void _bfd_elf_link_setup_gnu_properties
+extern bfd *_bfd_elf_link_setup_gnu_properties
(struct bfd_link_info *);
/* The linker may need to keep track of the number of relocs that it
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 1743823..52ba9c6 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -326,9 +326,9 @@ size_of_output_cie_fde (struct eh_cie_fde *entry)
/* Return the offset of the FDE or CIE after ENT. */
static unsigned int
-next_cie_fde_offset (struct eh_cie_fde *ent,
- struct eh_cie_fde *last,
- asection *sec)
+next_cie_fde_offset (const struct eh_cie_fde *ent,
+ const struct eh_cie_fde *last,
+ const asection *sec)
{
while (++ent < last)
{
@@ -757,6 +757,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
strcpy (cie->augmentation, (char *) buf);
buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1;
+ this_inf->u.cie.aug_str_len = buf - start - 1;
ENSURE_NO_RELOCS (buf);
if (buf[0] == 'e' && buf[1] == 'h')
{
@@ -845,6 +846,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
goto free_no_table;
}
}
+ this_inf->u.cie.aug_data_len
+ = buf - start - 1 - this_inf->u.cie.aug_str_len;
/* For shared libraries, try to get rid of as many RELATIVE relocs
as possible. */
@@ -1327,6 +1330,143 @@ find_merged_cie (bfd *abfd, struct bfd_link_info *info, asection *sec,
return new_cie->cie_inf;
}
+/* For a given OFFSET in SEC, return the delta to the new location
+ after .eh_frame editing. */
+
+static bfd_signed_vma
+offset_adjust (bfd_vma offset, const asection *sec)
+{
+ struct eh_frame_sec_info *sec_info
+ = (struct eh_frame_sec_info *) elf_section_data (sec)->sec_info;
+ unsigned int lo, hi, mid;
+ struct eh_cie_fde *ent;
+ bfd_signed_vma delta;
+
+ lo = 0;
+ hi = sec_info->count;
+ if (hi == 0)
+ return 0;
+
+ while (lo < hi)
+ {
+ mid = (lo + hi) / 2;
+ ent = &sec_info->entry[mid];
+ if (offset < ent->offset)
+ hi = mid;
+ else if (mid + 1 >= hi)
+ break;
+ else if (offset >= ent[1].offset)
+ lo = mid + 1;
+ else
+ break;
+ }
+
+ if (!ent->removed)
+ delta = (bfd_vma) ent->new_offset - (bfd_vma) ent->offset;
+ else if (ent->cie && ent->u.cie.merged)
+ {
+ struct eh_cie_fde *cie = ent->u.cie.u.merged_with;
+ delta = ((bfd_vma) cie->new_offset + cie->u.cie.u.sec->output_offset
+ - (bfd_vma) ent->offset - sec->output_offset);
+ }
+ else
+ {
+ /* Is putting the symbol on the next entry best for a deleted
+ CIE/FDE? */
+ struct eh_cie_fde *last = sec_info->entry + sec_info->count;
+ delta = ((bfd_vma) next_cie_fde_offset (ent, last, sec)
+ - (bfd_vma) ent->offset);
+ return delta;
+ }
+
+ /* Account for editing within this CIE/FDE. */
+ offset -= ent->offset;
+ if (ent->cie)
+ {
+ unsigned int extra
+ = ent->add_augmentation_size + ent->u.cie.add_fde_encoding;
+ if (extra == 0
+ || offset <= 9u + ent->u.cie.aug_str_len)
+ return delta;
+ delta += extra;
+ if (offset <= 9u + ent->u.cie.aug_str_len + ent->u.cie.aug_data_len)
+ return delta;
+ delta += extra;
+ }
+ else
+ {
+ unsigned int ptr_size, width, extra = ent->add_augmentation_size;
+ if (offset <= 12 || extra == 0)
+ return delta;
+ ptr_size = (get_elf_backend_data (sec->owner)
+ ->elf_backend_eh_frame_address_size (sec->owner, sec));
+ width = get_DW_EH_PE_width (ent->fde_encoding, ptr_size);
+ if (offset <= 8 + 2 * width)
+ return delta;
+ delta += extra;
+ }
+
+ return delta;
+}
+
+/* Adjust a global symbol defined in .eh_frame, so that it stays
+ relative to its original CIE/FDE. It is assumed that a symbol
+ defined at the beginning of a CIE/FDE belongs to that CIE/FDE
+ rather than marking the end of the previous CIE/FDE. This matters
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-04-22 14:46 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-04-22 14:46 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 102673 bytes --]
The branch, users/jkratoch/indexcxx has been updated
via 19072274ff8508f49bba532d84a6a2039b6ffad0 (commit)
via a8cc8a548eccdfd78ad76c826339f56db815bdb8 (commit)
via ebe553db6c639d7533650f8482d611109c2f98a9 (commit)
via 9be21bb4d4f30975766dfaa7d40b53ba10dcc3a0 (commit)
via b8ac4fa43d5d37e4028ba2a7cc2d9b100ee85418 (commit)
via e133d00576f3da89e7772149e8d2b6a059d26919 (commit)
via 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359 (commit)
via 0d4c07afb1e5e37e8e296858f8b14a3b4adf950b (commit)
via 4daf993d4d4686f2707810af3725038d2f289bbb (commit)
via 3ab87b688320e02db1bb7ed4bd45323d57737c77 (commit)
via ddef72cdc10d82ba011a7ff81cafbbd3466acf54 (commit)
via 792f174f8af4291c222d0a6de919118e488258bc (commit)
via 73b58fda3b5976ad1a60feb43695eaf61cdf62b9 (commit)
via afe9edbf486c4b27cceb258c11e104377512ec24 (commit)
via 0fad29560ee055f1253a8e40bfc09b413117480d (commit)
via 31321c8031315c8b5f7c6b73e464f14ad90310b6 (commit)
via 64575f782b79e310852e43947bc1b06f24af388e (commit)
via 59fa66c53823dc695f78669f40ec2eebab3aec42 (commit)
via c76886885987e543f9162809ad86a0a37b394e82 (commit)
via e492d2f8ac653b050019865ba1418fc5b057c00b (commit)
via a6c21d4a553de184562fd8409a5bcd3f2cc2561a (commit)
via 3a3fd0fd2c4c87fdd588c51d879961a49e38f0c1 (commit)
via 9bcb1f1630b05594fa86bfd017639cfcc966b11c (commit)
via 26fcd539dd38a27259d8179152d617118f016706 (commit)
via 101691343ce5f815dc70f6cfd083393e259a18d8 (commit)
via 954b63d4c8645f86e40c7ef6c6d60acd2bf019de (commit)
via 951787ed6d13f8f441d93fc3f6fb870c234774af (commit)
via fdd243b001585c5ca078342608332af77050c867 (commit)
via 4895cde29761f6c39fdb6c319ff4666ee39f5d28 (commit)
via bd8a901f9e34191e0645a5527556d124ba5c345a (commit)
via d35d19584cf56a50b4833ff9c003597e01022f27 (commit)
via 22796e972f18c5601cecb0251222411a352836b6 (commit)
via a7fc9b6193f830293066479aa439cea924418393 (commit)
via 010151c9146eb2a299686e41c714e57c344be8e8 (commit)
via d56060f08aa4ed5786042a066f62aa8e474cc0fd (commit)
via 6631d36456babbaf4c78b955165c3344f95ac5dd (commit)
via e6699019c4f363f804f9646974ab1d5e78785ffc (commit)
via 305d16a9beff2a817ee03b3881da68eb3a29edec (commit)
via 8bb5723165d4e7308fb69b21a95f396f9e61caaf (commit)
via c5d37467b152fe98f02ac1ff8188e32ecd0def95 (commit)
via c661778cb6b406d5b55fbf22ff88fbc85ee3f4c2 (commit)
via 94522e5f36e542a7f7eccc4e2fa31682e58f812c (commit)
via 725bf5cf125783c2a7ca4ab63d3768e220bab2db (commit)
via 096c92ddb3a5a959bc638cff3c4ffa0f48a737d7 (commit)
via 5dc74d659d1c84b8ffdb4fcbf2ef73dc974d8a5b (commit)
via 0550c9559522c84341edcb334af30bc9bf2df9fb (commit)
via e3d60dfc000a29959c78bd69b85100aab33f7ab5 (commit)
via 5fd69d0ab2c42d2be0781bf3a5d60e1d5b8d05dc (commit)
via c6609450b33960a0e9f8c1df045b02f0677e866a (commit)
via 2a00d7ce26a6ee15e3712b045c8b7932278ea23b (commit)
via 441d7c93782a1b1877bfa903dc8da56a6041bfb4 (commit)
via 7296a62a2a237f6b1ad8db8c38b090e9f592c8cf (commit)
via 1d15e434f43bc41a07bc7b0648fcb7e6ccbe8dcc (commit)
via 4274208406762da7af6dd697f44d8e6895061530 (commit)
via 808480f667e41e2fdb66bfdc9d5e047f1aa34a68 (commit)
via 8f0dd45fde9de100160f45cad3e537e4e01a5493 (commit)
via b1b45502bdef95b57125b56287b45c2eb26707d3 (commit)
via 63a5468afa8e2cf8843d87b99e780e9266b31014 (commit)
via dae82561a286618acf097ad9894eafba98377f66 (commit)
via c08bb8dd9bd9fd101018b287726187d7ed6a0035 (commit)
via 10463f39c79843c2c141481a0781091870695b17 (commit)
via 4af8774e1559b2a4e098ca0e4fc5daf857c633c1 (commit)
via ad3d022a77afdbaba4bb36ff4aa99be52892de42 (commit)
via e6ddc3bfedb4665c9d4baa2c85037af25167cdf3 (commit)
via bfb8cf9091a174b42beeff3d014173084413af4d (commit)
via f5336ca55ca0aca2507ac8c0f1d573d7f6b877ab (commit)
via 4f70a994900c2f7b235add7d4131cc069c181cea (commit)
via be628ab814f1c90e185d7482d27aa8a991ab5837 (commit)
via 8e9e35b1808481735e2d1efbf70ed7396a845d8e (commit)
via 16e802b9c085ce354b1ab9e2fd25d00bf7626fa8 (commit)
via d28cd78ad820e3a40ac5064b6a30f3a12ce70bf0 (commit)
via 711799d513206f6d8fc3dbfa81dcdecdb2ce6ece (commit)
via 52d214d3e1b2f6a1382feafbf2984acdb24c0c95 (commit)
via 4c404b8be6b1d8759eed50366207fc0e2e47d2b1 (commit)
via 156d9eab863f40fc812245cf1213abbe12d192b3 (commit)
via 4d89769a7b4e38e94a6e027281b36eff71fc8214 (commit)
via 4b217cc72b7ab04e2bea519f9fbd47d8952e08f5 (commit)
via 59d3651be7419fafa959f75a3fd46914f5ce395a (commit)
via b24b0d6c3be6b95d4b5e8da901e1ef315bd458b4 (commit)
via 80a3b8c578e93119183db5f5e34248f843e410a7 (commit)
via c83dd8672698bcdf48d27e267e481230075f5900 (commit)
via 0e8621a0bec2d0840b853c4104614f345f0569ca (commit)
via 67d89901506da74d00a482b7560237dce404b41c (commit)
via 93921405a46c0a58eae19fffb92e02416082801a (commit)
via ffc2605c41d026cf5710704848b7c3b1cdbdcf49 (commit)
via 8f10c9323357ad190c0383f2fc9d394316447905 (commit)
via 0a31ccfbd84660a91b133a9915e6f63c30033189 (commit)
via e9bb3fbbe81115b196b436cf513f0fd7b41d6a4a (commit)
via 53375380e934928af133bca69c1e1912c35e9c73 (commit)
via 53e710acd249e1861029b19b7a3d8195e7f28929 (commit)
via 5e0e0422137063ff3846886c8eeb64e98e7669d6 (commit)
via ab0538b875c054468aa205d8d36550d1223a3bfd (commit)
via 5430098f1807e084fe4ff5057040d68435f3d8a2 (commit)
via 7c5ded6a00c4817d56cdf04fbc1969bc33b2a930 (commit)
via ef6a5ae7bd1dd7b528f5cf368d98056603003c35 (commit)
via e4097f5ee55a0d14a6213bccb9da39d4878714c8 (commit)
via 537616aaeb44bc698af9848987e7c8e96d550595 (commit)
via ae0eee42821865ead8d391bb4f92bd2c136c6d43 (commit)
via a6acac06113f4b04fa0333ee2a3ab3025b43ee7c (commit)
via 64403bd1832e10aa8324194968f72bdc5feb5aeb (commit)
via fbea15088db59186960134d11b8bf98070224d6c (commit)
via b43c520dba2f909c9bbb3ff5f2657c1c9010939b (commit)
via c03dc33b606c17231e47f37ae0f00d1c9a6c0506 (commit)
via ef85eab0ec3d7c88ea05047538d11fe704806cd8 (commit)
via 9570835e5597037bee5042edf822675e715b3caf (commit)
via 9a85b496ac4e6488d427155c24f87367ab1f6b1b (commit)
via a5bef50fdbfadbc6b8911b458580ee91cbfcdafd (commit)
via 28d909e539567ab5ecd2bc20680e933869fdf889 (commit)
via a70f34c01c7f250858bd62df245c241263200f63 (commit)
via 9295a5a95da871bfdeec225a6fc2f52f7655bd1c (commit)
via 996812e3d43f78b17b6454d2948cd825ec98c63b (commit)
via 845b344fd54ba381a826b271dd33682d1f148438 (commit)
via 803bdfe43083475c7df3db38dc96f4e20d05457d (commit)
via 8c25b49760b854d0b8451e8ecffeb9860fc41158 (commit)
via 947fa9141488c1d39303fcdaa056332d2d0b2599 (commit)
via bb1dd176fb6f38ae3cc30dc61ce55a7fbf9d0d7b (commit)
via d236cfd444630bd9ddb63edca54c056d5825e673 (commit)
via 62adc51030ad83d09e6d20c455616fd9216e4783 (commit)
via 6f9dbcd42f2cf034a9a21f46842c08d2e88449db (commit)
via 37095d07b470ea94d578cd5ca2da032617200c52 (commit)
via aa808707033a46ee063263f4bc1bd06449851621 (commit)
via 8473b4472dce9ce87aaad35ff8e975e1487f914e (commit)
via 4a44171e07147c6b943412c90184736ca5dbfb4c (commit)
via 5e8bf44f4c94d430ac21257a1a953cfccd2ce79b (commit)
via b630840c9c22a877b2c6270880a214f7b451f546 (commit)
via ae27d3fe76ffb54e7d413a67d8c8d76ca78a9681 (commit)
via aebcde5eb475befba571ca9ae7b6c58126d41160 (commit)
via a7eaf017f95932eb2d654bd61f4c4a873ba71f77 (commit)
via 8170f7693bc0a9442c0aa280197925db92d48ca6 (commit)
via 6670ec13726c3afca789672f6235378a5e1f7d71 (commit)
via 49f4617bf4b86a0b057f3477d57ffbf7c998b229 (commit)
via ae3f8c28134b52414a4c31df2e156615087c46e5 (commit)
via ac8f0f721bf0db9ffd0c6602744f1859cb4dd8d2 (commit)
via 5c1f54ce0b21b19ac0b2a2c921c9ea2f33bbf5fd (commit)
via 498e34425b38f69ceba28707962e3593c281261a (commit)
via ba2f91bb5d69127da41b368c7226f596ee449eca (commit)
via 1fd6d111905e76dfa7af9fbee5229f3f1d360b4c (commit)
via 436252de3e9de546001c4312d0863ce7e10aa200 (commit)
via 1379e3aaea5e9454d7e75f293c3fe24c0d11c688 (commit)
via 62ecb94c4a2929c1aace3fb5470d2a5100255811 (commit)
via 0dedf3777db42712f460123ac0c63c49de5456f5 (commit)
via 3944e22b463a62bfc4f6f0a892c6b0ac705e3c43 (commit)
via 86abf93a3a56ccdf1c5f15b841ee9d6a0516a2cf (commit)
via 0f65a5d84d0a83e5594cf17d04e9f98ab66652a4 (commit)
via 9014582538e38055e438b6cce28d165a73abcc60 (commit)
via 6ca30fa5613cfa935834f27114d6db4f3854a13e (commit)
via 4e9868d4e0c8e45505876901d22c021dd36972a8 (commit)
via 9bf2a700667c53003ece783c05e8b355801105f2 (commit)
via a121b7c1ac76833018f4fc3adaeddc3147272dd0 (commit)
via 995816ba55d952b2823d2ead66495c5cad6dfe58 (commit)
via 3e83a920090130052a407621b94b94513f539fda (commit)
via 63160a43508fb50d9013df061b2191de71f67b50 (commit)
via 9b2eba3dcc6b41f17180e1aee29ed133f942c733 (commit)
via 2adadf517063fb1c3b9240bf99ad339968c12f15 (commit)
via 0d1f4ceb3904c4c82231adf98f0e84f37bc8d4ea (commit)
via 4d75997912d77497fd395fde222513436a7df046 (commit)
via 21c8a587ab81a58d3e067551d5503a765f00ec6e (commit)
via fb32b4f7005ef8f1bde02394b58b5c5eda9cbf10 (commit)
via fdf9e36fa2ed39f0da0dfa5dfdbd8e2452c6cb45 (commit)
via 9f33b8b7c19413efbb37638bdba54706e4da8573 (commit)
via 67cb5b2da285175d37782f3606992b8052234b00 (commit)
via 7a1149643d8621541025e2c70e6391e901c8c7ef (commit)
via 69bbf465237819bd7bf2a21a682d695273b3c8cb (commit)
via be47f9e8180d7275b0e2b26998472e99be9a2d7b (commit)
via bde6261aed330cd8d108c387bfe659a6171525dd (commit)
via b38ef47f47bda5509babd768092ceb09ab98828d (commit)
via f995bbe8e62fdb5607acb1ee127240cfe50d2b8f (commit)
via 0ad9d8c73486e60c5a4963c1b7a0ea7063d69cd2 (commit)
via 4a596fe20e93109300e841a3d0ee5f198146ab6d (commit)
from 828d7c2b97ad76c73c1a718d1bbaf434d045b937 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 19072274ff8508f49bba532d84a6a2039b6ffad0
Merge: 828d7c2 a8cc8a5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Apr 22 16:35:04 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit a8cc8a548eccdfd78ad76c826339f56db815bdb8
Author: Alan Modra <amodra@gmail.com>
Date: Sat Apr 22 14:09:21 2017 +0930
PowerPC VLE insn set additions
opcodes/
* ppc-opc.c (ELEV): Define.
(vle_opcodes): Add se_rfgi and e_sc.
(powerpc_opcodes): Enable lbdx, lhdx, lwdx, stbdx, sthdx, stwdx
for E200Z4.
gas/
* testsuite/gas/ppc/vle.s: Format. Add se_rfgi and e_sc.
* testsuite/gas/ppc/vle.d: Update.
commit ebe553db6c639d7533650f8482d611109c2f98a9
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 21 21:50:22 2017 -0400
doc: Improve documentation about MI thread output
I noticed that the documentation on how the info about threads is output
in MI is duplicated and not up to date. The duplication is between the
"GDB/MI Thread Information" page and the -thread-info result
description.
I improved the "GDB/MI Thread Information" page a bit and referred to it
in the -thread-info doc. This way, the -thread-info doc is more precise
(it did not mention the "threads" and "current-thread-id" attributes)
and concise.
gdb/doc/ChangeLog:
* gdb.texinfo (GDB/MI Thread Information): Add missing
fields, re-word some things.
(GDB/MI Thread Commands): Describe fields found in the output of
-thread-info, remove description of fields in the
thread output tuple, replace with a cross-reference to "GDB/MI
Thread Information".
commit 9be21bb4d4f30975766dfaa7d40b53ba10dcc3a0
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Apr 21 21:45:15 2017 -0400
Remove dead code and "current" field from MI thread output doc
The MI documentation says that -thread-info output contains a "current"
field in the current thread tuple, with the value "*". Current GDB
master does not do this, and I couldn't find any GDB version that did.
I suspect that it was never the case.
The code that would correspond to this in print_thread_info_1 is
essentially dead code. The calls to uiout->text end up in
mi_out::do_text, which is empty.
This patch removes the documentation bit and the dead code. This
"current" field is not necessary, since -thread-info outputs a
"current-thread-id" field.
gdb/ChangeLog:
* thread.c (print_thread_info_1): Remove dead code.
gdb/doc/ChangeLog:
* gdb.texinfo (GDB/MI Thread Commands): Remove "current" field
from -thread-info output.
commit b8ac4fa43d5d37e4028ba2a7cc2d9b100ee85418
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 22 00:00:47 2017 +0000
Automatic date update in version.in
commit e133d00576f3da89e7772149e8d2b6a059d26919
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 21 12:03:14 2017 -0700
i386: Avoid dynamic symbol with GOT reference in PIE
GOT reference to global symbol in PIE will lead to dynamic symbol. It
becomes a problem when "time" or "times" is defined as a variable in
an executable, clashing with functions of the same name in libc. If
a symbol isn't undefined weak symbol, don't make it dynamic in PIE and
generate R_386_RELATIVE relocation.
bfd/
PR ld/21402
* elf32-i386.c (elf_i386_link_hash_entry): Add
no_finish_dynamic_symbol.
(elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0.
(elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak
symbol, don't make it dynamic in PIE.
(elf_i386_relocate_section): If a symbol isn't dynamic in PIE,
set no_finish_dynamic_symbol and generate R_386_RELATIVE
relocation for R_386_GOT32
(elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol
isn't 0.
ld/
PR ld/21402
* testsuite/ld-elf/indirect.exp: Don't skip PIE indirect5 and
indirect6 tests on i386.
commit 3c5fce9bc29b216af7d10f8d6e4d8c3f11a48359
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Apr 21 12:00:55 2017 -0700
Require --no-dynamic-linker with -static -E/--dynamic-list
When -static -E/--dynamic-list are passed to linker, linker may create
executable with dynamic sections which aren't supported by run-time.
We require --no-dynamic-linker together with -static -E/--dynamic-list
before adding dynamic symbol table to static executable.
bfd/
PR ld/19617
PR ld/21086
* elflink.c (elf_link_add_object_symbols): Require
--no-dynamic-linker with -E/--dynamic-list when creating
dynamic sections.
ld/
PR ld/19617
PR ld/21086
* testsuite/ld-elf/pr19617a.d: Pass --no-dynamic-linker to ld.
* testsuite/ld-elf/pr19617b.d: Likewise.
* testsuite/ld-elf/pr19617c.d: Likewise.
*testsuite/ld-i386/pr19636-4d.d: Likewise.
* testsuite/ld-elf/readelf.exp: Pass --no-dynamic-linker to ld
with --export-dynamic.
* testsuite/ld-elf/shared.exp: Pass --no-dynamic-linker to ld
with -E.
commit 0d4c07afb1e5e37e8e296858f8b14a3b4adf950b
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Apr 21 16:14:37 2017 +0200
release branch: Fix: --enable-werror
gdb-8.0-branch
./configure --enable-werror --enable-targets=all
aarch64-tdep.c:3045:13: error: âvoid selftests::aarch64_process_record_test()â declared âstaticâ but never defined [-Werror=unused-function]
arm-tdep.c:9601:13: error: âvoid selftests::arm_record_test()â declared âstaticâ but never defined [-Werror=unused-function]
gdb/ChangeLog
2017-04-21 Jan Kratochvil <jan.kratochvil@redhat.com>
* aarch64-tdep.c (selftests::aarch64_process_record_test): Make it #if
GDB_SELF_TEST.
* arm-tdep.c (selftests::arm_record_test): Likewise.
commit 4daf993d4d4686f2707810af3725038d2f289bbb
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Apr 21 14:59:27 2017 +0100
Simplify regcache_restore
This patches removes the 2nd argument of regcache_restore, because it
is only called by regcache_cpy. In regcache_cpy, if regcache_restore
is called, dst is not readonly, but src is readonly. So this patch
adds an assert that src is readonly in regcache_restore.
regcache_cook_read read everything from a readonly regcache cache
(src)'s register_buffer, and register status is from ->register_status.
gdb:
2017-04-21 Yao Qi <yao.qi@linaro.org>
* regcache.c (regcache_restore): Remove argument 2. Replace
argument 3 with regcache. Get register status from
src->register_status and get register contents from
register_buffer (src, regnum).
(regcache_cpy): Update.
commit 3ab87b688320e02db1bb7ed4bd45323d57737c77
Author: Jose E. Marchesi <jose.marchesi@oracle.com>
Date: Fri Apr 21 05:19:06 2017 -0700
opcodes: mark SPARC RETT instructions as v6notv9.
This prevents the disassembler to show `return' instructions as
`rett' in V9 and later architectures.
opcodes/ChangeLog:
2017-04-21 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-opc.c (sparc_opcodes): Mark RETT instructions as v6notv9.
commit ddef72cdc10d82ba011a7ff81cafbbd3466acf54
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 21 12:31:59 2017 +0100
Fix shift overflow when parsing an overlarge note value.
PR binutils/21378
* readelf.c (print_gnu_build_attribute_name): Check for an
overlarge name field.
commit 792f174f8af4291c222d0a6de919118e488258bc
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Apr 21 12:18:06 2017 +0100
Fix detection of illegal AArch64 opcodes that resemble LD1R, LD2R, LD3R and LD4R.
PR binutils/21380
opcodes * aarch64-tbl.h (aarch64_opcode_table): Fix masks for LD1R, LD2R,
LD3R and LD4R.
gas * testsuite/gas/aarch64/illegal-3.s: New file.
* testsuite/gas/aarch64/illegal-3.d: New file.
commit 73b58fda3b5976ad1a60feb43695eaf61cdf62b9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Apr 21 00:00:18 2017 +0000
Automatic date update in version.in
commit afe9edbf486c4b27cceb258c11e104377512ec24
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 20 12:33:55 2017 -0700
Skip PIE indirect5 and indirect6 tests on i386
On i386, since GOT reference is needed to access global symbols in PIE,
those symbols are made dynamic. Crash happens when there is a reference
to the same global symbol with a different symbol type in a shared
object. Since mixing different types of the same symbol doesn't work in
general, this patch skips those tests on i386 as well as compiles non-PIE
indirect5 and indirect6 tests with $NOPIE_LDFLAGS and $NOPIE_CFLAGS.
PR ld/21402
* testsuite/ld-elf/indirect.exp: Pass $NOPIE_LDFLAGS and
$NOPIE_CFLAGS to non-PIE indirect5 and indirect6 tests. Skip
PIE indirect5 and indirect6 tests on i386.
commit 0fad29560ee055f1253a8e40bfc09b413117480d
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Apr 13 10:26:05 2017 +0100
ELF/LD: Always consider STB_LOCAL symbols local
Do not require forced local (STB_LOCAL) symbols to have a definition in
a regular file to be considered to resolve local to the current module,
matching `elf_link_renumber_local_hash_table_dynsyms'. In the absence
of a regular definition any reference to a STB_LOCAL symbol will have to
be garbage collected along with the undefined symbol itself, or the link
will eventually fail. Either way the symbol concerned is not going to
be external.
bfd/
* elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE
if forced local.
commit 31321c8031315c8b5f7c6b73e464f14ad90310b6
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Apr 20 01:39:30 2017 +0100
MIPS/LD/testsuite: Join `__ehdr_start' tests
Complement commit 3807734dbe48 ("PR ld/15428: MIPS/LD/testsuite:
Un-KFAIL `__ehdr_start' test 2") and join tests that do not need to be
split anymore.
ld/
* testsuite/ld-mips-elf/mips-elf.exp: Join `__ehdr_start' tests.
commit 64575f782b79e310852e43947bc1b06f24af388e
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Wed Apr 19 16:51:17 2017 +0100
MIPS/BFD: Reorder comment about dynamic symbol sorting
Move the comment about dynamic symbol sorting next to where it happens.
bfd/
* elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about
dynamic symbol sorting.
commit 59fa66c53823dc695f78669f40ec2eebab3aec42
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Apr 20 07:48:24 2017 -0700
Handle symbol defined in IR and referenced in DSO
We need to make an IR symbol visible if it is defined in an IR object
and referenced in a dynamic object. When --as-needed is used, since
linker removes the IR symbol reference of the dynamic object if the
dynamic object isn't needed in the first pass, the IR definition isn't
visible to the dynamic object even if the dynamic object becomes needed
in the second pass. Add dynamic_ref_after_ir_def to bfd_link_hash_entry
to track IR symbol which is defined in an IR object and later referenced
in a dynamic object. dynamic_ref_after_ir_def is preserved when restoring
the symbol table for unneeded dynamic object.
bfd/
PR ld/21382
* elflink.c (elf_link_add_object_symbols): Preserve
dynamic_ref_after_ir_def when restoring the symbol table for
unneeded dynamic object.
include/
PR ld/21382
* bfdlink.h (bfd_link_hash_entry): Add dynamic_ref_after_ir_def.
ld/
PR ld/21382
* plugin.c (is_visible_from_outside): Symbol may be visible
from outside if dynamic_ref_after_ir_def is set.
(plugin_notice): Set dynamic_ref_after_ir_def if the symbol is
defined in an IR object and referenced in a dynamic object.
* testsuite/ld-plugin/lto.exp: Run PR ld/21382 tests.
* testsuite/ld-plugin/pr21382a.c: New file.
* testsuite/ld-plugin/pr21382b.c: Likewise.
commit c76886885987e543f9162809ad86a0a37b394e82
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Apr 20 00:00:41 2017 +0000
Automatic date update in version.in
commit e492d2f8ac653b050019865ba1418fc5b057c00b
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 19 09:59:14 2017 -0700
x86-64: Handle undefined IFUNC symbol with -z now
Since undefined IFUNC symbol is treated as normal FUNC symbol, don't
abort on undefined IFUNC symbol in the second PLT.
bfd/
PR ld/21401
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort
on on undefined IFUNC symbol in the second PLT.
ld/
PR ld/21401
* testsuite/ld-ifunc/ifunc.exp: Add a libtest-2-now.so test with
-z now.
commit a6c21d4a553de184562fd8409a5bcd3f2cc2561a
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 19 13:16:05 2017 +0100
gdbthread.h: Fix comment typo
gdb/ChangeLog:
2017-04-19 Pedro Alves <palves@redhat.com>
* gdbthread.h (thread): Add missing closing parenthesis in
comment.
commit 3a3fd0fd2c4c87fdd588c51d879961a49e38f0c1
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 19 13:12:23 2017 +0100
Fix removing inferiors from within "thread apply" commands
This patch fixes an internal error exposed by a test that does
something like:
define kill-and-remove
kill inferiors 2
remove-inferiors 2
end
# Start one inferior.
start
# Start another inferior.
add-inferior 2
inferior 2
start
# Kill and remove inferior 1 while inferior 2 is selected.
thread apply 1.1 kill-and-remove
The internal error looks like this:
Thread 1.1 (Thread 0x7ffff7fc2700 (LWP 20677)):
[Switching to inferior 1 [process 20677] (gdb/testsuite/outputs/gdb.threads/threadapply/threadapply)]
[Switching to thread 1.1 (Thread 0x7ffff7fc2700 (LWP 20677))]
#0 main () at src/gdb/testsuite/gdb.threads/threadapply.c:38
38 for (i = 0; i < NUM; i++)
src/gdb/inferior.c:66: internal-error: void set_current_inferior(inferior*): Assertion `inf != NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) FAIL: gdb.threads/threadapply.exp: kill_and_remove_inferior: try kill-and-remove: thread apply 1.1 kill-and-remove (GDB internal error)
There are several problems around this area of the code. One is that
in do_restore_current_thread_cleanup, we do a look up of inferior by
ptid, which can find the wrong inferior if the previously selected
inferior exited and some other inferior was started with a reused pid
(rare, but still...).
The other problem is that the "remove-inferiors" command rejects
attempts to remove the current inferior, but when we get to
"remove-inferiors" in a "thread apply THR remove-inferiors 2" command,
the current inferior is the inferior of thread THR, not the previously
selected inferior, so if the previously selected inferior was inferior
2, that command still manages to wipe it, and then gdb restores the
old selected inferior, which is now a dangling pointer...
So the fix here is:
- Make make_cleanup_restore_current_thread store a pointer to the
previously selected inferior directly, and use it directly instead
of doing ptid look ups.
- Add a refcount to inferiors, very similar to thread_info's refcount,
that is incremented/decremented by
make_cleanup_restore_current_thread, and checked before deleting an
inferior. To avoid duplication, a new refcounted_object type is
added, that both thread_info and inferior inherit from.
gdb/ChangeLog:
2017-04-19 Pedro Alves <palves@redhat.com>
* common/refcounted-object.h: New file.
* gdbthread.h: Include "common/refcounted-object.h".
(thread_info): Inherit from refcounted_object and add comments.
(thread_info::incref, thread_info::decref)
(thread_info::m_refcount): Delete.
(thread_info::deletable): Use the refcounted_object::refcount()
method.
* inferior.c (current_inferior_): Add comment.
(set_current_inferior): Increment/decrement refcounts.
(prune_inferiors, remove_inferior_command): Skip inferiors marked
not-deletable instead of comparing with the current inferior.
(initialize_inferiors): Increment the initial inferior's refcount.
* inferior.h (struct inferior): Forward declare.
Include "common/refcounted-object.h".
(current_inferior, set_current_inferior): Move declaration to
before struct inferior's definition, and fix comment.
(inferior): Inherit from refcounted_object. Add comments.
* thread.c (switch_to_thread_no_regs): Reference the thread's
inferior pointer directly instead of doing a ptid lookup.
(switch_to_no_thread): New function.
(switch_to_thread(thread_info *)): New function, factored out
from ...
(switch_to_thread(ptid_t)): ... this.
(restore_current_thread): Delete.
(current_thread_cleanup): Remove 'inf_id' and 'was_removable'
fields, and add 'inf' field.
(do_restore_current_thread_cleanup): Check whether old->inf is
alive instead of looking up an inferior by ptid. Use
switch_to_thread and switch_to_no_thread.
(restore_current_thread_cleanup_dtor): Use old->inf directly
instead of lookup up an inferior by id. Decref the inferior.
Don't restore 'removable'.
(make_cleanup_restore_current_thread): Same the inferior pointer
in old, instead of the inferior number. Incref the inferior.
Don't save/clear 'removable'.
gdb/testsuite/ChangeLog:
2017-04-19 Pedro Alves <palves@redhat.com>
* gdb.threads/threadapply.exp (kill_and_remove_inferior): New
procedure.
(top level): Call it.
* lib/gdb.exp (gdb_define_cmd): New procedure.
commit 9bcb1f1630b05594fa86bfd017639cfcc966b11c
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 19 13:12:23 2017 +0100
Make inferior::detaching a bool, and introduce scoped_restore::release()
I left making inferior::detaching a bool to a separate patch, because
doing that makes a make_cleanup_restore_integer call in
infrun.c:prepare_for_detach no longer compile (passing a 'bool *' when
an 'int *' is expected). Since we want to get rid of cleanups anyway,
I looked at converting that to a scoped_restore. However,
prepare_for_detach wants to discard the cleanup on success, and
scoped_restore doesn't have an equivalent for that. So I added one --
I called it "release()" because it seems like a natural fit in the way
standard components call similarly-spirited methods, and, it's also
what the proposal for a generic scope guard calls it too, AFAICS:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4189.pdf
I've added some scoped_guard unit tests, while at it.
gdb/ChangeLog:
2017-04-19 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
unittests/scoped_restore-selftests.c.
(SUBDIR_UNITTESTS_OBS): Add scoped_restore-selftests.o.
* common/scoped_restore.h (scoped_restore_base): Make "class".
(scoped_restore_base::release): New public method.
(scoped_restore_base::scoped_restore_base): New protected ctor.
(scoped_restore_base::m_saved_var): New protected field.
(scoped_restore_tmpl::scoped_restore_tmpl(T*)): Initialize the
scoped_restore_base base class instead of m_saved_var directly.
(scoped_restore_tmpl::scoped_restore_tmpl(T*, T2)): Likewise.
(scoped_restore_tmpl::scoped_restore_tmpl(const
scoped_restore_tmpl<T>&)): Likewise.
(scoped_restore_tmpl::~scoped_restore_tmpl): Use the saved_var
method.
(scoped_restore_tmpl::saved_var): New method.
(scoped_restore_tmpl::m_saved_var): Delete.
* inferior.h (inferior::detaching): Now a bool.
* infrun.c (prepare_for_detach): Use a scoped_restore instead of a
cleanup.
* unittests/scoped_restore-selftests.c: New file.
commit 26fcd539dd38a27259d8179152d617118f016706
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 19 13:06:20 2017 +0100
gdb/Makefile.in: Re-sort SUBDIR_UNITTESTS_SRCS/SUBDIR_UNITTESTS_OBS
Note to self: 'o' before 'p'.
gdb/ChangeLog:
2017-04-19 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_UNITTESTS_SRCS, SUBDIR_UNITTESTS_OBS):
Re-sort in alphabetic order.
commit 101691343ce5f815dc70f6cfd083393e259a18d8
Author: Wedson Almeida Filho <wedsonaf@gmail.com>
Date: Wed Apr 19 18:02:53 2017 +0930
Correct PE reloc display
* peXXigen.c (pe_print_reloc): Correct chunk_end.
commit 954b63d4c8645f86e40c7ef6c6d60acd2bf019de
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 19 01:26:57 2017 +0930
Implement -z dynamic-undefined-weak
-z nodynamic-undefined-weak is only implemented for x86. (The sparc
backend has some support code but doesn't enable the option by
including ld/emulparams/dynamic_undefined_weak.sh, and since the
support looks like it may be broken I haven't enabled it.) This patch
adds the complementary -z dynamic-undefined-weak, extends both options
to affect building of shared libraries as well as executables, and
adds support for the option on powerpc.
include/
* bfdlink.h (struct bfd_link_info <dynamic_undefined_weak>):
Revise comment.
bfd/
* elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak
or make dynamic for info->dynamic_undefined_weak 0 and 1.
* elf32-ppc.c:Formatting.
(ensure_undefweak_dynamic): Don't make dynamic when
info->dynamic_undefined_weak is zero.
(allocate_dynrelocs): Discard undefweak dyn_relocs for
info->dynamic_undefined_weak. Discard undef dyn_relocs when
not default visibility. Discard undef and undefweak
dyn_relocs earlier.
(ppc_elf_relocate_section): Adjust to suit.
* elf64-ppc.c: Formatting.
(ensure_undefweak_dynamic): Don't make dynamic when
info->dynamic_undefined_weak is zero.
(allocate_dynrelocs): Discard undefweak dyn_relocs for
info->dynamic_undefined_weak. Discard them earlier.
ld/
* ld.texinfo (dynamic-undefined-weak): Document.
(nodynamic-undefined-weak): Document that this option now can
be used with shared libs.
* emulparams/dynamic_undefined_weak.sh: Support -z
dynamic-undefined-weak.
* emulparams/elf32ppccommon.sh: Include dynamic_undefined_weak.sh.
* testsuite/ld-undefined/weak-undef.exp (undef_weak_so),
(undef_weak_exe): New. Use them. Add -z dynamic-undefined-weak
and -z nodynamic-undefined-weak tests.
* Makefile.am: Update powerpc dependencies.
* Makefile.in: Regenerate.
commit 951787ed6d13f8f441d93fc3f6fb870c234774af
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 19 00:00:40 2017 +0000
Automatic date update in version.in
commit fdd243b001585c5ca078342608332af77050c867
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:25 2017 +0100
Eliminate obstack_printf
Not used anywhere.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* xml-support.c (obstack_xml_printf): Delete.
* xml-support.h (obstack_xml_printf): Delete.
commit 4895cde29761f6c39fdb6c319ff4666ee39f5d28
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:25 2017 +0100
gdb_xml_parser: make data fields private and make more functions methods
This patch makes the data fields of gdb_xml_parser private, and makes
more functions be gdb_xml_parser methods. This is mostly for better
encapsulation.
Some free functions have their parsing-related guts converted to
methods, while the free functions remain, as they're used as expat
callbacks. Now their only job is to be small shims that restore back
the gdb_xml_parser type, defer work to the corresponding method, and
make sure C++ exceptions don't cross expat.
More C++-fycation of the XML parsers built on top of gdb_xml_parser
could follow, but this was my stopping point.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* xml-support.c (gdb_xml_parser) <use_dtd, dtd_name, parse,
vdebug, verror, body_text, start_element, end_element, name,
user_data, set_is_xinclude, set_error, expat_parser>: New methods.
<name, user_data, expat_parser, scopes, error, last_line, dtd_name,
is_xinclude>: Make private and add m_ prefix.
(gdb_xml_parser::body_text): New method, based on ...
(gdb_xml_body_text): ... this. Adjust.
(gdb_xml_parser::vdebug): New method, based on ...
(gdb_xml_debug): ... this. Adjust.
(gdb_xml_parser::verror): New method, based on ...
(gdb_xml_error): ... this. Adjust.
(gdb_xml_parser::start_element): New method, based on ...
(gdb_xml_start_element): ... this. Adjust.
(gdb_xml_start_element_wrapper): Defer to
gdb_xml_parser::start_element and gdb_xml_parser::set_error.
(gdb_xml_parser::end_element): New method, based on ...
(gdb_xml_end_element_wrapper): ... this. Adjust.
(gdb_xml_parser::~gdb_xml_parser): Adjust.
(gdb_xml_parser::gdb_xml_parser): Adjust to field renames.
(gdb_xml_parser::use_dtd): New method, based on ...
(gdb_xml_use_dtd): ... this. Adjust.
(gdb_xml_parser::parse): New method, based on ...
(gdb_xml_parse): ... this. Adjust.
(gdb_xml_parse_quick): Adjust to call the parser's parse method.
(xinclude_start_include): Adjust to call the parser's name method.
(xml_xinclude_default, xml_xinclude_start_doctype)
(xml_xinclude_end_doctype): Adjust to call the parser's user_data
method.
(xml_process_xincludes): Adjust to call parser methods.
* xml-support.h (gdb_xml_use_dtd, gdb_xml_parse): Delete
declarations.
commit bd8a901f9e34191e0645a5527556d124ba5c345a
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:25 2017 +0100
xml-support.c: Use std::string for growing string buffer
This main idea behind this patch is this change to xml-support.c:scope_level
- /* Body text accumulation. This is an owning pointer. */
- struct obstack *body;
+ /* Body text accumulation. */
+ std::string body;
... which allows simplifying other parts of the code.
In target_fetch_description_xml, we want to distinguish between
returning "success + empty std::string" and "no success", and
gdb::optional is a natural fit for that.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* tracefile-tfile.c (tfile_write_tdesc): Adjust to use
gdb::optional<std::string>.
* xml-support.c: Include <string>.
(scope_level::scope_level(scope_level &&))
(scope_level::~scope_level): Delete.
(scope_level::body): Now a std::string.
(gdb_xml_body_text, gdb_xml_end_element): Adjust.
(xinclude_parsing_data::xinclude_parsing_data): Add 'output'
parameter.
(xinclude_parsing_data::~xinclude_parsing_data): Delete.
(xinclude_parsing_data::output): Now a std::string reference.
(xinclude_start_include): Adjust.
(xml_xinclude_default): Adjust.
(xml_process_xincludes): Add 'output' parameter, and return bool.
* xml-support.h (xml_process_xincludes): Add 'output' parameter,
and return bool.
* xml-tdesc.c: Include <unordered_map> and <string>.
(tdesc_xml_cache): Delete.
(tdesc_xml_cache_s): Delete.
(xml_cache): Now an std::unordered_map.
(tdesc_parse_xml): Adjust to use std::string and unordered_map.
(target_fetch_description_xml): Change return type to
gdb::optional<std::string>, and adjust.
* xml-tdesc.h: Include "common/gdb_optional.h" and <string>.
(target_fetch_description_xml): Change return type to
gdb::optional<std::string>.
commit d35d19584cf56a50b4833ff9c003597e01022f27
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:24 2017 +0100
gdb::optional unit tests
I thought I'd add some unit tests to make sure gdb::optional behaved
correctly, and started writing some, but then thought/realized that
libstdc++ already has extensive testing for C++17 std::optional, which
gdb::optional is a subset of, and thought why bother writing something
from scratch. So I tried copying over a subset of libstdc++'s tests
(that ones that cover the subset supported by gdb::optional), and was
positively surprised that they mostly work OOTB. This did help shake
out a few bugs from what I was implementing in the previous patch to
gdb::optional. Still, it's a good chunk of code being copied over, so
if people dislike this copying/duplication, I can drop this patch.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
unittests/optional-selftests.c.
(SUBDIR_UNITTESTS_OBS): Add optional-selftests.o.
* unittests/optional-selftests.c: New file.
* unittests/optional/assignment/1.cc: New file.
* unittests/optional/assignment/2.cc: New file.
* unittests/optional/assignment/3.cc: New file.
* unittests/optional/assignment/4.cc: New file.
* unittests/optional/assignment/5.cc: New file.
* unittests/optional/assignment/6.cc: New file.
* unittests/optional/assignment/7.cc: New file.
* unittests/optional/cons/copy.cc: New file.
* unittests/optional/cons/default.cc: New file.
* unittests/optional/cons/move.cc: New file.
* unittests/optional/cons/value.cc: New file.
* unittests/optional/in_place.cc: New file.
* unittests/optional/observers/1.cc: New file.
* unittests/optional/observers/2.cc: New file.
commit 22796e972f18c5601cecb0251222411a352836b6
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:24 2017 +0100
More gdb::optional features
Currently we can't use gdb::optional<T> as function return type,
because gdb::optional's copy ctor is deleted. For example, with:
gdb::optional<int> function ()
{
gdb::optional<int> opt;
....
return opt;
we get:
src/gdb/foo.c: In function âgdb::optional<int> foo()â:
src/gdb/foo.c:75:10: error: use of deleted function âgdb::optional<T>::optional(const gdb::optional<T>&) [with T = int]â
return opt;
^
In file included from src/gdb/foo.c:68:0:
src/gdb/common/gdb_optional.h:53:3: note: declared here
optional (const optional &other) = delete;
^
I started by fixing that, and then ran into another missing feature,
also fixed by this patch.
The next feature I'm missing most from gdb::optional<T> compared to
std::optional<T> is construction/move/assignment from a T, instead of
having to default construct an gdb::optional and then use
optional::emplace(....).
For example:
gdb::optional<std::string> function ()
{
gdb::optional<std::string> opt;
std::string str;
...
opt.emplace (std::move (str));
return opt;
vs
gdb::optional<std::string> function ()
{
std::string str;
...
return str;
The copy/move ctor/assign methods weren't initialy implemented because
std::optional supports construction from a type U if U is convertible
to T too, and has rules to decide whether the ctors are
explicit/implicit based on that, and rules for whether the ctor should
be trivial or not, etc., which leads to a much more complicated
implementation.
If we stick to supporting copy/move construction/assignment of/to an
optional<T> from exactly only optional<T> and T, then all that
conversion-related complication disappears, and we still gain
convenience in most use cases.
The patch also makes emplace return a reference to the constructor
object, per C++17 std::optional, and adds a reset method, againt
because std::optional has one and it's trivial to support it. These
two changes are a requirement of the gdb::optional unit testing patch
that will follow.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* common/gdb_optional.h: Include common/traits.h.
(in_place_t): New type.
(in_place): New constexpr variable.
(optional::optional): Remove member initialization of
m_instantiated.
(optional::optional(in_place_t...)): New constructor.
(optional::~optional): Use reset.
(optional::optional(const optional&)): New.
(optional::optional(const optional&&)): New.
(optional::optional(T &)): New.
(optional::optional(T &&)): New.
(operator::operator=(const optional &)): New.
(operator::operator=(optional &&)): New.
(operator::operator= (const T &))
(operator::operator= (T &&))
(operator::emplace (Args &&... args)): Return a T&. Use reset.
(operator::reset): New.
(operator::m_instantiated):: Add in-class initializer.
* common/traits.h: Include <type_traits>.
(struct And): New types.
commit a7fc9b6193f830293066479aa439cea924418393
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:24 2017 +0100
xml-support.c: Use std::vector
scope_level::scope_level needed both a move ctor and a dtor explicitly
coded, but those will be eliminated in a following patch.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* xml-support.c: Include <vector>.
(scope_level::scope_level(const gdb_xml_element *))
(scope_level::scope_level(scope_level&&)): New.
(scope_level::~scope_level): New.
(scope_level_s): Delete.
(gdb_xml_parser::scopes): Now a std::vector.
(gdb_xml_body_text, gdb_xml_start_element, gdb_xml_end_element):
Use std::vector.
(gdb_xml_parser::~gdb_xml_parser): Remove now unnecessary
scope cleanup code.
(gdb_xml_parser::gdb_xml_parser): Remove explicit initialization
of the scopes member. Use std::vector::emplace_back.
commit 010151c9146eb2a299686e41c714e57c344be8e8
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 18 21:39:24 2017 +0100
C++-ify gdb/xml-support.c a bit to eliminate cleanups
Basically convert cleanups to destructors in gdb_xml_parser and
xinclude_parsing_data, and then allocate objects of those types on the
stack.
More C++-ification is possible / will follow, but this removes a few
make_cleanup calls already.
gdb/ChangeLog:
2017-04-18 Pedro Alves <palves@redhat.com>
* xml-support.c (gdb_xml_parser): Add ctor/dtor. Make is_xinclude
a bool.
(gdb_xml_end_element): Change type of first parameter.
(gdb_xml_cleanup): Rename to ...
(gdb_xml_parser::~gdb_xml_parser): ... this.
(gdb_xml_create_parser_and_cleanup): Delete with ...
(gdb_xml_parser::gdb_xml_parser): ... creation parts factored out
to this new ctor.
(gdb_xml_parse_quick): Create a local gdb_xml_parser instead of
using gdb_xml_create_parser_and_cleanup.
(xinclude_parsing_data): Add ctor/dtor.
(xml_xinclude_cleanup): Delete.
(xml_process_xincludes): Create a local xinclude_parsing_data
instead of heap-allocating one. Create a local gdb_xml_parser
instead of heap-allocating one with
gdb_xml_create_parser_and_cleanup.
commit d56060f08aa4ed5786042a066f62aa8e474cc0fd
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 18 09:44:32 2017 -0700
PR threads/20743: Don't attempt to suspend or resume exited threads.
When resuming a native FreeBSD process, ignore exited threads when
suspending/resuming individual threads prior to continuing the process.
gdb/ChangeLog:
PR threads/20743
* fbsd-nat.c (resume_one_thread_cb): Remove.
(resume_all_threads_cb): Remove.
(fbsd_resume): Use ALL_NON_EXITED_THREADS instead of
iterate_over_threads.
commit 6631d36456babbaf4c78b955165c3344f95ac5dd
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 18 00:00:36 2017 +0000
Automatic date update in version.in
commit e6699019c4f363f804f9646974ab1d5e78785ffc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 17 07:47:17 2017 -0700
Put soname in the version definition section
commit 902e9fc76a0ec9f642cefa71ef88cca1c675ad54
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue Feb 21 01:46:42 2017 +0000
PR ld/20828: Move symbol version processing ahead of GC symbol sweep
breaks version definition with --version-script --soname. This patch
fixes it by getting soname index before generating the version definition
section.
bfd/
PR ld/21389
* elflink.c (bfd_elf_size_dynamic_sections): Get soname index
before generating the version definition section.
ld/
PR ld/21389
* testsuite/ld-elf/pr21389.map: New file.
* testsuite/ld-elf/pr21389.s: Likewise.
* testsuite/ld-elf/pr21389a.d: Likewise.
* testsuite/ld-elf/pr21389b.d: Likewise.
* testsuite/ld-elf/pr21389c.d: Likewise.
commit 305d16a9beff2a817ee03b3881da68eb3a29edec
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Apr 17 07:30:29 2017 -0700
Update NEWS post GDB 8.0 branch creation.
gdb/ChangeLog:
* NEWS: Create a new section for the next release branch.
Rename the section of the current branch, now that it has
been cut.
commit 8bb5723165d4e7308fb69b21a95f396f9e61caaf
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Apr 17 07:20:49 2017 -0700
Bump version to 8.0.50.DATE-git
Now that the GDB 8.0 branch has been created, we should bump
the GDB version accordingly.
gdb/ChangeLog:
GDB 8.0 branch created (725bf5cf125783c2a7ca4ab63d3768e220bab2db):
* version.in: Bump version to 7.99.90.DATE-git.
commit c5d37467b152fe98f02ac1ff8188e32ecd0def95
Author: Alan Modra <amodra@gmail.com>
Date: Mon Apr 17 18:33:52 2017 +0930
Undo dynamic symbol state after regular object sym type mismatch
We already handle the case of an object file first defining a symbol
that a later shared library also defines where the symbol types are
incompatible. This patch handles the reverse, when a later object
file defines an incompatible symbol defined by an earlier shared
library.
bfd/
* elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking
state when a regular object file defines a symbol with
incompatible type to that defined by an earlier shared lib.
ld/
* testsuite/ld-elf/indirect5a.c,
* testsuite/ld-elf/indirect5b.c,
* testsuite/ld-elf/indirect5.map,
* testsuite/ld-elf/indirect5.out: New test.
* testsuite/ld-elf/indirect6a.c: Likewise.
* testsuite/ld-elf/indirect.exp (check_dynamic_syms): New proc.
Run new tests and check dynsyms.
commit c661778cb6b406d5b55fbf22ff88fbc85ee3f4c2
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 17 00:00:33 2017 +0000
Automatic date update in version.in
commit 94522e5f36e542a7f7eccc4e2fa31682e58f812c
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 16 00:00:35 2017 +0000
Automatic date update in version.in
commit 725bf5cf125783c2a7ca4ab63d3768e220bab2db
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 15 00:00:36 2017 +0000
Automatic date update in version.in
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 4 +
bfd/ChangeLog | 284 ++++
bfd/aout-cris.c | 4 +-
bfd/aoutx.h | 17 +-
bfd/archive.c | 4 +-
bfd/bfd-in2.h | 3 +-
bfd/bfd.c | 360 +++---
bfd/binary.c | 5 +-
bfd/coff-arm.c | 11 +-
bfd/coff-mcore.c | 2 +-
bfd/coff-ppc.c | 2 +-
bfd/coff-rs6000.c | 9 +-
bfd/coff-tic4x.c | 4 +-
bfd/coff-tic80.c | 2 +-
bfd/coffcode.h | 23 +-
bfd/coffgen.c | 21 +-
bfd/cofflink.c | 19 +-
bfd/coffswap.h | 10 +-
bfd/config.bfd | 1 -
bfd/cpu-arm.c | 4 +-
bfd/elf-eh-frame.c | 16 +-
bfd/elf-m10300.c | 4 +-
bfd/elf-properties.c | 20 +-
bfd/elf-s390-common.c | 2 +-
bfd/elf.c | 64 +-
bfd/elf32-arc.c | 8 +-
bfd/elf32-arm.c | 78 +-
bfd/elf32-avr.c | 3 +-
bfd/elf32-bfin.c | 13 +-
bfd/elf32-frv.c | 23 +-
bfd/elf32-i386.c | 84 +-
bfd/elf32-iq2000.c | 8 +-
bfd/elf32-m32c.c | 9 +-
bfd/elf32-m32r.c | 4 +-
bfd/elf32-mep.c | 6 +-
bfd/elf32-microblaze.c | 20 +-
bfd/elf32-msp430.c | 19 +-
bfd/elf32-nds32.c | 8 +-
bfd/elf32-ppc.c | 46 +-
bfd/elf32-rl78.c | 20 +-
bfd/elf32-rx.c | 5 +-
bfd/elf32-s390.c | 2 +-
bfd/elf32-score.c | 5 +-
bfd/elf32-score7.c | 5 +-
bfd/elf32-sh64.c | 27 +-
bfd/elf32-sparc.c | 1 +
bfd/elf32-spu.c | 2 +-
bfd/elf32-v850.c | 28 +-
bfd/elf32-vax.c | 27 +-
bfd/elf32-visium.c | 5 +-
bfd/elf64-ia64-vms.c | 45 +-
bfd/elf64-mmix.c | 41 +-
bfd/elf64-ppc.c | 24 +-
bfd/elf64-s390.c | 2 +-
bfd/elf64-sh64.c | 20 +-
bfd/elf64-sparc.c | 20 +-
bfd/elf64-x86-64.c | 34 +-
bfd/elfcode.h | 13 +-
bfd/elflink.c | 176 ++-
bfd/elfnn-aarch64.c | 4 +-
bfd/elfnn-ia64.c | 30 +-
bfd/elfxx-mips.c | 52 +-
bfd/elfxx-sparc.c | 214 +++-
bfd/elfxx-sparc.h | 5 +
bfd/hpux-core.c | 6 +-
bfd/ieee.c | 8 +-
bfd/ihex.c | 4 +-
bfd/linker.c | 3 +-
bfd/merge.c | 4 +-
bfd/mmo.c | 116 +-
bfd/oasys.c | 3 +-
bfd/opncls.c | 231 ++--
bfd/pdp11.c | 9 +-
bfd/peXXigen.c | 15 +-
bfd/po/SRC-POTFILES.in | 1 +
bfd/rs6000-core.c | 3 +-
bfd/version.h | 2 +-
bfd/vms-alpha.c | 9 +-
bfd/xcofflink.c | 8 +-
binutils/ChangeLog | 51 +
binutils/doc/binutils.texi | 16 +-
binutils/dwarf.c | 2 +-
binutils/objcopy.c | 205 +++-
binutils/readelf.c | 63 +-
config.sub | 6 +-
gas/ChangeLog | 61 +
gas/config/tc-ppc.c | 1 -
gas/config/tc-xtensa.c | 66 +-
gas/testsuite/gas/aarch64/illegal-3.d | 14 +
gas/testsuite/gas/aarch64/illegal-3.s | 9 +
gas/testsuite/gas/elf/section12a.d | 4 +-
gas/testsuite/gas/ppc/altivec2.d | 182 +--
gas/testsuite/gas/ppc/altivec2.s | 48 -
gas/testsuite/gas/ppc/htm.d | 4 +-
gas/testsuite/gas/ppc/vle.d | 4 +
gas/testsuite/gas/ppc/vle.s | 258 ++--
gas/testsuite/gas/wasm32/allinsn.d | 64 +-
gas/testsuite/gas/wasm32/disass-2.d | 9 +
gas/testsuite/gas/wasm32/disass-2.s | 3 +
gas/testsuite/gas/wasm32/disass.d | 9 +
gas/testsuite/gas/wasm32/disass.s | 3 +
gas/testsuite/gas/wasm32/reloc.d | 7 +-
gas/testsuite/gas/wasm32/reloc.s | 2 +-
gas/testsuite/gas/wasm32/wasm32.exp | 4 +-
gas/testsuite/gas/xtensa/all.exp | 2 +
gas/testsuite/gas/xtensa/auto-litpools-first1.d | 12 +
gas/testsuite/gas/xtensa/auto-litpools-first1.s | 3 +
gas/testsuite/gas/xtensa/auto-litpools-first2.d | 15 +
gas/testsuite/gas/xtensa/auto-litpools-first2.s | 3 +
gas/testsuite/gas/xtensa/auto-litpools.d | 6 +-
gdb/ChangeLog | 1354 ++++++++++++++++++++
gdb/Makefile.in | 12 +-
gdb/NEWS | 4 +-
gdb/aarch64-tdep.c | 4 +
gdb/ada-exp.y | 4 +-
gdb/ada-lang.c | 60 +-
gdb/ada-lang.h | 8 +-
gdb/aix-thread.c | 6 +-
gdb/alpha-tdep.c | 2 +
gdb/arc-tdep.c | 2 +-
gdb/arm-tdep.c | 15 +-
gdb/avr-tdep.c | 3 +
gdb/ax-gdb.c | 32 +-
gdb/bcache.c | 2 +-
gdb/bcache.h | 2 +-
gdb/bfin-tdep.c | 6 +-
gdb/break-catch-throw.c | 37 +-
gdb/breakpoint.c | 422 +++----
gdb/breakpoint.h | 217 ++--
gdb/bsd-kvm.c | 2 +-
gdb/bsd-uthread.c | 6 +-
gdb/buildsym.c | 2 +-
gdb/buildsym.h | 4 +-
gdb/c-exp.y | 10 +-
gdb/c-lang.c | 9 +
gdb/c-lang.h | 4 +-
gdb/c-varobj.c | 2 +-
gdb/charset.c | 54 +-
gdb/charset.h | 6 +-
gdb/cli/cli-cmds.c | 83 +-
gdb/cli/cli-decode.c | 13 +-
gdb/cli/cli-dump.c | 15 +-
gdb/cli/cli-script.c | 87 +-
gdb/cli/cli-script.h | 9 +-
gdb/cli/cli-utils.c | 6 +-
gdb/cli/cli-utils.h | 22 +-
gdb/coff-pe-read.c | 2 +-
gdb/command.h | 3 +-
gdb/common/common-utils.c | 11 +
gdb/common/common-utils.h | 5 +
gdb/common/common.m4 | 3 +-
gdb/common/gdb_optional.h | 132 ++-
gdb/{terminal.h => common/gdb_termios.h} | 42 +-
gdb/common/print-utils.c | 2 +-
gdb/common/ptid.c | 69 +-
gdb/common/ptid.h | 173 ++-
gdb/common/refcounted-object.h | 56 +
gdb/common/scoped_restore.h | 36 +-
gdb/common/traits.h | 26 +
gdb/compile/compile-c-support.c | 6 +-
gdb/compile/compile-loc2c.c | 20 +-
gdb/compile/compile.c | 12 +-
gdb/completer.c | 76 +-
gdb/completer.h | 8 +-
gdb/configure | 2 +-
gdb/configure.tgt | 4 +
gdb/corefile.c | 2 +-
gdb/corelow.c | 2 +-
gdb/cp-name-parser.y | 4 +-
gdb/cp-valprint.c | 2 +-
gdb/cris-tdep.c | 6 +-
gdb/d-exp.y | 10 +-
gdb/d-lang.h | 2 +-
gdb/darwin-nat.c | 16 +-
gdb/dbxread.c | 80 +-
gdb/defs.h | 35 +-
gdb/disasm.c | 2 +-
gdb/doc/ChangeLog | 14 +
gdb/doc/gdb.texinfo | 77 +-
gdb/dwarf2read.c | 29 +-
gdb/elfread.c | 2 +-
gdb/event-top.c | 4 +-
gdb/exceptions.c | 4 +-
gdb/exceptions.h | 3 +-
gdb/expprint.c | 14 +-
gdb/expression.h | 6 +-
gdb/f-exp.y | 8 +-
gdb/f-lang.c | 2 +-
gdb/f-lang.h | 2 +-
gdb/fbsd-nat.c | 62 +-
gdb/fbsd-tdep.c | 2 +-
gdb/fork-child.c | 383 ++++---
gdb/frv-tdep.c | 6 +-
gdb/gdb-dlfcn.c | 45 +-
gdb/gdb-dlfcn.h | 24 +-
gdb/gdbarch.c | 54 +-
gdb/gdbarch.h | 15 +-
gdb/gdbarch.sh | 12 +-
gdb/gdbcore.h | 2 +-
gdb/gdbserver/ChangeLog | 41 +
gdb/gdbserver/configure | 2 +-
gdb/gdbserver/gdbreplay.c | 2 +-
gdb/gdbserver/linux-x86-low.c | 2 +-
gdb/gdbserver/remote-utils.c | 10 +-
gdb/gdbserver/remote-utils.h | 4 +-
gdb/gdbserver/server.c | 123 +-
gdb/gdbserver/terminal.h | 51 -
gdb/gdbserver/win32-low.c | 5 -
gdb/gdbthread.h | 32 +-
gdb/gdbtypes.c | 8 +-
gdb/gdbtypes.h | 1 +
gdb/gnu-nat.c | 5 +-
gdb/gnu-v3-abi.c | 54 +-
gdb/go-exp.y | 10 +-
gdb/go-lang.h | 2 +-
gdb/go32-nat.c | 10 +-
gdb/guile/guile.c | 35 +-
gdb/guile/scm-breakpoint.c | 16 +-
gdb/guile/scm-cmd.c | 4 +-
gdb/guile/scm-param.c | 2 +-
gdb/guile/scm-ports.c | 3 +-
gdb/h8300-tdep.c | 10 +-
gdb/hppa-tdep.c | 4 +-
gdb/i386-cygwin-tdep.c | 2 +-
gdb/i386-go32-tdep.c | 72 +
gdb/i386-nto-tdep.c | 3 +
gdb/i386-tdep.c | 49 +-
gdb/i386-tdep.h | 5 +
gdb/ia64-tdep.c | 2 +-
gdb/inf-ptrace.c | 6 +-
gdb/infcmd.c | 19 +-
gdb/inferior.c | 61 +-
gdb/inferior.h | 105 +-
gdb/inflow.c | 1 +
gdb/inflow.h | 2 +-
gdb/infrun.c | 17 +-
gdb/jit.c | 42 +-
gdb/language.c | 10 +-
gdb/language.h | 8 +-
gdb/linespec.c | 69 +-
gdb/linespec.h | 45 +-
gdb/linux-nat.c | 7 +-
gdb/linux-tdep.c | 2 +-
gdb/linux-thread-db.c | 6 +-
gdb/lm32-tdep.c | 2 +-
gdb/location.c | 121 +--
gdb/location.h | 55 +-
gdb/m2-exp.y | 4 +-
gdb/m2-lang.h | 2 +-
gdb/m32r-tdep.c | 10 +-
gdb/m68hc11-tdep.c | 2 +-
gdb/m88k-tdep.c | 2 +-
gdb/macroexp.c | 28 +-
gdb/main.c | 6 +-
gdb/mdebugread.c | 46 +-
gdb/memattr.c | 2 +-
gdb/mep-tdep.c | 2 +-
gdb/mi/mi-cmd-break.c | 27 +-
gdb/mi/mi-cmd-catch.c | 8 +-
gdb/mi/mi-cmd-disas.c | 2 +-
gdb/mi/mi-cmd-env.c | 16 +-
gdb/mi/mi-cmd-file.c | 6 +-
gdb/mi/mi-cmd-info.c | 10 +-
gdb/mi/mi-cmd-stack.c | 18 +-
gdb/mi/mi-cmd-target.c | 6 +-
gdb/mi/mi-cmd-var.c | 36 +-
gdb/mi/mi-cmds.h | 2 +-
gdb/mi/mi-interp.c | 2 +-
gdb/mi/mi-main.c | 119 +-
gdb/mi/mi-parse.c | 55 +-
gdb/mi/mi-parse.h | 13 +-
gdb/mi/mi-symbol-cmds.c | 2 +-
gdb/mips-tdep.c | 6 +-
gdb/mn10300-tdep.c | 10 +-
gdb/moxie-tdep.c | 5 +-
gdb/msp430-tdep.c | 6 +-
gdb/nat/linux-osdata.c | 6 +-
gdb/nds32-tdep.c | 3 +
gdb/nto-procfs.c | 9 +-
gdb/nto-tdep.c | 4 +-
gdb/nto-tdep.h | 2 +-
gdb/objc-lang.c | 8 +-
gdb/objc-lang.h | 7 +-
gdb/objfiles.c | 2 +-
gdb/objfiles.h | 2 +-
gdb/obsd-nat.c | 2 +-
gdb/osdata.c | 15 +-
gdb/osdata.h | 6 +-
gdb/p-exp.y | 6 +-
gdb/p-lang.h | 2 +-
gdb/parser-defs.h | 6 +-
gdb/printcmd.c | 18 +-
gdb/proc-api.c | 12 +-
gdb/proc-events.c | 6 +-
gdb/proc-flags.c | 4 +-
gdb/proc-utils.h | 2 +-
gdb/proc-why.c | 4 +-
gdb/procfs.c | 28 +-
gdb/psymtab.c | 5 +-
gdb/python/py-arch.c | 7 +-
gdb/python/py-block.c | 2 +-
gdb/python/py-breakpoint.c | 28 +-
gdb/python/py-cmd.c | 20 +-
gdb/python/py-event.c | 6 +-
gdb/python/py-event.h | 4 +-
gdb/python/py-evts.c | 2 +-
gdb/python/py-finishbreakpoint.c | 20 +-
gdb/python/py-framefilter.c | 2 +-
gdb/python/py-inferior.c | 40 +-
gdb/python/py-infthread.c | 2 +-
gdb/python/py-lazy-string.c | 2 +-
gdb/python/py-linetable.c | 26 +-
gdb/python/py-objfile.c | 12 +-
gdb/python/py-param.c | 2 +-
gdb/python/py-progspace.c | 2 +-
gdb/python/py-record-btrace.c | 4 +-
gdb/python/py-record.c | 2 +-
gdb/python/py-symbol.c | 15 +-
gdb/python/py-symtab.c | 4 +-
gdb/python/py-type.c | 10 +-
gdb/python/py-unwind.c | 2 +-
gdb/python/py-value.c | 14 +-
gdb/python/python-internal.h | 121 ++
gdb/python/python.c | 45 +-
gdb/ravenscar-thread.c | 8 +-
gdb/record-btrace.c | 8 +-
gdb/record-full.c | 2 +-
gdb/record.c | 14 +-
gdb/regcache.c | 15 +-
gdb/remote-fileio.c | 2 +-
gdb/remote-sim.c | 9 +-
gdb/remote.c | 26 +-
gdb/reverse.c | 2 +-
gdb/rl78-tdep.c | 2 +-
gdb/rs6000-aix-tdep.c | 5 +
gdb/rs6000-nat.c | 10 +-
gdb/rs6000-tdep.c | 4 +-
gdb/rust-exp.y | 2 +-
gdb/rust-lang.c | 2 +-
gdb/rust-lang.h | 2 +-
gdb/rx-tdep.c | 4 +-
gdb/ser-unix.c | 1 +
gdb/serial.h | 2 +-
gdb/sh-tdep.c | 26 +-
gdb/sh64-tdep.c | 2 +-
gdb/sol-thread.c | 8 +-
gdb/sol2-tdep.c | 2 +-
gdb/sol2-tdep.h | 2 +-
gdb/solib-darwin.c | 2 +-
gdb/sparc-tdep.c | 3 +
gdb/sparc64-tdep.c | 3 +
gdb/spu-tdep.c | 12 +-
gdb/stabsread.c | 129 +-
gdb/stabsread.h | 10 +-
gdb/symfile.c | 50 +-
gdb/symfile.h | 4 +-
gdb/symtab.c | 11 +-
gdb/symtab.h | 6 +-
gdb/target-delegates.c | 18 +-
gdb/target-descriptions.c | 8 +-
gdb/target.c | 18 +-
gdb/target.h | 14 +-
gdb/terminal.h | 57 -
gdb/testsuite/ChangeLog | 32 +
.../gdb.cp/wide_char_types.c} | 27 +-
gdb/testsuite/gdb.cp/wide_char_types.exp | 181 +++
gdb/testsuite/gdb.threads/threadapply.exp | 166 +++-
gdb/testsuite/gdb.trace/tsv.exp | 4 +
gdb/testsuite/lib/gdb.exp | 19 +
gdb/thread.c | 453 +++----
gdb/top.c | 7 +-
gdb/top.h | 2 +-
gdb/tracefile-tfile.c | 18 +-
gdb/tracefile.c | 2 +-
gdb/tracepoint.c | 50 +-
gdb/tracepoint.h | 2 +-
gdb/tui/tui-data.c | 2 +-
gdb/tui/tui-data.h | 2 +-
gdb/tui/tui-source.c | 2 +-
gdb/tui/tui-source.h | 2 +-
gdb/tui/tui-win.c | 11 +-
gdb/tui/tui-windata.c | 2 +-
gdb/tui/tui-windata.h | 2 +-
gdb/tui/tui-winsource.c | 2 +-
gdb/tui/tui.c | 2 +-
gdb/unittests/optional-selftests.c | 94 ++
gdb/unittests/optional/assignment/1.cc | 195 +++
gdb/unittests/optional/assignment/2.cc | 193 +++
gdb/unittests/optional/assignment/3.cc | 156 +++
gdb/unittests/optional/assignment/4.cc | 156 +++
gdb/unittests/optional/assignment/5.cc | 80 ++
gdb/unittests/optional/assignment/6.cc | 90 ++
gdb/unittests/optional/assignment/7.cc | 29 +
gdb/unittests/optional/cons/copy.cc | 126 ++
gdb/unittests/optional/cons/default.cc | 58 +
gdb/unittests/optional/cons/move.cc | 124 ++
gdb/unittests/optional/cons/value.cc | 294 +++++
gdb/unittests/optional/in_place.cc | 65 +
gdb/unittests/optional/observers/1.cc | 31 +
gdb/unittests/optional/observers/2.cc | 35 +
gdb/unittests/ptid-selftests.c | 153 +++
gdb/unittests/scoped_restore-selftests.c | 110 ++
gdb/utils.c | 13 +-
gdb/utils.h | 4 +-
gdb/varobj.c | 2 +-
gdb/varobj.h | 2 +-
gdb/vax-tdep.c | 2 +-
gdb/version.in | 2 +-
gdb/warning.m4 | 2 +-
gdb/windows-nat.c | 14 +-
gdb/windows-tdep.c | 3 +
gdb/xcoffread.c | 8 +-
gdb/xml-support.c | 573 ++++-----
gdb/xml-support.h | 36 +-
gdb/xml-tdesc.c | 84 +-
gdb/xml-tdesc.h | 17 +-
gdb/xstormy16-tdep.c | 5 +-
gdb/xtensa-tdep.c | 5 +-
gdb/xtensa-tdep.h | 2 +-
include/ChangeLog | 28 +
include/bfdlink.h | 9 +-
include/dis-asm.h | 11 +-
include/opcode/ppc.h | 100 +-
ld/ChangeLog | 166 +++
ld/Makefile.am | 21 +-
ld/Makefile.in | 21 +-
ld/emulparams/dynamic_undefined_weak.sh | 13 +-
ld/emulparams/elf32ppccommon.sh | 2 +
ld/emultempl/pe.em | 64 +-
ld/emultempl/pep.em | 116 +-
ld/ld.texinfo | 40 +-
ld/pe-dll.c | 58 +-
ld/pe-dll.h | 4 +-
ld/pep-dll.h | 5 +-
ld/plugin.c | 23 +-
ld/testsuite/ld-elf/indirect.exp | 76 ++
ld/testsuite/ld-elf/indirect5.map | 6 +
ld/testsuite/ld-elf/indirect5.out | 2 +
ld/testsuite/ld-elf/indirect5a.c | 9 +
ld/testsuite/ld-elf/indirect5b.c | 15 +
ld/testsuite/ld-elf/indirect6a.c | 9 +
ld/testsuite/ld-elf/init-fini-arrays.d | 4 +-
ld/testsuite/ld-elf/init-fini-arrays.s | 13 +-
ld/testsuite/ld-elf/mbind1a.d | 8 -
ld/testsuite/ld-elf/mbind1b.d | 8 -
ld/testsuite/ld-elf/mbind1c.d | 8 -
ld/testsuite/ld-elf/mbind2a.s | 8 +-
ld/testsuite/ld-elf/pr19579a.c | 2 +-
ld/testsuite/ld-elf/pr19617a.d | 2 +-
ld/testsuite/ld-elf/pr19617b.d | 2 +-
ld/testsuite/ld-elf/pr19617c.d | 2 +-
ld/testsuite/ld-elf/pr21086.c | 8 +
ld/testsuite/ld-elf/pr21086.list | 3 +
ld/testsuite/ld-elf/pr21389.map | 6 +
ld/testsuite/ld-elf/pr21389.s | 5 +
ld/testsuite/ld-elf/pr21389a.d | 10 +
ld/testsuite/ld-elf/pr21389b.d | 8 +
ld/testsuite/ld-elf/pr21389c.d | 8 +
ld/testsuite/ld-elf/readelf.exp | 2 +-
ld/testsuite/ld-elf/shared.exp | 21 +-
ld/testsuite/ld-elfvsb/elfvsb.exp | 10 +-
ld/testsuite/ld-i386/pr19636-4d.d | 2 +-
ld/testsuite/ld-ifunc/ifunc.exp | 8 +
ld/testsuite/ld-mips-elf/mips-elf.exp | 3 +-
ld/testsuite/ld-pe/pe.exp | 2 +
ld/testsuite/ld-pe/weakdef-1.d | 8 +
ld/testsuite/ld-pe/weakdef-1.s | 19 +
ld/testsuite/ld-plugin/lto.exp | 9 +
ld/testsuite/ld-plugin/pr21382a.c | 17 +
ld/testsuite/ld-plugin/pr21382b.c | 7 +
ld/testsuite/ld-undefined/weak-undef.exp | 103 ++-
ld/testsuite/ld-x86-64/x86-64.exp | 4 +-
ld/testsuite/lib/ld-lib.exp | 11 +-
opcodes/ChangeLog | 84 ++
opcodes/Makefile.am | 1 +
opcodes/Makefile.in | 2 +
opcodes/aarch64-tbl.h | 16 +-
opcodes/arc-dis.c | 4 +-
opcodes/arm-dis.c | 4 +-
opcodes/configure | 2 +-
opcodes/configure.ac | 2 +-
opcodes/disassemble.c | 14 +
opcodes/epiphany-desc.c | 5 +-
opcodes/fr30-desc.c | 5 +-
opcodes/frv-desc.c | 1 +
opcodes/ip2k-desc.c | 5 +-
opcodes/iq2000-desc.c | 5 +-
opcodes/lm32-desc.c | 5 +-
opcodes/m32c-desc.c | 5 +-
opcodes/m32r-desc.c | 5 +-
opcodes/mep-desc.c | 5 +-
opcodes/mt-desc.c | 5 +-
opcodes/or1k-desc.c | 5 +-
opcodes/po/POTFILES.in | 1 +
opcodes/po/opcodes.pot | 18 +-
opcodes/ppc-dis.c | 27 +-
opcodes/ppc-opc.c | 164 ++--
opcodes/sparc-opc.c | 14 +-
opcodes/vax-dis.c | 2 +-
opcodes/wasm32-dis.c | 520 ++++++++
opcodes/xc16x-desc.c | 5 +-
opcodes/xstormy16-desc.c | 5 +-
sim/aarch64/ChangeLog | 9 +
sim/aarch64/simulator.c | 193 +++
sim/testsuite/sim/aarch64/ChangeLog | 6 +
sim/testsuite/sim/aarch64/fcmXX.s | 77 ++
sim/testsuite/sim/aarch64/fcvtl.s | 59 +
507 files changed, 11533 insertions(+), 5021 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/illegal-3.d
create mode 100644 gas/testsuite/gas/aarch64/illegal-3.s
create mode 100644 gas/testsuite/gas/wasm32/disass-2.d
create mode 100644 gas/testsuite/gas/wasm32/disass-2.s
create mode 100644 gas/testsuite/gas/wasm32/disass.d
create mode 100644 gas/testsuite/gas/wasm32/disass.s
create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first1.d
create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first1.s
create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first2.d
create mode 100644 gas/testsuite/gas/xtensa/auto-litpools-first2.s
copy gdb/{terminal.h => common/gdb_termios.h} (68%)
create mode 100644 gdb/common/refcounted-object.h
delete mode 100644 gdb/gdbserver/terminal.h
create mode 100644 gdb/i386-go32-tdep.c
copy gdb/{sol2-tdep.h => testsuite/gdb.cp/wide_char_types.c} (64%)
create mode 100644 gdb/testsuite/gdb.cp/wide_char_types.exp
create mode 100644 gdb/unittests/optional-selftests.c
create mode 100644 gdb/unittests/optional/assignment/1.cc
create mode 100644 gdb/unittests/optional/assignment/2.cc
create mode 100644 gdb/unittests/optional/assignment/3.cc
create mode 100644 gdb/unittests/optional/assignment/4.cc
create mode 100644 gdb/unittests/optional/assignment/5.cc
create mode 100644 gdb/unittests/optional/assignment/6.cc
create mode 100644 gdb/unittests/optional/assignment/7.cc
create mode 100644 gdb/unittests/optional/cons/copy.cc
create mode 100644 gdb/unittests/optional/cons/default.cc
create mode 100644 gdb/unittests/optional/cons/move.cc
create mode 100644 gdb/unittests/optional/cons/value.cc
create mode 100644 gdb/unittests/optional/in_place.cc
create mode 100644 gdb/unittests/optional/observers/1.cc
create mode 100644 gdb/unittests/optional/observers/2.cc
create mode 100644 gdb/unittests/ptid-selftests.c
create mode 100644 gdb/unittests/scoped_restore-selftests.c
create mode 100644 ld/testsuite/ld-elf/indirect5.map
create mode 100644 ld/testsuite/ld-elf/indirect5.out
create mode 100644 ld/testsuite/ld-elf/indirect5a.c
create mode 100644 ld/testsuite/ld-elf/indirect5b.c
create mode 100644 ld/testsuite/ld-elf/indirect6a.c
create mode 100644 ld/testsuite/ld-elf/pr21086.c
create mode 100644 ld/testsuite/ld-elf/pr21086.list
create mode 100644 ld/testsuite/ld-elf/pr21389.map
create mode 100644 ld/testsuite/ld-elf/pr21389.s
create mode 100644 ld/testsuite/ld-elf/pr21389a.d
create mode 100644 ld/testsuite/ld-elf/pr21389b.d
create mode 100644 ld/testsuite/ld-elf/pr21389c.d
create mode 100644 ld/testsuite/ld-pe/weakdef-1.d
create mode 100644 ld/testsuite/ld-pe/weakdef-1.s
create mode 100644 ld/testsuite/ld-plugin/pr21382a.c
create mode 100644 ld/testsuite/ld-plugin/pr21382b.c
create mode 100644 opcodes/wasm32-dis.c
create mode 100644 sim/testsuite/sim/aarch64/fcmXX.s
create mode 100644 sim/testsuite/sim/aarch64/fcvtl.s
First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index bb87497..4ac2d63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-04-13 Andrew Jenner <andrew@codesourcery.com>
+
+ * config.sub: Sync with master version in config project.
+
2017-04-03 Andrew Jenner <andrew@codesourcery.com>
* config.sub: Handle ia16 in $basic_machine.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0e4ad30..ba2d134 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,287 @@
+2017-04-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21402
+ * elf32-i386.c (elf_i386_link_hash_entry): Add
+ no_finish_dynamic_symbol.
+ (elf_i386_link_hash_newfunc): Set no_finish_dynamic_symbol to 0.
+ (elf_i386_allocate_dynrelocs): If a symbol isn't undefined weak
+ symbol, don't make it dynamic in PIE.
+ (elf_i386_relocate_section): If a symbol isn't dynamic in PIE,
+ set no_finish_dynamic_symbol and generate R_386_RELATIVE
+ relocation for R_386_GOT32
+ (elf_i386_finish_dynamic_symbol): Abort if no_finish_dynamic_symbol
+ isn't 0.
+
+2017-04-21 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19617
+ PR ld/21086
+ * elflink.c (elf_link_add_object_symbols): Require
+ --no-dynamic-linker with -E/--dynamic-list when creating
+ dynamic sections.
+
+2017-04-20 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elflink.c (_bfd_elf_symbol_refs_local_p): Always return TRUE
+ if forced local.
+
+2017-04-20 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elfxx-mips.c (_bfd_mips_elf_final_link): Reorder comment about
+ dynamic symbol sorting.
+
+2017-04-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21382
+ * elflink.c (elf_link_add_object_symbols): Preserve
+ dynamic_ref_after_ir_def when restoring the symbol table for
+ unneeded dynamic object.
+
+2017-04-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21401
+ * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Don't abort
+ on on undefined IFUNC symbol in the second PLT.
+
+2017-04-19 Wedson Almeida Filho <wedsonaf@gmail.com>
+
+ * peXXigen.c (pe_print_reloc): Correct chunk_end.
+
+2017-04-19 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_adjust_dynamic_symbol): Hide undefweak
+ or make dynamic for info->dynamic_undefined_weak 0 and 1.
+ * elf32-ppc.c:Formatting.
+ (ensure_undefweak_dynamic): Don't make dynamic when
+ info->dynamic_undefined_weak is zero.
+ (allocate_dynrelocs): Discard undefweak dyn_relocs for
+ info->dynamic_undefined_weak. Discard undef dyn_relocs when
+ not default visibility. Discard undef and undefweak
+ dyn_relocs earlier.
+ (ppc_elf_relocate_section): Adjust to suit.
+ * elf64-ppc.c: Formatting.
+ (ensure_undefweak_dynamic): Don't make dynamic when
+ info->dynamic_undefined_weak is zero.
+ (allocate_dynrelocs): Discard undefweak dyn_relocs for
+ info->dynamic_undefined_weak. Discard them earlier.
+
+2017-04-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/21389
+ * elflink.c (bfd_elf_size_dynamic_sections): Get soname index
+ before generating the version definition section.
+
+2017-04-17 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_merge_symbol): Undo dynamic linking
+ state when a regular object file defines a symbol with
+ incompatible type to that defined by an earlier shared lib.
+
+2017-04-13 Alan Modra <amodra@gmail.com>
+
+ * coffcode.h: Wrap some overly long _bfd_error_handler args.
+ * elf.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-mep.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+
+2017-04-13 Alan Modra <amodra@gmail.com>
+
+ * aoutx.h: Use %B and %A in error messages throughout file.
+ * aout-cris.c: Likewise.
+ * archive.c: Likewise.
+ * binary.c: Likewise.
+ * coff-rs6000.c: Likewise.
+ * coff-tic4x.c: Likewise.
+ * coffcode.h: Likewise.
+ * coffgen.c: Likewise.
+ * cofflink.c: Likewise.
+ * coffswap.h: Likewise.
+ * cpu-arm.c: Likewise.
+ * elf-eh-frame.c: Likewise.
+ * elf-m10300.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arc.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-frv.c: Likewise.
+ * elf32-iq2000.c: Likewise.
+ * elf32-m32c.c: Likewise.
+ * elf32-microblaze.c: Likewise.
+ * elf32-nds32.c: Likewise.
+ * elf32-rl78.c: Likewise.
+ * elf32-rx.c: Likewise.
+ * elf32-score.c: Likewise.
+ * elf32-score7.c: Likewise.
+ * elf32-sh64.c: Likewise.
+ * elf32-v850.c: Likewise.
+ * elf32-vax.c: Likewise.
+ * elf32-visium.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-mmix.c: Likewise.
+ * elf64-sh64.c: Likewise.
+ * elfcode.h: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * hpux-core.c: Likewise.
+ * ieee.c: Likewise.
+ * ihex.c: Likewise.
+ * linker.c: Likewise.
+ * merge.c: Likewise.
+ * mmo.c: Likewise.
+ * oasys.c: Likewise.
+ * pdp11.c: Likewise.
+ * peXXigen.c: Likewise.
+ * rs6000-core.c: Likewise.
+ * vms-alpha.c: Likewise.
+ * xcofflink.c: Likewise.
+
+2017-04-13 Alan Modra <amodra@gmail.com>
+
+ * bfd.c (PRINT_TYPE): Define.
+ (_doprnt): New function.
+ (error_handler_internal): Use _doprnt.
+ * coff-arm.c: Put %A and %B arguments to _bfd_error_handler
+ calls in their natural order, throughout file.
+ * coff-mcore.c: Likewise.
+ * coff-ppc.c: Likewise.
+ * coff-tic80.c: Likewise.
+ * cofflink.c: Likewise.
+ * elf-s390-common.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-m32r.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * elf32-spu.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-sparc.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+
+2017-04-13 Alan Modra <amodra@gmail.com>
+
+ * elf32-arm.c (arm_type_of_stub): Supply missing args to "long
+ branch veneers" error. Fix double space and format message.
+ * elf32-avr.c (avr_add_stub): Do not pass NULL as %B arg.
+ * elf64-ppc.c (tocsave_find): Supply missing %B arg.
+
+2017-04-13 Alan Modra <amodra@gmail.com>
+
+ * bfd-in2.h: Regenerate.
+
+2017-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf-properties.c (_bfd_elf_parse_gnu_properties): Remove the
+ extra `\n' in warning/error messages.
+ * elf32-i386.c (elf_i386_parse_gnu_properties): Likewise.
+ * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
+
+2017-04-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf-properties.c (_bfd_elf_parse_gnu_properties): Ignore
+ processor-specific properties with generic ELF target vector.
+
+2017-04-10 Qing Zhao <qing.zhao@oracle.com>
+
+ * elf32-sparc.c (elf_backend_fixup_symbol): New.
+ * elf64-sparc.c (elf_backend_fixup_symbol): New.
+ * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
+ (_bfd_sparc_elf_link_hash_entry): Add has_got_reloc and
+ has_non_got_reloc.
+ (link_hash_newfunc): Initialize has_got_reloc and
+ has_non_got_reloc.
+ (_bfd_sparc_elf_size_dynamic_sections): Set interp to .interp
+ section.
+ (_bfd_sparc_elf_copy_indirect_symbol): Copy has_got_reloc and
+ has_non_got_reloc.
+ (_bfd_sparc_elf_check_relocs): Set has_got_reloc and
+ has_non_got_reloc.
+ (_bfd_sparc_elf_fixup_symbol): New function.
+ (allocate_dynrelocs): Don't allocate space for dynamic
+ relocations and discard relocations against resolved undefined
+ weak symbols in executable. Don't make resolved undefined weak
+ symbols in executable dynamic. Keep dynamic non-GOT/non-PLT
+ relocation against undefined weak symbols in PIE.
+ (_bfd_sparc_elf_relocate_section): Don't generate dynamic
+ relocations against resolved undefined weak symbols in PIE
+ (_bfd_sparc_elf_finish_dynamic_symbol): Keep PLT/GOT entries
+ without ynamic PLT/GOT relocations for resolved undefined weak
+ symbols.
+ Don't generate dynamic relocation against resolved undefined
+ weak symbol in executable.
+ (pie_finish_undefweak_symbol): New function.
+ (_bfd_sparc_elf_finish_dynamic_sections): Call
+ pie_finish_undefweak_symbol on all symbols in PIE.
+ * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add interp.
+ (_bfd_sparc_elf_fixup_symbol): New function.
+
+2017-04-10 Nick Clifton <nickc@redhat.com>
+
+ * config.bfd: Remove ns32k from obsolete list.
+
+2017-04-10 Alan Modra <amodra@gmail.com>
+
+ PR 21287
+ * elf.c (special_sections_f): Match .fini_array and .fini_array.*.
+ (special_sections_i): Likewise for .init_array.
+ (special_sections_p): Likewise for .preinit_array.
+
+2017-04-07 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19579
+ PR ld/21306
+ * elf32-s390.c (elf_s390_finish_dynamic_symbol): Check
+ ELF_COMMON_DEF_P for common symbols.
+ * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+ * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+ * elflink.c (_bfd_elf_merge_symbol): Revert commits
+ 202ac193bbbecc96a4978d1ac3d17148253f9b01 and
+ 07492f668d2173da7a2bda3707ff0985e0f460b6.
+
+2017-04-07 Pedro Alves <palves@redhat.com>
+
+ * opncls.c (bfd_get_debug_link_info): Rename to...
+ (bfd_get_debug_link_info_1): ... this. Change type of second
+ parameter to void pointer. Adjust.
+ (bfd_get_debug_link_info): Reimplement on top of
+ bfd_get_debug_link_info_1.
+ (separate_debug_file_exists, separate_alt_debug_file_exists):
+ Change type of second parameter to void pointer. Adjust.
+ (get_func_type, check_func_type): Change type of second parameter
+ to void pointer.
+ (find_separate_debug_file): Add 'func_data' parameter. Pass it to
+ the callback functions instead of passing the address of a local.
+ (bfd_follow_gnu_debuglink): Pass address of unsigned long local to
+ find_separate_debug_file.
+ (get_alt_debug_link_info_shim): Change type of second parameter to
+ void pointer. Adjust.
+ (bfd_follow_gnu_debugaltlink): Adjust to pass NULL to
+ find_separate_debug_file.
+ (get_build_id_name, bfd_boolean check_build_id_file): Change type
+ of second parameter to void pointer. Adjust.
+ (bfd_follow_build_id_debuglink): Pass address of bfd_build_id
+ pointer local to find_separate_debug_file.
+
+2017-04-07 Tristan Gingold <gingold@gingold-Precision-7510>
+
+ * coffgen.c (_bfd_coff_gc_mark_hook): Handle PE weak
+ external symbols with a definition.
+ (_bfd_coff_gc_mark_extra_sections): Fix typo.
+
+2017-04-07 Alan Modra <amodra@gmail.com>
+
+ * po/SRC-POTFILES.in: Regenerate.
+
2017-04-05 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT
diff --git a/bfd/aout-cris.c b/bfd/aout-cris.c
index 2e36e9d..6cd14e3 100644
--- a/bfd/aout-cris.c
+++ b/bfd/aout-cris.c
@@ -197,8 +197,8 @@ MY (swap_ext_reloc_out) (bfd *abfd,
if (r_type > 2)
{
/* xgettext:c-format */
- _bfd_error_handler (_("%s: Invalid relocation type exported: %d"),
- bfd_get_filename (abfd), r_type);
+ _bfd_error_handler (_("%B: Invalid relocation type exported: %d"),
+ abfd, r_type);
bfd_set_error (bfd_error_wrong_format);
}
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index d30e8b8..9a5f7ce 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1279,8 +1279,8 @@ NAME (aout, set_section_contents) (bfd *abfd,
{
_bfd_error_handler
/* xgettext:c-format */
- (_("%s: can not represent section `%s' in a.out object file format"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, section));
+ (_("%B: can not represent section `%A' in a.out object file format"),
+ abfd, section);
bfd_set_error (bfd_error_nonrepresentable_section);
return FALSE;
}
@@ -1580,9 +1580,9 @@ translate_to_native_sym_flags (bfd *abfd,
file. */
_bfd_error_handler
/* xgettext:c-format */
- (_("%s: can not represent section for symbol `%s' in a.out "
+ (_("%B: can not represent section for symbol `%s' in a.out "
"object file format"),
- bfd_get_filename (abfd),
+ abfd,
cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*"));
bfd_set_error (bfd_error_nonrepresentable_section);
return FALSE;
@@ -1616,8 +1616,8 @@ translate_to_native_sym_flags (bfd *abfd,
{
_bfd_error_handler
/* xgettext:c-format */
- (_("%s: can not represent section `%s' in a.out object file format"),
- bfd_get_filename (abfd), bfd_get_section_name (abfd, sec));
+ (_("%B: can not represent section `%A' in a.out object file format"),
+ abfd, sec);
bfd_set_error (bfd_error_nonrepresentable_section);
return FALSE;
}
@@ -5419,9 +5419,8 @@ NAME (aout, final_link) (bfd *abfd,
by the reloc size. */
_bfd_error_handler
/* xgettext:c-format */
- (_("%s: relocatable link from %s to %s not supported"),
- bfd_get_filename (abfd),
- sub->xvec->name, abfd->xvec->name);
+ (_("%B: relocatable link from %s to %s not supported"),
+ abfd, sub->xvec->name, abfd->xvec->name);
bfd_set_error (bfd_error_invalid_operation);
goto error_return;
}
diff --git a/bfd/archive.c b/bfd/archive.c
index d96c866..f209bab 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -2402,8 +2402,8 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
if (strcmp (syms[src_count]->name, "__gnu_lto_slim") == 0)
_bfd_error_handler
- (_("%s: plugin needed to handle lto object"),
- bfd_get_filename (current));
+ (_("%B: plugin needed to handle lto object"),
+ current);
namelen = strlen (syms[src_count]->name);
amt = sizeof (char *);
map[orl_count].name = (char **) bfd_alloc (arch, amt);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index fbd379f..1d73134 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1069,7 +1069,8 @@ bfd *bfd_openr (const char *filename, const char *target);
bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
-bfd *bfd_openstreamr (const char * filename, const char * target, void * stream);
+bfd *bfd_openstreamr (const char * filename, const char * target,
+ void * stream);
bfd *bfd_openr_iovec (const char *filename, const char *target,
void *(*open_func) (struct bfd *nbfd,
diff --git a/bfd/bfd.c b/bfd/bfd.c
index a9402e4..23a4350 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -611,176 +611,240 @@ CODE_FRAGMENT
static const char *_bfd_error_program_name;
-/* This is the default routine to handle BFD error messages.
- Like fprintf (stderr, ...), but also handles some extra format specifiers.
-
- %A section name from section. For group components, print group name too.
- %B file name from bfd. For archive components, prints archive too.
-
- Note - because these two extra format specifiers require special handling
- they are scanned for and processed in this function, before calling
- vfprintf. This means that the *arguments* for these format specifiers
- must be the first ones in the variable argument list, regardless of where
- the specifiers appear in the format string. Thus for example calling
- this function with a format string of:
-
- "blah %s blah %A blah %d blah %B"
-
- would involve passing the arguments as:
-
- "blah %s blah %A blah %d blah %B",
- asection_for_the_%A,
- bfd_for_the_%B,
- string_for_the_%s,
- integer_for_the_%d);
- */
-
-static void
-error_handler_internal (const char *fmt, va_list ap)
+/* This macro and _doprnt taken from libiberty _doprnt.c, tidied a
+ little and extended to handle '%A' and '%B'. */
+
+#define PRINT_TYPE(TYPE) \
+ do \
+ { \
+ TYPE value = va_arg (ap, TYPE); \
+ result = fprintf (stream, specifier, value); \
+ } while (0)
+
+static int
+_doprnt (FILE *stream, const char *format, va_list ap)
{
- char *bufp;
- const char *new_fmt, *p;
- size_t avail = 1000;
- char buf[1000];
-
- /* PR 4992: Don't interrupt output being sent to stdout. */
- fflush (stdout);
+ const char *ptr = format;
+ char specifier[128];
+ int total_printed = 0;
- if (_bfd_error_program_name != NULL)
- fprintf (stderr, "%s: ", _bfd_error_program_name);
- else
- fprintf (stderr, "BFD: ");
-
- new_fmt = fmt;
- bufp = buf;
-
- /* Reserve enough space for the existing format string. */
- avail -= strlen (fmt) + 1;
- if (avail > 1000)
- _exit (EXIT_FAILURE);
-
- p = fmt;
- while (1)
+ while (*ptr != '\0')
{
- char *q;
- size_t len, extra, trim;
+ int result;
- p = strchr (p, '%');
- if (p == NULL || p[1] == '\0')
+ if (*ptr != '%')
{
- if (new_fmt == buf)
- {
- len = strlen (fmt);
- memcpy (bufp, fmt, len + 1);
- }
- break;
+ /* While we have regular characters, print them. */
+ char *end = strchr (ptr, '%');
+ if (end != NULL)
+ result = fprintf (stream, "%.*s", (int) (end - ptr), ptr);
+ else
+ result = fprintf (stream, "%s", ptr);
+ ptr += result;
}
-
- if (p[1] == 'A' || p[1] == 'B')
+ else
{
- len = p - fmt;
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-04-05 16:17 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-04-05 16:17 UTC (permalink / raw)
To: archer-commits
The branch, users/jkratoch/indexcxx has been updated
via 828d7c2b97ad76c73c1a718d1bbaf434d045b937 (commit)
via 2cad08ea7dbc96103da9957da6973f9d0dbc33a8 (commit)
via 55a98976756cb2df83ac8f8e9799331fbcc4f669 (commit)
via 8dea77f0254d6a76d71092c922e9409ef1b67df4 (commit)
via 4ac40124eef08045bf99ad9f4fcc277961953109 (commit)
via 4d5efb852be6554305dfaf17c1e4f07bb9514273 (commit)
via c053b65441eb70ac78a514fabc3431b857a30d2e (commit)
via f3b8f8ee35bd62a2ae7d21561f5d23f00dad004f (commit)
via 80070c0d3491347f11283c5791b9dd040fedbd4f (commit)
via 4c7bf4f91b7dd3ccbd12be55316fca8817059a24 (commit)
via 1e1a8bef60db2f524c5eb1d27be22cfa9ff82a84 (commit)
via 499079343549348e270047ffa2687a8a76523700 (commit)
via 6f77053d2ae56f16c10a8817732ed9fb43893507 (commit)
via 9c5417255690af00751c7d506172459afe856894 (commit)
via ecfb656c37b982479d8eb07f240b434772d98fd6 (commit)
via d194f1fe51cb85b8a919b7ee9e3a7715b0ec9744 (commit)
via fff8551cf549f4047c9276a836408d802db6ce6d (commit)
via 477bdd393c8145ad44899cb4681d57a61c82aad3 (commit)
via a91e1603afb6704545793e967a1a3dfe96b389de (commit)
via b52920324fabbcad93042f2e17de52696d0dab42 (commit)
via 65dd1e590e519eba10bc29fb6e952271e0604c9b (commit)
via d62a8ae2dd0fbb6235f4e8f2fb61b83fe4ba1d90 (commit)
via ad32986fdf9da1c8748e47b8b45100398223dba8 (commit)
via db3a1dc7c9404e203c54576db3335e69d995e83e (commit)
via 4c220b4625df0b08cbb22e5c7ca04dc7a629de1b (commit)
via c41cf6fdf514fce6b69f8f875b6903b2a3910f89 (commit)
via 2f5f29cada3c06c9c26f4da5994951effee7d6f7 (commit)
via 2514e33e01890ad28023359b110d1c9c1ad201d4 (commit)
via 46bed6796d5821832e8ba373ddb2e7fdc45a109d (commit)
via 82156ab704b08b124d319c0decdbd48b3ca2dac5 (commit)
via 75ec1fdbb797a389e4fe4aaf2e15358a070dcc19 (commit)
via f32ba72991d2406b21ab17edc234a2f3fa7fb23d (commit)
via 12bfb8fec326e847f6300874ca656e47ee027f5d (commit)
via 450b68da0169dcfa1c36987ec80e2655abb3f8e6 (commit)
via 5e6a0e73317915b0685249606538ea739acc3a23 (commit)
from 590d37ae8d079e541cf184782899ef84b2b3f569 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 828d7c2b97ad76c73c1a718d1bbaf434d045b937
Merge: 590d37a 2cad08e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Apr 5 18:08:31 2017 +0200
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 2cad08ea7dbc96103da9957da6973f9d0dbc33a8
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 5 14:55:43 2017 +0100
Use frame_unwind_register_value in frame_unwind_register_unsigned
gdb:
2017-04-05 Yao Qi <yao.qi@linaro.org>
* frame.c (frame_unwind_register_unsigned): Call
frame_unwind_register_value.
commit 55a98976756cb2df83ac8f8e9799331fbcc4f669
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Apr 5 14:46:13 2017 +0100
Fix racy test in gdb.threads/thread-specific-bp.exp
I see the following test fail from time to time, due to the racy test
in gdb.threads/thread-specific-bp.exp.
continue -a^M
Continuing.^M
^M
Thread 1 "thread-specific" hit Breakpoint 4, end () at binutils-gdb/gdb/testsuite/gdb.threads/thread-specific-bp.c:29^M
29 }^M
(gdb) [Thread 0x40322460 (LWP 12950) exited]^M
Thread-specific breakpoint 3 deleted - thread 2 no longer in the thread list.^M
FAIL: gdb.threads/thread-specific-bp.exp: non-stop: continue to end (timeout)
This patch changes gdb_test to gdb_test_multiple to match prompt only
instead of both prompt and anchor.
gdb/testsuite:
2017-04-05 Yao Qi <yao.qi@linaro.org>
* gdb.threads/thread-specific-bp.exp (check_thread_specific_breakpoint):
Use gdb_test_multiple, and don't match anchor.
commit 8dea77f0254d6a76d71092c922e9409ef1b67df4
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 5 12:47:41 2017 +0930
PowerPC64le PLT reference counting
A fix for ELFv2 ABI garbage-collection.
* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT
reference counting.
commit 4ac40124eef08045bf99ad9f4fcc277961953109
Author: Pedro Alves <palves@redhat.com>
Date: Wed Apr 5 09:39:49 2017 +0100
New global maintainer - Simon Marchi
gdb/ChangeLog:
2017-04-05 Pedro Alves <palves@redhat.com>
* MAINTAINERS (Global Maintainers): Add Simon Marchi.
(Write After Approval): Remove Simon Marchi.
commit 4d5efb852be6554305dfaf17c1e4f07bb9514273
Author: Hans-Peter Nilsson <hp@bitrange.com>
Date: Wed Apr 5 03:00:40 2017 +0200
PR ld/21233: xfail failing test-parts for cris*-*-*
commit c053b65441eb70ac78a514fabc3431b857a30d2e
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 23:49:27 2017 +0100
Initialize gdb::optional empty payload to quiet false -Wmaybe-uninitialized warnings
Commit ecfb656c37b982 ("dwarf2read.c: Make dir_index and
file_name_index strong typedefs") added a use of gdb::optional that
triggers bogus -Wmaybe-uninitialized warnings:
GCC trunk is complaining like this:
../../binutils-gdb/gdb/dwarf2read.c: In function void read_formatted_entries(bfd*, const gdb_byte**, line_header*, const comp_unit_head*, void (*)(line_header*, const char*, dir_index, unsigned int, unsigned int)):
../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::length may be used uninitialized in this function [-Werror=maybe-uninitialized]
callback (lh, fe.name, fe.d_index, fe.mod_time, fe.length);
^
../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: *((void*)& fe +8) may be used uninitialized in this function [-Werror=maybe-uninitialized]
../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::mod_time may be used uninitialized in this function [-Werror=maybe-uninitialized]
../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: fe.file_entry::name may be used uninitialized in this function [-Werror=maybe-uninitialized]
While some older GCCs are complaining like this:
../../binutils-gdb/gdb/dwarf2read.c: In function void read_formatted_entries(bfd*, const gdb_byte**, line_header*, const comp_unit_head*, void (*)(line_header*, const char*, dir_index, unsigned int, unsigned int)):
../../binutils-gdb/gdb/dwarf2read.c:17779:65: error: uint may be used uninitialized in this function [-Werror=maybe-uninitialized]
callback (lh, fe.name, fe.d_index, fe.mod_time, fe.length);
Looking around the web, I see that boost's optional implementation
triggers this kind of issue often too. See:
http://www.boost.org/doc/libs/1_63_0/libs/optional/doc/html/boost_optional/tutorial/gotchas/false_positive_with__wmaybe_uninitialized.html
I noticed that replacing the gdb::optional uses with real C++17
std::optional uses against GCC 7/trunk makes the warnings go away.
Looking at the implementation, AFAICS, libstdc++ always initializes
its "empty" union payload member (_M_empty, which is defined as an
empty class, like ours). I.e., all payload types have this ctor:
struct _Optional_payload.....
{
constexpr _Optional_payload()
: _M_empty() {}
The constexpr makes a diference too. Without it, GCC7 still warns.
So I'm applying the same treatment to our gdb::optional.
gdb/ChangeLog:
2017-04-05 Pedro Alves <palves@redhat.com>
* common/gdb_optional.h (optional::optional): Make constexpr and
initialize m_dummy.
commit f3b8f8ee35bd62a2ae7d21561f5d23f00dad004f
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Apr 5 00:00:36 2017 +0000
Automatic date update in version.in
commit 80070c0d3491347f11283c5791b9dd040fedbd4f
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Mon Mar 27 12:39:07 2017 +0100
PR ld/21233: Avoid sweeping forced-undefined symbols in section GC
Complement commit 902e9fc76a0e ("PR ld/20828: Move symbol version
processing ahead of GC symbol sweep"), commit b531344c34b0 ("PR
ld/20828: Reorder the symbol sweep stage of section GC") and commit
81ff47b3a546 ("PR ld/20828: Fix linker script symbols wrongly forced
local with section GC"), and prevent symbols forcibly entered in the
output file with the use of the `--undefined=' or `--require-defined='
linker command line options or the EXTERN linker script command from
being swept in section garbage collection and consequently recorded in
the dynamic symbol table as local entries. This happens in certain
circumstances, where a symbol reference also exists in one of the static
input files, however only in a section which is garbage-collected and
does not make it to the output file, and the symbol is defined in a
dynamic object present in the link.
For example with the `i386-linux' target and the `pr21233.s' and
`pr21233-l.s' sources, and the `pr21233.ld' linker script included with
this change we get:
$ as -o pr21233-l.o pr21233-l.s
$ ld -shared -T pr21233.ld -o libpr21233.so pr21233-l.o
$ as -o pr21233.o pr21233.s
$ ld --gc-sections -e foo --require-defined=bar -T pr21233.ld -o pr21233 pr21233.o libpr21233.so
$ readelf --dyn-syms pr21233
Symbol table '.dynsym' contains 2 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 OBJECT LOCAL DEFAULT UND bar
$
which makes the run-time `bar' dependency of the `pr21233' executable
different from its corresponding link-time dependency, i.e. the presence
of `libpr21233.so' and its `bar' symbol is required at the link time,
however at the run time a copy of `libpr21233.so' without `bar' will do.
Similarly with `--undefined=' and EXTERN which do not actually require
the reference to the symbol requested to be satisfied with a definition
at the link time, however once the definition has been pulled at the
link time, so it should at the dynamic load time.
Additionally with the `mips-linux' target we get:
$ ld --gc-sections -e foo --require-defined=bar -T pr21233.ld -o pr21233 pr21233.o libpr21233.so
ld: BFD (GNU Binutils) 2.28.51.20170324 assertion fail .../bfd/elfxx-mips.c:3861
$
as the target is not prepared to handle such a local dynamic symbol.
With this change in effect we get:
$ readelf --dyn-syms pr21233
Symbol table '.dynsym' contains 2 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 0 OBJECT GLOBAL DEFAULT UND bar
$
instead, for both targets.
ld/
PR ld/21233
* ldlang.c (insert_undefined): Set `mark' for ELF symbols.
* testsuite/ld-elf/pr21233.sd: New test.
* testsuite/ld-elf/pr21233-l.sd: New test.
* testsuite/ld-elf/pr21233.ld: New test linker script.
* testsuite/ld-elf/pr21233-e.ld: New test linker script.
* testsuite/ld-elf/pr21233.s: New test source.
* testsuite/ld-elf/pr21233-l.s: New test source.
* testsuite/ld-elf/shared.exp: Run the new tests.
commit 4c7bf4f91b7dd3ccbd12be55316fca8817059a24
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 4 14:28:07 2017 -0700
Remove support for using the bsd-uthread target on FreeBSD.
The bsd-uthread target supports an old thread library ("libc_r") that
was last included in FreeBSD release 6.4 released in 2008. However,
this library has not been used as the default library since FreeBSD
5.0 (2003) and 4.11 (2005). Thread support for modern FreeBSD binaries
is provided via "normal" LWP support in core files and the native
FreeBSD target.
gdb/ChangeLog:
* amd64-fbsd-tdep.c: Remove "bsd-uthread.h" include.
(amd64fbsd_jmp_buf_reg_offset): Remove.
(amd64fbsd_supply_uthread): Remove function.
(amd64fbsd_collect_uthread): Remove function.
(amd64fbsd_init_abi): Don't set bsd-uthread callbacks.
* configure.tgt (i[34567]86-*-freebsd*): Remove bsd-uthread.o.
(x86_64-*-freebsd*): Remove bsd-uthread.o.
(fbsd-nat.c): Update comment.
* i386-fbsd-tdep.c: Remove "bsd-uthread.h" include.
(i386fbsd_jmp_buf_reg_offset): Remove.
(i386fbsd_supply_uthread): Remove function.
(i386fbsd_collect_uthread): Remove function.
(i386fbsd_init_abi): Don't set bsd-uthread callbacks.
commit 1e1a8bef60db2f524c5eb1d27be22cfa9ff82a84
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 4 14:20:37 2017 -0700
Remove support for FreeBSD/alpha.
FreeBSD last shipped a release for Alpha (6.3) in 2008.
This also removes support for GNU/kFreeBSD on Alpha.
gdb/ChangeLog:
* Makefile.in (ALL_64_TARGET_OBS): Remove alpha-fbsd-tdep.o.
(ALLDEPFILES): Remove alpha-fbsd-tdep.c
* NEWS: Mention that support for FreeBSD/alpha was removed.
* alpha-fbsd-tdep.c: Delete file.
* config/alpha/fbsd.mh: Delete file.
* configure.host: Delete alpha*-*-freebsd* and
alpha*-*-kfreebsd*-gnu.
* configure.tgt: Delete alpha*-*-freebsd* and
alpha*-*-kfreebsd*-gnu.
commit 499079343549348e270047ffa2687a8a76523700
Author: John Baldwin <jhb@FreeBSD.org>
Date: Tue Apr 4 13:57:47 2017 -0700
Use ptid from regcache instead of inferior_ptid.
gdb/ChangeLog:
* amd64-bsd-nat.c (amd64bsd_fetch_inferior_registers,
amd64bsd_store_inferior_registers): Use ptid from regcache.
commit 6f77053d2ae56f16c10a8817732ed9fb43893507
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 20:03:26 2017 +0100
dwarf2read.c: C++fy lnp_state_machine
While I was looking at the file, I noticed that this struct could be
nicely converted to a class. As I was progressing, I ended up moving
all state machine actual internal state manipulation to methods of
lnp_state_machine, essentially decoupling DWARF parsing from state
tracking. I also noticed that the lnp_reader_state doesn't really
serve any good use, so that's eliminated in the process.
gdb/ChangeLog:
2017-04-04 Pedro Alves <palves@redhat.com>
* dwarf2read.c (lnp_state_machine): Now a class. Initialize all
data fields, make them private and add "m_" prefixes.
(lnp_state_machine::lnp_state_machine): New ctor.
(record_line, check_line_address, handle_set_discriminator)
(handle_set_address, handle_advance_pc, handle_special_opcode)
(handle_advance_line, handle_set_file, handle_negate_stmt)
(handle_const_add_pc, handle_fixed_advance_pc, handle_copy)
(end_sequence, advance_line): New methods.
(m_gdbarch, m_record_lines_p): New fields.
(lnp_reader_state): Delete.
(dwarf_record_line): Rename to ...
(lnp_state_machine::record_line): ... adjust.
(init_lnp_state_machine): Delete.
(lnp_state_machine::lnp_state_machine): New.
(check_line_address): Rename to ...
(lnp_state_machine::check_line_address): This.
(dwarf_decode_lines_1): Remove reference to "reader_state".
Adjust lnp_state_machine having a non-default ctor. Use bool.
State machine internal state manipulation moved to
lnp_state_machine methods.
commit 9c5417255690af00751c7d506172459afe856894
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 20:03:26 2017 +0100
Make sect_offset and cu_offset strong typedefs instead of structs
A while ago, back when GDB was a C program, the sect_offset and
cu_offset types were made structs in order to prevent incorrect mixing
of those offsets. Now that we require C++11, we can make them
integers again, while keeping the safety, by exploiting "enum class".
We can add a bit more safety, even, by defining operators that the
types _should_ support, helping making the suspicious uses stand out
more.
Getting at the underlying type is done with the new to_underlying
function added by the previous patch, which also helps better spot
where do we need to step out of the safety net. Mostly, that's around
parsing the DWARF, and when we print the offset for complaint/debug
purposes. But there are other occasional uses.
Since we have to define the sect_offset/cu_offset types in a header
anyway, I went ahead and generalized/library-fied the idea of "offset"
types, making it trivial to add more such types if we find a use. See
common/offset-type.h and the DEFINE_OFFSET_TYPE macro.
I needed a couple generaly-useful preprocessor bits (e.g., yet another
CONCAT implementation), so I started a new common/preprocessor.h file.
I included units tests covering the "offset" types API. These are
mostly compile-time tests, using SFINAE to check that expressions that
shouldn't compile (e.g., comparing unrelated offset types) really are
invalid and would fail to compile. This same idea appeared in my
pending enum-flags revamp from a few months ago (though this version
is a bit further modernized compared to what I had posted), and I plan
on reusing the "check valid expression" bits added here in that
series, so I went ahead and defined the CHECK_VALID_EXPR macro in its
own header -- common/valid-expr.h. I think that's nicer regardless.
I was borderline between calling the new types "offset" types, or
"index" types, BTW. I stuck with "offset" simply because that's what
we're already calling them, mostly.
gdb/ChangeLog:
2017-04-04 Pedro Alves <palves@redhat.com>
* Makefile.in (SUBDIR_UNITTESTS_SRCS): Add
unittests/offset-type-selftests.c.
(SUBDIR_UNITTESTS_OBS): Add offset-type-selftests.o.
* common/offset-type.h: New file.
* common/preprocessor.h: New file.
* common/traits.h: New file.
* common/valid-expr.h: New file.
* dwarf2expr.c: Include "common/underlying.h". Adjust to use
sect_offset and cu_offset strong typedefs throughout.
* dwarf2expr.h: Adjust to use sect_offset and cu_offset strong
typedefs throughout.
* dwarf2loc.c: Include "common/underlying.h". Adjust to use
sect_offset and cu_offset strong typedefs throughout.
* dwarf2read.c: Adjust to use sect_offset and cu_offset strong
typedefs throughout.
* gdbtypes.h: Include "common/offset-type.h".
(cu_offset): Now an offset type (strong typedef) instead of a
struct.
(sect_offset): Likewise.
(union call_site_parameter_u): Rename "param_offset" field to
"param_cu_off".
* unittests/offset-type-selftests.c: New file.
commit ecfb656c37b982479d8eb07f240b434772d98fd6
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 20:03:25 2017 +0100
dwarf2read.c: Make dir_index and file_name_index strong typedefs
This should help catch mistakes related to mixing the 1-based DWARF
indexes with 0-based std::vector indexes, since the new types do not
implicitly convert to anything.
The change in read_formatted_entries relates to the fact that doing
the seemingly simpler:
- uintp = &fe.dir_index;
+ uintp = (unsigned int *) &fe.dir_index;
would be undefined C/C++. So to address that, I made the function
extract the form before assigning to the file_entry. It felt natural
to use gdb::optional for "do I have this value", and this is what
motivated the previous patch that added the missing observer methods
to gdb::optional.
gdb/ChangeLog:
2017-04-04 Pedro Alves <palves@redhat.com>
* common/underlying.h: New file.
* dwarf2read.c: Include "common/gdb_optional.h" and
"common/underlying.h".
(dir_index, file_name_index): New types.
(file_entry): Use them.
(file_entry::include): Use to_underlying.
(line_header::add_file_name): Use dir_index.
(read_formatted_entries): Use gdb::optional. Read form before
writting to file_entry.
(dwarf_decode_line_header): Use dir_index.
(lnp_state_machine::current_file): Use to_underlying.
(lnp_state_machine::file): Change type to file_name_index.
(dwarf_record_line): Use to_underlying.
(init_lnp_state_machine): Use file_name_index.
(dwarf_decode_lines_1): Use dir_index and file_name_index.
commit d194f1fe51cb85b8a919b7ee9e3a7715b0ec9744
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 20:03:25 2017 +0100
gdb::optional: Add observers
Currently, gdb::optional is really minimal and can only be used for
lazy initialization. There's no way to get at the value contained
inside the optinal. This commit corrects that, by adding observer
methods, mostly copied from libstdc++'s implementation of C++17
std::optional.
This will be used in the following patch.
gdb/ChangeLog:
2017-04-04 Pedro Alves <palves@redhat.com>
* common/gdb_optional.h (gdb::optiona): Add operator->, operator*,
operator bool, has_value and get methods.
commit fff8551cf549f4047c9276a836408d802db6ce6d
Author: Pedro Alves <palves@redhat.com>
Date: Tue Apr 4 20:03:25 2017 +0100
dwarf2read.c: Some C++fycation, use std::vector, std::unique_ptr
This starts off as replacing a couple custom open coded vector
implementations in the file with std::vector, and then the rest falls
off of that. I.e., use new/delete instead of XCNEW/xfree, add
ctors/dtors/initializers where appropriate. And then use
std::unique_ptr instead of cleanups. Some functions became methods,
and in a couple spots, some single-use callback functions that would
have to be tweaked anyway are converted to lambdas instead.
gdb/ChangeLog:
2017-04-04 Pedro Alves <palves@redhat.com>
* dwarf2read.c (struct file_entry): Add ctors, and initialize all
fields.
(line_header): Initialize all data fields. Change type of
standard_opcode_lengths to std::unique_ptr<unsigned char[]>.
Change type of include_dirs to std::vector<const char *>. Remove
num_include_dirs, include_dirs_size. Change type of file_names to
std::vector<file_entry>. Remove num_file_names, file_names_size.
(line_header::line_header): New.
(line_header::add_include_dir, line_header::add_file_name): New
methods.
(line_header::include_dir_at): Remove NULL check.
(line_header::file_name_at): Add const overload.
(line_header_up): New unique_ptr typedef.
(dw2_get_file_names_reader): Use line_header_up. Adjust to use
std::vector. Remove free_line_header call.
(dwarf2_build_include_psymtabs): Use line_header_up. Remove
free_line_header call.
(free_cu_line_header): Delete.
(handle_DW_AT_stmt_list, handle_DW_AT_stmt_list)
(setup_type_unit_groups): Use line_header_up instead of cleanups.
Adjust to use std::vector.
(free_line_header): Delete.
(free_line_header_voidp): Use delete.
(add_include_dir): Replace with ...
(line_header::add_include_dir): ... this method. Use std::vector.
(add_file_name): Replace with ...
(line_header::add_file_name): ... this method. Use std::vector.
(add_include_dir_stub): Delete.
(read_formatted_entries): Remove memset.
(dwarf_decode_line_header): Return a line_header_up instead of a
raw pointer. Remove cleanup handling. Pass lambdas to
read_formatted_entries. Adjust to use line_header methods.
(dwarf_decode_lines_1): Adjust to use line_header methods.
(dwarf_decode_lines, file_file_name, file_full_name): Adjust to
use std::vector.
commit 477bdd393c8145ad44899cb4681d57a61c82aad3
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Jun 2 13:46:58 2016 +0000
Use symbolic constants instead of magic numbers with add_data_entry()
Use symbolic constants from include/coff/internal.h instead of magic numbers
with add_data_entry()
bfd/ChangeLog:
2017-04-02 Jon Turney <jon.turney@dronecode.org.uk>
(_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than
numbers for DataDirectory entry indicies passed to
add_data_entry().
commit a91e1603afb6704545793e967a1a3dfe96b389de
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Apr 4 09:05:48 2017 -0700
Support ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX
Mark an ALLOC section, which should be placed in special memory area,
with SHF_GNU_MBIND. Its sh_info field indicates the special memory
type. GNU_MBIND section names start with ".mbind" so that they are
placed as orphan sections by linker. All input GNU_MBIND sections
with the same sh_type, sh_flags and sh_info are placed in one output
GNU_MBIND section. In executable and shared object, create a
GNU_MBIND segment for each GNU_MBIND section and its segment type is
PT_GNU_MBIND_LO plus the sh_info value. Each GNU_MBIND segment is
aligned at page boundary.
The assembler syntax:
.section .mbind.foo,"adx",%progbits
^ 0: Special memory type.
|
'd' for SHF_GNU_MBIND.
.section .mbind.foo,"adx",%progbits,0x1
^ 1: Special memory type.
|
'd' for SHF_GNU_MBIND.
.section .mbind.bar,"adG",%progbits,.foo_group,comdat,0x2
^ 2: Special memory type.
|
'd' for SHF_GNU_MBIND.
bfd/
* elf.c (get_program_header_size): Add a GNU_MBIND segment for
each GNU_MBIND section and align GNU_MBIND section to page size.
(_bfd_elf_map_sections_to_segments): Create a GNU_MBIND
segment for each GNU_MBIND section.
(_bfd_elf_init_private_section_data): Copy sh_info from input
for GNU_MBIND section.
binutils/
* NEWS: Mention support for ELF SHF_GNU_MBIND and
PT_GNU_MBIND_XXX.
* readelf.c (get_segment_type): Handle PT_GNU_MBIND_XXX.
(get_elf_section_flags): Handle SHF_GNU_MBIND.
(process_section_headers): Likewise.
* testsuite/binutils-all/mbind1.s: New file.
* testsuite/binutils-all/objcopy.exp: Run readelf test on
mbind1.s.
gas/
* NEWS: Mention support for ELF SHF_GNU_MBIND.
* config/obj-elf.c (section_match): New.
(get_section): Match both sh_info and group name.
(obj_elf_change_section): Add argument for sh_info. Pass both
sh_info and group name to get_section. Issue an error for
SHF_GNU_MBIND section without SHF_ALLOC. Set sh_info.
(obj_elf_parse_section_letters): Set SHF_GNU_MBIND for 'd'.
(obj_elf_section): Support SHF_GNU_MBIND section info.
* config/obj-elf.h (obj_elf_change_section): Add argument for
sh_info.
* config/tc-arm.c (start_unwind_section): Pass 0 as sh_info to
obj_elf_change_section.
* config/tc-ia64.c (obj_elf_vms_common): Likewise.
* config/tc-microblaze.c (microblaze_s_data): Likewise.
(microblaze_s_sdata): Likewise.
(microblaze_s_rdata): Likewise.
(microblaze_s_bss): Likewise.
* config/tc-mips.c (s_change_section): Likewise.
* config/tc-msp430.c (msp430_profiler): Likewise.
* config/tc-rx.c (parse_rx_section): Likewise.
* config/tc-tic6x.c (tic6x_start_unwind_section): Likewise.
* doc/as.texinfo: Document 'd' for SHF_GNU_MBIND.
* testsuite/gas/elf/elf.exp: Run section12a, section12b and
section13.
* testsuite/gas/elf/section10.d: Updated.
* testsuite/gas/elf/section10.s: Likewise.
* testsuite/gas/elf/section12.s: New file.
* testsuite/gas/elf/section12a.d: Likewise.
* testsuite/gas/elf/section12b.d: Likewise.
* testsuite/gas/elf/section13.l: Likewise.
* testsuite/gas/elf/section13.d: Likewise.
* testsuite/gas/elf/section13.s: Likewise.
include/
* elf/common.h (PT_GNU_MBIND_NUM): New.
(PT_GNU_MBIND_LO): Likewise.
(PT_GNU_MBIND_HI): Likewise.
(SHF_GNU_MBIND): Likewise.
ld/
* NEWS: Mention support for ELF SHF_GNU_MBIND and
PT_GNU_MBIND_XXX.
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Place
input GNU_MBIND sections with the same type, attributes and
sh_info field into a single output GNU_MBIND section.
* testsuite/ld-elf/elf.exp: Run mbind2a and mbind2b.
* testsuite/ld-elf/mbind1.s: New file.
* testsuite/ld-elf/mbind1a.d: Likewise.
* testsuite/ld-elf/mbind1b.d: Likewise.
* testsuite/ld-elf/mbind1c.d: Likewise.
* testsuite/ld-elf/mbind2a.s: Likewise.
* testsuite/ld-elf/mbind2b.c: Likewise.
commit b52920324fabbcad93042f2e17de52696d0dab42
Author: Palmer Dabbelt <palmer@dabbelt.com>
Date: Mon Apr 3 10:08:29 2017 -0700
RISC-V: Resurrect GP-relative disassembly hints
We missed a "_gp" when changing the GP symbol. To make sure that
doesn't happen again, we now use the same definition everywhere (thanks,
Nick).
include/ChangeLog:
2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
* elf/riscv.h (RISCV_GP_SYMBOL): New define.
bfd/ChangeLog:
2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
* elfnn-riscv.c (GP_NAME): Delete.
(riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL.
(_bfd_riscv_relax_lui): Likewise.
opcodes/ChangeLog:
2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
* riscv-dis.c (riscv_disassemble_insn): Change "_gp" to
RISCV_GP_SYMBOL.
commit 65dd1e590e519eba10bc29fb6e952271e0604c9b
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue Apr 4 10:48:24 2017 -0400
gdbserver: Clear .deps on clean
In some situations, the dependency tracking files in .deps can refer to
source files that were removed or renamed, leading to errors like:
make: *** No rule to make target `version.c', needed by `version.o'. Stop.
This patch makes the clean target clear the .deps directory, which gives
the user a chance to recover from the error wihtout knowing about the
internals of the build system.
It is already done for GDB. See here for more details:
https://sourceware.org/ml/gdb-patches/2009-03/msg00000.html
gdb/gdbserver/ChangeLog:
* Makefile.in (clean): Clear .deps.
commit d62a8ae2dd0fbb6235f4e8f2fb61b83fe4ba1d90
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Tue Apr 4 10:31:50 2017 -0400
remote.c: Use ptid_t instead of struct ptid
It's the only place in the codebase that uses "struct ptid", so change
it to ptid_t for consistency.
gdb/ChangeLog:
* remote.c (set_general_thread, set_continue_thread): Use ptid_t
instead of struct ptid.
commit ad32986fdf9da1c8748e47b8b45100398223dba8
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Apr 4 11:23:36 2017 +0100
Fix null pointer dereferences when using a link built with clang.
PR binutils/21342
* elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
dereference.
(bfd_elf_final_link): Only initialize the extended symbol index
section if there are extended symbol tables to list.
commit db3a1dc7c9404e203c54576db3335e69d995e83e
Author: Alan Hayward <alan.hayward@arm.com>
Date: Tue Apr 4 08:42:30 2017 +0100
Remove MAX_REGISTER_SIZE from frame.c
gdb/
* frame.c (get_frame_register_bytes): Unwind using value.
(put_frame_register_bytes): Likewise.
commit 4c220b4625df0b08cbb22e5c7ca04dc7a629de1b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Apr 4 00:00:42 2017 +0000
Automatic date update in version.in
commit c41cf6fdf514fce6b69f8f875b6903b2a3910f89
Author: Palmer Dabbelt <palmer@dabbelt.com>
Date: Mon Apr 3 09:03:57 2017 -0700
RISC-V: Avoid a const warning
2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
* config/tc-riscv.c (riscv_clear_subsets): Cast argument to free to
avoid const warnings.
commit 2f5f29cada3c06c9c26f4da5994951effee7d6f7
Author: Andrew Jenner <andrew@codesourcery.com>
Date: Mon Apr 3 09:13:19 2017 -0700
IA16 support
* config.sub: Handle ia16 in $basic_machine.
bfd/
* config.bfd: Handle ia16.
gas/
* configure.tgt: Handle ia16.
ld/
* configure.tgt: Handle ia16.
commit 2514e33e01890ad28023359b110d1c9c1ad201d4
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 3 08:25:36 2017 -0700
Correct the ChangeLog entry
commit 46bed6796d5821832e8ba373ddb2e7fdc45a109d
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Apr 3 08:03:14 2017 -0700
ld: Support ELF GNU program properties
From .note.gnu.property section in each ELF input, we build a list of
GNU properties if .note.gnu.property section isn't corrupt. The unknown
properties are ignored. All property lists in relocatable inputs are
merged into an output property list. When -z stack-size=N is used and
N isn't 0, the GNU_PROPERTY_STACK_SIZE property will be merged with or
added to the output property list. .note.gnu.property section is
generated in output from the output property list.
bfd/
* Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
(BFD32_BACKENDS_CFILES): Add elf-properties.c.
* configure.ac (elf): Add elf-properties.lo.
* Makefile.in: Regenerated.
* configure: Likewise.
* elf-bfd.h (elf_property_kind): New.
(elf_property): Likewise.
(elf_property_list): Likewise.
(elf_properties): Likewise.
(_bfd_elf_parse_gnu_properties): Likewise.
(_bfd_elf_get_property): Likewise.
(_bfd_elf_link_setup_gnu_properties): Likewise.
(elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
and setup_gnu_properties.
(elf_obj_tdata): Add properties.
* elf-properties.c: New file.
* elf32-i386.c (elf_i386_parse_gnu_properties): New.
(elf_i386_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_merge_gnu_properties): Likewise.
* elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
(elf_x86_64_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_merge_gnu_properties): Likewise.
* elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
(elf_backend_parse_gnu_properties): Likewise.
(elf_backend_setup_gnu_properties): Likewise.
(elfNN_bed): Add elf_backend_parse_gnu_properties,
elf_backend_merge_gnu_properties and
elf_backend_setup_gnu_properties.
ld/
* ld/NEWS: Mention support for ELF GNU program properties.
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Call
ELF setup_gnu_properties.
* testsuite/ld-i386/i386.exp: Run property tests for Linux/i386.
* testsuite/ld-i386/pass.c: New file.
* testsuite/ld-i386/property-1.r: Likewise.
* testsuite/ld-i386/property-2.r: Likewise.
* testsuite/ld-i386/property-3.r: Likewise.
* testsuite/ld-i386/property-4.r: Likewise.
* testsuite/ld-i386/property-5.r: Likewise.
* testsuite/ld-i386/property-6.r: Likewise.
* testsuite/ld-i386/property-6a.c: Likewise.
* testsuite/ld-i386/property-6b.c: Likewise.
* testsuite/ld-i386/property-6c.S: Likewise.
* testsuite/ld-i386/property-7.r: Likewise.
* testsuite/ld-i386/property-no-copy.S: Likewise.
* testsuite/ld-i386/property-stack.S: Likewise.
* testsuite/ld-i386/property-unsorted-1.S: Likewise.
* testsuite/ld-i386/property-unsorted-2.S: Likewise.
* testsuite/ld-i386/property-x86-1.S: Likewise.
* testsuite/ld-i386/property-x86-2.S: Likewise.
* testsuite/ld-x86-64/pass.c: Likewise.
* testsuite/ld-x86-64/property-1.r: Likewise.
* testsuite/ld-x86-64/property-2.r: Likewise.
* testsuite/ld-x86-64/property-3.r: Likewise.
* testsuite/ld-x86-64/property-4.r: Likewise.
* testsuite/ld-x86-64/property-5.r: Likewise.
* testsuite/ld-x86-64/property-6.r: Likewise.
* testsuite/ld-x86-64/property-6a.c: Likewise.
* testsuite/ld-x86-64/property-6b.c: Likewise.
* testsuite/ld-x86-64/property-6c.S: Likewise.
* testsuite/ld-x86-64/property-7.r: Likewise.
* testsuite/ld-x86-64/property-no-copy.S: Likewise.
* testsuite/ld-x86-64/property-stack.S: Likewise.
* testsuite/ld-x86-64/property-unsorted-1.S: Likewise.
* testsuite/ld-x86-64/property-unsorted-2.S: Likewise.
* testsuite/ld-x86-64/property-x86-1.S: Likewise.
* testsuite/ld-x86-64/property-x86-2.S: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run property tests for
Linux/x86-64.
commit 82156ab704b08b124d319c0decdbd48b3ca2dac5
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Apr 3 12:14:06 2017 +0100
readelf: Fix overlarge memory allocation when reading a binary with an excessive number of program headers.
PR binutils/21345
* readelf.c (get_program_headers): Check for there being too many
program headers before attempting to allocate space for them.
commit 75ec1fdbb797a389e4fe4aaf2e15358a070dcc19
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Apr 3 11:13:21 2017 +0100
Fix runtime seg-fault in readelf when parsing a corrupt MIPS binary.
PR binutils/21344
* readelf.c (process_mips_specific): Check for an out of range GOT
entry before reading the module pointer.
commit f32ba72991d2406b21ab17edc234a2f3fa7fb23d
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Apr 3 11:01:45 2017 +0100
readelf: Update check for invalid word offsets in ARM unwind information.
PR binutils/21343
* readelf.c (get_unwind_section_word): Fix snafu checking for
invalid word offsets in ARM unwind information.
commit 12bfb8fec326e847f6300874ca656e47ee027f5d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Apr 3 00:00:37 2017 +0000
Automatic date update in version.in
commit 450b68da0169dcfa1c36987ec80e2655abb3f8e6
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Apr 2 00:00:36 2017 +0000
Automatic date update in version.in
commit 5e6a0e73317915b0685249606538ea739acc3a23
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Apr 1 00:00:39 2017 +0000
Automatic date update in version.in
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 13 +
bfd/ChangeLog | 67 +
bfd/Makefile.am | 2 +
bfd/Makefile.in | 3 +
bfd/config.bfd | 6 +
bfd/configure | 2 +-
bfd/configure.ac | 2 +-
bfd/elf-bfd.h | 58 +
bfd/elf-properties.c | 483 +++++++
bfd/elf.c | 69 +-
bfd/elf32-i386.c | 74 ++
bfd/elf64-ppc.c | 41 +-
bfd/elf64-x86-64.c | 78 ++-
bfd/elflink.c | 35 +-
bfd/elfnn-riscv.c | 9 +-
bfd/elfxx-target.h | 12 +
bfd/peXXigen.c | 10 +-
bfd/version.h | 2 +-
binutils/ChangeLog | 29 +
binutils/NEWS | 2 +
binutils/readelf.c | 64 +-
binutils/testsuite/binutils-all/mbind1.s | 33 +
binutils/testsuite/binutils-all/objcopy.exp | 1 +
config.sub | 2 +-
gas/ChangeLog | 40 +
gas/NEWS | 2 +
gas/config/obj-elf.c | 54 +-
gas/config/obj-elf.h | 3 +-
gas/config/tc-arm.c | 3 +-
gas/config/tc-ia64.c | 2 +-
gas/config/tc-microblaze.c | 18 +-
gas/config/tc-mips.c | 2 +-
gas/config/tc-msp430.c | 2 +-
gas/config/tc-riscv.c | 2 +-
gas/config/tc-rx.c | 4 +-
gas/config/tc-tic6x.c | 3 +-
gas/configure.tgt | 3 +
gas/doc/as.texinfo | 2 +
gas/testsuite/gas/elf/elf.exp | 3 +
gas/testsuite/gas/elf/section10.d | 4 +-
gas/testsuite/gas/elf/section10.s | 4 +-
gas/testsuite/gas/elf/section12.s | 33 +
gas/testsuite/gas/elf/section12a.d | 35 +
gas/testsuite/gas/elf/section12b.d | 32 +
gas/testsuite/gas/elf/section13.d | 2 +
gas/testsuite/gas/elf/section13.l | 2 +
gas/testsuite/gas/elf/section13.s | 2 +
gdb/ChangeLog | 172 +++
gdb/MAINTAINERS | 2 +-
gdb/Makefile.in | 8 +-
gdb/NEWS | 5 +
gdb/alpha-fbsd-tdep.c | 132 --
gdb/amd64-bsd-nat.c | 32 +-
gdb/amd64-fbsd-tdep.c | 67 -
gdb/common/gdb_optional.h | 34 +-
gdb/common/offset-type.h | 149 +++
gdb/common/preprocessor.h | 31 +
gdb/common/traits.h | 34 +
gdb/common/underlying.h | 32 +
gdb/common/valid-expr.h | 108 ++
gdb/config/alpha/fbsd.mh | 6 -
gdb/configure.host | 4 +-
gdb/configure.tgt | 11 +-
gdb/dwarf2expr.c | 45 +-
gdb/dwarf2expr.h | 16 +-
gdb/dwarf2loc.c | 37 +-
gdb/dwarf2read.c | 1523 +++++++++++-----------
gdb/fbsd-nat.c | 2 +-
gdb/frame.c | 58 +-
gdb/gdbserver/ChangeLog | 4 +
gdb/gdbserver/Makefile.in | 1 +
gdb/gdbtypes.h | 14 +-
gdb/i386-fbsd-tdep.c | 59 -
gdb/remote.c | 10 +-
gdb/testsuite/gdb.threads/thread-specific-bp.exp | 9 +-
gdb/unittests/offset-type-selftests.c | 178 +++
include/ChangeLog | 11 +
include/elf/common.h | 7 +
include/elf/riscv.h | 3 +
ld/ChangeLog | 76 ++
ld/NEWS | 4 +
ld/configure.tgt | 1 +
ld/emultempl/elf32.em | 48 +-
ld/ldlang.c | 2 +
ld/testsuite/ld-elf/elf.exp | 21 +
ld/testsuite/ld-elf/mbind1.s | 43 +
ld/testsuite/ld-elf/mbind1a.d | 44 +
ld/testsuite/ld-elf/mbind1b.d | 44 +
ld/testsuite/ld-elf/mbind1c.d | 44 +
ld/testsuite/ld-elf/mbind2a.s | 15 +
ld/testsuite/ld-elf/mbind2b.c | 17 +
ld/testsuite/ld-elf/pr21233-e.ld | 2 +
ld/testsuite/ld-elf/pr21233-l.s | 6 +
ld/testsuite/ld-elf/pr21233-l.sd | 6 +
ld/testsuite/ld-elf/pr21233.ld | 17 +
ld/testsuite/ld-elf/pr21233.s | 8 +
ld/testsuite/ld-elf/pr21233.sd | 9 +
ld/testsuite/ld-elf/shared.exp | 40 +
ld/testsuite/ld-i386/i386.exp | 273 ++++
ld/testsuite/ld-i386/pass.c | 8 +
ld/testsuite/ld-i386/property-1.r | 7 +
ld/testsuite/ld-i386/property-2.r | 7 +
ld/testsuite/ld-i386/property-3.r | 8 +
ld/testsuite/ld-i386/property-4.r | 8 +
ld/testsuite/ld-i386/property-5.r | 8 +
ld/testsuite/ld-i386/property-6.r | 7 +
ld/testsuite/ld-i386/property-6a.c | 7 +
ld/testsuite/ld-i386/property-6b.c | 8 +
ld/testsuite/ld-i386/property-6c.S | 18 +
ld/testsuite/ld-i386/property-7.r | 6 +
ld/testsuite/ld-i386/property-no-copy.S | 15 +
ld/testsuite/ld-i386/property-stack.S | 18 +
ld/testsuite/ld-i386/property-unsorted-1.S | 34 +
ld/testsuite/ld-i386/property-unsorted-2.S | 22 +
ld/testsuite/ld-i386/property-x86-1.S | 32 +
ld/testsuite/ld-i386/property-x86-2.S | 25 +
ld/testsuite/ld-x86-64/pass.c | 8 +
ld/testsuite/ld-x86-64/property-1.r | 7 +
ld/testsuite/ld-x86-64/property-2.r | 7 +
ld/testsuite/ld-x86-64/property-3.r | 8 +
ld/testsuite/ld-x86-64/property-4.r | 8 +
ld/testsuite/ld-x86-64/property-5.r | 8 +
ld/testsuite/ld-x86-64/property-6.r | 7 +
ld/testsuite/ld-x86-64/property-6a.c | 7 +
ld/testsuite/ld-x86-64/property-6b.c | 8 +
ld/testsuite/ld-x86-64/property-6c.S | 23 +
ld/testsuite/ld-x86-64/property-7.r | 6 +
ld/testsuite/ld-x86-64/property-no-copy.S | 20 +
ld/testsuite/ld-x86-64/property-stack.S | 23 +
ld/testsuite/ld-x86-64/property-unsorted-1.S | 39 +
ld/testsuite/ld-x86-64/property-unsorted-2.S | 27 +
ld/testsuite/ld-x86-64/property-x86-1.S | 37 +
ld/testsuite/ld-x86-64/property-x86-2.S | 30 +
ld/testsuite/ld-x86-64/x86-64.exp | 273 ++++
opcodes/ChangeLog | 5 +
opcodes/riscv-dis.c | 2 +-
136 files changed, 4447 insertions(+), 1222 deletions(-)
create mode 100644 bfd/elf-properties.c
create mode 100644 binutils/testsuite/binutils-all/mbind1.s
create mode 100644 gas/testsuite/gas/elf/section12.s
create mode 100644 gas/testsuite/gas/elf/section12a.d
create mode 100644 gas/testsuite/gas/elf/section12b.d
create mode 100644 gas/testsuite/gas/elf/section13.d
create mode 100644 gas/testsuite/gas/elf/section13.l
create mode 100644 gas/testsuite/gas/elf/section13.s
delete mode 100644 gdb/alpha-fbsd-tdep.c
create mode 100644 gdb/common/offset-type.h
create mode 100644 gdb/common/preprocessor.h
create mode 100644 gdb/common/traits.h
create mode 100644 gdb/common/underlying.h
create mode 100644 gdb/common/valid-expr.h
delete mode 100644 gdb/config/alpha/fbsd.mh
create mode 100644 gdb/unittests/offset-type-selftests.c
create mode 100644 ld/testsuite/ld-elf/mbind1.s
create mode 100644 ld/testsuite/ld-elf/mbind1a.d
create mode 100644 ld/testsuite/ld-elf/mbind1b.d
create mode 100644 ld/testsuite/ld-elf/mbind1c.d
create mode 100644 ld/testsuite/ld-elf/mbind2a.s
create mode 100644 ld/testsuite/ld-elf/mbind2b.c
create mode 100644 ld/testsuite/ld-elf/pr21233-e.ld
create mode 100644 ld/testsuite/ld-elf/pr21233-l.s
create mode 100644 ld/testsuite/ld-elf/pr21233-l.sd
create mode 100644 ld/testsuite/ld-elf/pr21233.ld
create mode 100644 ld/testsuite/ld-elf/pr21233.s
create mode 100644 ld/testsuite/ld-elf/pr21233.sd
create mode 100644 ld/testsuite/ld-i386/pass.c
create mode 100644 ld/testsuite/ld-i386/property-1.r
create mode 100644 ld/testsuite/ld-i386/property-2.r
create mode 100644 ld/testsuite/ld-i386/property-3.r
create mode 100644 ld/testsuite/ld-i386/property-4.r
create mode 100644 ld/testsuite/ld-i386/property-5.r
create mode 100644 ld/testsuite/ld-i386/property-6.r
create mode 100644 ld/testsuite/ld-i386/property-6a.c
create mode 100644 ld/testsuite/ld-i386/property-6b.c
create mode 100644 ld/testsuite/ld-i386/property-6c.S
create mode 100644 ld/testsuite/ld-i386/property-7.r
create mode 100644 ld/testsuite/ld-i386/property-no-copy.S
create mode 100644 ld/testsuite/ld-i386/property-stack.S
create mode 100644 ld/testsuite/ld-i386/property-unsorted-1.S
create mode 100644 ld/testsuite/ld-i386/property-unsorted-2.S
create mode 100644 ld/testsuite/ld-i386/property-x86-1.S
create mode 100644 ld/testsuite/ld-i386/property-x86-2.S
create mode 100644 ld/testsuite/ld-x86-64/pass.c
create mode 100644 ld/testsuite/ld-x86-64/property-1.r
create mode 100644 ld/testsuite/ld-x86-64/property-2.r
create mode 100644 ld/testsuite/ld-x86-64/property-3.r
create mode 100644 ld/testsuite/ld-x86-64/property-4.r
create mode 100644 ld/testsuite/ld-x86-64/property-5.r
create mode 100644 ld/testsuite/ld-x86-64/property-6.r
create mode 100644 ld/testsuite/ld-x86-64/property-6a.c
create mode 100644 ld/testsuite/ld-x86-64/property-6b.c
create mode 100644 ld/testsuite/ld-x86-64/property-6c.S
create mode 100644 ld/testsuite/ld-x86-64/property-7.r
create mode 100644 ld/testsuite/ld-x86-64/property-no-copy.S
create mode 100644 ld/testsuite/ld-x86-64/property-stack.S
create mode 100644 ld/testsuite/ld-x86-64/property-unsorted-1.S
create mode 100644 ld/testsuite/ld-x86-64/property-unsorted-2.S
create mode 100644 ld/testsuite/ld-x86-64/property-x86-1.S
create mode 100644 ld/testsuite/ld-x86-64/property-x86-2.S
First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index 8565325..bb87497 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2017-04-03 Andrew Jenner <andrew@codesourcery.com>
+
+ * config.sub: Handle ia16 in $basic_machine.
+
+ bfd/
+ * config.bfd: Handle ia16.
+
+ gas/
+ * configure.tgt: Handle ia16.
+
+ ld/
+ * configure.tgt: Handle ia16.
+
2017-03-22 Nick Clifton <nickc@redhat.com>
* config.sub: Sync with master version in config project.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index bb851c7..0e4ad30 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,70 @@
+2017-04-05 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Support ELFv2 PLT
+ reference counting.
+
+2017-04-02 Jon Turney <jon.turney@dronecode.org.uk>
+
+ (_bfd_XXi_swap_aouthdr_out): For clarity, use defines rather than
+ numbers for DataDirectory entry indicies passed to
+ add_data_entry().
+
+2017-04-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf.c (get_program_header_size): Add a GNU_MBIND segment for
+ each GNU_MBIND section and align GNU_MBIND section to page size.
+ (_bfd_elf_map_sections_to_segments): Create a GNU_MBIND
+ segment for each GNU_MBIND section.
+ (_bfd_elf_init_private_section_data): Copy sh_info from input
+ for GNU_MBIND section.
+
+2017-04-03 Palmer Dabbelt <palmer@dabbelt.com>
+
+ * elfnn-riscv.c (GP_NAME): Delete.
+ (riscv_global_pointer_value): Change GP_NAME to RISCV_GP_SYMBOL.
+ (_bfd_riscv_relax_lui): Likewise.
+
+2017-04-04 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21342
+ * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer
+ dereference.
+ (bfd_elf_final_link): Only initialize the extended symbol index
+ section if there are extended symbol tables to list.
+
+2017-04-03 H.J. Lu <hongjiu.lu@intel.com>
+
+ * Makefile.am (BFD32_BACKENDS): Add elf-properties.lo.
+ (BFD32_BACKENDS_CFILES): Add elf-properties.c.
+ * configure.ac (elf): Add elf-properties.lo.
+ * Makefile.in: Regenerated.
+ * configure: Likewise.
+ * elf-bfd.h (elf_property_kind): New.
+ (elf_property): Likewise.
+ (elf_property_list): Likewise.
+ (elf_properties): Likewise.
+ (_bfd_elf_parse_gnu_properties): Likewise.
+ (_bfd_elf_get_property): Likewise.
+ (_bfd_elf_link_setup_gnu_properties): Likewise.
+ (elf_backend_data): Add parse_gnu_properties, merge_gnu_properties
+ and setup_gnu_properties.
+ (elf_obj_tdata): Add properties.
+ * elf-properties.c: New file.
+ * elf32-i386.c (elf_i386_parse_gnu_properties): New.
+ (elf_i386_merge_gnu_properties): Likewise.
+ (elf_backend_parse_gnu_properties): Likewise.
+ (elf_backend_merge_gnu_properties): Likewise.
+ * elf64-x86-64.c (elf_x86_64_parse_gnu_properties): Likewise.
+ (elf_x86_64_merge_gnu_properties): Likewise.
+ (elf_backend_parse_gnu_properties): Likewise.
+ (elf_backend_merge_gnu_properties): Likewise.
+ * elfxx-target.h (elf_backend_merge_gnu_properties): Likewise.
+ (elf_backend_parse_gnu_properties): Likewise.
+ (elf_backend_setup_gnu_properties): Likewise.
+ (elfNN_bed): Add elf_backend_parse_gnu_properties,
+ elf_backend_merge_gnu_properties and
+ elf_backend_setup_gnu_properties.
+
2017-03-30 Pip Cet <pipcet@gmail.com>
* elf32-wasm32.c: Add relocation code, two relocs.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 49ab092..97b608c 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -321,6 +321,7 @@ BFD32_BACKENDS = \
elf-m10200.lo \
elf-m10300.lo \
elf-nacl.lo \
+ elf-properties.lo \
elf-strtab.lo \
elf-vxworks.lo \
elf.lo \
@@ -516,6 +517,7 @@ BFD32_BACKENDS_CFILES = \
elf-m10200.c \
elf-m10300.c \
elf-nacl.c \
+ elf-properties.c \
elf-strtab.c \
elf-vxworks.c \
elf.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index fed5117..e48abaf 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -655,6 +655,7 @@ BFD32_BACKENDS = \
elf-m10200.lo \
elf-m10300.lo \
elf-nacl.lo \
+ elf-properties.lo \
elf-strtab.lo \
elf-vxworks.lo \
elf.lo \
@@ -850,6 +851,7 @@ BFD32_BACKENDS_CFILES = \
elf-m10200.c \
elf-m10300.c \
elf-nacl.c \
+ elf-properties.c \
elf-strtab.c \
elf-vxworks.c \
elf.c \
@@ -1471,6 +1473,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10200.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10300.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-nacl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-properties.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-strtab.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-vxworks.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 1235c2c..b00958d 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -173,6 +173,7 @@ fido*) targ_archs=bfd_m68k_arch ;;
hppa*) targ_archs=bfd_hppa_arch ;;
i[3-7]86) targ_archs=bfd_i386_arch ;;
i370) targ_archs=bfd_i370_arch ;;
+ia16) targ_archs=bfd_i386_arch ;;
lm32) targ_archs=bfd_lm32_arch ;;
m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
@@ -906,6 +907,11 @@ case "${targ}" in
targ_selvecs="icoff_le_vec icoff_be_vec"
;;
+ ia16-*-elf)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="i386_msdos_vec i386_aout_vec"
+ ;;
+
ip2k-*-elf)
targ_defvec=ip2k_elf32_vec
;;
diff --git a/bfd/configure b/bfd/configure
index 7cae4ae..24e3e2f 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14234,7 +14234,7 @@ selarchs="$f"
# Target backend .o files.
tb=
-elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo
+elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-properties.lo
elf-eh-frame.lo dwarf1.lo dwarf2.lo"
coffgen="coffgen.lo dwarf2.lo"
coff="cofflink.lo $coffgen"
diff --git a/bfd/configure.ac b/bfd/configure.ac
index feb1231..e568847 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -365,7 +365,7 @@ selarchs="$f"
# Target backend .o files.
tb=
-elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo
+elf="elf.lo elflink.lo elf-attrs.lo elf-strtab.lo elf-properties.lo
elf-eh-frame.lo dwarf1.lo dwarf2.lo"
coffgen="coffgen.lo dwarf2.lo"
coff="cofflink.lo $coffgen"
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 9e3d6f5..af377ee 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -766,6 +766,39 @@ typedef asection * (*elf_gc_mark_hook_fn)
(asection *, struct bfd_link_info *, Elf_Internal_Rela *,
struct elf_link_hash_entry *, Elf_Internal_Sym *);
+enum elf_property_kind
+ {
+ /* A new property. */
+ property_unknown = 0,
+ /* A property ignored by backend. */
+ property_ignored,
+ /* A corrupt property reported by backend. */
+ property_corrupt,
+ /* A property should be removed due to property merge. */
+ property_remove,
+ /* A property which is a number. */
+ property_number
+ };
+
+typedef struct elf_property
+{
+ unsigned int pr_type;
+ unsigned int pr_datasz;
+ union
+ {
+ /* For property_number, this is a number. */
+ bfd_vma number;
+ /* Add a new one if elf_property_kind is updated. */
+ } u;
+ enum elf_property_kind pr_kind;
+} elf_property;
+
+typedef struct elf_property_list
+{
+ struct elf_property_list *next;
+ struct elf_property property;
+} elf_property_list;
+
struct bfd_elf_section_reloc_data;
struct elf_backend_data
@@ -1389,6 +1422,19 @@ struct elf_backend_data
or give an error and return FALSE. */
bfd_boolean (*obj_attrs_handle_unknown) (bfd *, int);
+ /* Parse GNU properties. Return the property kind. If the property
+ is corrupt, issue an error message and return property_corrupt. */
+ enum elf_property_kind (*parse_gnu_properties) (bfd *, unsigned int,
+ bfd_byte *,
+ unsigned int);
+
+ /* Merge GNU properties. Return TRUE if property is updated. */
+ bfd_boolean (*merge_gnu_properties) (bfd *, elf_property *,
+ elf_property *);
+
+ /* Set up GNU properties. */
+ void (*setup_gnu_properties) (struct bfd_link_info *);
+
/* Encoding used for compact EH tables. */
int (*compact_eh_encoding) (struct bfd_link_info *);
@@ -1798,6 +1844,10 @@ struct elf_obj_tdata
/* Symbol buffer. */
void *symbuf;
+ /* List of GNU properties. Will be updated by setup_gnu_properties
+ after all input GNU properties are merged for output. */
+ elf_property_list *properties;
+
obj_attribute known_obj_attributes[2][NUM_KNOWN_OBJ_ATTRIBUTES];
obj_attribute_list *other_obj_attributes[2];
@@ -1882,6 +1932,7 @@ struct elf_obj_tdata
(elf_known_obj_attributes (bfd) [OBJ_ATTR_PROC])
#define elf_other_obj_attributes_proc(bfd) \
(elf_other_obj_attributes (bfd) [OBJ_ATTR_PROC])
+#define elf_properties(bfd) (elf_tdata (bfd) -> properties)
\f
extern void _bfd_elf_swap_verdef_in
(bfd *, const Elf_External_Verdef *, Elf_Internal_Verdef *);
@@ -2538,6 +2589,13 @@ extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int);
extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *);
extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr (asection *sec);
+extern bfd_boolean _bfd_elf_parse_gnu_properties
+ (bfd *, Elf_Internal_Note *);
+extern elf_property * _bfd_elf_get_property
+ (bfd *, unsigned int, unsigned int);
+extern void _bfd_elf_link_setup_gnu_properties
+ (struct bfd_link_info *);
+
/* The linker may need to keep track of the number of relocs that it
decides to copy as dynamic relocs in check_relocs for each symbol.
This is so that it can later discard them if they are found to be
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c
new file mode 100644
index 0000000..a0456f8
--- /dev/null
+++ b/bfd/elf-properties.c
@@ -0,0 +1,483 @@
+/* ELF program property support.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* GNU program property draft is at:
+
+ https://github.com/hjl-tools/linux-abi/wiki/property-draft.pdf
+ */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+
+/* Get a property, allocate a new one if needed. */
+
+elf_property *
+_bfd_elf_get_property (bfd *abfd, unsigned int type, unsigned int datasz)
+{
+ elf_property_list *p, **lastp;
+
+ if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
+ {
+ /* Never should happen. */
+ abort ();
+ }
+
+ /* Keep the property list in order of type. */
+ lastp = &elf_properties (abfd);
+ for (p = *lastp; p; p = p->next)
+ {
+ /* Reuse the existing entry. */
+ if (type == p->property.pr_type)
+ {
+ if (datasz > p->property.pr_datasz)
+ {
+ /* This can happen when mixing 32-bit and 64-bit objects. */
+ p->property.pr_datasz = datasz;
+ }
+ return &p->property;
+ }
+ else if (type < p->property.pr_type)
+ break;
+ lastp = &p->next;
+ }
+ p = (elf_property_list *) bfd_alloc (abfd, sizeof (*p));
+ if (p == NULL)
+ {
+ _bfd_error_handler (_("%B: out of memory in _bfd_elf_get_property"),
+ abfd);
+ _exit (EXIT_FAILURE);
+ }
+ memset (p, 0, sizeof (*p));
+ p->property.pr_type = type;
+ p->property.pr_datasz = datasz;
+ p->next = *lastp;
+ *lastp = p;
+ return &p->property;
+}
+
+/* Parse GNU properties. */
+
+bfd_boolean
+_bfd_elf_parse_gnu_properties (bfd *abfd, Elf_Internal_Note *note)
+{
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ unsigned int align_size = bed->s->elfclass == ELFCLASS64 ? 8 : 4;
+ bfd_byte *ptr = (bfd_byte *) note->descdata;
+ bfd_byte *ptr_end = ptr + note->descsz;
+
+ if (note->descsz < 8 || (note->descsz % align_size) != 0)
+ {
+bad_size:
+ _bfd_error_handler
+ (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx\n"),
+ abfd, note->type, note->descsz);
+ return FALSE;
+ }
+
+ while (1)
+ {
+ unsigned int type = bfd_h_get_32 (abfd, ptr);
+ unsigned int datasz = bfd_h_get_32 (abfd, ptr + 4);
+ elf_property *prop;
+
+ ptr += 8;
+
+ if ((ptr + datasz) > ptr_end)
+ {
+ _bfd_error_handler
+ (_("warning: %B: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x\n"),
+ abfd, note->type, type, datasz);
+ /* Clear all properties. */
+ elf_properties (abfd) = NULL;
+ return FALSE;
+ }
+
+ if (type >= GNU_PROPERTY_LOPROC)
+ {
+ if (type < GNU_PROPERTY_LOUSER && bed->parse_gnu_properties)
+ {
+ enum elf_property_kind kind
+ = bed->parse_gnu_properties (abfd, type, ptr, datasz);
+ if (kind == property_corrupt)
+ {
+ /* Clear all properties. */
+ elf_properties (abfd) = NULL;
+ return FALSE;
+ }
+ else if (kind != property_ignored)
+ goto next;
+ }
+ }
+ else
+ {
+ switch (type)
+ {
+ case GNU_PROPERTY_STACK_SIZE:
+ if (datasz != align_size)
+ {
+ _bfd_error_handler
+ (_("warning: %B: corrupt stack size: 0x%x\n"),
+ abfd, datasz);
+ /* Clear all properties. */
+ elf_properties (abfd) = NULL;
+ return FALSE;
+ }
+ prop = _bfd_elf_get_property (abfd, type, datasz);
+ if (datasz == 8)
+ prop->u.number = bfd_h_get_64 (abfd, ptr);
+ else
+ prop->u.number = bfd_h_get_32 (abfd, ptr);
+ prop->pr_kind = property_number;
+ goto next;
+
+ case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
+ if (datasz != 0)
+ {
+ _bfd_error_handler
+ (_("warning: %B: corrupt no copy on protected size: 0x%x\n"),
+ abfd, datasz);
+ /* Clear all properties. */
+ elf_properties (abfd) = NULL;
+ return FALSE;
+ }
+ prop = _bfd_elf_get_property (abfd, type, datasz);
+ prop->pr_kind = property_number;
+ goto next;
+
+ default:
+ break;
+ }
+ }
+
+ _bfd_error_handler
+ (_("warning: %B: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x\n"),
+ abfd, note->type, type);
+
+next:
+ ptr += (datasz + (align_size - 1)) & ~ (align_size - 1);
+ if (ptr == ptr_end)
+ break;
+
+ if (ptr > (ptr_end - 8))
+ goto bad_size;
+ }
+
+ return TRUE;
+}
+
+/* Merge GNU property BPROP with APROP. If APROP isn't NULL, return TRUE
+ if APROP is updated. Otherwise, return TRUE if BPROP should be merged
+ with ABFD. */
+
+static bfd_boolean
+elf_merge_gnu_properties (bfd *abfd, elf_property *aprop,
+ elf_property *bprop)
+{
+ const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ unsigned int pr_type = aprop != NULL ? aprop->pr_type : bprop->pr_type;
+
+ if (bed->merge_gnu_properties != NULL
+ && pr_type >= GNU_PROPERTY_LOPROC
+ && pr_type < GNU_PROPERTY_LOUSER)
+ return bed->merge_gnu_properties (abfd, aprop, bprop);
+
+ switch (pr_type)
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2017-03-22 21:57 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2017-03-22 21:57 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 250195 bytes --]
The branch, users/jkratoch/indexcxx has been updated
via 025edc48851da0e21aea57628f5fb8cd305a281f (commit)
via 24e5b4e682a92788ffa676e963b7f1dec2101333 (commit)
via b67aeab02c05fdd654f132a550dd4f196cb1f6d3 (commit)
via 11997a83a040245406b6e2e9978c6720f17e80c4 (commit)
via 79778b30dc5881a8d88b55744cab53d95fa6fda2 (commit)
via ffdbe8642e74527795b695988a176f0920d58f96 (commit)
via 9d736fbf01d20bc03804fa0cb49d99fdf6628fab (commit)
via 3e6c75670009a5e9eaa72eb456b296451b3c46fe (commit)
via 4c8798c9923de48c71430ce262d83042179232c6 (commit)
via 3de88e9afbf0d8d10a8c4ce1415c219120e0a0c1 (commit)
via 0e7b8f61069f1219ca53a9dd927ba55c9a7eefd4 (commit)
via 2253c8f089193b90141e08436417bc8ea1dd6015 (commit)
via 4a14e306468af630a27302d68b8d4c59733141b4 (commit)
via 645d3342ba2b920722991255513030bb903b794e (commit)
via 75d7d2986cf896fac8f0690db68ebc552e0b0339 (commit)
via 5badf10a18af78c57dd4ce8e6a6ead7f46e1a878 (commit)
via 21701718895d186285e6daf04cc7342c6c88fb03 (commit)
via cee59b3feac9a8f6300a5b788e3db4e15af2a894 (commit)
via 09220eae9df07c40d206a35e6caaecba92ab8f46 (commit)
via 639a9038c9f4fc50b6a57c18fe84db4559367a96 (commit)
via bcc0c096d5b0f77482cdb3154acd2515a0ca832f (commit)
via c0f55cc689a57deb342b988b8f0ecb908f0a76e1 (commit)
via 15c0a2a9305648095f5586a02b5a5017e1643e99 (commit)
via aa0061181ab00081e9907447561e589d6edee9f2 (commit)
via 3fcf899da106890f3948093c2424f9dff67d6fe0 (commit)
via 4297a3f0029974c62628d69b6f3f9ef25f01ea7d (commit)
via e1cb3213476485a01aa11ecedfa186e386cb4bdb (commit)
via e4347c89f3a14b480fc88581d1363835f7b99b68 (commit)
via 53cc15f5fe1f5e2358994d4f60f1c2aa9115004d (commit)
via a65cfae5f8b268158c23a862e7a996d15bbcef0e (commit)
via 3b22433085e4cfee83f5c52f3baa8fb9bc67f8dd (commit)
via f9aeb8d499fa12610610dc19618230304c698f6c (commit)
via 51457a05780da82b5321a1574caed95ac0e6923e (commit)
via 5b291c049658614196197e4ea4bb42bcc176b876 (commit)
via e696b3ad342dde596dcdad4cff6b875c361ed6d0 (commit)
via 59a561480d547d041127630b1ba17a284eef8225 (commit)
via 39e224f6f9ee3f6123d4c9ddb7c0955e0604c1b4 (commit)
via e406e428dfe9d64e3be0b7a3c1c97c09edc5bdba (commit)
via dcb84eda0c5f25835251a311c4d6704e70cfa498 (commit)
via 4ea0266c22eccf6e7719469a981267659e47ef3a (commit)
via d5e0ba9cdb0d002b97bab722cce673ce86cf7b11 (commit)
via d3375ddde4011242ef576083459fc51d0ddc53c8 (commit)
via 5c62b69b91e13c6b9c126480680cff836c0b282d (commit)
via aaed6f5be3a41a88cc13c744e88af78f5a42dd5b (commit)
via 84e8538ee3c8139a99e75e661fff500bb93c8cd5 (commit)
via bbdf9b697fc0652379794267b23f597e15c7db57 (commit)
via 82e66161e649e5e801c40a52cba759292a76a59a (commit)
via d9cb6cdcfa12368f2f639f8cd06d18b94bd98a39 (commit)
via 1afaf9f42fe201872d758214beceff85325a988a (commit)
via aac12e2497a42b47223680ab1b5924137de77c9a (commit)
via bbe1eef1e585e19d5493882e55f2b7902df9827a (commit)
via 10799020a9336b6a88c1ace53c601960b840d580 (commit)
via 00204cf7da01d99205aacc994e5c594ed12bba64 (commit)
via 11a3371447f15af26def26646ad2eb7a4386462d (commit)
via 317cd4925a9d6ef6f8752a771cb56e85ddfb30f0 (commit)
via 9ac8a7c281aa949cf588cccb9977ea51eaff8130 (commit)
via 4ac4bb6ad5ead16be5ca6996a3e325c26ddf71da (commit)
via 0dd6ae21da832f351a3722d2f8bac187fc3bdfef (commit)
via 9bcbdca808b5f9fec6217d20bd4b48a56008c460 (commit)
via 7503099f3e29739d34cb1224d54fba96404e6e61 (commit)
via 4b94dd2de12dd0389615700b13b63260e162ccf0 (commit)
via 1d3fa25f5802fe2250f32f335ad57897a62e0fe2 (commit)
via b4fcfd3b4d173129207f804f5eee4557c788d66b (commit)
via 7942e96e435d1cf4d4dbf58c47bb28d9f628c9e6 (commit)
via 6ebac3fbacebaebd9e2c9393da3b612342d953a9 (commit)
via 2cc36e25db366d70a975702b61c7700ae934d4d0 (commit)
via a8be5506b626a57f84771c5ddfaefabf2d61c017 (commit)
via ba14f3792fe007bedd88b62e554c79258adc53d9 (commit)
via b121eeb9971ebfceffc38e6131fdc15ec4188599 (commit)
via 728a79135f51a1c20719ebaf3c98446d9ee248db (commit)
via a7c0469f992721b30665ba92f4f2f74d29032a84 (commit)
via 34b433203b5f56149c27a8dfea21a921392cb158 (commit)
via a3a5feccd26be653efbdf1408874b98962baaa50 (commit)
via f8d995870f957d5fd32fb21fb4afe76a754ddf31 (commit)
via 28f1c60507ad4ca2252cebada30d2f63ec3b772f (commit)
via ec3b243d4308ee56c9e3c62470b10ed2a822eb51 (commit)
via 2c52e2e8c9e8f733cc0772d1400b0f4d3eb7379c (commit)
via e189bfe660d335f3b7c61446c9b5d3b0f0701606 (commit)
via aab2c17756ee5bef0ea5783a460a0990450b3bd5 (commit)
via 4d78db49e6eee097365e31f9b5b47e5391243979 (commit)
via 152c92b261fd9e4655688bef746ca32352f56bc4 (commit)
via 1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca (commit)
via 1728969e93010862fe0ef7985cabe03a4494a63e (commit)
via c3847462f86778e97222a72378a84182f92c644a (commit)
via 453018bf4490421a995cd76b3d2a3f322359c6a5 (commit)
via b416fe873ef44b2a613c9266c6462a481926d986 (commit)
via 03b039a518fa0f89a9900a44a8b874cc91061305 (commit)
via 9494d9636612cd9bd22e38625fbc89147beafea7 (commit)
via 7cb7b948ce62831a999f88054a6b2d39afbe926e (commit)
via cc7e96c25d59db0a5279da0a0ff36d61151f3021 (commit)
via c98763221af696a9e0c6686da7d65881bfd6bdd0 (commit)
via 87c336f60eccc6506ff19369c29575f43fea02ea (commit)
via d47c3ff7d55122befac848fe64b7445789c78787 (commit)
via 2aece2ba02457e83fd2a780a8ac596b6a90adf29 (commit)
via c1b465c94e26be629315bf28e3763dea9dea8336 (commit)
via 2c232b8361a044d689d12161b7a645d238586f5e (commit)
via 9216a6f33592c350ad50696d5571c82e47b71a5e (commit)
via cf81cf6081d1a8c15c477f903d15d7b88f31b686 (commit)
via c799a79d66d09c442d85467986c2e8873f09297c (commit)
via 0efcde634d45f4cda03fd18c43ff449103559d7a (commit)
via a379284af268ed768674e7f452ca78dad2aaaf55 (commit)
via 8a6200ba863f207d93467312431d107f50f0e2ab (commit)
via 9c7272f0833da2bfdf513d41bc41cdbc5f4fc5f7 (commit)
via f79ec2066662b2c32c9e62ee372c9c230d206b89 (commit)
via edb5fb00a6865884f99be01a9e97f44243a9deb9 (commit)
via 551196862e4e9dfda510f59c53b0a3ff3153e4ed (commit)
via 6a06fbb7b73fe55d6b9057f8154652e1ae8f883c (commit)
via c6386875ba57a806c896ba097afef525671de4a0 (commit)
via ddaaf0fb8605fced72e84410fc7ac834e529eb53 (commit)
via 1a01e7c6b0eaed1bfe70d48692e1103c6e9ee2d9 (commit)
via 36bc18a810a13f884d826842abbdd6d744ff6481 (commit)
via a8ebe3d5f17f12490012a1a3c69d17b6e9362805 (commit)
via 50cfacb78f3998e5ecc653090e4f1a11dfb3d8dd (commit)
via c5a22423d09e3bf670fb0de0a98e6feb6176eb3f (commit)
via 6bda016bec556855c6d4e191f360f921faa40ded (commit)
via 21122961ecea30b3be7c788e09179d297e3233f0 (commit)
via c362e6217b556ce932250c340218f1ca16391070 (commit)
via 7978d7c385b072a344d969f71cdc68e1a1171ec2 (commit)
via 896c0c1edee117ea333c66b1adac8c6f4def3f2b (commit)
via b9da89d161e3903faa335f444af2bf05e40f926e (commit)
via c793cac124dd2eb34042f2e43abb099a26e34cb0 (commit)
via 5ef2d51bd6ae49b28282835156d1d6622beac4a6 (commit)
via f955cccff399ccc4e16b8e90f140f2e9a785a07b (commit)
via d40e34db392f834793fb9af487121776b4cec6e7 (commit)
via 4b5900d8b81522bd6ebe4d94d45dfb54d1982c62 (commit)
via b9d62f893fcc0b4c36aad0552810dcde304979d0 (commit)
via d5bb792ca130aac17e080325e4005ef417ceabd5 (commit)
via 118aa6cf395aec093fe12d7fb2d05441791a93fa (commit)
via 316a1245fe31e327223ca66797b789eaf9544c2c (commit)
via 4aef764338ed40a7fa9573b0e6e2ade817acd688 (commit)
via bb4287c562027eafe63ddac9fd4c7e1730335795 (commit)
via e299b3551edbe81be2062fcaef9319d681d0d15b (commit)
via a08f8d99b87b0b0f681a27eba8e25e2fb0abd034 (commit)
via 5f4d10850850cd95af5e95a16848c8c07a273d88 (commit)
via 7b5d48229b7faa16f69e87fb269f17db0291d89f (commit)
via 8b1e5da10ab58d2aa5eb84bf27de511294f061ef (commit)
via 55e22ca83ae50d6fe422cd0542f2a1a5934b2dd2 (commit)
via f9f791a1b147c404a489485dba5eca49f8dbcbb9 (commit)
via 14ea2c1b230a62f312346fb16716b3dd4850815b (commit)
via 77f5e65ecfb669ea1d2fd74b74fbbf0d0c20daf8 (commit)
via a87ded7b88a85b40f2aec5e5b6c972dd7b74b3a9 (commit)
via 86fa6981e7487e2c2df4337aa75ed2d93c32eaf2 (commit)
via f03265d9cda1f5f8df238efa9b7a20330e5711f1 (commit)
via c1fe188b154a4e81372629316be3d3a7820efdac (commit)
via 4b8b687e885287ed85dafffcebbb8d03d7ea2c38 (commit)
via c7341d5a6b334464d84672229d9912d99347db34 (commit)
via 1de05205afe1ecd1f1fa2befc6843d0dc70adefc (commit)
via 1437d0631b209500db8371c425e896deb66ec9f9 (commit)
via c65d6b55b3a592906c470c566f57ad8ceacc1605 (commit)
via 15c22686d0e33d87262bc9075296eeddd7d955f7 (commit)
via 1fc87489b40b3100badf184a7c266387bae47def (commit)
via 2e86a2830cfef688a27e17353b84f59f8147ab23 (commit)
via 25dcbff6ef0088e080d92b3cbc346ae0b5071d9d (commit)
via dc9366eb0592157e2125967690f0aed61b17bcf7 (commit)
via 6e5d74e74756fafe59e8198c4cc462cf7c57e12c (commit)
via 5cf70512f835032c413f2554af07814e1dc05cd6 (commit)
via 9753a2f6d74dc92d2ad94993a5479ee0edbc6887 (commit)
via 1a4dd9ddae4ce51724b4e08c6304e7c64f8f916f (commit)
via 7cbbff33a502dcba0264a1935840345274b8aee2 (commit)
via 50dbe6e1bc8589db8e900299ef03ce9ead4ef3d7 (commit)
via 1672e0d98d88d11b5c7d5793bd2cf29cbb56696f (commit)
via f7bb4e3a0d3738e8cce3dcded6ef12c9949cb85f (commit)
via e45ced6c5e06b0092ac9f5497aa580cfad0c953c (commit)
via 5f6fd321915fae0194e01322d22cad4e451e8d20 (commit)
via 44959fa81858df7d06fd83b0595b66709e344074 (commit)
via f8c4e718c26a0181821398e09d96113c0ff49c15 (commit)
via 6dbb839a78d343b0a7435ec7db46ee359b1f62ec (commit)
via 4a612d6f67d605f480ce7eec7fd9ca1cd1087b35 (commit)
via ea86f5344298e24801c262d9b52afcc9cb692959 (commit)
via 2b841ec2066db4870beaa5298feb02f5e20faf7b (commit)
via d933941d6c5ce5b2dcaaa869919b6f3de06b725d (commit)
via b1b07054c08eea65ba8d1a9f771796d686f337e5 (commit)
via bb98f85480da563f4f6438abdabb68a69bc746b8 (commit)
via 603555e563725616246912711419637add54c961 (commit)
via 1cccfb31f5ba0dbc1cd3c679daf2f5b40252c6e0 (commit)
via d274ecf4ddf76768af57e27f654b9ce6784b391c (commit)
via 79a964dca572024447adf92e50959dc88aa4f27a (commit)
via 73f07bffaf8d423295a38dde51dfe6ec7b273280 (commit)
via ea0de82ec2d7f109ba179d8d55130805e680f02d (commit)
via 9e1a8675d49a5bbb881f664f8b7a1081432c994d (commit)
via 1f5345a614203185f7fdacbf4b000d2676de26dd (commit)
via 62e755d208d7359e722a248df3e74278779272c8 (commit)
via 49fced1206db40c71208c201165d65f92c69cebe (commit)
via 2e0ce1c84d328bde4dca24b7cfc8b9c033ed271c (commit)
via 0792e0e1199e76dce19a0f9fbdb29c75b8be8a9b (commit)
via 921ea8830c62bf4a60af1783bdd443fd43286359 (commit)
via 8ecbe595e69a84a0e3053884832d63af37113680 (commit)
via df97be551faa262732128493c8ac159ae4b7f6d3 (commit)
via 7d45f3df96ca108f6d7d0c5e4279e22b820145fa (commit)
via 611a3ca929d6529f4e7576b0e2ffb588839c1b21 (commit)
via d20928fac9ab65449db910bd99a0f48ad29fb22b (commit)
via b565cf21c80945d5e9baa6871653aae5add2d493 (commit)
via 05ed43104ef2c3f75779438111e2913dbd4555a6 (commit)
via f98450c6eee6878ebf5b052d231758026d250427 (commit)
via c871dadee1817d4b9f3ba6ee792730c9eccf88e0 (commit)
via b451e98a909e1a6afa71c4a4655adc4cfeea5249 (commit)
via d4620bee57be53f7a6b14c01b2ea22d22a61bef0 (commit)
via 9875b36538d35f2292ddc3bb5e7c60e1582aa087 (commit)
via 673cff9b8b3105f74ce97c202a0727f9e83e56e6 (commit)
via 199add01b6704e1cd8a48945bd775fbe8524fa75 (commit)
via ecd78df2707734ccb2d0f6e5426321fa399befaa (commit)
via 134e805d3e18cf700a5046912b8dca9301fe6f2e (commit)
via 01cca2f95e4a448cbfb7dc940cc38fe89300b15f (commit)
via 9ef920e933bf2ea228c909cf81636e6d9577e51e (commit)
via a7e8b06b8901309632fad842ffd7d90a81447c80 (commit)
via 65b48a81404cb058c75c562f7dfdeb74f07eba72 (commit)
via 2979a883540d9ce6e41dd0509ea2a345de9cf050 (commit)
via 3de43e7beb9839fa268a73be77de73a7b7cd97db (commit)
via 15c7c1d8a535000e94ed36f4259d0ede32001408 (commit)
via 4ef97a1b459849ad190244c36b36d45bdd078030 (commit)
via 7ba71655a425ac44721f97cc0ad7922ca15bce43 (commit)
via afbf7e8e3aa24152ad58e430c8d37d82e5751f1c (commit)
via 0e39210161e7c547ab53afb86997303e24a42c0c (commit)
via 279a558a4d0fad268738ec916628c9c12cfcaf5b (commit)
via 9dfd0db952fc07dccebbc244df2a20a6eda14b2c (commit)
via d538e36decd5628c084dbd5a7de13719b8b92121 (commit)
via 8362122330c97c8c4a15da4e7ba8aa29f0c11157 (commit)
via 2123df0ebfc7ade46784ef412226490d59f8ce05 (commit)
via fbf25dfdfdba2c057e7ccdae4e0d6a2139c66dd5 (commit)
from bf7bf0b1083e2748d04205c67e245614e0b42929 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 025edc48851da0e21aea57628f5fb8cd305a281f
Merge: bf7bf0b 24e5b4e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Mar 22 22:51:17 2017 +0100
Merge remote-tracking branch 'gdb/master' into indexcxx
commit 24e5b4e682a92788ffa676e963b7f1dec2101333
Author: Max Filippov <jcmvbkbc@gmail.com>
Date: Wed Mar 22 10:19:14 2017 -0700
gas: xtensa: make trampolines relaxation work with jumps in slots other than 0
add_jump_to_trampoline assumes that jump instruction is in slot 0,
when it's in other slot that results in fixup that references NULL symbol,
which results in segfault later in xtensa_make_cached_fixup.
Search for the non-NULL symbol in the tc_frag_data.slot_symbols and check
that there's exactly one such slot.
xtensa_relax_frag for RELAX_TRAMPOLINE reassigns fixup from the original
instruction with jump to generated jump in the trampoline frag, but does not
fix its fx_r_type or fx_size. That results in "undecodable fix" or
"fixup not contained within frag" error messages during relaxation.
Fix both these fields.
gas/
2017-03-22 Max Filippov <jcmvbkbc@gmail.com>
* config/tc-xtensa.c (xtensa_relax_frag): Change fx_size of the
reassigned fixup to size of jump instruction (3) and fx_r_type
to BFD_RELOC_XTENSA_SLOT0_OP, as there's only one slot.
(add_jump_to_trampoline): Search
origfrag->tc_frag_data.slot_symbols for the slot with non-NULL
symbol and use that slot instead of slot 0.
commit b67aeab02c05fdd654f132a550dd4f196cb1f6d3
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Wed Mar 22 10:35:07 2017 -0400
Remove lwp -> pid conversion in linux_nat_xfer_partial
The linux_nat_xfer_partial does a conversion of inferior_ptid: if it's
an LWP (ptid::lwp != 0), it builds a new ptid with the lwp as
the pid and assigns that temporarily to inferior_ptid. For example, if
inferior_ptid is:
{ .pid = 1234, .lwp = 1235 }
it will assign this to inferior_ptid for the duration of the call:
{ .pid = 1235, .lwp = 0 }
Instead of doing this, this patch teaches the inf-ptrace implementation
of xfer_partial to deal with ptids representing lwps by using
get_ptrace_pid.
Also, in linux_proc_xfer_spu and linux_proc_xfer_partial, we use ptid_get_lwp
instead of ptid_get_pid. While not strictly necessary, since the content of
/proc/<pid> and /proc/<lwp> should be the same, it's a bit safer, because:
- some files under /proc/<pid>/ may not work if the <pid> thread is
running, just like ptrace requires a stopped thread. The current
thread's lwp id is more likely to be in the necessary state (stopped).
- if the leader (<pid>) had exited and is thus now zombie, then several
files under "/proc/<pid>" won't work, while they will if you use
"/proc/<lwp>".
The testsuite found no regression on native amd64 linux.
gdb/ChangeLog:
* inf-ptrace.c (inf_ptrace_xfer_partial): Get pid from ptid
using get_ptrace_pid.
* linux-nat.c (linux_nat_xfer_partial): Don't set/restore
inferior_ptid.
(linux_proc_xfer_partial, linux_proc_xfer_spu): Use lwp of
inferior_ptid instead of pid.
commit 11997a83a040245406b6e2e9978c6720f17e80c4
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Mar 22 14:01:03 2017 +0000
Sync top level config files with master versions in the FSF config project.
* config.sub: Sync with master version in config project.
* config.guess: Likewise.
commit 79778b30dc5881a8d88b55744cab53d95fa6fda2
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Mar 22 12:40:24 2017 +0000
Remove @code for python
There's no reason to use @code for Python the name of a programming
language.
gdb/doc:
2017-03-22 Yao Qi <yao.qi@linaro.org>
* python.texi (Inferiors In Python): Remove @code from Python.
commit ffdbe8642e74527795b695988a176f0920d58f96
Author: Yao Qi <yao.qi@linaro.org>
Date: Wed Mar 22 12:35:31 2017 +0000
Wrap locally used classes in anonymous namespace
Both aarch64-tdep.c and arm-tdep.c defines a class instruction_reader, which
violates ODR, but linker doesn't an emit error. I fix this issue by wrapping
them by anonymous namespace, but I think it is better to apply this for all
locally used classes.
If it is a good idea to put locally used class into anonymous namespace, we
should document this rule into GDB coding convention, or even GCC coding
convention. Note that anonymous namespace has been used in GCC but GCC
coding convention doesn't mention the it.
gdb:
2017-03-22 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c: Wrap locally used classes in anonymous
namespace.
* arm-tdep.c: Likewise.
* linespec.c: Likewise.
* ui-out.c: Likewise.
commit 9d736fbf01d20bc03804fa0cb49d99fdf6628fab
Author: Jonah Graham <jonah@kichwacoders.com>
Date: Wed Mar 22 11:19:44 2017 +0000
Import sys in gdb/python/lib/gdb/printer/bound_registers.py
Pick up missing bits from the patch merged in.
2017-03-22 Jonah Graham <jonah@kichwacoders.com>
PR gdb/19637
* python/lib/gdb/printer/bound_registers.py: Import sys.
commit 3e6c75670009a5e9eaa72eb456b296451b3c46fe
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 22 00:00:28 2017 +0000
Automatic date update in version.in
commit 4c8798c9923de48c71430ce262d83042179232c6
Author: Sandra Loosemore <sandra@codesourcery.com>
Date: Tue Mar 21 13:25:09 2017 -0700
Disable shared library tests for nios2-*-elf.
The Nios II processor documentation defines relocations for PIC and
shared libraries as part of the GNU/Linux ABI only; GCC rejects -fpic
on bare-metal.
2017-03-21 Sandra Loosemore <sandra@codesourcery.com>
ld/
* testsuite/lib/ld-lib.exp (check_shared_lib_support): Return
false for nios2-*-elf.
commit 3de88e9afbf0d8d10a8c4ce1415c219120e0a0c1
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue Mar 21 11:35:54 2017 -0400
windows: Use ptid from regcache in register fetch/store
Use the ptid from the regcache so we don't depend on the current value
of the inferior_ptid global.
Also, change how the current thread is passed to sub-functions. The
windows_fetch_inferior_registers function sets current_thread then calls
do_windows_fetch_inferior_registers, which reads current_thread. This
very much looks like passing a parameter through a global variable. I
think it would be more straightforward to pass the thread as a
parameter.
gdb/ChangeLog:
* windows-nat.c (do_windows_fetch_inferior_registers): Add
windows_thread_info parameter and use it instead of
current_thread.
(windows_fetch_inferior_registers): Don't set current_thread,
pass the thread to do_windows_fetch_inferior_registers. Use
ptid from regcache instead of inferior_ptid.
(do_windows_store_inferior_registers): Add windows_thread_info
parameter and use it instead of current_thread.
(windows_store_inferior_registers): Don't set current_thread,
pass the thread to do_windows_store_inferior_registers. Use
ptid from regcache instead of inferior_ptid.
commit 0e7b8f61069f1219ca53a9dd927ba55c9a7eefd4
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue Mar 21 11:35:42 2017 -0400
Remove remaining reference to struct serial::current_timeout
I get this when trying to build for --host=x68_64-w64-mingw32:
/home/emaisin/src/binutils-gdb/gdb/ser-mingw.c: In function 'void ser_windows_raw(serial*)':
/home/emaisin/src/binutils-gdb/gdb/ser-mingw.c:166:8: error: 'struct serial' has no member named 'current_timeout'
scb->current_timeout = 0;
^~~~~~~~~~~~~~~
It is just a leftover from
9bcbdca808b5f9fec6217d20bd4b48a56008c460
PR remote/21188: Fix remote serial timeout
gdb/ChangeLog:
* ser-mingw.c (ser_windows_raw): Remove reference to
struct serial::current_timeout.
commit 2253c8f089193b90141e08436417bc8ea1dd6015
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Tue Mar 21 14:21:02 2017 +0100
S/390: Remove vx2 facility flag
This patch removes the vx2 facility flag. It will not be used by GCC
and was a misnomer anyway.
Committed to mainline and 2.28 branch.
include/ChangeLog:
2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* opcode/s390.h (S390_INSTR_FLAG_VX2): Remove.
(S390_INSTR_FLAG_FACILITY_MASK): Adjust value.
gas/ChangeLog:
2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/tc-s390.c (s390_parse_cpu): Remove S390_INSTR_FLAG_VX2
from cpu_table. Remove vx2, and novx2 from cpu_flags.
opcodes/ChangeLog:
2017-03-21 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* s390-mkopc.c (main): Remove vx2 check.
* s390-opc.txt: Remove vx2 instruction flags.
commit 4a14e306468af630a27302d68b8d4c59733141b4
Author: Andi Kleen <ak@linux.intel.com>
Date: Tue Mar 21 13:05:19 2017 +0000
Add --inlines option to objdump to include scope backtrace of inlined functions when generating source line number information.
* objdump.c (unwind_inlines): Add.
(option_values): Add OPTION_INLINES.
(show_line): Unwind inlines if requested.
(main): Parse OPTION_INLINES.
(usage): Document --inlines.
* doc/binutils.texi: Document --inlines.
* NEWS: Likewise.
commit 645d3342ba2b920722991255513030bb903b794e
Author: Rinat Zelig <rinat@mellanox.com>
Date: Tue Mar 21 11:37:33 2017 +0000
arc/nps400: Add cp16/cp32 instructions to opcodes library
Instructions for loading or storing 16/32B data from one address type to
another.
gas/ChangeLog
* testsuite/gas/arc/nps400-11.s: New file.
* testsuite/gas/arc/nps400-11.d: New file.
include/ChangeLog
* opcode/arc.h (insn_class_t): Add DMA class.
opcodes/ChangeLog
* arc-nps400-tbl.h: Add cp32/cp16 instructions format.
* arc-opc.c: Add F_NPS_NA, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET.
(insert_nps_imm_offset): New function.
(extract_nps_imm_offset): New function.
(insert_nps_imm_entry): New function.
(extract_nps_imm_entry): New function.
commit 75d7d2986cf896fac8f0690db68ebc552e0b0339
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 21 11:48:57 2017 +0000
Update support for GNU BUILD notes so that version notes can contain extra information, and stack protection notes can contain numeric values.
* readelf.c (print_gnu_build_attribute_name): Allow stack
protection notes to contain numeric values. Use a colon rather
than a space to separate a string name from its values. Decode
the numeric value of a stack protection note.
* objcopy.c (merge_gnu_build_notes): Allow version notes to
contain extra text after the protocol version number.
commit 5badf10a18af78c57dd4ce8e6a6ead7f46e1a878
Author: Ivo Raisr <ivo.raisr@oracle.com>
Date: Tue Mar 21 04:39:33 2017 -0700
Decode properly flags of %ccr register on sparc64.
While at it, decode also properly one-bit flags for %fsr (accrued and
current exception flags were mixed up).
ChangeLog entry:
2017-03-21 Ivo Raisr <ivo.raisr@oracle.com>
PR tdep/20928
* gdb/sparc-tdep.h (gdbarch_tdep) <sparc64_ccr_type>: New field.
* gdb/sparc64-tdep.c (sparc64_ccr_type): New function.
(sparc64_fsr_type): Fix %fsr decoding.
ChangeLog entry for testsuite:
2017-03-21 Ivo Raisr <ivo.raisr@oracle.com>
PR tdep/20928
* gdb.arch/sparc64-regs.exp: New file.
* gdb.arch/sparc64-regs.S: Likewise.
commit 21701718895d186285e6daf04cc7342c6c88fb03
Author: Tristan Gingold <gingold@adacore.com>
Date: Fri Mar 17 11:12:05 2017 +0100
ld: check overflow only for allocated sections.
* ldlang.c (lang_check_section_addresses): Check only for
allocated sections.
commit cee59b3feac9a8f6300a5b788e3db4e15af2a894
Author: Tim Wiederhake <tim.wiederhake@intel.com>
Date: Tue Mar 21 08:19:59 2017 +0100
Fix break on Python 2
This changes the return type of "gdb.BtraceInstruction.data ()" from
"memoryview" to "buffer" on Python 2.7 and below, similar to what
"gdb.Inferior.read_memory ()" does.
commit 09220eae9df07c40d206a35e6caaecba92ab8f46
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 21 00:00:24 2017 +0000
Automatic date update in version.in
commit 639a9038c9f4fc50b6a57c18fe84db4559367a96
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 20 18:23:47 2017 -0400
spu: Use ptid from regcache instead of inferior_ptid
The implementations of to_fetch_registers/to_store_registers in the spu
code use some functions that rely on inferior_ptid. It's simpler for
now to set/restore inferior_ptid.
gdb/ChangeLog:
* spu-linux-nat.c (spu_fetch_inferior_registers,
spu_store_inferior_registers): Use ptid from regcache, set and
restore inferior_ptid.
* spu-multiarch.c (spu_fetch_registers, spu_store_registers):
Likewise.
commit bcc0c096d5b0f77482cdb3154acd2515a0ca832f
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 20 17:37:36 2017 -0400
Use ptid from regcache in almost all remaining nat files
This patch contains almost all of the remaining changes needed to make
to_fetch_registers/to_store_registers/to_prepare_to_store independent of
inferior_ptid. It contains only some "trivial" changes, the more
complicated ones are in separate patches.
gdb/ChangeLog:
* i386-linux-nat.c (fetch_register, store_register,
i386_linux_fetch_inferior_registers,
i386_linux_store_inferior_registers): Use ptid from regcache.
* ia64-linux-nat.c (ia64_linux_fetch_register,
ia64_linux_store_register): Likewise.
* inf-ptrace.c (inf_ptrace_fetch_register,
inf_ptrace_store_register): Likewise.
* m32r-linux-nat.c (m32r_linux_fetch_inferior_registers,
m32r_linux_store_inferior_registers): Likewise.
* m68k-bsd-nat.c (m68kbsd_fetch_inferior_registers,
m68kbsd_store_inferior_registers): Likewise.
* m68k-linux-nat.c (fetch_register, store_register,
m68k_linux_fetch_inferior_registers,
m68k_linux_store_inferior_registers): Likewise.
* m88k-bsd-nat.c (m88kbsd_fetch_inferior_registers,
m88kbsd_store_inferior_registers): Likewise.
* mips-fbsd-nat.c (mips_fbsd_fetch_inferior_registers,
mips_fbsd_store_inferior_registers): Likewise.
* mips-linux-nat.c (mips64_linux_regsets_fetch_registers,
mips64_linux_regsets_store_registers): Likewise.
* mips-nbsd-nat.c (mipsnbsd_fetch_inferior_registers,
mipsnbsd_store_inferior_registers): Likewise.
* mips-obsd-nat.c (mips64obsd_fetch_inferior_registers,
mips64obsd_store_inferior_registers): Likewise.
* nto-procfs.c (procfs_fetch_registers, procfs_store_registers):
Likewise.
* ppc-fbsd-nat.c (ppcfbsd_fetch_inferior_registers,
ppcfbsd_store_inferior_registers): Likewise.
* ppc-linux-nat.c (ppc_linux_fetch_inferior_registers,
ppc_linux_store_inferior_registers): Likewise.
* ppc-nbsd-nat.c (ppcnbsd_fetch_inferior_registers,
ppcnbsd_store_inferior_registers): Likewise.
* ppc-obsd-nat.c (ppcobsd_fetch_registers,
ppcobsd_store_registers): Likewise.
* procfs.c (procfs_fetch_registers, procfs_store_registers):
Likewise.
* ravenscar-thread.c (ravenscar_fetch_registers,
ravenscar_store_registers, ravenscar_prepare_to_store):
Likewise.
* record-btrace.c (record_btrace_fetch_registers,
record_btrace_store_registers, record_btrace_prepare_to_store):
Likewise.
* remote-sim.c (gdbsim_fetch_register, gdbsim_store_register):
Lookup inferior using ptid from regcache, instead of
current_inferior.
* remote.c (remote_fetch_registers, remote_store_registers): Use
ptid from regcache.
* rs6000-nat.c (fetch_register, store_register): Likewise.
* s390-linux-nat.c (s390_linux_fetch_inferior_registers,
s390_linux_store_inferior_registers): Likewise.
* sh-nbsd-nat.c (shnbsd_fetch_inferior_registers,
shnbsd_store_inferior_registers): Likewise.
* sol-thread.c (sol_thread_fetch_registers,
sol_thread_store_registers): Likewise.
* sparc-nat.c (sparc_fetch_inferior_registers,
sparc_store_inferior_registers): Likewise.
* tilegx-linux-nat.c (fetch_inferior_registers,
store_inferior_registers): Likewise.
* vax-bsd-nat.c (vaxbsd_fetch_inferior_registers,
vaxbsd_store_inferior_registers): Likewise.
* xtensa-linux-nat.c (fetch_gregs, store_gregs, fetch_xtregs,
store_xtregs): Likewise.
commit c0f55cc689a57deb342b988b8f0ecb908f0a76e1
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:59 2017 -0700
Add rvalue reference tests and docs
This patch adds tests for the initial rvalue reference support patchset. All
of the new tests are practically mirrored regular references tests and, except
for the demangler ones, are introduced in new files, which are set to be
compiled with -std=gnu++11. Tested are printing of rvalue reference types and
values, rvalue reference parameters in function overloading, demangling of
function names containing rvalue reference parameters, casts to rvalue
reference types, application of the sizeof operator to rvalue reference types
and values, and support for rvalue references within the gdb python module.
gdb/ChnageLog
PR gdb/14441
* NEWS: Mention support for rvalue references in GDB and python.
* doc/gdb.texinfo (C Plus Plus Expressions): Mention that GDB
supports both lvalue and rvalue references.
gdb/testsuite/ChangeLog
PR gdb/14441
* gdb.cp/demangle.exp: Add rvalue reference tests.
* gdb.cp/rvalue-ref-casts.cc: New file.
* gdb.cp/rvalue-ref-casts.exp: New file.
* gdb.cp/rvalue-ref-overload.cc: New file.
* gdb.cp/rvalue-ref-overload.exp: New file.
* gdb.cp/rvalue-ref-params.cc: New file.
* gdb.cp/rvalue-ref-params.exp: New file.
* gdb.cp/rvalue-ref-sizeof.cc: New file.
* gdb.cp/rvalue-ref-sizeof.exp: New file.
* gdb.cp/rvalue-ref-types.cc: New file.
* gdb.cp/rvalue-ref-types.exp: New file.
* gdb.python/py-rvalue-ref-value-cc.cc: New file.
* gdb.python/py-rvalue-ref-value-cc.exp: New file.
commit 15c0a2a9305648095f5586a02b5a5017e1643e99
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:57 2017 -0700
Add rvalue references to overloading resolution
This patch introduces changes to rank_one_type() dealing with ranking an rvalue
reference type when selecting a best viable function from a set of candidate
functions. The 4 new added rules for rvalue references are:
1) An rvalue argument cannot be bound to a non-const lvalue reference parameter
and an lvalue argument cannot be bound to an rvalue reference parameter.
[C++11 13.3.3.1.4p3]
2) If a conversion to one type of reference is an identity conversion, and a
conversion to the second type of reference is a non-identity conversion, choose
the first type. [C++11 13.3.3.2p3]
3) An rvalue should be first tried to bind to an rvalue reference, and then to
an lvalue reference. [C++11 13.3.3.2p3]
4) An lvalue reference to a function gets higher priority than an rvalue
reference to a function. [C++11 13.3.3.2p3]
This patch is not exactly correct. See c++/15372 for tracking overload
resolution bugs.
gdb/ChangeLog
PR gdb/14441
* gdbtypes.c (rank_one_type): Implement overloading
resolution rules regarding rvalue references.
commit aa0061181ab00081e9907447561e589d6edee9f2
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:54 2017 -0700
Convert lvalue reference type check to general reference type check
In almost all contexts (except for overload resolution rules and expression
semantics), lvalue and rvalue references are equivalent. That means that in all
but these cases we can replace a TYPE_CODE_REF check to a TYPE_IS_REFERENCE
check and, for switch statements, add a case label for a rvalue reference type
next to a case label for an lvalue reference type. This patch does exactly
that.
gdb/ChangeLog
PR gdb/14441
* aarch64-tdep.c (aarch64_type_align)
(aarch64_extract_return_value, aarch64_store_return_value): Change
lvalue reference type checks to general reference type checks.
* amd64-tdep.c (amd64_classify): Likewise.
* amd64-windows-tdep.c (amd64_windows_passed_by_integer_register):
Likewise.
* arm-tdep.c (arm_type_align, arm_extract_return_value)
(arm_store_return_value): Likewise.
* ax-gdb.c (gen_fetch, gen_cast): Likewise.
* c-typeprint.c (c_print_type): Likewise.
* c-varobj.c (adjust_value_for_child_access, c_value_of_variable)
(cplus_number_of_children, cplus_describe_child): Likewise.
* compile/compile-c-symbols.c (generate_vla_size): Likewise.
* completer.c (expression_completer): Likewise.
* cp-support.c (make_symbol_overload_list_adl_namespace):
Likewise.
* darwin-nat-info.c (info_mach_region_command): Likewise.
* dwarf2loc.c (entry_data_value_coerce_ref)
(value_of_dwarf_reg_entry): Likewise.
* eval.c (ptrmath_type_p, evaluate_subexp_standard)
(evaluate_subexp_for_address, evaluate_subexp_for_sizeof):
Likewise.
* findvar.c (extract_typed_address, store_typed_address):
Likewise.
* gdbtypes.c (rank_one_type): Likewise.
* hppa-tdep.c (hppa64_integral_or_pointer_p): Likewise.
* infcall.c (value_arg_coerce): Likewise.
* language.c (pointer_type): Likewise.
* m32c-tdep.c (m32c_reg_arg_type, m32c_m16c_address_to_pointer):
Likewise.
* m88k-tdep.c (m88k_integral_or_pointer_p): Likewise.
* mn10300-tdep.c (mn10300_type_align): Likewise.
* msp430-tdep.c (msp430_push_dummy_call): Likewise.
* ppc-sysv-tdep.c (do_ppc_sysv_return_value)
(ppc64_sysv_abi_push_param, ppc64_sysv_abi_return_value):
Likewise.
* printcmd.c (print_formatted, x_command): Likewise.
* python/py-type.c (typy_get_composite, typy_template_argument):
Likewise.
* python/py-value.c (valpy_referenced_value)
(valpy_get_dynamic_type, value_has_field): Likewise.
* s390-linux-tdep.c (s390_function_arg_integer): Likewise.
* sparc-tdep.c (sparc_integral_or_pointer_p): Likewise.
* sparc64-tdep.c (sparc64_integral_or_pointer_p): Likewise.
* spu-tdep.c (spu_scalar_value_p): Likewise.
* symtab.c (lookup_symbol_aux): Likewise.
* typeprint.c (whatis_exp, print_type_scalar): Likewise.
* valarith.c (binop_types_user_defined_p, unop_user_defined_p):
Likewise.
* valops.c (value_cast_pointers, value_cast)
(value_reinterpret_cast, value_dynamic_cast, value_addr, typecmp)
(value_struct_elt, value_struct_elt_bitpos)
(value_find_oload_method_list, find_overload_match)
(value_rtti_indirect_type): Likewise.
* valprint.c (val_print_scalar_type_p, generic_val_print):
Likewise.
* value.c (value_actual_type, value_as_address, unpack_long)
(pack_long, pack_unsigned_long, coerce_ref_if_computed)
(coerce_ref): Likewise.
* varobj.c (varobj_get_value_type): Likewise.
commit 3fcf899da106890f3948093c2424f9dff67d6fe0
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:52 2017 -0700
Support rvalue references in the gdb python module (includes doc/)
This patch adds the ability to inspect rvalue reference types and values using
the gdb python module. This is achieved by creating two wrappers for
valpy_reference_value(), using the ReferenceExplorer class to handle the
objects of rvalue reference types and placing necessary checks for a
TYPE_CODE_RVALUE_REF type code next to the checks for a TYPE_CODE_REF type
code.
gdb/ChangeLog
PR gdb/14441
* doc/python.texi (Types in Python): Add TYPE_CODE_RVALUE_REF to
table of constants.
* python/lib/gdb/command/explore.py: Support exploring values
of rvalue reference types.
* python/lib/gdb/types.py: Implement get_basic_type() for
rvalue reference types.
* python/py-type.c (pyty_codes) <TYPE_CODE_RVALUE_REF>: New
constant.
* python/py-value.c (valpy_getitem): Add an rvalue reference
check.
(valpy_reference_value): Add new parameter "refcode".
(valpy_lvalue_reference_value, valpy_rvalue_reference_value):
New wrappers for valpy_reference_value().
* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
(gdbpy_invoke_xmethod): Likewise.
commit 4297a3f0029974c62628d69b6f3f9ef25f01ea7d
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:50 2017 -0700
Support DW_TAG_rvalue_reference type
Make gdb DWARF reader understand the DW_TAG_rvalue_reference type tag. Handling
of this tag is done in the existing read_tag_reference_type() function, to
which we add a new parameter representing the kind of reference type
(lvalue vs rvalue).
gdb/ChangeLog
PR gdb/14441
* dwarf2read.c (process_die, read_type_die_1): Handle the
DW_TAG_rvalue_reference_type DIE.
(read_tag_reference_type): Add new parameter "refcode".
commit e1cb3213476485a01aa11ecedfa186e386cb4bdb
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:48 2017 -0700
Implement printing of rvalue reference types and values
This patch provides the ability to print out names of rvalue reference types
and values of those types. This is done in full similarity to regular
references, and as with them, we don't print out "const" suffix because all
rvalue references are const.
gdb/ChangeLog
PR gdb/14441
* c-typeprint.c (c_print_type, c_type_print_varspec_prefix)
(c_type_print_modifier, c_type_print_varspec_suffix)
(c_type_print_base): Support printing rvalue reference types.
* c-valprint.c (c_val_print, c_value_print): Support printing
rvalue reference values.
commit e4347c89f3a14b480fc88581d1363835f7b99b68
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:46 2017 -0700
Implement demangling for rvalue reference type names
This patch fixes demangling of names containing rvalue reference typenames by
handling DEMANGLE_COMPONENT_RVALUE_REFERENCE demangle component.
gdb/ChangeLog
PR gdb/14441
* cp-name-parser.y (ptr_operator): Handle the '&&' token in
typename.
* cp-support.c (replace_typedefs): Handle
DEMANGLE_COMPONENT_RVALUE_REFERENCE.
* python/py-type.c (typy_lookup_type): Likewise.
commit 53cc15f5fe1f5e2358994d4f60f1c2aa9115004d
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:43 2017 -0700
Support rvalue reference type in parser
This patch implements correct parsing of C++11 rvalue reference typenames.
This is done in full similarity to the handling of regular references by adding
a '&&' token handling in c-exp.y, defining an rvalue reference type piece, and
implementing a follow type derivation in follow_types().
gdb/ChangeLog
PR gdb/14441
* c-exp.y (ptr_operator): Handle the '&&' token in the typename.
* parse.c (insert_type): Change assert statement.
(follow_types): Handle rvalue reference types.
* parser-defs.h (enum type_pieces) <tp_rvalue_reference>: New
constant.
commit a65cfae5f8b268158c23a862e7a996d15bbcef0e
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:41 2017 -0700
Add ability to return rvalue reference values from value_ref
Parameterize value_ref() by the kind of reference type the value of which
is requested. Change all callers to use the new API.
gdb/ChangeLog
PR gdb/14441
* ada-lang.c (ada_evaluate_subexp): Adhere to the new
value_ref() interface.
* c-valprint.c (c_value_print): Likewise.
* infcall.c (value_arg_coerce): Likewise.
* python/py-value.c (valpy_reference_value): Likewise.
* valops.c (value_cast, value_reinterpret_cast)
(value_dynamic_cast, typecmp): Likewise.
(value_ref): Parameterize by kind of return value reference type.
* value.h (value_ref): Add new parameter "refcode".
commit 3b22433085e4cfee83f5c52f3baa8fb9bc67f8dd
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:39 2017 -0700
Change {lookup,make}_reference_type API
Parameterize lookup_reference_type() and make_reference_type() by the kind of
reference type we want to look up. Create two wrapper functions
lookup_{lvalue,rvalue}_reference_type() for lookup_reference_type() to simplify
the API. Change all callers to use the new API.
gdb/Changelog
PR gdb/14441
* dwarf2read.c (read_tag_reference_type): Use
lookup_lvalue_reference_type() instead of lookup_reference_type().
* eval.c (evaluate_subexp_standard): Likewise.
* f-exp.y: Likewise.
* gdbtypes.c (make_reference_type, lookup_reference_type):
Generalize with rvalue reference types.
(lookup_lvalue_reference_type, lookup_rvalue_reference_type): New
convenience wrappers for lookup_reference_type().
* gdbtypes.h (make_reference_type, lookup_reference_type): Add a
reference kind parameter.
(lookup_lvalue_reference_type, lookup_rvalue_reference_type): Add
wrappers for lookup_reference_type().
* guile/scm-type.c (gdbscm_type_reference): Use
lookup_lvalue_reference_type() instead of lookup_reference_type().
* guile/scm-value.c (gdbscm_value_dynamic_type): Likewise.
* parse.c (follow_types): Likewise.
* python/py-type.c (typy_reference, typy_lookup_type): Likewise.
* python/py-value.c (valpy_get_dynamic_type, valpy_getitem):
Likewise.
* python/py-xmethods.c (gdbpy_get_xmethod_result_type)
(gdbpy_invoke_xmethod): Likewise.
* stabsread.c: Provide extra argument to make_reference_type()
call.
* valops.c (value_ref, value_rtti_indirect_type): Use
lookup_lvalue_reference_type() instead of lookup_reference_type().
commit f9aeb8d499fa12610610dc19618230304c698f6c
Author: Artemiy Volkov <artemiyv@acm.org>
Date: Mon Mar 20 13:47:30 2017 -0700
Add definitions for rvalue reference types
This patch introduces preliminal definitions regarding C++11 rvalue references
to the gdb type system. In addition to an enum type_code entry, a field in
struct type and an accessor macro for that which are created similarly to the
lvalue references counterparts, we also introduce a TYPE_REFERENCE convenience
macro used to check for both kinds of references simultaneously as they are
equivalent in many contexts.
gdb/Changelog
PR gdb/14441
* gdbtypes.h (enum type_code) <TYPE_CODE_RVALUE_REF>: New constant.
(TYPE_IS_REFERENCE): New macro.
(struct type): Add rvalue_reference_type field.
(TYPE_RVALUE_REFERENCE_TYPE): New macro.
commit 51457a05780da82b5321a1574caed95ac0e6923e
Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Date: Mon Mar 20 14:57:51 2017 -0400
Add -file-list-shared-libraries MI command
This change adds the MI equivalent for the "info sharedlibrary"
command. The command was already partially documented but ignored as
it was not implemented. The new MI command works similarly to the CLI
command, taking an optional regular expression as an argument and
outputting the library information.
I included a test for the new command in mi-solib.exp.
gdb/doc/ChangeLog:
* gdb.texinfo (gdb/mi Symbol Query Commands): Document new MI
command file-list-shared-libraries
(GDB/MI Async Records): Update documentation of library-loaded with new
field.
gdb/ChangeLog:
* NEWS: Add an entry about new '-file-list-shared-libraries' command.
* mi/mi-cmd-file.c (mi_cmd_file_list_shared_libraries):
New function definition.
* mi/mi-cmds.c (mi_cmds): Add -file-list-shared-libraries command.
* mi/mi-cmds.h (mi_cmd_file_list_shared_libraries):
New function declaration.
* mi/mi-interp.c (mi_output_solib_attribs): New Function.
* mi/mi-interp.h: New file.
* solib.c (info_sharedlibrary_command): Replace for loop with
ALL_SO_LIBS macro
* solib.h (update_solib_list): New function declaration.
(so_list_head): Move macro.
* solist.h (ALL_SO_LIBS): New macro.
gdb/testsuite/ChangeLog:
* gdb.mi/mi-solib.exp (test_file_list_shared_libraries):
New procedure.
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
commit 5b291c049658614196197e4ea4bb42bcc176b876
Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Date: Mon Mar 20 14:57:45 2017 -0400
Add a better diagnostic message in mi_gdb_test
When using mi_gdb_test, if it fails because of the presence of
unexpected output, the error message is only the message passed as
the argument with no indication that there was an unexpected output.
This change adds an additional text to the failure message to
indicate that there was an unexpected output.
gdb/testsuite/ChangeLog:
* lib/mi-support.exp (mi_gdb_test): Add additional message
for unexpected output.
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
commit e696b3ad342dde596dcdad4cff6b875c361ed6d0
Author: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Date: Mon Mar 20 14:57:32 2017 -0400
Remove unused parameter in solib_add and update_solib_list
The target parameter in both solib_add and update_solib_list
functions is not used anymore and as not been used for a while. This
change removes the parameter to clean up the code a little bit.
gdb/ChangeLog:
* infcmd.c (post_create_inferior): Remove unused argument in
call to solib_add.
* remote.c (remote_start_remote): Likewise.
* solib-frv.c (frv_fetch_objfile_link_map): Likewise.
* solib-svr4.c: (svr4_fetch_objfile_link_map): Likewise.
(enable_break): Likewise.
* solib.c (update_solib_list): Remove unused target argument
and its documentation.
(solib_add): Remove unused target argument. Remove unused
argument in call to update_solib_list.
(info_sharedlibrary_command): Remove unused argument in call
to update_solib_list.
(sharedlibrary_command): Remove unused argument in call to
solib_add.
(handle_solib_event): Likewise.
(reload_shared_libraries): Likewise.
* solib.h (solib_add): Remove unused target argument.
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
commit 59a561480d547d041127630b1ba17a284eef8225
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 20 18:55:39 2017 +0100
Fix spurious FAILs with examine-backward.exp
The test case examine-backward.exp issues the command "x/-s" after the end
of the first string in TestStrings, but without making sure that this
string is preceded by a string terminator. Thus GDB may spuriously print
some random characters from before that string, and then the test fails.
This patch assures that TestStrings is preceded by a string terminator.
gdb/testsuite/ChangeLog:
* gdb.base/examine-backward.c (Barrier): New character array
constant, to ensure that TestStrings is preceded by a string
terminator.
commit 39e224f6f9ee3f6123d4c9ddb7c0955e0604c1b4
Author: Mark Wielaard <mark@klomp.org>
Date: Mon Mar 20 15:32:34 2017 +0100
readelf: Don't error on .debug files with NOBITS .dynamic section.
The fix for PR binutils/17512 added a check for the dynamic segment being
inside the actual ELF file. If not an error message would be produced:
readelf: Error: the dynamic segment offset + size exceeds the size of the file
Unfortunately for separate debuginfo files it is common for the dynamic
segment not being inside the file because the .dynamic section is NOBITS.
Since the check is done unconditionally in process_program_headers and
process_program_headers is always called (to setup dynamic_addr in case
it is needed). The error is produced on any operations done on any .debug
file (even if no program headers or the dynamic segment is used).
If there are section headers then a cross check is done to see if the
.dynamic section is NOBITS in which case dynamic_addr is set to zero
without a warning or error (which is then checked first before any
operation on the dynamic segement is done).
Move the check for the dynamic segment being inside the actual ELF file
after the cross check with the section headers to suppress the error for
.debug files.
binutils/ChangeLog:
* readelf.c (process_program_headers): Move dynamic_addr check
after .dynamic section cross check.
commit e406e428dfe9d64e3be0b7a3c1c97c09edc5bdba
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 20 16:57:07 2017 +0000
Update descriptions of the .2byte, .4byte and .8byte directives.
* doc/as.texinfo (2byte): Note that if no expressions are present
the directive does nothing. Emphasize that the output is
unaligned, and that this can have an effect on the relocations
generated.
(4byte): Simplify description. Refer back to the 2byte
description.
(8byte): Likewise.
commit dcb84eda0c5f25835251a311c4d6704e70cfa498
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Mon Mar 20 17:30:01 2017 +0100
s390: Fix displaced-stepping certain relative branch insns
On s390x targets GDB can not handle displaced stepping correctly for some
relative branch instructions, such as cij (compare immediate and branch
relative). When setting a breakpoint on such an instruction and
single-stepping over it, the branch is never taken. This is because the
check in s390_displaced_step_fixup for relative branch instructions is
incomplete.
Instead of completing the list of relative branch instructions to check
against, this patch just treats relative branches and non-branching
instructions in the same way and adjusts the PC with the negated
displacement in both cases.
gdb/ChangeLog:
* s390-linux-tdep.c (is_rsi, is_rie): Remove functions.
(s390_displaced_step_fixup): Cover relative branches with the
default fixup handling. This fixes lack of support for some
relative branch instructions.
commit 4ea0266c22eccf6e7719469a981267659e47ef3a
Author: Stafford Horne <shorne@gmail.com>
Date: Mon Mar 20 15:33:51 2017 +0000
Update the openrisc previous program counter (ppc) when running code in the cgen based simulator.
* or1kcommon.cpu: Add pc set semantics to also update ppc.
commit d5e0ba9cdb0d002b97bab722cce673ce86cf7b11
Author: Richard Earnshaw <Richard.Earnshaw@arm.com>
Date: Mon Mar 20 14:56:22 2017 +0000
[arm] Document missing -mfpu entries.
Nick pointed out that I hadn't documented the new -mfpu option
neon-vfpv3 and mentioned that some others were missing.
Having looked through the list only one (neon-fp16) really should be
documented; the other two entries in the real table should not be
documented as they are aliases kept for legacy compatibility reasons.
This patch adds the missing entries and notes in the main table that
the other two entries should not be documented.
I've also fixed a small spelling error in the accompanying text.
* config/tc-arm.c (arm_fpus): Note entires that should not be
documented.
* doc/c-arm.texi (-mfpu): Add missing FPU entries for neon-vfpv3 and
neon-fp16. Fix spelling error.
commit d3375ddde4011242ef576083459fc51d0ddc53c8
Author: Richard Earnshaw <Richard.Earnshaw@arm.com>
Date: Mon Mar 20 10:03:15 2017 +0000
[arm] Add neon-vfp3 as an alias for neon to -mfpu.
GCC recently added neon-vfpv3 as an alias for neon in -mfpu. This patch adds a similar alias in GAS.
* config/tc-arm.c (arm_fpus): Add neon-vfpv3 as an alias for neon.
commit 5c62b69b91e13c6b9c126480680cff836c0b282d
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 20 00:00:40 2017 +0000
Automatic date update in version.in
commit aaed6f5be3a41a88cc13c744e88af78f5a42dd5b
Author: Alan Modra <amodra@gmail.com>
Date: Mon Mar 20 08:25:50 2017 +1030
PR 21266, unstable qsort in bfd/elf64-ppc.c
PR 21266
* elf64-ppc.c (compare_symbols): Stabilize sort.
commit 84e8538ee3c8139a99e75e661fff500bb93c8cd5
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 19 00:00:24 2017 +0000
Automatic date update in version.in
commit bbdf9b697fc0652379794267b23f597e15c7db57
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 18 00:00:41 2017 +0000
Automatic date update in version.in
commit 82e66161e649e5e801c40a52cba759292a76a59a
Author: Alan Modra <amodra@gmail.com>
Date: Fri Mar 17 08:37:15 2017 +1030
DT_TEXTREL vs IFUNC
If you should somehow link non-pic objects into a PIE or shared
library, resulting in an object with DT_TEXTREL (text relocations)
set, and your executable or shared library also contains GNU indirect
functions, then you're in trouble. To apply dynamic relocations
ld.so will make the text segment writable. On most systems this will
make the text segment non-executable, which will then result in a
segfault when ld.so tries to run ifunc resolvers when applying
relocations against ifuncs.
This patch teaches PowerPC ld to detect the situation, and warn.
* elf64-ppc.c (struct ppc_link_hash_table): Add
local_ifunc_resolver and maybe_local_ifunc_resolver.
(ppc_build_one_stub): Set flags on emitting dynamic
relocation to ifunc.
(ppc64_elf_relocate_section): Likewise.
(ppc64_elf_finish_dynamic_symbol): Likewise.
(ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with
local dynamic relocs to ifuncs.
* elf32-ppc.c (struct ppc_elf_link_hash_table): Add
local_ifunc_resolver and maybe_local_ifunc_resolver.
(ppc_elf_relocate_section): Set flag on emitting dynamic
relocation to ifuncs.
(ppc_elf_finish_dynamic_symbol): Likewise.
(ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local
dynamic relocs to ifuncs.
commit d9cb6cdcfa12368f2f639f8cd06d18b94bd98a39
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:57 2017 -0400
i386-gnu-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* i386-gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Use
ptid from regcache.
commit 1afaf9f42fe201872d758214beceff85325a988a
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:56 2017 -0400
i386-darwin-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers,
i386_darwin_store_inferior_registers): Use ptid from regcache.
commit aac12e2497a42b47223680ab1b5924137de77c9a
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:55 2017 -0400
i386-bsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* i386-bsd-nat.c (i386bsd_fetch_inferior_registers,
i386bsd_store_inferior_registers): Use ptid from regcache.
commit bbe1eef1e585e19d5493882e55f2b7902df9827a
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:55 2017 -0400
hppa-obsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* hppa-obsd-nat.c (hppaobsd_fetch_registers,
hppaobsd_store_registers): Use ptid from regcache.
commit 10799020a9336b6a88c1ace53c601960b840d580
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:54 2017 -0400
hppa-nbsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* hppa-nbsd-nat.c (hppanbsd_fetch_registers,
hppanbsd_store_registers): Use ptid from regcache.
commit 00204cf7da01d99205aacc994e5c594ed12bba64
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:53 2017 -0400
hppa-linux-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* hppa-linux-nat.c (fetch_register, store_register): Use ptid
from regcache. Use get_ptrace_pid.
commit 11a3371447f15af26def26646ad2eb7a4386462d
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:52 2017 -0400
corelow: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* corelow.c (get_core_register_section): Use ptid from regcache,
update doc.
commit 317cd4925a9d6ef6f8752a771cb56e85ddfb30f0
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:51 2017 -0400
bsd-uthread: Use ptid from regcache instead of inferior_ptid
This is one of the rare to_fetch/store_registers implementations that will
still rely (for now) on inferior_ptid (because of the memory read/write
operations). We therefore have to add a save/restore of inferior_ptid. We'll
be able to remove it when we make the memory operations accept the ptid as a
parameter.
gdb/ChangeLog:
* bsd-uthread.c (bsd_uthread_fetch_registers,
bsd_uthread_store_registers): Use ptid from regcache, set and
restore inferior_ptid.
commit 9ac8a7c281aa949cf588cccb9977ea51eaff8130
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:50 2017 -0400
arm-nbsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* arm-nbsd-nat.c (fetch_register, fetch_regs, fetch_fp_register,
fetch_fp_regs, store_register, store_regs, store_fp_register,
store_fp_regs): Use ptid from regcache.
commit 4ac4bb6ad5ead16be5ca6996a3e325c26ddf71da
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Mar 17 13:55:49 2017 -0400
arm-linux-nat.c: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* arm-linux-nat.c (fetch_fpregs, store_fpregs, fetch_regs,
store_regs, fetch_wmmx_regs, store_wmmx_regs, fetch_vfp_regs,
store_vfp_regs): Use ptid from regcache.
commit 0dd6ae21da832f351a3722d2f8bac187fc3bdfef
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 17 17:36:51 2017 +0000
Fix displaying the value associated a GNU BUILD note that uses an ascii name.
* readelf.c (print_gnu_build_attribute_name): Fix off by one error
printing the value for a build note with an ascii name.
commit 9bcbdca808b5f9fec6217d20bd4b48a56008c460
Author: Pedro Alves <palves@redhat.com>
Date: Fri Mar 17 16:08:12 2017 +0000
PR remote/21188: Fix remote serial timeout
As Gareth McMullin <gareth@blacksphere.co.nz> reports at
<https://sourceware.org/ml/gdb-patches/2017-02/msg00560.html>, the
timeout mechanism in ser-unix.c was broken by commit 048094acc
("target remote: Don't rely on immediate_quit (introduce quit
handlers)").
Instead of applying a local fix, and since we now finally always use
interrupt_select [1], let's get rid of hardwire_readchar entirely, and
use ser_base_readchar instead, which has similar timeout handling,
except for the bug.
Smoke tested with:
$ socat -d -d pty,raw,echo=0 pty,raw,echo=0
2017/03/14 14:08:13 socat[4994] N PTY is /dev/pts/14
2017/03/14 14:08:13 socat[4994] N PTY is /dev/pts/15
2017/03/14 14:08:13 socat[4994] N starting data transfer loop with FDs [3,3] and [5,5]
$ gdbserver /dev/pts/14 PROG
$ gdb PROG -ex "tar rem /dev/pts/15"
and then a few continues/ctrl-c's, plus killing gdbserver and socat.
[1] - See FIXME comments being removed.
gdb/ChangeLog:
2017-03-17 Pedro Alves <palves@redhat.com>
PR remote/21188
* ser-base.c (ser_base_wait_for): Add comment.
(do_ser_base_readchar): Improve comment based on the ser-unix.c's
version.
* ser-unix.c (hardwire_raw): Remove reference to
scb->current_timeout.
(wait_for, do_hardwire_readchar, hardwire_readchar): Delete.
(hardwire_ops): Install ser_base_readchar instead of
hardwire_readchar.
* serial.h (struct serial) <current_timeout, timeout_remaining>:
Remove fields.
commit 7503099f3e29739d34cb1224d54fba96404e6e61
Author: Jonah Graham <jonah@kichwacoders.com>
Date: Fri Mar 17 14:57:44 2017 +0000
Fix PR gdb/19637: bound_registers.py: Add support for Python 3
Fix this the same way gdb/python/lib/gdb/printing.py handles it.
gdb/Changelog:
2017-03-17 Jonah Graham <jonah@kichwacoders.com>
PR gdb/19637
* python/lib/gdb/printer/bound_registers.py: Add support for
Python 3.
commit 4b94dd2de12dd0389615700b13b63260e162ccf0
Author: Alan Modra <amodra@gmail.com>
Date: Fri Mar 17 19:06:12 2017 +1030
E6500 spr mnemonics
PR 21248
* ppc-opc.c (powerpc_opcodes): Enable mfivor32, mfivor33,
mtivor32, and mtivor33 for e6500. Move mfibatl and mfibatu after
those spr mnemonics they alias. Similarly for mtibatl, mtibatu.
commit 1d3fa25f5802fe2250f32f335ad57897a62e0fe2
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 14 22:01:34 2017 +1030
ld sec64k test fix
* testsuite/ld-elf/sec64k.exp: Don't run on h8300 and ip2k.
commit b4fcfd3b4d173129207f804f5eee4557c788d66b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 17 00:00:34 2017 +0000
Automatic date update in version.in
commit 7942e96e435d1cf4d4dbf58c47bb28d9f628c9e6
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Thu Mar 16 19:50:24 2017 +0100
Big-endian targets: Don't ignore offset into DW_OP_stack_value
Recently I fixed a bug that caused a DW_OP_implicit_pointer with non-zero
offset into a DW_OP_implicit_value to be handled incorrectly on big-endian
targets. GDB ignored the offset and copied the wrong bytes:
https://sourceware.org/ml/gdb-patches/2017-01/msg00251.html
But there is still a similar issue when a DW_OP_implicit_pointer points
into a DW_OP_stack_value instead; and again, the offset is ignored. There
is an important difference, though: While implicit values are treated like
blocks of data and anchored at the lowest-addressed byte, stack values
traditionally contain integer numbers and are anchored at the *least
significant* byte. Also, stack values do not come in varying sizes, but
are cut down appropriately when used. Thus, on big-endian targets the
scenario looks like this (higher addresses shown right):
|<- - - - - Stack value - - - - - - ->|
| |
|<- original object ->|
|
| offset ->|####|
^^^^
de-referenced
implicit pointer
(Note how the original object's size influences the position of the
de-referenced implicit pointer within the stack value. This is not the
case for little-endian targets, where the original object starts at offset
zero within the stack value.)
This patch implements the logic indicated in the above diagram and adds an
appropriate test case. A new function dwarf2_fetch_die_type_sect_off is
added; it is used for retrieving the original object's type, so its size
can be determined. That type is passed to dwarf2_evaluate_loc_desc_full
via a new parameter.
gdb/ChangeLog:
* dwarf2loc.c (indirect_synthetic_pointer): Get data type of
pointed-to DIE and pass it to dwarf2_evaluate_loc_desc_full.
(dwarf2_evaluate_loc_desc_full): New parameter subobj_type; rename
byte_offset to subobj_byte_offset. Fix the handling of
DWARF_VALUE_STACK on big-endian targets when coming via an
implicit pointer.
(dwarf2_evaluate_loc_desc): Adjust call to
dwarf2_evaluate_loc_desc_full.
* dwarf2loc.h (dwarf2_fetch_die_type_sect_off): New declaration.
* dwarf2read.c (dwarf2_fetch_die_type_sect_off): New function.
gdb/testsuite/ChangeLog:
* lib/dwarf.exp: Add support for DW_OP_implicit_pointer.
* gdb.dwarf2/nonvar-access.exp: Add test for stack value location
and implicit pointer into such a location.
commit 6ebac3fbacebaebd9e2c9393da3b612342d953a9
Author: Doug Evans <dje@google.com>
Date: Thu Mar 16 10:43:21 2017 -0700
gdb.python/py-lazy-string (pointer): Really add new typedef.
Somehow got dropped in earlier commit.
gdb/testsuite/ChangeLog:
* gdb.python/py-lazy-string (pointer): Really add new typedef.
commit 2cc36e25db366d70a975702b61c7700ae934d4d0
Author: Doug Evans <dje@google.com>
Date: Thu Mar 16 10:39:26 2017 -0700
Remove collision markers from earlier commit
commit a8be5506b626a57f84771c5ddfaefabf2d61c017
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 16 16:44:55 2017 +0000
Add support for a GNU BUILD note type to record the enum size.
include * elf/common.h (GNU_BUILD_ATTRIBUTE_SHORT_ENUM): New GNU BUILD
note type.
binutils * readelf.c (print_gnu_build_attribute_name): Add support for
GNU_BUILD_ATTRIBUTE_SHORT_ENUM.
commit ba14f3792fe007bedd88b62e554c79258adc53d9
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 16 16:35:18 2017 +0000
Support CBNZ, CBZ, REV, REV16 and REVSH in arm process record
This patch adds the support for these instructions in arm process
record.
gdb:
2017-03-16 Yao Qi <yao.qi@linaro.org>
* arm-tdep.c (thumb_record_misc): Decode CBNZ, CBZ, REV16,
and REVSH instructions.
commit b121eeb9971ebfceffc38e6131fdc15ec4188599
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 16 16:35:18 2017 +0000
Fix arm process record for some instructions
I look at some fails in gdb.reverse/solib-precsave.exp in -mthumb,
they are caused by some bugs on decoding these three instructions,
uxtb, ldr and mrc. This patch adds unit tests against these three
instructions, and fix these bugs by re-organizing the code to match
the table in ARM ARM.
gdb:
2017-03-16 Yao Qi <yao.qi@linaro.org>
* arm-tdep.c [GDB_SELF_TEST]: include "selftests.h".
(arm_record_test): Declare.
(_initialize_arm_tdep) [GDB_SELF_TEST]: call register_self_test.
(thumb_record_ld_st_reg_offset): Rewrite the opcode matching to
align with the manual.
(thumb_record_misc): Adjust the code order to align with the
manual.
(thumb2_record_decode_insn_handler): Fix instruction matching.
(instruction_reader_thumb): New class.
(arm_record_test): New function.
commit 728a79135f51a1c20719ebaf3c98446d9ee248db
Author: Yao Qi <yao.qi@linaro.org>
Date: Thu Mar 16 16:35:18 2017 +0000
Add instruction_reader to arm process record
This patch adds an abstract class abstract_memory_reader a
and pass it to the code reading instructions in arm process record,
rather than using target_read_memory to read from real target. This
paves the way for adding more unit tests to arm process record.
gdb:
2017-03-16 Yao Qi <yao.qi@linaro.org>
* arm-tdep.c (abstract_memory_reader): New class.
(instruction_reader): New class.
(extract_arm_insn): Add argument 'reader'. Callers updated.
(decode_insn): Likewise.
commit a7c0469f992721b30665ba92f4f2f74d29032a84
Author: Doug Evans <dje@google.com>
Date: Wed Mar 15 15:44:45 2017 -0700
Copy lazy string handling fixes from Python.
This patch keeps the Scheme side of lazy string handling in sync
with the python size, bringing over fixes for
PRs python/17728, python/18439, python/18779.
gdb/ChangeLog:
* guile/scm-lazy-string.c (lazy_string_smob): Clarify use of LENGTH
member. Change type of TYPE member to SCM. All uses updated.
(lsscm_make_lazy_string_smob): Add assert.
(lsscm_make_lazy_string): Flag bad length values.
(lsscm_elt_type): New function.
(gdbscm_lazy_string_to_value): Rewrite to use
lsscm_safe_lazy_string_to_value.
(lsscm_safe_lazy_string_to_value): Fix handling of TYPE_CODE_PTR.
* guile/scm-value.c (gdbscm_value_to_lazy_string): Flag bad length
values. Fix TYPE_CODE_PTR. Handle TYPE_CODE_ARRAY. Handle typedefs
in incoming type.
* guile/guile-internal.h (tyscm_scm_to_type): Declare.
* guile/scm-type.c (tyscm_scm_to_type): New function.
gdb/testsuite/ChangeLog:
* gdb.guile/scm-value.c (main) Delete locals sptr, sn.
* gdb.guile/scm-lazy-string.c: New file.
* gdb.guile/scm-value.exp: Move lazy string tests to ...
* gdb.guile/scm-lazy-string.exp: ... here, new file. Add more tests
for pointer, array, typedef lazy strings.
commit 34b433203b5f56149c27a8dfea21a921392cb158
Author: Doug Evans <dje@google.com>
Date: Wed Mar 15 15:35:13 2017 -0700
Fix various python lazy string bugs.
gdb/ChangeLog:
PR python/17728, python/18439, python/18779
* python/py-lazy-string.c (lazy_string_object): Clarify use of LENGTH
member. Change type of TYPE member to PyObject *. All uses updated.
(stpy_convert_to_value): Fix handling of TYPE_CODE_PTR.
(gdbpy_create_lazy_string_object): Flag bad length values.
Handle TYPE_CODE_ARRAY with possibly different user-provided length.
Handle typedefs in incoming type.
(stpy_lazy_string_elt_type): New function.
(gdbpy_extract_lazy_string): Call it.
* python/py-value.c (valpy_lazy_string): Flag bad length values.
Fix handling of TYPE_CODE_PTR. Handle TYPE_CODE_ARRAY. Handle
typedefs in incoming type.
gdb/testsuite/ChangeLog:
PR python/17728, python/18439, python/18779
* gdb.python/py-value.c (main) Delete locals sptr, sn.
* gdb.python/py-lazy-string.c (pointer): New typedef.
(main): New locals ptr, array, typedef_ptr.
* gdb.python/py-value.exp: Move lazy string tests to ...
* gdb.python/py-lazy-string.exp: ... here. Add more tests for pointer,
array, typedef lazy strings.
commit a3a5feccd26be653efbdf1408874b98962baaa50
Author: Doug Evans <dje@google.com>
Date: Sun Nov 6 16:10:00 2016 -0800
New function tyscm_scm_to_type.
gdb/ChangeLog:
* guile/guile-internal.h (tyscm_scm_to_type): Declare.
* guile/scm-type.c (tyscm_scm_to_type): New function.
commit f8d995870f957d5fd32fb21fb4afe76a754ddf31
Author: Doug Evans <dje@google.com>
Date: Sun Nov 6 16:03:56 2016 -0800
Lazy strings can be made from arrays too.
gdb/doc/ChangeLog:
* guile.texi (Lazy Strings In Guile): Mention arrays.
* python.texi (Lazy Strings In Python): Ditto.
commit 28f1c60507ad4ca2252cebada30d2f63ec3b772f
Author: Jiong Wang <jiong.wang@arm.com>
Date: Thu Mar 16 09:55:18 2017 +0000
[Patch] Fix variable type glitch in inf-ptrace.c
gdb/
* inf-ptrace.c (inf_ptrace_peek_poke): Change the type to "ULONGEST"
for "skip".
commit ec3b243d4308ee56c9e3c62470b10ed2a822eb51
Author: Thomas Preud'homme <thomas.preudhomme@arm.com>
Date: Thu Mar 16 14:02:31 2017 +0000
Fix expect for gdb.cp/m-static.exp
The expectation in gdb.cp/m-static.exp for the ptype of
single_constructor is to get in the result of destructor with the
following prototype: ~single_constructor(int).
Yet, m-static.cc declares the destructor as ~single_constructor(). This
commit fixes the expectation.
2017-03-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
gdb/testsuite/
* gdb.cp/m-static.exp: Fix expectation for prototype of
test5.single_constructor and single_constructor::single_constructor.
commit 2c52e2e8c9e8f733cc0772d1400b0f4d3eb7379c
Author: Rinat Zelig <rinat@mellanox.com>
Date: Thu Mar 16 10:05:22 2017 +0000
gas/arc: Limit special handling of t/nt flag to ARCv2
In a later commit I'll be adding a new version of the ".nt" flag for an
ARC700 extension (NPS400) which does not require this same special
handling.
In this commit I have restricted the special flag handling to only apply
if we are assembling for ARCv2. This is a restructuring commit, and
there should be no user visible changes after this commit.
gas/ChangeLog:
* config/tc-arc.c (assemble_insn): Only handle ".t" and ".nt"
specially for ARCv2.
commit e189bfe660d335f3b7c61446c9b5d3b0f0701606
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 16 00:00:45 2017 +0000
Automatic date update in version.in
commit aab2c17756ee5bef0ea5783a460a0990450b3bd5
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 16:49:16 2017 -0700
Mips: Fix TLS LDM GOT entry.
gold/
* mips.cc (Mips_got_entry::hash()): Shift addend to reduce
possibility of collisions.
(Mips_got_entry::equals): Fix case for GOT_TLS_LDM
entries.
commit 4d78db49e6eee097365e31f9b5b47e5391243979
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 16:46:26 2017 -0700
Mips: Omit empty objects for merging processor-specific data.
gold/
* mips.cc (Mips_relobj::merge_processor_specific_data_): New data
member.
(Mips_relobj::merge_processor_specific_data): New method.
(Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
to false, only if the input file is a binary or if object has no
contents except the section name string table and an empty symbol
table with the undefined symbol.
(Target_mips::do_finalize_sections): Refactor. Skip empty object files
for merging processor-specific data.
commit 152c92b261fd9e4655688bef746ca32352f56bc4
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 16:41:48 2017 -0700
Mips: Add support for resolving multiple consecutive relocations.
gold/
* mips.cc (Target_mips::Relocate::calculated_value_): New data
member.
(Target_mips::Relocate::calculate_only_): Likewise.
(Target_mips::Relocate::relocate): Handle multiple consecutive
relocations with the same offset.
commit 1e1247c89ca2ce10dbf2c3ed61fba942f9c536ca
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 15:52:12 2017 -0700
Remove redundant checks for relocatable link (MIPS).
gold/
* mips.cc (Target_mips::Relocate::relocate): Remove redundant
checks for relocatable link.
(Mips_relocate_functions::reljalr): Likewise.
commit 1728969e93010862fe0ef7985cabe03a4494a63e
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 15:47:58 2017 -0700
Add support for .MIPS.options section.
gold/
* mips.cc (class Mips_output_section_options): New class.
(Target_mips::do_make_output_section): New method.
commit c3847462f86778e97222a72378a84182f92c644a
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 15:43:25 2017 -0700
Improve relocation overflow errors on MIPS.
gold/
* mips.cc (Mips_relocate_functions::rel26): Don't print relocation
overflow error message.
(Target_mips::relocate_special_relocatable): Improve relocation
overflow error message.
(Target_mips::Relocate::relocate): Likewise.
commit 453018bf4490421a995cd76b3d2a3f322359c6a5
Author: Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
Date: Wed Mar 15 15:35:15 2017 -0700
Correct the definition of _gp and _GLOBAL_OFFSET_TABLE_ symbols for MIPS.
gold/
* mips.cc (symbol_refs_local): Return false if a symbol
is from a dynamic object.
(Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
(Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and
STB_LOCAL.
(Target_mips::do_finalize_sections): Set _gp after all the checks
for creating .got are done.
(Target_mips::Scan::global): Remove unused code.
commit b416fe873ef44b2a613c9266c6462a481926d986
Author: Kito Cheng <kito.cheng@gmail.com>
Date: Tue Mar 7 18:15:02 2017 +0800
RISC-V: Fix assembler for c.li, c.andi and c.addiw
- They can accept 0 in imm field
2017-03-14 Kito Cheng <kito.cheng@gmail.com>
* riscv-opc.c (riscv_opcodes> <c.li>: Use the 'o' immediate encoding.
<c.andi>: Likewise.
<c.addiw> Likewise.
commit 03b039a518fa0f89a9900a44a8b874cc91061305
Author: Kito Cheng <kito.cheng@gmail.com>
Date: Tue Mar 7 19:56:40 2017 +0800
RISC-V: Fix assembler for c.addi, rd can be x0
opcodes/ChangeLog:
2017-03-14 Kito Cheng <kito.cheng@gmail.com>
* riscv-opc.c (riscv_opcodes) <c.addi>: Use match_opcode.
commit 9494d9636612cd9bd22e38625fbc89147beafea7
Author: Tristan Gingold <gingold@adacore.com>
Date: Tue Mar 14 14:54:37 2017 +0100
ld-checks: tweak overflow checks.
* testsuite/ld-checks/checks.exp (overflow_check): Disable for
non-elf targets.
commit 7cb7b948ce62831a999f88054a6b2d39afbe926e
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Mar 15 09:19:42 2017 +0000
Fix building riscv targets with gcc v6.3.1
* config/tc-riscv.c (riscv_pre_output_hook): Fix compile time
warning about discarding a const qualifier.
commit cc7e96c25d59db0a5279da0a0ff36d61151f3021
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 15 00:00:36 2017 +0000
Automatic date update in version.in
commit c98763221af696a9e0c6686da7d65881bfd6bdd0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 14 12:56:49 2017 -0700
Add DW_OP_GNU_variable_value
Sync GCC dwarf.def change
2017-03-14 Jakub Jelinek <jakub@redhat.com>
PR debug/77589
* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
commit 87c336f60eccc6506ff19369c29575f43fea02ea
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Tue Mar 14 19:20:46 2017 +0100
inf-ptrace: Do not stop memory transfers after a single word
When inf_ptrace_xfer_partial performs a memory transfer via ptrace with
PT_READ_I, PT_WRITE_I (aka PTRACE_PEEKTEXT, PTRACE_POKETEXT), etc., then
it currently transfers at most one word. This behavior yields degraded
performance, particularly if the caller has significant preparation work
for each invocation. And indeed it has for writing, in
memory_xfer_partial in target.c, where all of the remaining data to be
transferred is copied to a temporary buffer each time, for breakpoint
shadow handling. Thus large writes have quadratic runtime and can take
hours.
Note: On GNU/Linux targets GDB usually does not use
inf_ptrace_xfer_partial for large memory transfers, but attempts a single
read/write from/to /proc/<pid>/mem instead. However, the kernel may
reject writes to /proc/<pid>/mem (such as kernels prior to 2.6.39), or
/proc may not be mounted. In both cases GDB falls back to the ptrace
mechanism.
This patch fixes the performance issue by attempting to fulfill the whole
transfer request in inf_ptrace_xfer_partial, using a loop around the
ptrace call.
gdb/ChangeLog:
PR gdb/21220
* inf-ptrace.c (inf_ptrace_xfer_partial): In "case
TARGET_OBJECT_MEMORY", extract the logic for ptrace peek/poke...
(inf_ptrace_peek_poke): ...here. New function. Now also loop
over ptrace peek/poke until end of buffer or error.
commit d47c3ff7d55122befac848fe64b7445789c78787
Author: Kuan-Lin Chen <rufus@andestech.com>
Date: Thu Mar 2 14:54:32 2017 +0800
RISC-V: Define DWARF2_USE_FIXED_ADVANCE_PC.
gas/ChangeLog
2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
* config/tc-riscv.h (HWARD2_USE_FIXED_ADVANCE_PC): New define.
commit 2aece2ba02457e83fd2a780a8ac596b6a90adf29
Author: Kuan-Lin Chen <rufus@andestech.com>
Date: Fri Feb 10 14:58:52 2017 +0800
RISC-V: Fix DW_CFA_advance_loc relocation.
gas/ChangeLog:
2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
* config/tc-riscv.c (md_apply_fix): Set fx_frag and
fx_next->fx_frag for CFA_advance_loc relocations.
commit c1b465c94e26be629315bf28e3763dea9dea8336
Author: Kuan-Lin Chen <rufus@andestech.com>
Date: Thu Feb 2 15:27:18 2017 +0800
RISC-V: Fix the offset of CFA relocation.
gas/ChangeLog:
2017-03-02 Kuan-Lin Chen <rufus@andestech.com>
* config/tc-riscv.c (md_apply_fix): Compute the correct offsets
for CFA relocations.
commit 2c232b8361a044d689d12161b7a645d238586f5e
Author: Andrew Waterman <andrew@sifive.com>
Date: Mon Mar 13 12:46:33 2017 -0700
RISC-V: Fix [dis]assembly of srai/srli
These were simple copy/paste errors from the compressed left shift
pattern, which can't have a 0-register.
commit 9216a6f33592c350ad50696d5571c82e47b71a5e
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue Mar 14 09:09:54 2017 -0700
Use addr_mask to check VMA and LMA
Since BFD64 may be used on 32-bit address, we need to apply addr_mask
to check VMA and LMA.
* ldlang.c (lang_check_section_addresses): Use addr_mask to
check VMA and LMA.
commit cf81cf6081d1a8c15c477f903d15d7b88f31b686
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Tue Mar 14 10:25:39 2017 -0400
Make length_of_subexp static
It isn't used anywhere else than the file it's defined in.
gdb/ChangeLog:
* parse.c (length_of_subexp): Make static.
* parser-defs.h (length_of_subexp): Remove.
commit c799a79d66d09c442d85467986c2e8873f09297c
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Mar 14 12:57:09 2017 +0000
Try harder to find the correct symbol to associate with OPEN GNU BUILD notes.
* readelf.c (print_gnu_build_attribute_description): Move symbol
printing code to...
(print_symbol_for_build_attribute): New function. ...here.
Add to find the best symbol to associate with an OPEN note.
Add code to cache the symbol table and string table, so that they
are not loaded every time a note is displayed.
* testsuite/binutils-all/note-2-32.s: Add a function symbol.
* testsuite/binutils-all/note-2-64.s: Likewise.
* testsuite/binutils-all/note-2-32.d: Update expected note output.
* testsuite/binutils-all/note-2-64.d: Likewise.
commit 0efcde634d45f4cda03fd18c43ff449103559d7a
Author: Anton Kolesov <Anton.Kolesov@synopsys.com>
Date: Mon Mar 6 21:24:38 2017 +0300
Add test name argument to get_valueof, get_integer_valueof and get_sizeof
An optional parameter TEST has been added to get_hexadecimal_valueof in commit:
https://sourceware.org/ml/gdb-patches/2016-06/msg00469.html
This patch adds a similar optional parameter to other related methods that
retrieve expression values: get_valueof, get_integer_valueof and get_sizeof.
Thus tests that evaluate same expression multiple times can provide custom
test names, ensuring that test names will be unique.
gdb/testsuite/ChangeLog:
2017-03-14 Anton Kolesov <anton.kolesov@synopsys.com>
* lib/gdb.exp (get_valueof, get_integer_valueof, get_sizeof):
Add optional 'test' parameter.
commit a379284af268ed768674e7f452ca78dad2aaaf55
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date: Tue Mar 14 11:14:49 2017 +0100
linux-nat: Exploit /proc/<pid>/mem for writing
So far linux_proc_xfer_partial refused to handle write requests. This is
still based on the assumption that the Linux kernel does not support
writes to /proc/<pid>/mem. That used to be true, but has changed with
Linux 2.6.39 released in May 2011.
This patch lifts this restriction and now exploits /proc/<pid>/mem for
writing to inferior memory as well, if possible.
gdb/ChangeLog:
* linux-nat.c (linux_proc_xfer_partial): Handle write operations
as well.
commit 8a6200ba863f207d93467312431d107f50f0e2ab
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 14 00:11:09 2017 +0000
Restore test-cp-name-parser build
Commit c8b23b3f89fbb0 ("Add constructor and destructor to
demangle_parse_info") a while ago broke the "test-cp-name-parser"
build:
$ make test-cp-name-parser
[...]
src/gdb/cp-name-parser.y: In function âint main(int, char**)â:
src/gdb/cp-name-parser.y:2190:9: error: cannot convert âstd::unique_ptr<demangle_parse_info>â to âdemangle_parse_info*â in assignment
result = cp_demangled_name_to_comp (str2, &errmsg);
^
src/gdb/cp-name-parser.y:2199:38: error: âcp_demangled_name_parse_freeâ was not declared in this scope
cp_demangled_name_parse_free (result);
^
src/gdb/cp-name-parser.y:2211:14: error: cannot convert âstd::unique_ptr<demangle_parse_info>â to âdemangle_parse_info*â in assignment
result = cp_demangled_name_to_comp (argv[arg], &errmsg);
^
src/gdb/cp-name-parser.y:2219:43: error: âcp_demangled_name_parse_freeâ was not declared in this scope
cp_demangled_name_parse_free (result);
^
Makefile:2107: recipe for target 'test-cp-name-parser.o' failed
make: *** [test-cp-name-parser.o] Error 1
This commit restores it.
gdb/ChangeLog:
2017-03-14 Pedro Alves <palves@redhat.com>
* cp-name-parser.y (cp_demangled_name_to_comp): Update comment.
(main): Use std::unique_ptr. Remove calls to
cp_demangled_name_parse_free.
commit 9c7272f0833da2bfdf513d41bc41cdbc5f4fc5f7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 14 00:00:40 2017 +0000
Automatic date update in version.in
commit f79ec2066662b2c32c9e62ee372c9c230d206b89
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:40 2017 -0400
alpha-bsd-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* alpha-bsd-nat.c (alphabsd_fetch_inferior_registers,
alphabsd_store_inferior_registers): Use regcache->ptid instead
of inferior_ptid.
commit edb5fb00a6865884f99be01a9e97f44243a9deb9
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:40 2017 -0400
aix-thread: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* aix-thread.c (aix_thread_fetch_registers,
aix_thread_store_registers): Use regcache->ptid instead of
inferior_ptid.
commit 551196862e4e9dfda510f59c53b0a3ff3153e4ed
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:39 2017 -0400
aarc64-linux-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* aarch64-linux-nat.c (fetch_gregs_from_thread,
store_gregs_to_thread, fetch_fpregs_from_thread,
store_fpregs_to_thread): Use regcache->ptid instead of
inferior_ptid.
commit 6a06fbb7b73fe55d6b9057f8154652e1ae8f883c
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:39 2017 -0400
amd64-linux-nat: Use ptid from regcache instead of inferior_ptid
gdb/ChangeLog:
* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers,
amd64_linux_fetch_inferior_registers): Use regcache->ptid
instead of inferior_ptid.
commit c6386875ba57a806c896ba097afef525671de4a0
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:38 2017 -0400
Add asserts in target_fetch/store_registers
We are currently assuming that regcache->ptid is equal to inferior_ptid
when we call target_fetch/store_registers. These asserts just validate
that assumption. Also, since the following patches will change target
code to use regcache->ptid instead of inferior_ptid, asserting that they
are the same should ensure that our changes don't have any unintended
consequences.
gdb/ChangeLog:
* target.c (target_fetch_registers, target_store_registers): Add
assert.
commit ddaaf0fb8605fced72e84410fc7ac834e529eb53
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:51:38 2017 -0400
Introduce regcache_get_ptid
This patch introduces the regcache_get_ptid function, which can be used
to retrieve the ptid a regcache is connected to. It is used in
subsequent patches.
gdb/ChangeLog:
* regcache.h (regcache_get_ptid): New function.
* regcache.c (regcache_get_ptid): New function.
commit 1a01e7c6b0eaed1bfe70d48692e1103c6e9ee2d9
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:05 2017 -0400
gdbserver: Use pattern rule for the remaining %-ipa.o objects
gdb/gdbserver/ChangeLog:
* Makefile.in (%-ipa.o: %-ipa.c): New rule.
(ax-ipa.o: ax.c): Remove.
(linux-i386-ipa.o: linux-i386-ipa.c): Remove.
(linux-amd64-ipa.o: linux-amd64-ipa.c): Remove.
(linux-aarch64-ipa.o: linux-aarch64-ipa.c): Remove.
(linux-s390-ipa.o: linux-s390-ipa.c): Remove.
(linux-ppc-ipa.o: linux-ppc-ipa.c): Remove.
commit 36bc18a810a13f884d826842abbdd6d744ff6481
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:04 2017 -0400
gdbserver: Use pattern rule for IPA objects from common/
gdb/gdbserver/ChangeLog:
* Makefile.in (%-ipa.o: ../common/%.c): New rule.
(print-utils-ipa.o: ../common/print-utils.c): Remove.
(rsp-low-ipa.o: ../common/rsp-low.c): Remove.
(errors-ipa.o: ../common/errors.c): Remove.
(format-ipa.o: ../common/format.c): Remove.
(common-utils-ipa.o: ../common/common-utils.c): Remove.
commit a8ebe3d5f17f12490012a1a3c69d17b6e9362805
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:04 2017 -0400
gdbserver: Use pattern rule for IPA objects from gdbserver/
gdb/gdbserver/ChangeLog:
* Makefile.in (%-ipa.o: %.c): New rule.
(tracepoint-ipa.o: tracepoint.c): Remove.
(utils-ipa.o: utils.c): Remove.
(remote-utils-ipa.o: remote-utils.c): Remove.
(regcache-ipa.o: regcache.c): Remove.
(i386-linux-ipa.o: i386-linux.c): Remove.
(i386-mmx-linux-ipa.o: i386-mmx-linux.c): Remove.
(i386-avx-linux-ipa.o: i386-avx-linux.c): Remove.
(i386-mpx-linux-ipa.o: i386-mpx-linux.c): Remove.
(i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c): Remove.
(i386-avx-avx512-linux-ipa.o: i386-avx-avx512-linux.c): Remove.
(i386-avx-mpx-avx512-pku-linux-ipa.o: i386-avx-mpx-avx512-pku-linux.c): Remove.
(amd64-linux-ipa.o: amd64-linux.c): Remove.
(amd64-avx-linux-ipa.o: amd64-avx-linux.c): Remove.
(amd64-mpx-linux-ipa.o: amd64-mpx-linux.c): Remove.
(amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c): Remove.
(amd64-avx-avx512-linux-ipa.o: amd64-avx-avx512-linux.c): Remove.
(amd64-avx-mpx-avx512-pku-linux-ipa.o: amd64-avx-mpx-avx512-pku-linux.c): Remove.
(aarch64-ipa.o: aarch64.c): Remove.
(s390-linux32-ipa.o: s390-linux32.c): Remove.
(s390-linux32v1-ipa.o: s390-linux32v1.c): Remove.
(s390-linux32v2-ipa.o: s390-linux32v2.c): Remove.
(s390-linux64-ipa.o: s390-linux64.c): Remove.
(s390-linux64v1-ipa.o: s390-linux64v1.c): Remove.
(s390-linux64v2-ipa.o: s390-linux64v2.c): Remove.
(s390-te-linux64-ipa.o: s390-te-linux64.c): Remove.
(s390-vx-linux64-ipa.o: s390-vx-linux64.c): Remove.
(s390-tevx-linux64-ipa.o: s390-tevx-linux64.c): Remove.
(s390x-linux64-ipa.o: s390x-linux64.c): Remove.
(s390x-linux64v1-ipa.o: s390x-linux64v1.c): Remove.
(s390x-linux64v2-ipa.o: s390x-linux64v2.c): Remove.
(s390x-te-linux64-ipa.o: s390x-te-linux64.c): Remove.
(s390x-vx-linux64-ipa.o: s390x-vx-linux64.c): Remove.
(s390x-tevx-linux64-ipa.o: s390x-tevx-linux64.c): Remove.
(powerpc-32l-ipa.o: powerpc-32l.c): Remove.
(powerpc-altivec32l-ipa.o: powerpc-altivec32l.c): Remove.
(powerpc-cell32l-ipa.o: powerpc-cell32l.c): Remove.
(powerpc-vsx32l-ipa.o: powerpc-vsx32l.c): Remove.
(powerpc-isa205-32l-ipa.o: powerpc-isa205-32l.c): Remove.
(powerpc-isa205-altivec32l-ipa.o: powerpc-isa205-altivec32l.c): Remove.
(powerpc-isa205-vsx32l-ipa.o: powerpc-isa205-vsx32l.c): Remove.
(powerpc-e500l-ipa.o: powerpc-e500l.c): Remove.
(powerpc-64l-ipa.o: powerpc-64l.c): Remove.
(powerpc-altivec64l-ipa.o: powerpc-altivec64l.c): Remove.
(powerpc-cell64l-ipa.o: powerpc-cell64l.c): Remove.
(powerpc-vsx64l-ipa.o: powerpc-vsx64l.c): Remove.
(powerpc-isa205-64l-ipa.o: powerpc-isa205-64l.c): Remove.
(powerpc-isa205-altivec64l-ipa.o: powerpc-isa205-altivec64l.c): Remove.
(powerpc-isa205-vsx64l-ipa.o: powerpc-isa205-vsx64l.c): Remove.
(tdesc-ipa.o: tdesc.c): Remove.
(x32-linux-ipa.o: x32-linux.c): Remove.
(x32-avx-linux-ipa.o: x32-avx-linux.c): Remove.
(x32-avx512-linux-ipa.o: x32-avx512-linux.c): Remove.
commit 50cfacb78f3998e5ecc653090e4f1a11dfb3d8dd
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:03 2017 -0400
gdbserver: Use pattern rule for objects from arch/
gdb/gdbserver/ChangeLog:
* Makefile.in (%.o: ../arch/%.c): New rule.
(arm.o: ../arch/arm.c): Remove.
(arm-linux.o: ../arch/arm-linux.c): Remove.
(arm-get-next-pcs.o: ../arch/arm-get-next-pcs.c): Remove.
(aarch64-insn.o: ../arch/aarch64-insn.c): Remove.
commit c5a22423d09e3bf670fb0de0a98e6feb6176eb3f
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:03 2017 -0400
gdbserver: Use pattern rule for objects from nat/
gdb/gdbserver/ChangeLog:
* Makefile.in (%.o: ../nat/%.c): New rule.
(x86-dregs.o: ../nat/x86-dregs.c): Remove.
(amd64-linux-siginfo.o: ../nat/amd64-linux-siginfo.c): Remove.
(linux-btrace.o: ../nat/linux-btrace.c): Remove.
(linux-osdata.o: ../nat/linux-osdata.c): Remove.
(linux-procfs.o: ../nat/linux-procfs.c): Remove.
(linux-ptrace.o: ../nat/linux-ptrace.c): Remove.
(linux-waitpid.o: ../nat/linux-waitpid.c): Remove.
(mips-linux-watch.o: ../nat/mips-linux-watch.c): Remove.
(ppc-linux.o: ../nat/ppc-linux.c): Remove.
(linux-personality.o: ../nat/linux-personality.c): Remove.
(aarch64-linux-hw-point.o: ../nat/aarch64-linux-hw-point.c): Remove.
(aarch64-linux.o: ../nat/aarch64-linux.c): Remove.
(x86-linux.o: ../nat/x86-linux.c): Remove.
(x86-linux-dregs.o: ../nat/x86-linux-dregs.c): Remove.
(linux-namespaces.o: ../nat/linux-namespaces.c): Remove.
commit 6bda016bec556855c6d4e191f360f921faa40ded
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:02 2017 -0400
gdbserver: Use pattern rule for objects from common/
gdb/gdbserver/ChangeLog:
* Makefile.in (%.o: ../common/%.c): New rule.
(signals.o: ../common/signals.c): Remove.
(print-utils.o: ../common/print-utils.c): Remove.
(rsp-low.o: ../common/rsp-low.c): Remove.
(common-utils.o: ../common/common-utils.c): Remove.
(posix-strerror.o: ../common/posix-strerror.c): Remove.
(mingw-strerror.o: ../common/mingw-strerror.c): Remove.
(vec.o: ../common/vec.c): Remove.
(gdb_vecs.o: ../common/gdb_vecs.c): Remove.
(xml-utils.o: ../common/xml-utils.c): Remove.
(ptid.o: ../common/ptid.c): Remove.
(buffer.o: ../common/buffer.c): Remove.
(format.o: ../common/format.c): Remove.
(filestuff.o: ../common/filestuff.c): Remove.
(agent.o: ../common/agent.c): Remove.
(errors.o: ../common/errors.c): Remove.
(environ.o: ../common/environ.c): Remove.
(common-debug.o: ../common/common-debug.c): Remove.
(cleanups.o: ../common/cleanups.c): Remove.
(common-exceptions.o: ../common/common-exceptions.c): Remove.
(fileio.o: ../common/fileio.c): Remove.
(common-regcache.o: ../common/common-regcache.c): Remove.
(signals-state-save-restore.o: ../common/signals-state-save-restore.c): Remove.
(new-op.o: ../common/new-op.c): Remove.
(btrace-common.o: ../common/btrace-common.c): Remove.
commit 21122961ecea30b3be7c788e09179d297e3233f0
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:02 2017 -0400
gdbserver: Use pattern rule for objects from target/
gdb/gdbserver/ChangeLog:
* Makefile.in (%.o: ../target/%.c): New rule.
(waitstatus.o: ../target/waitstatus.c): Remove.
commit c362e6217b556ce932250c340218f1ca16391070
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Mon Mar 13 18:44:01 2017 -0400
gdbserver: Use pattern rule for regformats source file generation
gdb/gdbserver/ChangeLog:
* Makefile.in
(%.c: ../regformats/%.dat,
(%.c: ../regformats/arm/%.dat,
(%.c: ../regformats/i386/%.dat,
(%.c: ../regformats/rs6000/%.dat): New rules.
(aarch64.c): Remove.
(reg-arm.c): Remove.
(arm-with-iwmmxt.c): Remove.
(arm-with-vfpv2.c): Remove.
(arm-with-vfpv3.c): Remove.
(arm-with-neon.c): Remove.
(reg-bfin.c): Remove.
(reg-cris.c): Remove.
(reg-crisv32.c): Remove.
(i386.c): Remove.
(i386-linux.c): Remove.
(i386-avx.c): Remove.
(i386-avx-linux.c): Remove.
(i386-avx-avx512.c): Remove.
(i386-avx-avx512-linux.c): Remove.
(i386-mpx.c): Remove.
(i386-mpx-linux.c): Remove.
(i386-avx-mpx-avx512-pku.c): Remove.
(i386-avx-mpx-avx512-pku-linux.c): Remove.
(i386-avx-mpx.c): Remove.
(i386-avx-mpx-linux.c): Remove.
(i386-mmx.c): Remove.
(i386-mmx-linux.c): Remove.
(reg-ia64.c): Remove.
(reg-m32r.c): Remove.
(reg-m68k.c): Remove.
(reg-cf.c): Remove.
(mips-linux.c): Remove.
(mips-dsp-linux.c): Remove.
(mips64-linux.c): Remove.
(mips64-dsp-linux.c): Remove.
(nios2-linux.c): Remove.
(powerpc-32.c): Remove.
(powerpc-32l.c): Remove.
(powerpc-altivec32l.c): Remove.
(powerpc-cell32l.c): Remove.
(powerpc-vsx32l.c): Remove.
(powerpc-isa205-32l.c): Remove.
(powerpc-isa205-altivec32l.c): Remove.
(powerpc-isa205-vsx32l.c): Remove.
(powerpc-e500l.c): Remove.
(powerpc-64l.c): Remove.
(powerpc-altivec64l.c): Remove.
(powerpc-cell64l.c): Remove.
(powerpc-vsx64l.c): Remove.
(powerpc-isa205-64l.c): Remove.
(powerpc-isa205-altivec64l.c): Remove.
(powerpc-isa205-vsx64l.c): Remove.
(s390-linux32.c): Remove.
(s390-linux32v1.c): Remove.
(s390-linux32v2.c): Remove.
(s390-linux64.c): Remove.
(s390-linux64v1.c): Remove.
(s390-linux64v2.c): Remove.
(s390-te-linux64.c): Remove.
(s390-vx-linux64.c): Remove.
(s390-tevx-linux64.c): Remove.
(s390x-linux64.c): Remove.
(s390x-linux64v1.c): Remove.
(s390x-linux64v2.c): Remove.
(s390x-te-linux64.c): Remove.
(s390x-vx-linux64.c): Remove.
(s390x-tevx-linux64.c): Remove.
(tic6x-c64xp-linux.c): Remove.
(tic6x-c64x-linux.c): Remove.
(tic6x-c62x-linux.c): Remove.
(reg-sh.c): Remove.
(reg-sparc64.c): Remove.
(reg-spu.c): Remove.
(amd64.c): Remove.
(amd64-linux.c): Remove.
(amd64-avx.c): Remove.
(amd64-avx-linux.c): Remove.
(amd64-avx-avx512.c): Remove.
(amd64-avx-avx512-linux.c): Remove.
(amd64-mpx.c): Remove.
(amd64-mpx-linux.c): Remove.
(amd64-avx-mpx-avx512-pku.c): Remove.
(amd64-avx-mpx-avx512-pku-linux.c): Remove.
(amd64-avx-mpx.c): Remove.
(amd64-avx-mpx-linux.c): Remove.
(x32.c): Remove.
(x32-linux.c): Remove.
(x32-avx.c): Remove.
(x32-avx-linux.c): Remove.
(x32-avx-avx512.c): Remove.
(x32-avx-avx512-linux.c): Remove.
(reg-xtensa.c): Remove.
(reg-tilegx.c): Remove.
(reg-tilegx32.c): Remove.
commit 7978d7c385b072a344d969f71cdc68e1a1171ec2
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Mon Mar 13 18:02:08 2017 -0400
testsuite: Disable backslash_in_multi_line_command_test for old DejaGnus
I noticed that backslash_in_multi_line_command_test in
gdb.base/commands.exp failed on our RHEL6 servers. I traced it to the
old version of DejaGnu (1.4.4). I have found that instead of receiving
the expected:
"print \\\nargc\n"
gdb received:
"print argc\n"
thus breaking the test and its purpose. Versionof DejaGnu < 1.5 mess
up sending "\\\n", it somehow gets replaced with a space. I found that
the following commit in DejaGnu fixed the issue:
http://git.savannah.gnu.org/cgit/dejagnu.git/commit/lib/remote.exp?id=3f39294f5cd6802858838d3bcc0ccce847ae17f2
Even though the commit is almost 10 years old, the following release of
DejaGnu was only in 2013, which is why we still have systems with the
old code.
If the DejaGnu version is < 1.5, we just skip the test.
gdb/testsuite/ChangeLog:
* gdb.base/commands.exp (backslash_in_multi_line_command_test):
Skip for versions of DejaGnu < 1.5.
commit 896c0c1edee117ea333c66b1adac8c6f4def3f2b
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Mon Mar 13 18:02:07 2017 -0400
testsuite: Introduce dejagnu_version
The next patch will require checking the DejaGnu version. There is
already a test that does this,
gdb.threads/attach-many-short-lived-threads.exp. This patch introduces
a new procedure, dejagnu_version, and makes that test use it.
The version number is "right-padded" with zeroes, to make sure that we
always return a triplet (major, minor, patch).
The procedure does not consider the DejaGnu versions from git. For
example, if you used DejaGnu from its current master branch, the version
would be "1.6.1-git", meaning that 1.6.1 will be the next release. I
figured we'll cross that bridge when (and if) we get there.
gdb/testsuite/ChangeLog:
* lib/gdb.exp (dejagnu_version): New proc.
* gdb.threads/attach-many-short-lived-threads.exp (bad_dejagnu):
Use dejagnu_version.
commit b9da89d161e3903faa335f444af2bf05e40f926e
Author: mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon Mar 13 18:26:47 2017 +0000
Merge libiberty: Initialize d_printing in all cplus_demangle_fill_* functions.
While integrating the d_printing recursion guard change into gdb I
noticed we forgot to initialize the demangle_component d_printing
field in cplus_demangle_fill_{name,extended_operator,ctor,dtor}.
As is done in cplus_demangle_fill_{component,builtin_type,operator}.
It happened to work because in gcc all demangle_components were
allocated through d_make_empty. But gdb has its own allocation
mechanism (as might other users).
libiberty/ChangeLog:
* cp-demangle.c (cplus_demangle_fill_name): Initialize
demangle_component d_printing.
(cplus_demangle_fill_extended_operator): Likewise.
(cplus_demangle_fill_ctor): Likewise.
(cplus_demangle_fill_dtor): Likewise.
gdb/ChangeLog:
* cp-name-parser.y (make_empty): Initialize d_printing to zero.
commit c793cac124dd2eb34042f2e43abb099a26e34cb0
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 13 17:49:32 2017 +0000
Sync libiberty sources with GCC.
PR demangler/70909
PR demangler/67264
* cp-demangle.c: Fix endless recursion. Pass
struct demangle_component as non const.
(d_make_empty): Initialize variable.
(d_print_comp_inner): Limit recursion.
(d_print_comp): Decrement variable.
* cp-demint.c (cplus_demangle_fill_component): Initialize
variable.
(cplus_demangle_fill_builtin_type): Likewise.
(cplus_demangle_fill_operator): Likewise.
* testsuite/demangle-expected: Add tests.
commit 5ef2d51bd6ae49b28282835156d1d6622beac4a6
Author: Alan Modra <amodra@gmail.com>
Date: Mon Mar 13 20:56:25 2017 +1030
objdump -dS: warn if source is more recent than object
If the source file is more recent than the object file, line number
information in the object may no longer match the source. So print a
warning message.
* objdump.c (update_source_path): Add abfd param. Add struct
stat vars. Pass to try_print_file_open. Warn if source is more
recent than object.
(try_print_file_open, slurp_file): Add struct stat param to
return fstat.
(show_line): Call update_source_path with bfd.
commit f955cccff399ccc4e16b8e90f140f2e9a785a07b
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 13 09:58:04 2017 +0000
Rename R_AARCH64_TLSDESC_LD64_LO12_NC to R_AARCH64_TLSDESC_LD64_LO12 and R_AARCH64_TLSDESC_ADD_LO12_NC to R_AARCH64_TLSDESC_ADD_LO12.
PR binutils/21202
include * elf/aarch64.h (R_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
R_AARCH64_TLSDESC_LD64_LO12.
(R_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
R_AARCH64_TLSDESC_ADD_LO12_NC.
bfd * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
BFD_RELOC_AARCH64_TLSDESC_LD64_LO12.
(BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc
names.
(IS_AARCH64_TLSDESC_RELOC): Likewise.
(elfNN_aarch64_howto_table): Likewise.
(aarch64_tls_transition_without_check): Likewise.
(aarch64_reloc_got_type): Likewise.
(elfNN_aarch64_final_link_relocate): Likewise.
(elfNN_aarch64_tls_relax): Likewise.
(elfNN_aarch64_relocate_section): Likewise.
(elfNN_aarch64_gc_sweep_hook): Likewise.
(elfNN_aarch64_check_relocs): Likewise.
* elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
(_bfd_aarch64_elf_resolve_relocation): Likewise.
gas * config/tc-aarch64.c (reloc_table): Rename
BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC to
BFD_RELOC_AARCH64_TLSDESC_LD64_LO12. Rname
BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC to
BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
(md_apply_fix): Likewise.
(aarch64_force_relocation): Likewise.
* testsuite/gas/aarch64/tls.d: Update regexp.
ld * testsuite/ld-aarch64/ifunc-5r-local.d: Update regexp.
commit d40e34db392f834793fb9af487121776b4cec6e7
Author: Tristan Gingold <gingold@adacore.com>
Date: Fri Mar 10 15:16:19 2017 +0100
ld: add an error in case of address space overflow.
ld/
* ldlang.c (lang_check_section_addresses): Check for address space
overflow.
* testsuite/ld-checks/checks.exp (overflow_check): New procedure
* testsuite/ld-checks/over.s: New test source.
* testsuite/ld-checks/over.d: New test.
* testsuite/ld-checks/over2.s: New test source.
* testsuite/ld-checks/over2.d: New test.
commit 4b5900d8b81522bd6ebe4d94d45dfb54d1982c62
Author: Alexey Neyman <stilor@att.net>
Date: Sun Mar 12 20:49:46 2017 -0700
PowerPC: incorrect library search order
First, need to match against just the CPU name, not the whole triplet.
Otherwise, the test picks up "*le-*" pattern from x86_64-apple-darwin
triplet.
Second, it should be testing for $target, not $host. Host may be
little endian by default, and the sysroot directory layout shouldn't
depend on whether it is built on LE or BE machine.
* emulparams/elf32ppccommon.sh (LIBPATH_SUFFIX): Set from target
cpu, not host.
commit b9d62f893fcc0b4c36aad0552810dcde304979d0
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 13 00:00:21 2017 +0000
Automatic date update in version.in
commit d5bb792ca130aac17e080325e4005ef417ceabd5
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 12 00:00:28 2017 +0000
Automatic date update in version.in
commit 118aa6cf395aec093fe12d7fb2d05441791a93fa
Author: Alan Modra <amodra@gmail.com>
Date: Sat Mar 11 23:37:02 2017 +1030
Add sysroot for ld -rpath search
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Add
sysroot for -rpath search.
commit 316a1245fe31e327223ca66797b789eaf9544c2c
Author: Alan Modra <amodra@gmail.com>
Date: Sat Mar 11 22:57:29 2017 +1030
Rewrite add_sysroot
Relative paths shouldn't have the sysroot prefix added. The patch
also makes some attempt at supporting DOS paths, and tidies code using
the new add_sysroot.
* emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Rewrite.
Only prefix absolute paths with sysroot. Handle DOS paths.
(gld${EMULATION_NAME}_check_ld_elf_hints): Constify variable.
(gld${EMULATION_NAME}_check_ld_so_conf): Likewise.
(gld${EMULATION_NAME}_after_open): Short-circuit NULL path
searches. Rename variable. Simplify get_runpath search.
commit 4aef764338ed40a7fa9573b0e6e2ade817acd688
Author: Alan Modra <amodra@gmail.com>
Date: Sat Mar 11 20:56:51 2017 +1030
Remove bogus ATTRIBUTE_UNUSED
* elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function
parameter is in fact used. Whitespace fixes.
* elf64-ppc.c: Likewise.
commit bb4287c562027eafe63ddac9fd4c7e1730335795
Author: Alan Modra <amodra@gmail.com>
Date: Sat Mar 11 11:04:02 2017 +1030
Don't use -rdynamic in ld test
This gcc option isn't well supported, so use the actual linker option
we want to test.
* testsuite/ld-elf/shared.exp: Use -Wl,-export-dynamic rather
than -rdynamic.
commit e299b3551edbe81be2062fcaef9319d681d0d15b
Author: Alan Modra <amodra@gmail.com>
Date: Sat Mar 11 10:51:56 2017 +1030
Don't run new orphan tests on i860 and i960
These targets use the generic ELF support, so don't handle orphans
well. The patch also updates the orphan doco to reflect this fact,
and deletes some ELF details that don't really add anything.
* ld.texinfo (Orphan Sections): Mention that not all targets
handle orphans well. Delete ELF details.
* testsuite/ld-elf/orphan-9.d: Don't run for i860 and i960.
* testsuite/ld-elf/orphan-10.d: Likewise.
commit a08f8d99b87b0b0f681a27eba8e25e2fb0abd034
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 11 00:00:23 2017 +0000
Automatic date update in version.in
commit 5f4d10850850cd95af5e95a16848c8c07a273d88
Author: Keith Seitz <keiths@redhat.com>
Date: Fri Mar 10 10:32:09 2017 -0800
c++/8218: Destructors w/arguments.
For a long time now, c++/8218 has noted that GDB is printing argument types
for destructors:
(gdb) ptype A
type = class A {
public:
~A(int);
}
This happens because cp_type_print_method_args doesn't ignore artificial
arguments. [It ignores the first `this' pointer because it simply skips
the first argument for any non-static function.]
This patch fixes this:
(gdb) ptype A
type = class A {
public:
~A();
}
I've adjusted gdb.cp/templates.exp to account for this and added a new
passing regexp.
gdb/ChangeLog
PR c++/8218
* c-typeprint.c (cp_type_print_method_args): Skip artificial arguments.
gdb/testsuite/ChangeLog
PR c++/8128
* gdb.cp/templates.exp (test_ptype_of_templates): Remove argument
type from destructor regexps.
Add a branch which actually passes the test.
Adjust "ptype t5i" test names.
commit 7b5d48229b7faa16f69e87fb269f17db0291d89f
Author: Chia-Hao Lo <fcamel@gmail.com>
Date: Fri Mar 10 16:29:58 2017 +0000
Make objdump's --wide command line option affect its output of DWARF debug information.
PR binutils/21235
* objdump.c (main): Set do_wide with --wide.
commit 8b1e5da10ab58d2aa5eb84bf27de511294f061ef
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 10 15:42:04 2017 +0000
Document that the .2byte and .4byte directives warn about overlarge values.
* doc/as.texinfo (2byte): Tidy up wording. Add note that
overlarge values will produce a warning message and be trunacted.
(4byte): Likewise.
commit 55e22ca83ae50d6fe422cd0542f2a1a5934b2dd2
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 10 10:50:34 2017 +0000
Add basic recognition of new EM_ ELF machine numbers.
include * elf/common.h (EM_LANAI): New machine number.
(EM_BPF): Likewise.
(EM_WEBASSEMBLY): Likewise.
Move low value, deprecated, numbers to their numerical
equivalents.
binutils * readelf.c (get_machine_name): Rearrange switch table in order of
increasing machine number. Add missing entries.
commit f9f791a1b147c404a489485dba5eca49f8dbcbb9
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 10 00:00:28 2017 +0000
Automatic date update in version.in
commit 14ea2c1b230a62f312346fb16716b3dd4850815b
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Tue Jan 17 19:13:29 2017 +0000
ld: Track changes to default region LMA even for empty sections
Given a linker script fragment like this:
SECTIONS {
. = 0x1000;
.text : AT(0x100) { *(.text) }
.data : AT(0x200) { *(.data) }
.rodata : AT(0x300) { *(.rodata) }
}
and an input file containing sections, '.text', '.data.1', and
'.rodata', then we'd expect the linker to place '.text' and '.rodata' in
the obvious way, and the '.data.1' orphan section would be located after
the '.data' section (assuming similar section properties).
Further, I believe that the expectation would be that the LMA for the
orphan '.data.1' section would start from 0x200 (as there is no '.data'
content).
However, right now, the LMA for '.data.1' would be 0x101, following on
from the '.text' section, this is because the change in LMA for the
'.data' section is not noticed by the linker, if there's no content in
the '.data' section.
What can be even more confusing to a user (though the cause is obvious
once you understand what's going on) is that adding some content to
'.data' will cause the orphan '.data.1' to switch to an LMA based off of
0x200.
This commit changes the behaviour so that an empty section that is in
the default lma region, and sets its lma, will adjust the lma of the
default region, this change will then be reflected in following sections
within the default lma memory region.
There's a new test to cover this issue that passes on a range of
targets, however, some targets generate additional sections, or have
stricter memory region size requirements that make it harder to come
up with a generic pass pattern, that still tests the required
features. For now I've set the test to ignore these targets.
ld/ChangeLog:
* ldlang.c (lang_size_sections_1): Shortcut loop only after
tracking changes to the default regions LMA.
* testsuite/ld-elf/orphan-9.ld: Extend header comment.
* testsuite/ld-elf/orphan-10.d: New file.
* testsuite/ld-elf/orphan-10.s: New file.
* NEWS: Mention change in behaviour.
commit 77f5e65ecfb669ea1d2fd74b74fbbf0d0c20daf8
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Tue Jan 17 19:12:54 2017 +0000
ld: better handling of lma region for orphan sections
When picking an lma_region for an orphan section we currently create a
new lang_output_section_statement_type and then populate this with the
orphan section.
The problem is that the lang_output_section_statement_type has a prev
pointer that links back to the previous output section. For non-orphan
output sections, that are created in linker script order, the prev
pointer will point to the output section that appears previous in linker
script order, as you'd probably expect.
The problem is that orphan sections are placed after processing the
linker script, and so, in the case of an output section created for an
orphan input section, the prev pointer actually points to the last
output section created.
This causes some unexpected behaviour when the orphan section is not
placed after the last non-orphan section that was created.
For example, consider this linker script:
MEMORY {
TEXT : ORIGIN = 0x200, LENGTH = 0x10
RODATA : ORIGIN = 0x400, LENGTH = 0x10
}
SECTIONS {
.text : {*(.text) } AT>TEXT
.data : AT(0x300) { *(.data) }
.rodata : { *(.rodata) } AT>RODATA
}
If we are processing an orphan section '.data.1' and decide to place
this after '.data', then the output section created will have a prev
pointer that references the '.rodata' output section. The result of
this is that '.data.1' will actually be assigned to the RODATA lma
region, which is probably not the expected behaviour.
The reason why '.data.1' is placed into the lma region of the '.rodata'
section is that lma region propagation is done at the time we create the
output section, based on the previous output section pointer, which is
really just a last-output-section-created pointer at that point in time,
though the prev point is fixed up later to reflect the true order of the
output sections.
The solution I propose in this commit is to move the propagation of lma
regions into a separate pass of the linker, rather than performing this
as part of the enter/exit of output sections during linker script
parsing.
During this later phase we have all of the output sections to hand, and
the prev/next points have been fixed up by this point to reflect the
actual placement ordering.
There's a new test to cover this issue that passes on a range of
targets, however, some targets generate additional sections, or have
stricter memory region size requirements that make it harder to come
up with a generic pass pattern, that still tests the required
features. For now I've set the test to ignore these targets.
ld/ChangeLog:
* ldlang.c (lang_leave_output_section_statement): Move lma_region
logic to...
(lang_propagate_lma_regions): ...this new function.
(lang_process): Call new function.
* testsuite/ld-elf/orphan-9.d: New file.
* testsuite/ld-elf/orphan-9.ld: New file.
* testsuite/ld-elf/orphan-9.s: New file.
* NEWS: Mention change in behaviour.
commit a87ded7b88a85b40f2aec5e5b6c972dd7b74b3a9
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Tue Jan 17 18:08:17 2017 +0000
ld: Orphan section documentation
Make more explicit mention of the fact that orphan sections can cause a
new output section to be created. Though this information is clearly
implied in the manual it might not be clear enough.
A user _might_ (incorrectly) think that orphan sections can only be
inserted into an existing output section.
ld/ChangeLog:
* ld.texinfo (Orphan Sections): Add more detail.
commit 86fa6981e7487e2c2df4337aa75ed2d93c32eaf2
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 9 09:58:46 2017 -0800
X86: Add pseudo prefixes to control encoding
Many x86 instructions have more than one encodings. Assembler picks
the default one, usually the shortest one. Although the ".s", ".d8"
and ".d32" suffixes can be used to swap register operands or specify
displacement size, they aren't very flexible. This patch adds pseudo
prefixes, {xxx}, to control instruction encoding. The available
pseudo prefixes are {disp8}, {disp32}, {load}, {store}, {vex2}, {vex3}
and {evex}. Pseudo prefixes are preferred over the ".s", ".d8" and
".d32" suffixes, which are deprecated.
gas/
* config/tc-i386.c (_i386_insn): Add dir_encoding and
vec_encoding. Remove swap_operand and need_vrex.
(extra_symbol_chars): Add '}'.
(md_begin): Mark '}' with LEX_BEGIN_NAME. Allow '}' in
mnemonic.
(build_vex_prefix): Don't use 2-byte VEX encoding with
{vex3}. Check dir_encoding and load.
(parse_insn): Check pseudo prefixes. Set dir_encoding.
(VEX_check_operands): Likewise.
(match_template): Check dir_encoding and load.
(parse_real_register): Set vec_encoding instead of need_vrex.
(parse_register): Likewise.
* doc/c-i386.texi: Document {disp8}, {disp32}, {load}, {store},
{vex2}, {vex3} and {evex}. Remove ".s", ".d8" and ".d32"
* testsuite/gas/i386/i386.exp: Run pseudos and x86-64-pseudos.
* testsuite/gas/i386/pseudos.d: New file.
* testsuite/gas/i386/pseudos.s: Likewise.
* testsuite/gas/i386/x86-64-pseudos.d: Likewise.
* testsuite/gas/i386/x86-64-pseudos.s: Likewise.
opcodes/
* i386-gen.c (opcode_modifiers): Replace S with Load.
* i386-opc.h (S): Removed.
(Load): New.
(i386_opcode_modifier): Replace s with load.
* i386-opc.tbl: Add {disp8}, {disp32}, {swap}, {vex2}, {vex3}
and {evex}. Replace S with Load.
* i386-tbl.h: Regenerated.
commit f03265d9cda1f5f8df238efa9b7a20330e5711f1
Author: Sam Thursfield <sam.thursfield@codethink.co.uk>
Date: Thu Mar 9 15:58:39 2017 +0000
Fix compile time warnings about using possibly uninitialised variables in rs6000-core.c.
* rs6000-core.c (CORE_NEW): Simplify macro when
AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning.
commit c1fe188b154a4e81372629316be3d3a7820efdac
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Thu Mar 9 07:43:48 2017 -0800
Use CpuCET on rdsspq
* i386-opc.tbl: Use CpuCET on rdsspq.
* i386-tbl.h: Regenerated.
commit 4b8b687e885287ed85dafffcebbb8d03d7ea2c38
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Wed Mar 8 20:49:03 2017 -0600
Update -maltivec and -mvsx options to only enable their oldest instructions.
Currently, the -maltivec and -mvsx GAS options enable *all* of the altivec
and vsx instructions respecitively that have ever been added. This is in
constract to GCC's -maltivec and -mvsx options, which only enable the oldest
(ie, first) set of altivec and vsx instructions. This patch changes GAS to
mimic GCC's behaviour with respect to -maltivec and -mvsx and it solves a
problem with trying to assemble the lxvx instruction which is different
between POWER8 and POWER9.
opcodes/
* ppc-dis.c (ppc_opts) <altivec>: Do not use PPC_OPCODE_ALTIVEC2;
<vsx>: Do not use PPC_OPCODE_VSX3;
gas/
* testsuite/gas/ppc/altivec2.d (as): Use the -mpower8 option.
(objdump): Use the -Mpower8 option.
commit c7341d5a6b334464d84672229d9912d99347db34
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 9 00:00:31 2017 +0000
Automatic date update in version.in
commit 1de05205afe1ecd1f1fa2befc6843d0dc70adefc
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 22:05:36 2017 +0000
Avoid unstable test message in gdb.base/step-over-exit.exp
Currently diffing testrun results shows:
-PASS: gdb.base/step-over-exit.exp: break *0x7ffff77e18c6 if main == 0
+PASS: gdb.base/step-over-exit.exp: break *0x2aaaab0988c6 if main == 0
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.base/step-over-exit.exp: Add explicit test message.
commit 1437d0631b209500db8371c425e896deb66ec9f9
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Wed Mar 8 14:00:42 2017 -0600
Add support for the new 'lnia' extended mnemonic.
opcodes/
* ppc-opc.c (powerpc_opcodes) <lnia>: New extended mnemonic.
gas/
* testsuite/gas/ppc/power9.d <lnia> New test.
* testsuite/gas/ppc/power9.s: Likewise.
commit c65d6b55b3a592906c470c566f57ad8ceacc1605
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 18:54:34 2017 +0000
Fix PR18360 - internal error when using "interrupt -a"
If you do "interrupt -a" just while some thread is stepping over a
breakpoint, gdb trips on an internal error.
The test added by this patch manages to trigger this consistently by
spawning a few threads that are constantly tripping on a conditional
breakpoint whose condition always evaluates to false. With current
gdb, you get:
~~~
interrupt -a
.../src/gdb/inline-frame.c:343: internal-error: void skip_inline_frames(ptid_t): Assertion `find_inline_frame_state (ptid) == NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=on: iter=0: interrupt -a (GDB internal error)
[...]
.../src/gdb/inline-frame.c:343: internal-error: void skip_inline_frames(ptid_t): Assertion `find_inline_frame_state (ptid) == NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n) FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=0: wait for stops (GDB internal error)
~~~
The assertion triggers because we're processing a stop for a thread
that had already stopped before and thus had already its inline-frame
state filled in.
Calling handle_inferior_event_1 directly within a
"thread_stop_requested" observer is something that I've wanted to get
rid of before, for being fragile. Nowadays, infrun is aware of
threads with pending events, so we can use that instead, and let the
normal fetch_inferior_event -> handle_inferior_event code path handle
the forced stop.
The change to finish_step_over is necessary because sometimes a thread
that was told to PTRACE_SINGLESTEP reports back a SIGSTOP instead of a
SIGTRAP (i.e., we tell it to single-step, and then interrupt it quick
enough that on the kernel side the thread dequeues the SIGTOP before
ever having had a chance of executing the instruction to be stepped).
SIGSTOP gets translated to a GDB_SIGNAL_0. And then finish_step_over
would miss calling clear_step_over_info, and thus miss restarting the
other threads (which in this case of threads with pending events,
means setting their "resumed" flag, so their pending events can be
consumed).
And now that we always restart threads in finish_step_over, we no
longer need to do that in handle_signal_stop.
Tested on x86_64 Fedora 23, native and gdbserver.
gdb/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR gdb/18360
* infrun.c (start_step_over, do_target_resume, resume)
(restart_threads): Assert we're not resuming a thread that is
meant to be stopped.
(infrun_thread_stop_requested_callback): Delete.
(infrun_thread_stop_requested): If the thread is internally
stopped, queue a pending stop event and clear the thread's
inline-frame state.
(handle_stop_requested): New function.
(handle_syscall_event, handle_inferior_event_1): Use
handle_stop_requested.
(handle_stop_requested): New function.
(handle_signal_stop): Set the thread's stop_signal here instead of
at caller.
(finish_step_over): Clear step over info unconditionally.
(handle_signal_stop): If the user had interrupted the event
thread, consider the stop a random signal.
(handle_signal_stop) <signal arrived while stepping over
breakpoint>: Don't restart threads here.
(stop_waiting): Don't clear step-over info here.
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR gdb/18360
* gdb.threads/interrupt-while-step-over.c: New file.
* gdb.threads/interrupt-while-step-over.exp: New file.
commit 15c22686d0e33d87262bc9075296eeddd7d955f7
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 15:52:16 2017 +0000
gdb: Fix ATTRIBUTE_NONNULL usage
Should fix the build failure with Clang mentioned at
<https://sourceware.org/bugzilla/show_bug.cgi?id=21206#c2>:
In file included from ../../binutils-gdb/gdb/dwarf2read.c:72:
../../binutils-gdb/gdb/common/gdb_unlinker.h:35:35: error: '__nonnull__' attribute is invalid for the implicit this argument
unlinker (const char *filename) ATTRIBUTE_NONNULL (1)
^ ~
../../binutils-gdb/gdb/../include/ansidecl.h:169:48: note: expanded from macro 'ATTRIBUTE_NONNULL'
# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
gdb/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR 21206
* common/gdb_unlinker.h (unlinker::unlinker): Attribute nonnull
goes to argument 2, not 1.
commit 1fc87489b40b3100badf184a7c266387bae47def
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Mar 8 07:44:04 2017 -0800
Properly dump NT_GNU_PROPERTY_TYPE_0
Property type and datasz are always 4 bytes for both 32-bit and 64-bit
objects. Property values for GNU_PROPERTY_X86_ISA_1_USED and
GNU_PROPERTY_X86_ISA_1_NEEDED are 4 bytes for both i386 and x86-64
objects. We should also check GNU_PROPERTY_LOPROC and
GNU_PROPERTY_LOUSER.
binutils/
PR binutils/21231
* readelf.c (decode_x86_isa): Change argument to unsigned int.
(print_gnu_property_note): Retrieve property type and datasz as
4-byte integer. Consolidate property datasz check. Check
GNU_PROPERTY_LOPROC and GNU_PROPERTY_LOUSER.
* testsuite/binutils-all/i386/pr21231a.d: New file.
* testsuite/binutils-all/i386/pr21231a.s: Likewise.
* testsuite/binutils-all/i386/pr21231b.d: Likewise.
* testsuite/binutils-all/i386/pr21231b.s: Likewise.
* testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
* testsuite/binutils-all/x86-64/pr21231a.s: Likewise.
* testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
* testsuite/binutils-all/x86-64/pr21231b.s: Likewise.
include/
PR binutils/21231
* elf/common.h (GNU_PROPERTY_LOPROC): New.
(GNU_PROPERTY_HIPROC): Likewise.
(GNU_PROPERTY_LOUSER): Likewise.
(GNU_PROPERTY_HIUSER): Likewise.
commit 2e86a2830cfef688a27e17353b84f59f8147ab23
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 14:05:41 2017 +0000
gdb.arch/amd64-entry-value-param*.exp: Make sure test messages are unique
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.arch/amd64-entry-value-param-dwarf5.exp: Use with_test_prefix.
* gdb.arch/amd64-entry-value-param.exp: Use with_test_prefix.
commit 25dcbff6ef0088e080d92b3cbc346ae0b5071d9d
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 13:09:45 2017 +0000
"gdb.arch/i386-pkru.exp: probe PKRU support" shouldn't FAIL if not supported
Currently I get:
(gdb) print have_pkru()
$1 = 0
(gdb) FAIL: gdb.arch/i386-pkru.exp: probe PKRU support
UNSUPPORTED: gdb.arch/i386-pkru.exp: processor does not support protection key feature.
Probing suceeded, so that should be a PASS -> UNSUPPORTED.
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.arch/i386-pkru.exp (probe PKRU support): Handle detecting
PKRU as not supported as a PASS.
commit dc9366eb0592157e2125967690f0aed61b17bcf7
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 12:46:44 2017 +0000
gdb: Fix a few unstable test names
Avoid putting unstable path names in test messages, in order to avoid
spurious testrun result diffs like:
[....]
-PASS: gdb.base/break-fun-addr.exp: /home/pedro/gdb/test-build1/gdb/testsuite/outputs/gdb.base/break-fun-addr/break-fun-addr1: break *main
+PASS: gdb.base/break-fun-addr.exp: /home/pedro/gdb/test-build2/gdb/testsuite/outputs/gdb.base/break-fun-addr/break-fun-addr1: break *main
[....]
gdb/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.base/break-fun-addr.exp: Use $testfile1/$testfile2 for test
prefix instead of $binfile1/$binfile2.
* gdb.btrace/gcore.exp: Use "core" instead of unstable path name
in test message.
* gdb.python/py-completion.exp: Use "load python file" as test
messages instead of unstable path names.
commit 6e5d74e74756fafe59e8198c4cc462cf7c57e12c
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 11:41:35 2017 +0000
Fix PR 21218: GDB dumps core when escaping newline in multi-line command
With commit 3b12939dfc2399 ("Replace the sync_execution global with a
new enum prompt_state tristate"), GDB started aborting if you try
splitting an input line with a continuation char (backslash) while in
a multi-line command:
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>print \
(gdb) 1 # note "(gdb)" incorrectly printed here.
>end
readline: readline_callback_read_char() called with no handler!
$
That abort is actually a symptom of an old problem introduced when
gdb_readline_wrapper was rewritten to use asynchronous readline, back
in 2007. Note how the "(gdb)" prompt is printed above in the "(gdb)
1" line. Clearly it shouldn't be there, but it already was before the
commit mentioned above. Fixing that also fixes the readline abort
shown above.
The problem starts when command_line_input passes a NULL prompt to
gdb_readline_wrapper when it finds previous incomplete input due to a
backslash, trying to fetch more input without printing another ">"
secondary prompt. That itself should not be a problem, because
passing NULL to gdb_readline_wrapper has the same meaning as passing a
pointer to empty string, since gdb_readline_wrapper exposes the same
interface as 'readline(char *)'. However, gdb_readline_wrapper passes
the prompt argument directly to display_gdb_prompt, and for the
latter, a NULL prompt argument has a different meaning - it requests
printing the primary prompt.
Before commit 782a7b8ef9c096 (which rewrote gdb_readline_wrapper to
use asynchronous readline), GDB behaved like this:
(gdb) commands
[....]
>print \
1
>end
(gdb)
The above is what this commit restores GDB back to.
New test included.
gdb/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR cli/21218
* top.c (gdb_readline_wrapper): Avoid passing NULL to
display_gdb_prompt.
(command_line_input): Add comment.
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
PR cli/21218
* gdb.base/commands.exp (backslash_in_multi_line_command_test):
New proc.
(top level): Call it.
commit 5cf70512f835032c413f2554af07814e1dc05cd6
Author: Jiong Wang <jiong.wang@arm.com>
Date: Wed Mar 8 11:14:41 2017 +0000
[gdb, doc] Add missing escape character '@'
gdb/doc/
* gdb.texinfo (Memory Protection Extensions): Add missing escape
character "@".
commit 9753a2f6d74dc92d2ad94993a5479ee0edbc6887
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 00:14:59 2017 +0000
Fix PR tui/21216: TUI line breaks regression
Commit d7e747318f4d04 ("Eliminate make_cleanup_ui_file_delete / make
ui_file a class hierarchy") regressed the TUI's command window.
Newlines miss doing a "carriage return", resulting in output like:
~~~~~~~~~~~~~~~~~~
(gdb) helpList of classes of commands:
aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Before the commit mentioned above, the default ui_file->to_write
implementation had a hack that would defer into the ui_file->to_fputs
method. The TUI's ui_file did not implement the to_write method, so
all writes would end up going to the ncurses window via tui_file_fputs
-> tui_puts.
After the commit above, the hack is gone, but the TUI's ui_file still
does not implement the ui_file::write method. Since tui_file inherits
from stdio_file, writing to a tui_file ends up doing fwrite on the
FILE stream the TUI is "associated" with, via stdio_file::write,
instead of writing to the ncurses window.
The fix is to have tui_file override the "write" method.
New test included.
gdb/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR tui/21216
* tui/tui-file.c (tui_file::write): New.
* tui/tui-file.h (tui_file): Override "write".
* tui/tui-io.c (do_tui_putc, update_start_line): New functions,
factored out from ...
(tui_puts): ... here.
(tui_putc): Use them.
(tui_write): New function.
* tui/tui-io.h (tui_write): Declare.
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
PR tui/21216
* gdb.tui/tui-nl-filtered-output.exp: New file.
commit 1a4dd9ddae4ce51724b4e08c6304e7c64f8f916f
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 00:14:58 2017 +0000
Move TUI completion tests to gdb.tui/completion.exp
gdb/testsuite/ChangeLog:
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.base/completion.exp: Move TUI completion tests to ...
* gdb.tui/completion.exp: ... this new file.
commit 7cbbff33a502dcba0264a1935840345274b8aee2
Author: Pedro Alves <palves@redhat.com>
Date: Wed Mar 8 00:14:58 2017 +0000
Move TUI testcases to new gdb/testsuite/gdb.tui/ directory
Let's start putting TUI tests in their own dir.
gdb/testsuite/
2017-03-08 Pedro Alves <palves@redhat.com>
* gdb.base/tui-disasm-long-lines.c,
gdb.base/tui-disasm-long-lines.exp, gdb.base/tui-layout.c,
gdb.base/tui-layout.exp: Move to ...
* gdb.tui/: ... this new directory.
commit 50dbe6e1bc8589db8e900299ef03ce9ead4ef3d7
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 8 00:00:42 2017 +0000
Automatic date update in version.in
commit 1672e0d98d88d11b5c7d5793bd2cf29cbb56696f
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Thu Dec 22 09:20:00 2016 -0500
Share gdb/environ.[ch] with gdbserver
We will need access to the environment functions when we share
fork_inferior between GDB and gdbserver, therefore we simply make the
API on gdb/environ.[ch] available on common/. No extra adjustments
are needed to make it compile on gdbserver.
gdb/ChangeLog:
2017-03-07 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (SFILES): Replace "environ.c" with
"common/environ.c".
(HFILES_NO_SRCDIR): Likewise, for "environ.h".
* environ.c: Include "common-defs.h" instead of "defs.h. Moved
to...
* common/environ.c: ... here.
* environ.h: Moved to...
* common/environ.h: ... here.
gdb/gdbserver/ChangeLog:
2017-03-07 Sergio Durigan Junior <sergiodj@redhat.com>
* Makefile.in (SFILES): Add "common/environ.c".
(OBJS): Add "common/environ.h".
commit f7bb4e3a0d3738e8cce3dcded6ef12c9949cb85f
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Tue Mar 7 09:49:10 2017 -0600
GDB: Fix some null pointer dereferences due to disassembler-options patch.
gdb/
* gdbarch.sh (pstring_ptr): New static function.
(gdbarch_disassembler_options): Use it.
(gdbarch_verify_disassembler_options): Print valid_disassembler_options,
not valid_disassembler_option->name.
* gdbarch.c: Regenerate.
commit e45ced6c5e06b0092ac9f5497aa580cfad0c953c
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Tue Mar 7 09:39:13 2017 -0600
Remove use of the no longer needed -mminimal-toc option.
* config/powerpc/ppc64-linux.mh (MH_CFLAGS): Delete.
commit 5f6fd321915fae0194e01322d22cad4e451e8d20
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 7 12:44:58 2017 +0000
Fix "layout reg" crash
Commit d7e747318f4d04 ("Eliminate make_cleanup_ui_file_delete / make
ui_file a class hierarchy") introduced a problem when using "layout
regs", that leads gdb to crash when issuing:
./gdb ./a.out -ex 'layout regs' -ex start
From the backtrace, it's caused by this 'delete' on tui_restore_gdbout():
(gdb) bt
#0 0x00007ffff6b962b2 in free () from /lib64/libc.so.6
#1 0x000000000059fa47 in tui_restore_gdbout (ui=0x22997b0) at ../../gdb/tui/tui-regs.c:714
#2 0x0000000000619996 in do_my_cleanups (pmy_chain=pmy_chain@entry=0x1e08320 <cleanup_chain>, old_chain=old_chain@entry=0x235b4b0) at ../../gdb/common/cleanups.c:154
#3 0x0000000000619b1d in do_cleanups (old_chain=old_chain@entry=0x235b4b0) at ../../gdb/common/cleanups.c:176
#4 0x000000000059fb0d in tui_register_format (frame=frame@entry=0x22564e0, regnum=regnum@entry=0) at ../../gdb/tui/tui-regs.c:747
#5 0x000000000059ffeb in tui_get_register (data=0x2434d18, changedp=0x0, regnum=0, frame=0x22564e0) at ../../gdb/tui/tui-regs.c:768
#6 tui_show_register_group (refresh_values_only=<optimized out>, frame=0x22564e0, group=0x1e09250 <general_group>) at ../../gdb/tui/tui-regs.c:287
#7 tui_show_registers (group=0x1e09250 <general_group>) at ../../gdb/tui/tui-regs.c:156
#8 0x00000000005a07cf in tui_check_register_values (frame=frame@entry=0x22564e0) at ../../gdb/tui/tui-regs.c:496
#9 0x00000000005a3e65 in tui_check_data_values (frame=frame@entry=0x22564e0) at ../../gdb/tui/tui-windata.c:232
#10 0x000000000059cf65 in tui_refresh_frame_and_register_information (registers_too_p=1) at ../../gdb/tui/tui-hooks.c:156
#11 0x00000000006d5c05 in generic_observer_notify (args=0x7fffffffdbe0, subject=<optimized out>) at ../../gdb/observer.c:167
#12 observer_notify_normal_stop (bs=<optimized out>, print_frame=print_frame@entry=1) at ./observer.inc:61
#13 0x00000000006a6409 in normal_stop () at ../../gdb/infrun.c:8364
#14 0x00000000006af8f5 in fetch_inferior_event (client_data=<optimized out>) at ../../gdb/infrun.c:3990
#15 0x000000000066f0fd in gdb_wait_for_event (block=block@entry=0) at ../../gdb/event-loop.c:859
#16 0x000000000066f237 in gdb_do_one_event () at ../../gdb/event-loop.c:322
#17 0x000000000066f386 in gdb_do_one_event () at ../../gdb/event-loop.c:353
#18 0x00000000007411bc in wait_sync_command_done () at ../../gdb/top.c:570
#19 0x0000000000741426 in maybe_wait_sync_command_done (was_sync=0) at ../../gdb/top.c:587
#20 execute_command (p=<optimized out>, p@entry=0x7fffffffe43a "start", from_tty=from_tty@entry=1) at ../../gdb/top.c:676
#21 0x00000000006c2048 in catch_command_errors (command=0x741200 <execute_command(char*, int)>, arg=0x7fffffffe43a "start", from_tty=1) at ../../gdb/main.c:376
#22 0x00000000006c2b60 in captured_main_1 (context=0x7fffffffde70) at ../../gdb/main.c:1119
#23 captured_main (data=0x7fffffffde70) at ../../gdb/main.c:1140
#24 gdb_main (args=args@entry=0x7fffffffdf90) at ../../gdb/main.c:1158
#25 0x0000000000408cf5 in main (argc=<optimized out>, argv=<optimized out>) at ../../gdb/gdb.c:32
(gdb) f 1
#1 0x000000000059fa47 in tui_restore_gdbout (ui=0x22997b0) at ../../gdb/tui/tui-regs.c:714
714 delete gdb_stdout;
The problem is simply that the commit mentioned above made the ui_file
that gdb_stdout is temporarily set to be a stack-allocated
string_file, while before it used to be a heap-allocated ui_file. The
fix is simply to remove the now-incorrect delete.
New test included, which exercises enabling all TUI layouts, with and
without execution. (This particular crash only triggers with
execution.)
gdb/ChangeLog:
2017-03-07 Pedro Alves <palves@redhat.com>
* tui/tui-regs.c (tui_restore_gdbout): Don't delete gdb_stdout.
gdb/testsuite/ChangeLog:
2017-03-07 Pedro Alves <palves@redhat.com>
* gdb.base/tui-layout.c: New file.
* gdb.base/tui-layout.exp: New file.
commit 44959fa81858df7d06fd83b0595b66709e344074
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 7 12:21:00 2017 +0000
Rename gdb.base/tui-layout.exp -> gdb.base/tui-disasm-long-lines.exp
To better reflect what the testcase is about, and to make room for a
different testcase.
gdb/testsuite/ChangeLog:
2017-03-07 Pedro Alves <palves@redhat.com>
* gdb.base/tui-layout.c: Rename to ...
* gdb.base/tui-disasm-long-lines.c: ... this.
* gdb.base/tui-layout.exp: Rename to ...
* gdb.base/tui-disasm-long-lines.exp: ... this.
commit f8c4e718c26a0181821398e09d96113c0ff49c15
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 7 12:11:45 2017 +0000
Add describing intro comment to gdb.base/tui-layout.exp
gdb/testsuite/ChangeLog:
2017-03-07 Pedro Alves <palves@redhat.com>
* gdb.base/tui-layout.exp: Add intro comment and fix typo.
commit 6dbb839a78d343b0a7435ec7db46ee359b1f62ec
Author: Pedro Alves <palves@redhat.com>
Date: Tue Mar 7 13:51:33 2017 +0000
Fix whitespace/typos in gdb/ChangeLog and gdb/testsuite/ChangeLog
commit 4a612d6f67d605f480ce7eec7fd9ca1cd1087b35
Author: Walfred Tedeschi <walfred.tedeschi@intel.com>
Date: Tue Mar 7 13:53:41 2017 +0100
amd64-mpx: initialize BND register before performing inferior calls.
This patch initializes the BND registers before executing the inferior
call. BND registers can be in arbitrary values at the moment of the
inferior call. In case the function being called uses as part of the
parameters BND register, e.g. when passing a pointer as parameter, the
current value of the register will be used. This can cause boundary
violations that are not due to a real bug or even desired by the user.
In this sense the best to be done is set the BND registers to allow
access to the whole memory, i.e. initialized state, before pushing the
inferior call.
2017-03-07 Walfred Tedeschi <walfred.tedeschi@intel.com>
gdb/ChangeLog:
* i387-tdep.h (i387_reset_bnd_regs): Add function definition.
* i387-tdep.c (i387_reset_bnd_regs): Add function implementation.
* i386-tdep.c (i386_push_dummy_call): Call i387_reset_bnd_regs.
* amd64-tdep (amd64_push_dummy_call): Call i387_reset_bnd_regs.
gdb/testsuite/ChangeLog:
* i386-mpx-call.c: New file.
* i386-mpx-call.exp: New file.
gdb/doc/ChangeLog:
* Memory Protection Extensions: Add information about inferior
calls.
commit ea86f5344298e24801c262d9b52afcc9cb692959
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 7 19:39:32 2017 +1030
Correct @section placement for makeinfo 4.13
* doc/as.texinfo (2byte, 4byte, 8byte): Correct @section placement.
commit 2b841ec2066db4870beaa5298feb02f5e20faf7b
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 7 16:46:36 2017 +1030
Document .Nbyte assembler directives
* doc/as.texinfo (2byte, 4byte, 8byte): Document.
* doc/c-arm.texi (2byte, 4byte, 8byte): Omit if ELF.
commit d933941d6c5ce5b2dcaaa869919b6f3de06b725d
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 7 12:20:00 2017 +1030
Fix ld uninitialized read of script ASSERT data structure
lang_assignment_statement serves both assignments and asserts.
* ldlang.c (open_input_bfds): Check that lang_assignment_statement
is not an assert before referencing defsym.
commit b1b07054c08eea65ba8d1a9f771796d686f337e5
Author: Alan Modra <amodra@gmail.com>
Date: Tue Mar 7 11:04:19 2017 +1030
PowerPC64 abort due to dynamic relocs on hidden undefweak
ppc64_elf_relocate_section lacked a check which meant that it emitted
dynamic relocs against a hidden undefweak symbol for which no dynamic
relocs had been allocated.
PR 21224
PR 20519
* elf64-ppc.c (ppc64_elf_relocate_section): Add missing
dyn_relocs check.
commit bb98f85480da563f4f6438abdabb68a69bc746b8
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Mar 7 00:00:39 2017 +0000
Automatic date update in version.in
commit 603555e563725616246912711419637add54c961
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 6 15:26:37 2017 -0800
Add support for Intel CET instructions
Support Intel Control-flow Enforcement Technology (CET) instructions:
https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf
gas/
* config/tc-i386.c (cpu_arch): Add .cet.
* doc/c-i386.texi: Document cet.
* testsuite/gas/i386/cet-intel.d: New file.
* testsuite/gas/i386/cet.d: Likewise.
* testsuite/gas/i386/cet.s: Likewise.
* testsuite/gas/i386/x86-64-cet-intel.d: Likewise.
* testsuite/gas/i386/x86-64-cet.d: Likewise.
* testsuite/gas/i386/x86-64-cet.s: Likewise.
* testsuite/gas/i386/i386.exp: Run Intel CET tests.
opcodes/
* i386-dis.c (REG_0F1E_MOD_3): New enum.
(MOD_0F1E_PREFIX_1): Likewise.
(MOD_0F38F5_PREFIX_2): Likewise.
(MOD_0F38F6_PREFIX_0): Likewise.
(RM_0F1E_MOD_3_REG_7): Likewise.
(PREFIX_MOD_0_0F01_REG_5): Likewise.
(PREFIX_MOD_3_0F01_REG_5_RM_1): Likewise.
(PREFIX_MOD_3_0F01_REG_5_RM_2): Likewise.
(PREFIX_0F1E): Likewise.
(PREFIX_MOD_0_0FAE_REG_5): Likewise.
(PREFIX_0F38F5): Likewise.
(dis386_twobyte): Use PREFIX_0F1E.
(reg_table): Add REG_0F1E_MOD_3.
(prefix_table): Add PREFIX_MOD_0_0F01_REG_5,
PREFIX_MOD_3_0F01_REG_5_RM_1, PREFIX_MOD_3_0F01_REG_5_RM_2,
PREFIX_0F1E, PREFIX_MOD_0_0FAE_REG_5 and PREFIX_0F38F5. Update
PREFIX_0FAE_REG_6 and PREFIX_0F38F6.
(three_byte_table): Use PREFIX_0F38F5.
(mod_table): Use PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_0_0FAE_REG_5.
Add MOD_0F1E_PREFIX_1, MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0.
(rm_table): Add MOD_0F38F5_PREFIX_2, MOD_0F38F6_PREFIX_0,
RM_0F1E_MOD_3_REG_7. Use PREFIX_MOD_3_0F01_REG_5_RM_1 and
PREFIX_MOD_3_0F01_REG_5_RM_2.
* i386-gen.c (cpu_flag_init): Add CPU_CET_FLAGS.
(cpu_flags): Add CpuCET.
* i386-opc.h (CpuCET): New enum.
(CpuUnused): Commented out.
(i386_cpu_flags): Add cpucet.
* i386-opc.tbl: Add Intel CET instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
commit 1cccfb31f5ba0dbc1cd3c679daf2f5b40252c6e0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Mar 6 15:00:52 2017 -0800
Update x86-64-mpx-inval-2 test for COFF
Assembler displays upper case hex numbers and we need to force a good
alignment to avoid matching NOPs at the end.
* testsuite/gas/i386/x86-64-mpx-inval-2.s: Force a good alignment.
* testsuite/gas/i386/x86-64-mpx-inval-2.l: Expect [0-9A-F]+.
commit d274ecf4ddf76768af57e27f654b9ce6784b391c
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Mon Mar 6 16:06:42 2017 -0500
Remove const in xtensa-linux-nat.c:fetch_gregs
Fixes:
/home/emaisin/src/binutils-gdb/gdb/xtensa-linux-nat.c: In function 'void fetch_gregs(regcache*, ptid_t, int)':
/home/emaisin/src/binutils-gdb/gdb/xtensa-linux-nat.c:178:23: error: uninitialized const 'regs' [-fpermissive]
const gdb_gregset_t regs;
^
gdb/ChangeLog:
* xtensa-linux-nat.c (fetch_gregs): Remove const.
commit 79a964dca572024447adf92e50959dc88aa4f27a
Author: Nick Clifton <nickc@redhat.com>
Date: Mon Mar 6 17:21:04 2017 +0000
Fix reading numeric values from GNU BUILD NOTEs.
* readelf.c (print_gnu_build_attribute_name): Read byte values
from the name string as unsigned bytes.
(process_notes_at): Use memcpy to copy an unterminated name
string.
commit 73f07bffaf8d423295a38dde51dfe6ec7b273280
Author: Alan Modra <amodra@gmail.com>
Date: Mon Mar 6 19:39:34 2017 +1030
Don't decode powerpc insns with invalid fields
Certain insns have restrictions on fields. For example, the insn
mentioned in the PR, lqarx, must specify an even general purpose
register as its destination and that register cannot appear in
either of the base or index reg fields. This holds even when the RA0
field is 0 (meaning a zero rather than r0).
PR 21124
* ppc-opc.c (extract_esync, extract_ls, extract_ral, extract_ram)
(extract_raq, extract_ras, extract_rbx): New functions.
(powerpc_operands): Use opposite corresponding insert function.
(Q_MASK): Define.
(powerpc_opcodes): Apply Q_MASK to all quad insns with even
register restriction.
commit ea0de82ec2d7f109ba179d8d55130805e680f02d
Author: Alan Modra <amodra@gmail.com>
Date: Sun Mar 5 23:25:16 2017 +1030
dw2gencfi.c DWARF2_FDE_RELOC_SIZE
Add asserts that reloc size matches encoding size, and tidy.
* dw2gencfi.c (encoding_size): Return unsigned int.
(emit_expr_encoded): Assert size matches reloc bitsize.
(output_fde): Use unsigned for offset_size and addr_size. Set
addr_size earlier and use in place of constant 4 and uses of
DWARF2_FDE_RELOC_SIZE. Assert it matches reloc bitsize.
commit 9e1a8675d49a5bbb881f664f8b7a1081432c994d
Author: Alan Modra <amodra@gmail.com>
Date: Sun Mar 5 22:55:29 2017 +1030
gas/dw2gencfi.c formatting
* dw2gencfi.c: Wrap overlong lines. Add parens for emacs
auto reformat. Formatting and whitespace fixes.
commit 1f5345a614203185f7fdacbf4b000d2676de26dd
Author: Sam Thursfield <sam.thursfield@codethink.co.uk>
Date: Fri Mar 3 14:14:35 2017 +0000
binutils: Fix warning on platforms that don't have asprintf
* configure.ac (AC_CHECK_DECLS): Add asprintf.
* config.in: Regenerate.
* configure: Regenerate.
commit 62e755d208d7359e722a248df3e74278779272c8
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Mon Mar 6 00:00:34 2017 +0000
Automatic date update in version.in
commit 49fced1206db40c71208c201165d65f92c69cebe
Author: Mark Wielaard <mark@klomp.org>
Date: Sun Mar 5 23:37:54 2017 +0100
gas: Emit name, comp_dir and producer strings in .debug_str.
Putting the name, comp_dir and producer strings in the .debug_str section
makes it possible to share them across CUs. This saves a small amount of
space (about ~20K on a glibc libc.so.6 build with debuginfo). And makes
it easier for tools like rpm debugedit to adjust the source paths when
generating separate debuginfo files.
gas/
* dwarf2dbg.c (out_debug_abbrev): Use DW_FORM_strp instead of
DW_FORM_string for DW_AT_name, DW_AT_comp_dir and DW_AT_producer.
(out_debug_info): Accept symbols to name, comp_dir and producer
in the .debug_str section and emit those offsets not full strings.
(out_debug_str): New function that outputs the strings for name,
comp_dir and producer in .debug_str and generates symbols to
those strings.
(out_debug_line): Create a .debug_str section if necessary and
call out_debug_str before calling out_debug_info.
* testsuite/gas/aarch64/dwarf.d: Add extra section symbol to
expected output.
commit 2e0ce1c84d328bde4dca24b7cfc8b9c033ed271c
Author: Alan Modra <amodra@gmail.com>
Date: Sun Mar 5 14:49:54 2017 +1030
Align eh_frame FDEs according to their encoding
bfd/
* elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
* elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
(next_cie_fde_offset): New function.
(_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
(_bfd_elf_discard_section_eh_frame): Align zero terminator to
four bytes. Align CIEs to four or eight bytes depending on
per_encoding_aligned8. Align FDEs according to their encoding.
Pad last FDE to output section alignment.
(_bfd_elf_write_section_eh_frame): Adjust to suit. Remove
assertion.
* elf64-ppc.c (glink_eh_frame_cie): Delete padding.
(ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
(ppc64_elf_finish_dynamic_sections): Adjust to suit.
ld/
* testsuite/ld-elf/eh3.d: Adjust for eh_frame alignment change.
* testsuite/ld-elf/eh6.d: Likewise.
* testsuite/ld-alpha/tlsbin.dd: Likewise.
* testsuite/ld-alpha/tlsbin.td: Likewise.
* testsuite/ld-alpha/tlsbinr.dd: Likewise.
* testsuite/ld-alpha/tlspic.dd: Likewise.
* testsuite/ld-alpha/tlspic.rd: Likewise.
* testsuite/ld-alpha/tlspic.sd: Likewise.
* testsuite/ld-alpha/tlspic.td: Likewise.
* testsuite/ld-mips-elf/eh-frame1-n64.d: Likewise.
* testsuite/ld-mips-elf/eh-frame2-n64.d: Likewise.
* testsuite/ld-mips-elf/eh-frame3.d: Likewise.
* testsuite/ld-x86-64/pr20830a.d: Likewise.
* testsuite/ld-x86-64/pr21038a.d: Likewise.
* testsuite/ld-x86-64/pr21038b.d: Likewise.
* testsuite/ld-x86-64/pr21038c.d: Likewise.
commit 0792e0e1199e76dce19a0f9fbdb29c75b8be8a9b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sun Mar 5 00:00:22 2017 +0000
Automatic date update in version.in
commit 921ea8830c62bf4a60af1783bdd443fd43286359
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Sat Mar 4 00:00:25 2017 +0000
Automatic date update in version.in
commit 8ecbe595e69a84a0e3053884832d63af37113680
Author: Jim Wilson <jim.wilson@linaro.org>
Date: Fri Mar 3 13:10:45 2017 -0800
Fix umulh and smulh bugs. Fix bugs in last week's sumov.s testsuite.
sim/aarch64/
* simulator.c (mul64hi): Shift carry left by 32.
(smulh): Change signum to negate. If negate, invert result, and add
carry bit if low part of multiply result is zero.
sim/testsuite/sim/aarch64/
* sumov.s: Correct compare test values.
* sumulh.s: New.
commit df97be551faa262732128493c8ac159ae4b7f6d3
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Fri Mar 3 12:58:24 2017 -0500
Use range-based for loop in remote_add_target_side_commands
gdb/ChangeLog:
* remote.c (remote_add_target_side_commands): Use range-based
for loop.
commit 7d45f3df96ca108f6d7d0c5e4279e22b820145fa
Author: Yao Qi <yao.qi@linaro.org>
Date: Fri Mar 3 17:16:19 2017 +0000
Fetch lazy value before calling val_print
As reported in PR 21165,
(gdb) info locals^M
gv = /home/yao/SourceCode/gnu/gdb/git/gdb/value.c:372: internal-error: int value_bits_any_optimized_out(const value*, int, int): Assertion `!value->lazy' 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.ada/info_locals_renaming.exp: info locals (GDB internal error)
Resyncing due to internal error.
This internal error is caused by e8b24d9 (Remove parameter valaddr from
la_val_print). Commit e8b24d9 removes some calls to
value_contents_for_printing, but value_fetch_lazy is not called, so the
internal error above is triggered. This patch adds value_fetch_lazy
call before val_print.
gdb:
2017-03-03 Yao Qi <yao.qi@linaro.org>
PR gdb/21165
* ada-valprint.c (ada_val_print_ref): Call value_fetch_lazy if
value is lazy.
* valprint.c (common_val_print): Likewise.
commit 611a3ca929d6529f4e7576b0e2ffb588839c1b21
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 3 11:35:03 2017 +0000
Make the linker fail if asked to create more than 1^16 ordinal values for PE targets.
PR 12969
* pe-dll.c (generate_edata): Fail if the input file(s) require too
many ordinals.
commit d20928fac9ab65449db910bd99a0f48ad29fb22b
Author: Nick Clifton <nickc@redhat.com>
Date: Fri Mar 3 10:22:16 2017 +0000
Fix thinko in previous changelog entry.
PR ld/21212
* elf.c (rewrite_elf_program_header): Do not issue a warning for
empty segments which have a zero filesz, but a non-zero memsz.
commit b565cf21c80945d5e9baa6871653aae5add2d493
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Fri Mar 3 00:00:23 2017 +0000
Automatic date update in version.in
commit 05ed43104ef2c3f75779438111e2913dbd4555a6
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 2 17:10:20 2017 +0000
Support merging build notes in sections without the SHF_GNU_BUILD_NOTE flag set.
* objcopy.c (is_merged_note_section): Support build note sections
without the SHF_GNU_BUILD_NOTE section flag set.
commit f98450c6eee6878ebf5b052d231758026d250427
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 2 14:47:29 2017 +0000
Disable warning message about a program header with no associated sections when that header's file size is non-zero.
PR ld/21212
* elf.c (rewrite_elf_program_header): Do not issue a warning for
empty segments which have a non-zero filesz.
commit c871dadee1817d4b9f3ba6ee792730c9eccf88e0
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Mar 2 10:52:51 2017 +0000
Fix snafu parsing GNU_BUILD_NOTEs on ARM and AArch64 architectures.
* readelf.c (print_gnu_build_attribute_description): Use global
symbols for OPEN attributes if at all possible.
commit b451e98a909e1a6afa71c4a4655adc4cfeea5249
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Mar 2 10:58:19 2017 +0100
New debug_displays_assert
binutils/
2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf.c (debug_displays_assert): New static assertion.
commit d4620bee57be53f7a6b14c01b2ea22d22a61bef0
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Mar 2 10:06:00 2017 +0100
Fix dwarf_section_display_enum regression by DWARF-5
binutils/
2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf.h (enum dwarf_section_display_enum): Add loclists and rnglists.
commit 9875b36538d35f2292ddc3bb5e7c60e1582aa087
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Thu Mar 2 01:24:15 2017 +0000
GAS: Fix bogus "attempt to move .org backwards" relaxation errors
Fix a commit 6afe8e98a664 ("internal error for backwards .org"),
<https://www.sourceware.org/ml/binutils/2008-06/msg00212.html>,
GAS regression that caused legitimate code to fail assembly with an
"attempt to move .org backwards" error.
For example with the `mips-linux' target we get:
$ cat org.s
.set mips16
la $2, foo
.org 0x1000
.align 2
foo:
.half 0
$ as -o org.o org.s
org.s: Assembler messages:
org.s:3: Error: attempt to move .org backwards
$
where the location pointer is obviously not moved backwards with `.org'.
The cause is positive `stretch' in relaxation due to a PC-relative ADDIU
instruction (produced from the LA macro used) getting expanded from 2 to
4 bytes as `foo' is noticed to be out of range for the short encoding.
This in turn triggers logic in `relax_segment' which concludes in the
processing of an `rs_org' frag produced that the location pointer is
moved backwards while in fact only the amount to space forward to the
location requested has shrunk, resulting in a negative growth of the
frag.
Correct the bad logic then and instead verify that the fixed part of an
`rs_org' frag has not overrun the location requested, as per the comment
already included with the error message:
/* Growth may be negative, but variable part of frag
cannot have fewer than 0 chars. That is, we can't
.org backwards. */
which accurately describes the regression scenario. Move the comment
ahead the conditional noted, for clarity.
Add generic and MIPS test cases for the `.org' pseudo-op, including the
test case discussed though not integrated with the offending commit in
particular, adjusted to work across all targets.
gas/
* write.c (relax_segment) <rs_org>: Only bail out if the fixed
part of the frag has overrun the location requested.
* testsuite/gas/all/org-1.d: New test.
* testsuite/gas/all/org-2.d: New test.
* testsuite/gas/all/org-3.d: New test.
* testsuite/gas/all/org-4.d: New test.
* testsuite/gas/all/org-5.d: New test.
* testsuite/gas/all/org-6.d: New test.
* testsuite/gas/all/org-1.l: New stderr output.
* testsuite/gas/all/org-2.l: New stderr output.
* testsuite/gas/all/org-3.l: New stderr output.
* testsuite/gas/all/org-1.s: New test source.
* testsuite/gas/all/org-2.s: New test source.
* testsuite/gas/all/org-3.s: New test source.
* testsuite/gas/all/org-4.s: New test source.
* testsuite/gas/all/org-5.s: New test source.
* testsuite/gas/all/org-6.s: New test source.
* testsuite/gas/all/gas.exp: Run the new tests.
* testsuite/gas/mips/org-1.d: New test.
* testsuite/gas/mips/org-2.d: New test.
* testsuite/gas/mips/org-3.d: New test.
* testsuite/gas/mips/org-4.d: New test.
* testsuite/gas/mips/org-5.d: New test.
* testsuite/gas/mips/org-6.d: New test.
* testsuite/gas/mips/org-7.d: New test.
* testsuite/gas/mips/org-8.d: New test.
* testsuite/gas/mips/org-9.d: New test.
* testsuite/gas/mips/org-10.d: New test.
* testsuite/gas/mips/org-11.d: New test.
* testsuite/gas/mips/org-12.d: New test.
* testsuite/gas/mips/org-1.l: New stderr output.
* testsuite/gas/mips/org-4.l: New stderr output.
* testsuite/gas/mips/org-5.l: New stderr output.
* testsuite/gas/mips/org-6.l: New stderr output.
* testsuite/gas/mips/org-10.l: New stderr output.
* testsuite/gas/mips/org-1.s: New test source.
* testsuite/gas/mips/org-2.s: New test source.
* testsuite/gas/mips/org-3.s: New test source.
* testsuite/gas/mips/org-4.s: New test source.
* testsuite/gas/mips/org-5.s: New test source.
* testsuite/gas/mips/org-6.s: New test source.
* testsuite/gas/mips/org-7.s: New test source.
* testsuite/gas/mips/org-8.s: New test source.
* testsuite/gas/mips/org-9.s: New test source.
* testsuite/gas/mips/org-10.s: New test source.
* testsuite/gas/mips/org-11.s: New test source.
* testsuite/gas/mips/org-12.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.
commit 673cff9b8b3105f74ce97c202a0727f9e83e56e6
Author: Alan Modra <amodra@gmail.com>
Date: Thu Mar 2 10:24:14 2017 +1030
PowerPC VLE typo fix
* elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
commit 199add01b6704e1cd8a48945bd775fbe8524fa75
Author: Alan Modra <amodra@gmail.com>
Date: Thu Mar 2 10:23:42 2017 +1030
Avoid gcc-7 warning killing ld testcases
* testsuite/ld-elf/shared.exp: Pass -ansi when compiling new.cc
and dl3.cc.
commit ecd78df2707734ccb2d0f6e5426321fa399befaa
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Thu Mar 2 00:00:42 2017 +0000
Automatic date update in version.in
commit 134e805d3e18cf700a5046912b8dca9301fe6f2e
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Mar 1 15:09:29 2017 +0000
Sync libiberty sources with GCC mainline.
Brings in:
2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
PR PR c++/70182
* cp-demangle.c (d_unqualified_name): Handle "on" for
operator names.
* testsuite/demangle-expected: Add tests.
2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
PR c++/77489
* cp-demangle.c (d_discriminator): Handle discriminator >= 10.
* testsuite/demangle-expected: Add tests for discriminator.
2016-12-13 Jakub Jelinek <jakub@redhat.com>
PR c++/78761
* cp-demangle.c (cplus_demangle_type): Demangle Dc as decltype(auto).
* testsuite/demangle-expected: Add test for decltype(auto).
commit 01cca2f95e4a448cbfb7dc940cc38fe89300b15f
Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
Date: Wed Mar 1 14:51:13 2017 +0000
[AArch64] Document +rcpc weak release consistency extension
gas/
* doc/c-aarch64.texi (AArch64 Extensions): Document rcpc.
commit 9ef920e933bf2ea228c909cf81636e6d9577e51e
Author: Nick Clifton <nickc@redhat.com>
Date: Wed Mar 1 11:09:46 2017 +0000
Add support for displaying and merging GNU_BUILD_NOTEs.
include * elf/common.h (SHF_GNU_BUILD_NOTE): Define.
(NT_GNU_PROPERTY_TYPE_0): Define.
(NT_GNU_BUILD_ATTRIBUTE_OPEN): Define.
(NT_GNU_BUILD_ATTRIBUTE_FUN): Define.
(GNU_BUILD_ATTRIBUTE_TYPE_NUMERIC): Define.
(GNU_BUILD_ATTRIBUTE_TYPE_STRING): Define.
(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_TRUE): Define.
(GNU_BUILD_ATTRIBUTE_TYPE_BOOL_FALSE): Define.
(GNU_BUILD_ATTRIBUTE_VERSION): Define.
(GNU_BUILD_ATTRIBUTE_STACK_PROT): Define.
(GNU_BUILD_ATTRIBUTE_RELRO): Define.
(GNU_BUILD_ATTRIBUTE_STACK_SIZE): Define.
(GNU_BUILD_ATTRIBUTE_TOOL): Define.
(GNU_BUILD_ATTRIBUTE_ABI): Define.
(GNU_BUILD_ATTRIBUTE_PIC): Define.
(NOTE_GNU_PROPERTY_SECTION_NAME): Define.
(GNU_BUILD_ATTRS_SECTION_NAME): Define.
(GNU_PROPERTY_STACK_SIZE): Define.
(GNU_PROPERTY_NO_COPY_ON_PROTECTED): Define.
(GNU_PROPERTY_X86_ISA_1_USED): Define.
(GNU_PROPERTY_X86_ISA_1_NEEDED): Define.
(GNU_PROPERTY_X86_ISA_1_486): Define.
(GNU_PROPERTY_X86_ISA_1_586): Define.
(GNU_PROPERTY_X86_ISA_1_686): Define.
(GNU_PROPERTY_X86_ISA_1_SSE): Define.
(GNU_PROPERTY_X86_ISA_1_SSE2): Define.
(GNU_PROPERTY_X86_ISA_1_SSE3): Define.
(GNU_PROPERTY_X86_ISA_1_SSSE3): Define.
(GNU_PROPERTY_X86_ISA_1_SSE4_1): Define.
(GNU_PROPERTY_X86_ISA_1_SSE4_2): Define.
(GNU_PROPERTY_X86_ISA_1_AVX): Define.
(GNU_PROPERTY_X86_ISA_1_AVX2): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512F): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512CD): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512ER): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512PF): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512VL): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512DQ): Define.
(GNU_PROPERTY_X86_ISA_1_AVX512BW): Define.
binutils* readelf.c (get_note_type): Add support for GNU_BUILD_NOTEs.
(get_gnu_elf_note_type): Add support for GNU_PROPERTY_NOTEs.
(decode_x86_isa): New function.
(print_gnu_property_note): New function.
(print_gnu_note): Handle GNU_PROPERTY_NOTEs.
(print_gnu_build_attribute_description): New function.
(print_gnu_build_attribute_name): New function.
(process_note): Add support for GNU_BUILD_NOTEs.
* objcopy.c (--merge-notes): New command line option.
(copy_options): Add merge-notes.
(copy_usage): Likewise.
(is_merge_note_section): New function.
(merge_gnu_build_notes): New function.
(copy_object): Merge note sections if asked to do so.
(skip_section): Add skip_copy parameter. Add support for skipping
merged note sections.
(copy_relocations_in_section): Update call to skip_section.
(copy_section): Likewise.
(copy_main): Add support for merge-notes option.
* doc/binutils.texi: Document the new option to objcopy.
* NEWS: Mention the new feature.
* testsuite/binutils-all/note-2-32.d: New test. Checks note
merging on 32-bit targets.
* testsuite/binutils-all/note-2-32.s: New test source file.
* testsuite/binutils-all/note-2-64.d: New test. Like note-2-32.d
but for 64-bit targets.
* testsuite/binutils-all/note-2-64.s: New test source file.
* testsuite/binutils-all/objcopy.exp: Run the new test.
commit a7e8b06b8901309632fad842ffd7d90a81447c80
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Wed Mar 1 00:01:00 2017 +0000
Automatic date update in version.in
commit 65b48a81404cb058c75c562f7dfdeb74f07eba72
Author: Peter Bergner <bergner@vnet.ibm.com>
Date: Tue Feb 28 12:32:07 2017 -0600
GDB: Add support for the new set/show disassembler-options commands.
This commit adds support to GDB so that it can modify the disassembler-options
value that is passed to the disassembler, similar to objdump's -M option.
Currently, the only supported targets are ARM, PowerPC and S/390, but
adding support for a new target(s) is not difficult.
include/
* dis-asm.h (disasm_options_t): New typedef.
(parse_arm_disassembler_option): Remove prototype.
(set_arm_regname_option): Likewise.
(get_arm_regnames): Likewise.
(get_arm_regname_num_options): Likewise.
(disassemble_init_s390): New prototype.
(disassembler_options_powerpc): Likewise.
(disassembler_options_arm): Likewise.
(disassembler_options_s390): Likewise.
(remove_whitespace_and_extra_commas): Likewise.
(disassembler_options_cmp): Likewise.
(next_disassembler_option): New inline function.
(FOR_EACH_DISASSEMBLER_OPTION): New macro.
opcodes/
* disassemble.c Include "safe-ctype.h".
(disassemble_init_for_target): Handle s390 init.
(remove_whitespace_and_extra_commas): New function.
(disassembler_options_cmp): Likewise.
* arm-dis.c: Include "libiberty.h".
(NUM_ELEM): Delete.
(regnames): Use long disassembler style names.
Add force-thumb and no-force-thumb options.
(NUM_ARM_REGNAMES): Rename from this...
(NUM_ARM_OPTIONS): ...to this. Use ARRAY_SIZE.
(get_arm_regname_num_options): Delete.
(set_arm_regname_option): Likewise.
(get_arm_regnames): Likewise.
(parse_disassembler_options): Likewise.
(parse_arm_disassembler_option): Rename from this...
(parse_arm_disassembler_options): ...to this. Make static.
Use new FOR_EACH_DISASSEMBLER_OPTION macro to scan over options.
(print_insn): Use parse_arm_disassembler_options.
(disassembler_options_arm): New function.
(print_arm_disassembler_options): Handle updated regnames.
* ppc-dis.c: Include "libiberty.h".
(ppc_opts): Add "32" and "64" entries.
(ppc_parse_cpu): Use ARRAY_SIZE and disassembler_options_cmp.
(powerpc_init_dialect): Add break to switch statement.
Use new FOR_EACH_DISASSEMBLER_OPTION macro.
(disassembler_options_powerpc): New function.
(print_ppc_disassembler_options): Use ARRAY_SIZE.
Remove printing of "32" and "64".
* s390-dis.c: Include "libiberty.h".
(init_flag): Remove unneeded variable.
(struct s390_options_t): New structure type.
(options): New structure.
(init_disasm): Rename from this...
(disassemble_init_s390): ...to this. Add initializations for
current_arch_mask and option_use_insn_len_bits_p. Remove init_flag.
(print_insn_s390): Delete call to init_disasm.
(disassembler_options_s390): New function.
(print_s390_disassembler_options): Print using information from
struct 'options'.
* po/opcodes.pot: Regenerate.
binutils/
* objdump.c (main): Use remove_whitespace_and_extra_commas.
gdb/
* NEWS: Mention new set/show disassembler-options commands.
* doc/gdb.texinfo: Document new set/show disassembler-options commands.
* disasm.c: Include "arch-utils.h", "gdbcmd.h" and "safe-ctype.h".
(prospective_options): New static variable.
(gdb_disassembler::gdb_disassembler): Initialize
m_di.disassembler_options.
(gdb_buffered_insn_length_init_dis): Initilize di->disassembler_options.
(get_disassembler_options): New function.
(set_disassembler_options): Likewise.
(set_disassembler_options_sfunc): Likewise.
(show_disassembler_options_sfunc): Likewise.
(disassembler_options_completer): Likewise.
(_initialize_disasm): Likewise.
* disasm.h (get_disassembler_options): New prototype.
(set_disassembler_options): Likewise.
* gdbarch.sh (gdbarch_disassembler_options): New variable.
(gdbarch_verify_disassembler_options): Likewise.
* gdbarch.c: Regenerate.
* gdbarch.h: Likewise.
* arm-tdep.c (num_disassembly_options): Delete.
(set_disassembly_style): Likewise.
(arm_disassembler_options): New static variable.
(set_disassembly_style_sfunc): Convert short style name into long
option name. Call set_disassembler_options.
(show_disassembly_style_sfunc): New function.
(arm_gdbarch_init): Call set_gdbarch_disassembler_options and
set_gdbarch_verify_disassembler_options.
(_initialize_arm_tdep): Delete regnames variable and update callers.
(arm_disassembler_options): Initialize.
(disasm_options): New variable.
(num_disassembly_options): Rename from this...
(num_disassembly_styles): ...to this. Compute by scanning through
disasm_options.
(valid_disassembly_styles): Initialize using disasm_options.
Remove calls to parse_arm_disassembler_option, get_arm_regnames and
set_arm_regname_option.
Pass show_disassembly_style_sfunc to the "disassembler" setshow command.
* rs6000-tdep.c (powerpc_disassembler_options): New static variable.
(rs6000_gdbarch_init): Call set_gdbarch_disassembler_options and
set_gdbarch_verify_disassembler_options.
* s390-tdep.c (s390_disassembler_options): New static variable.
(s390_gdbarch_init):all set_gdbarch_disassembler_options and
set_gdbarch_verify_disassembler_options.
gdb/testsuite/
* gdb.arch/powerpc-power.exp: Delete test.
* gdb.arch/powerpc-power.s: Likewise.
* gdb.disasm/disassembler-options.exp: New test.
* gdb.arch/powerpc-altivec.exp: Likewise.
* gdb.arch/powerpc-altivec.s: Likewise.
* gdb.arch/powerpc-altivec2.exp: Likewise.
* gdb.arch/powerpc-altivec2.s: Likewise.
* gdb.arch/powerpc-altivec3.exp: Likewise.
* gdb.arch/powerpc-altivec3.s: Likewise.
* gdb.arch/powerpc-power7.exp: Likewise.
* gdb.arch/powerpc-power7.s: Likewise.
* gdb.arch/powerpc-power8.exp: Likewise.
* gdb.arch/powerpc-power8.s: Likewise.
* gdb.arch/powerpc-power9.exp: Likewise.
* gdb.arch/powerpc-power9.s: Likewise.
* gdb.arch/powerpc-vsx.exp: Likewise.
* gdb.arch/powerpc-vsx.s: Likewise.
* gdb.arch/powerpc-vsx2.exp: Likewise.
* gdb.arch/powerpc-vsx2.s: Likewise.
* gdb.arch/powerpc-vsx3.exp: Likewise.
* gdb.arch/powerpc-vsx3.s: Likewise.
* gdb.arch/arm-disassembler-options.exp: Likewise.
* gdb.arch/powerpc-disassembler-options.exp: Likewise.
* gdb.arch/s390-disassembler-options.exp: Likewise.
commit 2979a883540d9ce6e41dd0509ea2a345de9cf050
Author: Nick Clifton <nickc@redhat.com>
Date: Tue Feb 28 16:54:16 2017 +0000
Revert "Add symbol called __nm_<name> to exported symbols created by dlltool."
This reverts commit 47612ae91c5f2de8960df1d96adf225d2455123f.
commit 3de43e7beb9839fa268a73be77de73a7b7cd97db
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 28 23:42:29 2017 +1030
PowerPC addpcis fix again
In the last patch I said "The patch also fixes overflow checking".
In fact, there wasn't anything wrong with the previous code. So,
revert that change. The new checks are OK too, so this is just a
tidy.
* elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change.
(ppc64_elf_relocate_section): Likewise.
commit 15c7c1d8a535000e94ed36f4259d0ede32001408
Author: Jan Beulich <jbeulich@novell.com>
Date: Tue Feb 28 10:53:35 2017 +0100
x86: fix handling of 64-bit operand size VPCMPESTR{I,M}
Just like REX.W affects operand size of the implicit rAX/rDX inputs to
PCMPESTR{I,M}, VEX.W does for VPCMPESTR{I,M}. Allow Q or L suffixes on
the instructions.
Similarly the disassembler needs to be adjusted to no longer require
VEX.W to be zero for the instructions to be valid, and to emit proper
suffixes.
Note, however, that this doesn't address the problem of there being no
way to control (at least) {,E}VEX.W for 32- or 16-bit code. Nor does it
address the problem of the many WIG instructions not getting properly
disassembled when VEX.W=1.
commit 4ef97a1b459849ad190244c36b36d45bdd078030
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 28 10:38:51 2017 +1030
Nios2 dynobj handling fixes
A number of places in elf32-nios.c created dynamic sections but didn't
set the hash table dynobj. That meant we could have duplicate dynamic
sections connected to a number of bfds, so size_dynamic_sections
didn't properly discard or allocate contents.
Also, the entire set of dynamic sections was created in check_relocs
on seeing GOT relocs, when only .got related sections are needed,
probably done to hide segfaults later in finish_dynamic_sections.
The patch fixes these issues and makes the assembler emit errors when
nios2 lacks the necessary pc-relative relocs for subtraction
expressions, rather than silently generating bad code.
eg. ld-elf/merge. I've also tidied uses of elf32_nios2_hash_table and
elf_hash_table.
bfd/
PR 20995
* elf32-nios2.c (nios2_elf32_relocate_section): Use htab
rather than elf32_nios2_hash_table or elf_hash_table.
(create_got_section): Likewise.
(nios2_elf32_finish_dynamic_symbol): Likewise.
(nios2_elf32_adjust_dynamic_symbol): Likewise.
(nios2_elf32_size_dynamic_sections): Likewise.
(nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
vars. Use htab equivalents directly instead. Don't create
all dynamic sections on needing just the GOT. Use a goto
rather than a fall-through with reloc test. Ensure
htab->dynobj is set when making dynamic sreloc section.
(nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
equivalent directly instead. Don't segfault on looking for
.dynamic when dynamic sections have not been created. Don't
segfault on .got.plt being discarded.
(nios2_elf32_size_dynamic_sections): Delete plt and got vars.
Don't set "relocs" on .rela.plt. Do handle .sbss. Delete
fixme and another not so relevant comment.
(nios2_elf_add_symbol_hook): Delete dynobj var. If not
already set, set hash table dynobj on creating .sbss.
gas/
* config/tc-nios2.h (TC_FORCE_RELOCATION_SUB_LOCAL): Define.
ld/
* testsuite/ld-elf/merge.d: xfail for nios.
commit 7ba71655a425ac44721f97cc0ad7922ca15bce43
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 28 08:32:36 2017 +1030
PowerPC addpcis fix
This came up because I was looking at ld/tmpdir/addpcis.o and noticed
the odd addends on REL16DX_HA. They ought to both be -4. The error
crept in due REL16DX_HA howto being pc-relative (as indeed it should
be), and code at gas/write.c:1001 after this comment
/* Make it pc-relative. If the back-end code has not
selected a pc-relative reloc, cancel the adjustment
we do later on all pc-relative relocs. */
*not* cancelling the pc-relative adjustment. So I've made a dummy
non-relative split reloc so that the generic code handles this, rather
than attempting to add hacks later in md_apply_fix which would not be
very robust. Having the new internal reloc also makes it easy to
support
addpcis rx,sym@ha
as an equivalent to
addpcis rx,(sym-0f)@ha
0:
The patch also fixes overflow checking, which must test whether the
addi will overflow too since @l relocs don't have any overflow check.
Lastly, since I was poking at md_apply_fix, I arranged to have the
generic gas/write.c code emit errors for subtraction expressions where
we lack reloc support.
include/
* elf/ppc64.h (R_PPC64_16DX_HA): New. Expand fake reloc comment.
* elf/ppc.h (R_PPC_16DX_HA): Likewise.
bfd/
* reloc.c (BFD_RELOC_PPC_16DX_HA): New.
* elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto.
(ppc64_elf_reloc_type_lookup): Translate new bfd reloc.
(ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA.
(ppc64_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto.
(ppc_elf_reloc_type_lookup): Translate new bfd reloc.
(ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
gas/
* config/tc-ppc.c (md_assemble): Use BFD_RELOC_PPC_16DX_HA for addpcis.
(md_apply_fix): Remove fx_subsy check. Move code converting to
pcrel reloc earlier and handle BFD_RELOC_PPC_16DX_HA. Remove code
emiiting errors on seeing fx_pcrel set on unexpected relocs, as
that is done now by the generic code via..
* config/tc-ppc.h (TC_FORCE_RELOCATION_SUB_LOCAL): ..this. Define.
(TC_VALIDATE_FIX_SUB): Define.
ld/
* testsuite/ld-powerpc/addpcis.d: Define ext1 and ext2 at
limits of addpcis range.
commit afbf7e8e3aa24152ad58e430c8d37d82e5751f1c
Author: Alan Modra <amodra@gmail.com>
Date: Tue Feb 28 08:06:02 2017 +1030
Don't make dynamic .data.rel.ro SEC_READONLY
I'd made this dynamic section read-only so a flag test distinguished
it from .dynbss, but like any other .data.rel.ro section it really
should be marked read-write. (It is read-only after relocation, not
before.) When using the standard linker scripts this usually doesn't
matter since the output section is among other read-write sections and
not page aligned. However, it might matter in the extraordinary case
of the dynamic section being the only .data.rel.ro section with the
output section just happening to be page aligned and a multiple of a
page in size. In that case the output section would be read-only, and
live it its own read-only PT_LOAD segment, which is incorrect.
* elflink.c (_bfd_elf_create_dynamic_sections): Don't make
dynamic .data.rel.ro read-only.
* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section
rather than section flags when deciding where copy reloc goes.
* elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
* elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
* elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise.
* elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise.
* elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise.
* elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise.
* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise.
* elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
* elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise.
* elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise.
* elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
* elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
* elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise.
* elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise.
* elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
* elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise.
commit 0e39210161e7c547ab53afb86997303e24a42c0c
Author: Maciej W. Rozycki <macro@imgtec.com>
Date: Tue Feb 28 00:14:08 2017 +0000
MIPS/BFD: Also handle `jalr $0, $25' with R_MIPS_JALR
Interpret the `jalr $0, $25' instruction encoding with an R_MIPS_JALR
relocation attached as an alias to `jr $25' and convert the jump to an
equivalent branch where possible, consequently covering the MIPSr6
architecture for the purpose of this optimization too.
bfd/
* elfxx-mips.c (mips_elf_perform_relocation): Also handle the
`jalr $0, $25' instruction encoding.
gas/
* testsuite/gas/mips/jalr4.s: Add `jalr $0, $25' instructions.
* testsuite/gas/mips/jalr4.d: Adjust accordingly. Remove MIPSr6
encoding patterns.
* testsuite/gas/mips/jalr4-n64.d: Likewise.
* testsuite/gas/mips/mipsr6@jalr4.d: New test.
* testsuite/gas/mips/mipsr6@jalr4-n32.d: New test.
* testsuite/gas/mips/mipsr6@jalr4-n64.d: New test.
ld/
* testsuite/ld-mips-elf/jalr4.dd: Adjust for `jalr $0, $25'
instructions.
* testsuite/ld-mips-elf/jalr4-r6.dd: New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new test.
commit 279a558a4d0fad268738ec916628c9c12cfcaf5b
Author: GDB Administrator <gdbadmin@sourceware.org>
Date: Tue Feb 28 00:00:25 2017 +0000
Automatic date update in version.in
commit 9dfd0db952fc07dccebbc244df2a20a6eda14b2c
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Mon Feb 27 23:22:53 2017 +0100
Fix compilation with GCC 4.4.7.
binutils/
2017-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix compilation with GCC 4.4.7.
* dwarf.c (display_loclists_list, display_debug_rnglists_list):
Initialize begin and end.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +
bfd/ChangeLog | 163 +++
bfd/bfd-in2.h | 5 +-
bfd/elf-bfd.h | 6 +-
bfd/elf-eh-frame.c | 83 +-
bfd/elf.c | 13 +-
bfd/elf32-arm.c | 2 +-
bfd/elf32-cris.c | 2 +-
bfd/elf32-hppa.c | 2 +-
bfd/elf32-i386.c | 2 +-
bfd/elf32-metag.c | 2 +-
bfd/elf32-microblaze.c | 2 +-
bfd/elf32-nios2.c | 156 +--
bfd/elf32-or1k.c | 2 +-
bfd/elf32-ppc.c | 116 ++-
bfd/elf32-s390.c | 2 +-
bfd/elf32-tic6x.c | 2 +-
bfd/elf32-tilepro.c | 2 +-
bfd/elf64-ppc.c | 123 ++-
bfd/elf64-s390.c | 2 +-
bfd/elf64-x86-64.c | 2 +-
bfd/elflink.c | 9 +-
bfd/elfnn-aarch64.c | 47 +-
bfd/elfnn-riscv.c | 2 +-
bfd/elfxx-aarch64.c | 8 +-
bfd/elfxx-mips.c | 10 +-
bfd/elfxx-sparc.c | 2 +-
bfd/elfxx-tilegx.c | 2 +-
bfd/libbfd.h | 5 +-
bfd/reloc.c | 6 +-
bfd/rs6000-core.c | 4 +-
bfd/version.h | 2 +-
binutils/ChangeLog | 155 ++-
binutils/NEWS | 6 +
binutils/config.in | 4 +
binutils/configure | 10 +
binutils/configure.ac | 2 +-
binutils/dlltool.c | 20 +-
binutils/doc/binutils.texi | 18 +-
binutils/dwarf.c | 11 +-
binutils/dwarf.h | 2 +
binutils/objcopy.c | 397 +++++-
binutils/objdump.c | 98 +-
binutils/readelf.c | 722 +++++++++-
binutils/testsuite/binutils-all/i386/pr21231a.d | 9 +
binutils/testsuite/binutils-all/i386/pr21231a.s | 14 +
binutils/testsuite/binutils-all/i386/pr21231b.d | 12 +
binutils/testsuite/binutils-all/i386/pr21231b.s | 35 +
binutils/testsuite/binutils-all/note-2-32.d | 17 +
binutils/testsuite/binutils-all/note-2-32.s | 95 ++
binutils/testsuite/binutils-all/note-2-64.d | 17 +
binutils/testsuite/binutils-all/note-2-64.s | 97 ++
binutils/testsuite/binutils-all/objcopy.exp | 5 +
binutils/testsuite/binutils-all/x86-64/pr21231a.d | 9 +
binutils/testsuite/binutils-all/x86-64/pr21231a.s | 14 +
binutils/testsuite/binutils-all/x86-64/pr21231b.d | 12 +
binutils/testsuite/binutils-all/x86-64/pr21231b.s | 35 +
config.guess | 16 +-
config.sub | 14 +-
cpu/ChangeLog | 4 +
cpu/or1kcommon.cpu | 5 +
gas/ChangeLog | 274 ++++
gas/config/tc-aarch64.c | 12 +-
gas/config/tc-arc.c | 18 +-
gas/config/tc-arm.c | 7 +-
gas/config/tc-i386.c | 160 ++-
gas/config/tc-nios2.h | 8 +
gas/config/tc-ppc.c | 126 +--
gas/config/tc-ppc.h | 16 +
gas/config/tc-riscv.c | 32 +-
gas/config/tc-riscv.h | 3 +
gas/config/tc-s390.c | 6 +-
gas/config/tc-xtensa.c | 20 +-
gas/doc/as.texinfo | 47 +
gas/doc/c-aarch64.texi | 2 +
gas/doc/c-arm.texi | 6 +-
gas/doc/c-i386.texi | 30 +-
gas/dw2gencfi.c | 81 +-
gas/dwarf2dbg.c | 65 +-
gas/testsuite/gas/aarch64/dwarf.d | 7 +-
gas/testsuite/gas/aarch64/tls.d | 4 +-
gas/testsuite/gas/all/gas.exp | 28 +
gas/testsuite/gas/all/org-1.d | 3 +
gas/testsuite/gas/all/org-1.l | 2 +
gas/testsuite/gas/all/org-1.s | 25 +
gas/testsuite/gas/all/org-2.d | 2 +
gas/testsuite/gas/all/org-2.l | 2 +
gas/testsuite/gas/all/org-2.s | 9 +
gas/testsuite/gas/all/org-3.d | 2 +
gas/testsuite/gas/all/org-3.l | 2 +
gas/testsuite/gas/all/org-3.s | 9 +
gas/testsuite/gas/all/org-4.d | 5 +
gas/testsuite/gas/all/org-4.s | 9 +
gas/testsuite/gas/all/org-5.d | 5 +
gas/testsuite/gas/all/org-5.s | 9 +
gas/testsuite/gas/all/org-6.d | 5 +
gas/testsuite/gas/all/org-6.s | 9 +
gas/testsuite/gas/arc/nps400-11.d | 303 +++++
gas/testsuite/gas/arc/nps400-11.s | 308 +++++
gas/testsuite/gas/i386/cet-intel.d | 31 +
gas/testsuite/gas/i386/cet.d | 29 +
gas/testsuite/gas/i386/cet.s | 25 +
gas/testsuite/gas/i386/i386.exp | 6 +
gas/testsuite/gas/i386/ilp32/x86-64-avx-intel.d | 88 +-
gas/testsuite/gas/i386/ilp32/x86-64-avx.d | 96 +-
gas/testsuite/gas/i386/ilp32/x86-64-sse2avx.d | 12 +-
gas/testsuite/gas/i386/ilp32/x86-64-sse4_2-intel.d | 4 +
gas/testsuite/gas/i386/ilp32/x86-64-sse4_2.d | 12 +-
gas/testsuite/gas/i386/pseudos.d | 66 +
gas/testsuite/gas/i386/pseudos.s | 62 +
gas/testsuite/gas/i386/x86-64-avx-intel.d | 88 +-
gas/testsuite/gas/i386/x86-64-avx.d | 96 +-
gas/testsuite/gas/i386/x86-64-avx.s | 4 +
gas/testsuite/gas/i386/x86-64-cet-intel.d | 38 +
gas/testsuite/gas/i386/x86-64-cet.d | 37 +
gas/testsuite/gas/i386/x86-64-cet.s | 33 +
gas/testsuite/gas/i386/x86-64-mpx-inval-2.l | 8 +-
gas/testsuite/gas/i386/x86-64-mpx-inval-2.s | 3 +
gas/testsuite/gas/i386/x86-64-pseudos.d | 66 +
gas/testsuite/gas/i386/x86-64-pseudos.s | 62 +
gas/testsuite/gas/i386/x86-64-sse2avx.d | 12 +-
gas/testsuite/gas/i386/x86-64-sse2avx.s | 4 +
gas/testsuite/gas/i386/x86-64-sse4_2-intel.d | 4 +
gas/testsuite/gas/i386/x86-64-sse4_2.d | 12 +-
gas/testsuite/gas/i386/x86-64-sse4_2.s | 4 +
gas/testsuite/gas/mips/jalr4-n64.d | 21 +-
gas/testsuite/gas/mips/jalr4.d | 15 +-
gas/testsuite/gas/mips/jalr4.s | 6 +
gas/testsuite/gas/mips/mips.exp | 13 +
gas/testsuite/gas/mips/mipsr6@jalr4-n32.d | 5 +
gas/testsuite/gas/mips/mipsr6@jalr4-n64.d | 57 +
gas/testsuite/gas/mips/mipsr6@jalr4.d | 39 +
gas/testsuite/gas/mips/org-1.d | 7 +
gas/testsuite/gas/mips/org-1.l | 2 +
gas/testsuite/gas/mips/org-1.s | 9 +
gas/testsuite/gas/mips/org-10.d | 7 +
gas/testsuite/gas/mips/org-10.l | 2 +
gas/testsuite/gas/mips/org-10.s | 11 +
gas/testsuite/gas/mips/org-11.d | 6 +
gas/testsuite/gas/mips/org-11.s | 13 +
gas/testsuite/gas/mips/org-12.d | 5 +
gas/testsuite/gas/mips/org-12.s | 13 +
gas/testsuite/gas/mips/org-2.d | 6 +
gas/testsuite/gas/mips/org-2.s | 11 +
gas/testsuite/gas/mips/org-3.d | 5 +
gas/testsuite/gas/mips/org-3.s | 11 +
gas/testsuite/gas/mips/org-4.d | 3 +
gas/testsuite/gas/mips/org-4.l | 3 +
gas/testsuite/gas/mips/org-4.s | 11 +
gas/testsuite/gas/mips/org-5.d | 3 +
gas/testsuite/gas/mips/org-5.l | 2 +
gas/testsuite/gas/mips/org-5.s | 13 +
gas/testsuite/gas/mips/org-6.d | 2 +
gas/testsuite/gas/mips/org-6.l | 2 +
gas/testsuite/gas/mips/org-6.s | 13 +
gas/testsuite/gas/mips/org-7.d | 6 +
gas/testsuite/gas/mips/org-7.s | 11 +
gas/testsuite/gas/mips/org-8.d | 6 +
gas/testsuite/gas/mips/org-8.s | 13 +
gas/testsuite/gas/mips/org-9.d | 5 +
gas/testsuite/gas/mips/org-9.s | 13 +
gas/testsuite/gas/ppc/altivec2.d | 4 +-
gas/testsuite/gas/ppc/power9.d | 5 +-
gas/testsuite/gas/ppc/power9.s | 1 +
gas/write.c | 9 +-
gdb/ChangeLog | 731 ++++++++++-
gdb/Makefile.in | 4 +-
gdb/NEWS | 17 +
gdb/aarch64-linux-nat.c | 8 +-
gdb/aarch64-tdep.c | 9 +-
gdb/ada-lang.c | 2 +-
gdb/ada-valprint.c | 3 +
gdb/aix-thread.c | 14 +-
gdb/alpha-bsd-nat.c | 12 +-
gdb/amd64-linux-nat.c | 8 +-
gdb/amd64-tdep.c | 9 +-
gdb/amd64-windows-tdep.c | 1 +
gdb/arm-linux-nat.c | 16 +-
gdb/arm-nbsd-nat.c | 20 +-
gdb/arm-tdep.c | 465 +++++--
gdb/ax-gdb.c | 2 +
gdb/bsd-uthread.c | 20 +-
gdb/c-exp.y | 6 +-
gdb/c-typeprint.c | 22 +-
gdb/c-valprint.c | 14 +-
gdb/c-varobj.c | 10 +-
gdb/common/environ.c | 182 +++
gdb/{ => common}/environ.h | 0
gdb/common/gdb_unlinker.h | 2 +-
gdb/compile/compile-c-symbols.c | 2 +-
gdb/completer.c | 3 +-
gdb/config/powerpc/ppc64-linux.mh | 6 -
gdb/corelow.c | 11 +-
gdb/cp-name-parser.y | 22 +-
gdb/cp-support.c | 3 +-
gdb/darwin-nat-info.c | 2 +-
gdb/disasm.c | 179 +++
gdb/disasm.h | 8 +
gdb/doc/ChangeLog | 31 +
gdb/doc/gdb.texinfo | 90 ++-
gdb/doc/guile.texi | 2 +-
gdb/doc/python.texi | 11 +-
gdb/dwarf2loc.c | 103 +-
gdb/dwarf2loc.h | 3 +
gdb/dwarf2read.c | 40 +-
gdb/environ.c | 182 ---
gdb/eval.c | 16 +-
gdb/f-exp.y | 2 +-
gdb/f-typeprint.c | 6 +-
gdb/findvar.c | 6 +-
gdb/gdbarch.c | 52 +
gdb/gdbarch.h | 9 +
gdb/gdbarch.sh | 13 +
gdb/gdbserver/ChangeLog | 238 ++++
gdb/gdbserver/Makefile.in | 532 +-------
gdb/gdbtypes.c | 105 ++-
gdb/gdbtypes.h | 20 +-
gdb/guile/guile-internal.h | 2 +
gdb/guile/scm-lazy-string.c | 119 ++-
gdb/guile/scm-type.c | 15 +-
gdb/guile/scm-value.c | 67 +-
gdb/hppa-linux-nat.c | 15 +-
gdb/hppa-nbsd-nat.c | 22 +-
gdb/hppa-obsd-nat.c | 20 +-
gdb/hppa-tdep.c | 1 +
gdb/i386-bsd-nat.c | 37 +-
gdb/i386-darwin-nat.c | 4 +-
gdb/i386-gnu-nat.c | 12 +-
gdb/i386-linux-nat.c | 29 +-
gdb/i386-tdep.c | 7 +
gdb/i387-tdep.c | 17 +
gdb/i387-tdep.h | 4 +
gdb/ia64-linux-nat.c | 20 +-
gdb/inf-ptrace.c | 162 +--
gdb/infcall.c | 5 +-
gdb/infcmd.c | 2 +-
gdb/infrun.c | 196 ++--
gdb/language.c | 3 +-
gdb/linespec.c | 8 +
gdb/linux-nat.c | 45 +-
gdb/m32c-tdep.c | 8 +-
gdb/m32r-linux-nat.c | 14 +-
gdb/m68k-bsd-nat.c | 22 +-
gdb/m68k-linux-nat.c | 32 +-
gdb/m88k-bsd-nat.c | 6 +-
gdb/m88k-tdep.c | 1 +
gdb/mi/mi-cmd-file.c | 57 +
gdb/mi/mi-cmds.c | 2 +
gdb/mi/mi-cmds.h | 1 +
gdb/mi/mi-interp.c | 36 +-
gdb/mi/mi-interp.h | 27 +
gdb/mips-fbsd-nat.c | 22 +-
gdb/mips-linux-nat.c | 9 +-
gdb/mips-nbsd-nat.c | 22 +-
gdb/mips64-obsd-nat.c | 11 +-
gdb/mn10300-tdep.c | 1 +
gdb/msp430-tdep.c | 2 +-
gdb/nto-procfs.c | 7 +-
gdb/parse.c | 41 +-
gdb/parser-defs.h | 3 +-
gdb/ppc-fbsd-nat.c | 20 +-
gdb/ppc-linux-nat.c | 15 +-
gdb/ppc-nbsd-nat.c | 20 +-
gdb/ppc-obsd-nat.c | 20 +-
gdb/ppc-sysv-tdep.c | 7 +-
gdb/printcmd.c | 2 +-
gdb/procfs.c | 14 +-
gdb/python/lib/gdb/command/explore.py | 2 +-
gdb/python/lib/gdb/printer/bound_registers.py | 7 +
gdb/python/lib/gdb/types.py | 4 +-
gdb/python/py-lazy-string.c | 117 ++-
gdb/python/py-record-btrace.c | 5 +
gdb/python/py-type.c | 14 +-
gdb/python/py-value.c | 113 ++-
gdb/python/py-xmethods.c | 10 +-
gdb/ravenscar-thread.c | 15 +-
gdb/record-btrace.c | 6 +-
gdb/regcache.c | 10 +
gdb/regcache.h | 4 +
gdb/remote-sim.c | 6 +-
gdb/remote.c | 16 +-
gdb/rs6000-nat.c | 18 +-
gdb/rs6000-tdep.c | 7 +
gdb/s390-linux-nat.c | 5 +-
gdb/s390-linux-tdep.c | 64 +-
gdb/ser-base.c | 14 +-
gdb/ser-mingw.c | 2 -
gdb/ser-unix.c | 152 +--
gdb/serial.h | 5 -
gdb/sh-nbsd-nat.c | 10 +-
gdb/sol-thread.c | 14 +-
gdb/solib-frv.c | 2 +-
gdb/solib-svr4.c | 6 +-
gdb/solib.c | 47 +-
gdb/solib.h | 23 +-
gdb/solist.h | 10 +-
gdb/sparc-nat.c | 12 +-
gdb/sparc-tdep.c | 1 +
gdb/sparc-tdep.h | 1 +
gdb/sparc64-tdep.c | 48 +-
gdb/spu-linux-nat.c | 10 +
gdb/spu-multiarch.c | 10 +
gdb/spu-tdep.c | 1 +
gdb/stabsread.c | 3 +-
gdb/symtab.c | 3 +-
gdb/target.c | 4 +
gdb/testsuite/ChangeLog | 204 +++
.../gdb.arch/amd64-entry-value-param-dwarf5.exp | 24 +-
gdb/testsuite/gdb.arch/amd64-entry-value-param.exp | 24 +-
.../gdb.arch/arm-disassembler-options.exp | 56 +
gdb/testsuite/gdb.arch/i386-mpx-call.c | 131 ++
gdb/testsuite/gdb.arch/i386-mpx-call.exp | 387 ++++++
gdb/testsuite/gdb.arch/i386-pkru.exp | 3 +
gdb/testsuite/gdb.arch/powerpc-altivec.exp | 261 ++++
gdb/testsuite/gdb.arch/powerpc-altivec.s | 217 +++
gdb/testsuite/gdb.arch/powerpc-altivec2.exp | 178 +++
gdb/testsuite/gdb.arch/powerpc-altivec2.s | 135 ++
gdb/testsuite/gdb.arch/powerpc-altivec3.exp | 131 ++
gdb/testsuite/gdb.arch/powerpc-altivec3.s | 88 ++
.../gdb.arch/powerpc-disassembler-options.exp | 56 +
gdb/testsuite/gdb.arch/powerpc-power.exp | 1429 --------------------
gdb/testsuite/gdb.arch/powerpc-power.s | 1389 -------------------
gdb/testsuite/gdb.arch/powerpc-power7.exp | 164 +++
gdb/testsuite/gdb.arch/powerpc-power7.s | 121 ++
gdb/testsuite/gdb.arch/powerpc-power8.exp | 248 ++++
gdb/testsuite/gdb.arch/powerpc-power8.s | 205 +++
gdb/testsuite/gdb.arch/powerpc-power9.exp | 445 ++++++
gdb/testsuite/gdb.arch/powerpc-power9.s | 402 ++++++
gdb/testsuite/gdb.arch/powerpc-vsx.exp | 225 +++
gdb/testsuite/gdb.arch/powerpc-vsx.s | 182 +++
gdb/testsuite/gdb.arch/powerpc-vsx2.exp | 118 ++
gdb/testsuite/gdb.arch/powerpc-vsx2.s | 75 +
gdb/testsuite/gdb.arch/powerpc-vsx3.exp | 184 +++
gdb/testsuite/gdb.arch/powerpc-vsx3.s | 141 ++
.../gdb.arch/s390-disassembler-options.exp | 56 +
gdb/testsuite/gdb.arch/sparc64-regs.S | 136 ++
gdb/testsuite/gdb.arch/sparc64-regs.exp | 118 ++
gdb/testsuite/gdb.base/break-fun-addr.exp | 4 +-
gdb/testsuite/gdb.base/commands.exp | 40 +
gdb/testsuite/gdb.base/completion.exp | 37 -
gdb/testsuite/gdb.base/examine-backward.c | 8 +
gdb/testsuite/gdb.base/step-over-exit.exp | 3 +-
gdb/testsuite/gdb.base/tui-layout.exp | 40 -
gdb/testsuite/gdb.btrace/gcore.exp | 3 +-
gdb/testsuite/gdb.cp/demangle.exp | 42 +-
gdb/testsuite/gdb.cp/m-static.exp | 4 +-
gdb/testsuite/gdb.cp/rvalue-ref-casts.cc | 75 +
gdb/testsuite/gdb.cp/rvalue-ref-casts.exp | 77 ++
gdb/testsuite/gdb.cp/rvalue-ref-overload.cc | 86 ++
gdb/testsuite/gdb.cp/rvalue-ref-overload.exp | 69 +
gdb/testsuite/gdb.cp/rvalue-ref-params.cc | 83 ++
gdb/testsuite/gdb.cp/rvalue-ref-params.exp | 69 +
gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc | 75 +
gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp | 43 +
gdb/testsuite/gdb.cp/rvalue-ref-types.cc | 79 ++
gdb/testsuite/gdb.cp/rvalue-ref-types.exp | 128 ++
gdb/testsuite/gdb.cp/templates.exp | 24 +-
gdb/testsuite/gdb.disasm/disassembler-options.exp | 34 +
gdb/testsuite/gdb.dwarf2/nonvar-access.exp | 28 +-
gdb/testsuite/gdb.guile/scm-lazy-string.c | 29 +
gdb/testsuite/gdb.guile/scm-lazy-string.exp | 82 ++
gdb/testsuite/gdb.guile/scm-value.c | 2 -
gdb/testsuite/gdb.guile/scm-value.exp | 31 -
gdb/testsuite/gdb.mi/mi-solib.exp | 49 +-
gdb/testsuite/gdb.python/py-completion.exp | 6 +-
gdb/testsuite/gdb.python/py-lazy-string.c | 5 +
gdb/testsuite/gdb.python/py-lazy-string.exp | 42 +-
gdb/testsuite/gdb.python/py-record-btrace.exp | 6 +-
gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc | 59 +
.../gdb.python/py-rvalue-ref-value-cc.exp | 57 +
gdb/testsuite/gdb.python/py-value.c | 2 -
gdb/testsuite/gdb.python/py-value.exp | 24 -
.../attach-many-short-lived-threads.exp | 8 +-
.../gdb.threads/interrupt-while-step-over.c | 75 +
.../gdb.threads/interrupt-while-step-over.exp | 204 +++
.../signal-while-stepping-over-bp-other-thread.exp | 1 -
gdb/testsuite/gdb.tui/completion.exp | 58 +
.../tui-disasm-long-lines.c} | 0
gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp | 43 +
gdb/testsuite/gdb.tui/tui-layout.c | 22 +
gdb/testsuite/gdb.tui/tui-layout.exp | 56 +
gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp | 57 +
gdb/testsuite/lib/dwarf.exp | 3 +-
gdb/testsuite/lib/gdb.exp | 60 +-
gdb/testsuite/lib/mi-support.exp | 2 +-
gdb/tilegx-linux-nat.c | 13 +-
gdb/top.c | 10 +-
gdb/tui/tui-file.c | 10 +
gdb/tui/tui-file.h | 3 +-
gdb/tui/tui-io.c | 114 +-
gdb/tui/tui-io.h | 4 +
gdb/tui/tui-regs.c | 1 -
gdb/typeprint.c | 4 +-
gdb/ui-out.c | 4 +
gdb/valarith.c | 6 +-
gdb/valops.c | 70 +-
gdb/valprint.c | 8 +-
gdb/value.c | 12 +-
gdb/value.h | 2 +-
gdb/varobj.c | 2 +-
gdb/vax-bsd-nat.c | 11 +-
gdb/windows-nat.c | 52 +-
gdb/xtensa-linux-nat.c | 10 +-
gold/ChangeLog | 57 +
gold/mips.cc | 579 +++++---
include/ChangeLog | 115 ++
include/demangle.h | 9 +-
include/dis-asm.h | 41 +-
include/dwarf2.def | 3 +
include/elf/aarch64.h | 4 +-
include/elf/common.h | 87 +-
include/elf/ppc.h | 6 +-
include/elf/ppc64.h | 6 +-
include/opcode/arc.h | 1 +
include/opcode/s390.h | 3 +-
ld/ChangeLog | 148 ++
ld/NEWS | 6 +
ld/emulparams/elf32ppccommon.sh | 10 +-
ld/emultempl/elf32.em | 153 ++-
ld/ld.texinfo | 29 +-
ld/ldlang.c | 72 +-
ld/pe-dll.c | 55 +-
ld/scripttempl/avrtiny.sc | 10 +-
ld/testsuite/ld-aarch64/ifunc-5r-local.d | 4 +-
ld/testsuite/ld-alpha/tlsbin.dd | 10 +-
ld/testsuite/ld-alpha/tlsbin.td | 12 +-
ld/testsuite/ld-alpha/tlsbinr.dd | 2 +-
ld/testsuite/ld-alpha/tlspic.dd | 10 +-
ld/testsuite/ld-alpha/tlspic.rd | 2 +-
ld/testsuite/ld-alpha/tlspic.sd | 14 +-
ld/testsuite/ld-alpha/tlspic.td | 12 +-
ld/testsuite/ld-checks/checks.exp | 16 +
ld/testsuite/ld-checks/over.d | 4 +
ld/testsuite/ld-checks/over.s | 7 +
ld/testsuite/ld-checks/over2.d | 8 +
ld/testsuite/ld-checks/over2.s | 4 +
ld/testsuite/ld-elf/eh3.d | 12 +-
ld/testsuite/ld-elf/eh6.d | 2 +-
ld/testsuite/ld-elf/merge.d | 2 +-
ld/testsuite/ld-elf/orphan-10.d | 10 +
ld/testsuite/ld-elf/orphan-10.s | 8 +
ld/testsuite/ld-elf/orphan-9.d | 12 +
ld/testsuite/ld-elf/orphan-9.ld | 32 +
ld/testsuite/ld-elf/orphan-9.s | 11 +
ld/testsuite/ld-elf/sec64k.exp | 6 +-
ld/testsuite/ld-elf/shared.exp | 10 +-
ld/testsuite/ld-mips-elf/eh-frame1-n64.d | 76 +-
ld/testsuite/ld-mips-elf/eh-frame2-n64.d | 84 +-
ld/testsuite/ld-mips-elf/eh-frame3.d | 46 +-
ld/testsuite/ld-mips-elf/jalr4-r6.dd | 25 +
ld/testsuite/ld-mips-elf/jalr4.dd | 10 +-
ld/testsuite/ld-mips-elf/mips-elf.exp | 11 +
ld/testsuite/ld-powerpc/addpcis.d | 8 +-
ld/testsuite/ld-x86-64/pr20830a.d | 6 +-
ld/testsuite/ld-x86-64/pr21038a.d | 6 +-
ld/testsuite/ld-x86-64/pr21038b.d | 6 +-
ld/testsuite/ld-x86-64/pr21038c.d | 6 +-
ld/testsuite/lib/ld-lib.exp | 1 +
libiberty/ChangeLog | 87 +-
libiberty/cp-demangle.c | 87 +-
libiberty/cp-demint.c | 3 +
libiberty/testsuite/demangle-expected | 54 +
opcodes/ChangeLog | 161 +++
opcodes/arc-nps400-tbl.h | 191 +++
opcodes/arc-opc.c | 82 ++-
opcodes/arm-dis.c | 169 +--
opcodes/disassemble.c | 70 +
opcodes/i386-dis.c | 145 ++-
opcodes/i386-gen.c | 5 +-
opcodes/i386-init.h | 119 +-
opcodes/i386-opc.h | 12 +-
opcodes/i386-opc.tbl | 183 ++-
opcodes/i386-tbl.h | 923 +++++++++----
opcodes/po/opcodes.pot | 199 ++--
opcodes/ppc-dis.c | 63 +-
opcodes/ppc-opc.c | 226 +++-
opcodes/riscv-opc.c | 16 +-
opcodes/s390-dis.c | 72 +-
opcodes/s390-mkopc.c | 4 -
opcodes/s390-opc.txt | 284 ++--
sim/aarch64/ChangeLog | 6 +
sim/aarch64/simulator.c | 19 +-
sim/testsuite/sim/aarch64/ChangeLog | 5 +
sim/testsuite/sim/aarch64/sumov.s | 12 +-
sim/testsuite/sim/aarch64/sumulh.s | 56 +
485 files changed, 18562 insertions(+), 7390 deletions(-)
create mode 100644 binutils/testsuite/binutils-all/i386/pr21231a.d
create mode 100644 binutils/testsuite/binutils-all/i386/pr21231a.s
create mode 100644 binutils/testsuite/binutils-all/i386/pr21231b.d
create mode 100644 binutils/testsuite/binutils-all/i386/pr21231b.s
create mode 100644 binutils/testsuite/binutils-all/note-2-32.d
create mode 100644 binutils/testsuite/binutils-all/note-2-32.s
create mode 100644 binutils/testsuite/binutils-all/note-2-64.d
create mode 100644 binutils/testsuite/binutils-all/note-2-64.s
create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231a.d
create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231a.s
create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231b.d
create mode 100644 binutils/testsuite/binutils-all/x86-64/pr21231b.s
create mode 100644 gas/testsuite/gas/all/org-1.d
create mode 100644 gas/testsuite/gas/all/org-1.l
create mode 100644 gas/testsuite/gas/all/org-1.s
create mode 100644 gas/testsuite/gas/all/org-2.d
create mode 100644 gas/testsuite/gas/all/org-2.l
create mode 100644 gas/testsuite/gas/all/org-2.s
create mode 100644 gas/testsuite/gas/all/org-3.d
create mode 100644 gas/testsuite/gas/all/org-3.l
create mode 100644 gas/testsuite/gas/all/org-3.s
create mode 100644 gas/testsuite/gas/all/org-4.d
create mode 100644 gas/testsuite/gas/all/org-4.s
create mode 100644 gas/testsuite/gas/all/org-5.d
create mode 100644 gas/testsuite/gas/all/org-5.s
create mode 100644 gas/testsuite/gas/all/org-6.d
create mode 100644 gas/testsuite/gas/all/org-6.s
create mode 100644 gas/testsuite/gas/arc/nps400-11.d
create mode 100644 gas/testsuite/gas/arc/nps400-11.s
create mode 100644 gas/testsuite/gas/i386/cet-intel.d
create mode 100644 gas/testsuite/gas/i386/cet.d
create mode 100644 gas/testsuite/gas/i386/cet.s
create mode 100644 gas/testsuite/gas/i386/pseudos.d
create mode 100644 gas/testsuite/gas/i386/pseudos.s
create mode 100644 gas/testsuite/gas/i386/x86-64-cet-intel.d
create mode 100644 gas/testsuite/gas/i386/x86-64-cet.d
create mode 100644 gas/testsuite/gas/i386/x86-64-cet.s
create mode 100644 gas/testsuite/gas/i386/x86-64-pseudos.d
create mode 100644 gas/testsuite/gas/i386/x86-64-pseudos.s
create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4-n32.d
create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4-n64.d
create mode 100644 gas/testsuite/gas/mips/mipsr6@jalr4.d
create mode 100644 gas/testsuite/gas/mips/org-1.d
create mode 100644 gas/testsuite/gas/mips/org-1.l
create mode 100644 gas/testsuite/gas/mips/org-1.s
create mode 100644 gas/testsuite/gas/mips/org-10.d
create mode 100644 gas/testsuite/gas/mips/org-10.l
create mode 100644 gas/testsuite/gas/mips/org-10.s
create mode 100644 gas/testsuite/gas/mips/org-11.d
create mode 100644 gas/testsuite/gas/mips/org-11.s
create mode 100644 gas/testsuite/gas/mips/org-12.d
create mode 100644 gas/testsuite/gas/mips/org-12.s
create mode 100644 gas/testsuite/gas/mips/org-2.d
create mode 100644 gas/testsuite/gas/mips/org-2.s
create mode 100644 gas/testsuite/gas/mips/org-3.d
create mode 100644 gas/testsuite/gas/mips/org-3.s
create mode 100644 gas/testsuite/gas/mips/org-4.d
create mode 100644 gas/testsuite/gas/mips/org-4.l
create mode 100644 gas/testsuite/gas/mips/org-4.s
create mode 100644 gas/testsuite/gas/mips/org-5.d
create mode 100644 gas/testsuite/gas/mips/org-5.l
create mode 100644 gas/testsuite/gas/mips/org-5.s
create mode 100644 gas/testsuite/gas/mips/org-6.d
create mode 100644 gas/testsuite/gas/mips/org-6.l
create mode 100644 gas/testsuite/gas/mips/org-6.s
create mode 100644 gas/testsuite/gas/mips/org-7.d
create mode 100644 gas/testsuite/gas/mips/org-7.s
create mode 100644 gas/testsuite/gas/mips/org-8.d
create mode 100644 gas/testsuite/gas/mips/org-8.s
create mode 100644 gas/testsuite/gas/mips/org-9.d
create mode 100644 gas/testsuite/gas/mips/org-9.s
create mode 100644 gdb/common/environ.c
rename gdb/{ => common}/environ.h (100%)
delete mode 100644 gdb/environ.c
create mode 100644 gdb/mi/mi-interp.h
create mode 100644 gdb/testsuite/gdb.arch/arm-disassembler-options.exp
create mode 100644 gdb/testsuite/gdb.arch/i386-mpx-call.c
create mode 100644 gdb/testsuite/gdb.arch/i386-mpx-call.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec2.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec2.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec3.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-altivec3.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
delete mode 100644 gdb/testsuite/gdb.arch/powerpc-power.exp
delete mode 100644 gdb/testsuite/gdb.arch/powerpc-power.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power7.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power8.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power8.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power9.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-power9.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx2.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx2.s
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx3.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx3.s
create mode 100644 gdb/testsuite/gdb.arch/s390-disassembler-options.exp
create mode 100644 gdb/testsuite/gdb.arch/sparc64-regs.S
create mode 100644 gdb/testsuite/gdb.arch/sparc64-regs.exp
delete mode 100644 gdb/testsuite/gdb.base/tui-layout.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-params.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.cc
create mode 100644 gdb/testsuite/gdb.cp/rvalue-ref-types.exp
create mode 100644 gdb/testsuite/gdb.disasm/disassembler-options.exp
create mode 100644 gdb/testsuite/gdb.guile/scm-lazy-string.c
create mode 100644 gdb/testsuite/gdb.guile/scm-lazy-string.exp
create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
create mode 100644 gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
create mode 100644 gdb/testsuite/gdb.threads/interrupt-while-step-over.c
create mode 100644 gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
create mode 100644 gdb/testsuite/gdb.tui/completion.exp
rename gdb/testsuite/{gdb.base/tui-layout.c => gdb.tui/tui-disasm-long-lines.c} (100%)
create mode 100644 gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
create mode 100644 gdb/testsuite/gdb.tui/tui-layout.c
create mode 100644 gdb/testsuite/gdb.tui/tui-layout.exp
create mode 100644 gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
create mode 100644 ld/testsuite/ld-checks/over.d
create mode 100644 ld/testsuite/ld-checks/over.s
create mode 100644 ld/testsuite/ld-checks/over2.d
create mode 100644 ld/testsuite/ld-checks/over2.s
create mode 100644 ld/testsuite/ld-elf/orphan-10.d
create mode 100644 ld/testsuite/ld-elf/orphan-10.s
create mode 100644 ld/testsuite/ld-elf/orphan-9.d
create mode 100644 ld/testsuite/ld-elf/orphan-9.ld
create mode 100644 ld/testsuite/ld-elf/orphan-9.s
create mode 100644 ld/testsuite/ld-mips-elf/jalr4-r6.dd
create mode 100644 sim/testsuite/sim/aarch64/sumulh.s
First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index c9a95fe..8565325 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-22 Nick Clifton <nickc@redhat.com>
+
+ * config.sub: Sync with master version in config project.
+ * config.guess: Likewise.
+
2017-01-23 Nick Clifton <nickc@redhat.com>
* configure.ac: Update year in copyright notice.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0f8d9ee..50e76c2 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,166 @@
+2017-03-20 Alan Modra <amodra@gmail.com>
+
+ PR 21266
+ * elf64-ppc.c (compare_symbols): Stabilize sort.
+
+2017-03-18 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct ppc_link_hash_table): Add
+ local_ifunc_resolver and maybe_local_ifunc_resolver.
+ (ppc_build_one_stub): Set flags on emitting dynamic
+ relocation to ifunc.
+ (ppc64_elf_relocate_section): Likewise.
+ (ppc64_elf_finish_dynamic_symbol): Likewise.
+ (ppc64_elf_finish_dynamic_sections): Error on DT_TEXTREL with
+ local dynamic relocs to ifuncs.
+ * elf32-ppc.c (struct ppc_elf_link_hash_table): Add
+ local_ifunc_resolver and maybe_local_ifunc_resolver.
+ (ppc_elf_relocate_section): Set flag on emitting dynamic
+ relocation to ifuncs.
+ (ppc_elf_finish_dynamic_symbol): Likewise.
+ (ppc_elf_finish_dynamic_sections): Error on DT_TEXTREL with local
+ dynamic relocs to ifuncs.
+
+2017-03-13 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/21202
+ * reloc.c (BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC): Rename to
+ BFD_RELOC_AARCH64_TLSDESC_LD64_LO12.
+ (BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC): Rename to
+ BFD_RELOC_AARCH64_TLSDESC_ADD_LO12.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
+ * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Update reloc
+ names.
+ (IS_AARCH64_TLSDESC_RELOC): Likewise.
+ (elfNN_aarch64_howto_table): Likewise.
+ (aarch64_tls_transition_without_check): Likewise.
+ (aarch64_reloc_got_type): Likewise.
+ (elfNN_aarch64_final_link_relocate): Likewise.
+ (elfNN_aarch64_tls_relax): Likewise.
+ (elfNN_aarch64_relocate_section): Likewise.
+ (elfNN_aarch64_gc_sweep_hook): Likewise.
+ (elfNN_aarch64_check_relocs): Likewise.
+ * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
+ (_bfd_aarch64_elf_resolve_relocation): Likewise.
+
+2017-03-11 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c: Remove ATTRIBUTE_UNUSED throughout when function
+ parameter is in fact used. Whitespace fixes.
+ * elf64-ppc.c: Likewise.
+
+2017-03-09 Sam Thursfield <sam.thursfield@codethink.co.uk>
+
+ * rs6000-core.c (CORE_NEW): Simplify macro when
+ AIX_CORE_DUMPX_CORE and BFD64 are true to avoid compile warning.
+
+2017-03-07 Alan Modra <amodra@gmail.com>
+
+ PR 21224
+ PR 20519
+ * elf64-ppc.c (ppc64_elf_relocate_section): Add missing
+ dyn_relocs check.
+
+2017-03-05 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (struct eh_cie_fde): Add u.cie.per_encoding_aligned8.
+ * elf-eh-frame.c (size_of_output_cie_fde): Don't align here.
+ (next_cie_fde_offset): New function.
+ (_bfd_elf_parse_eh_frame): Set u.cie.per_encoding_aligned8.
+ (_bfd_elf_discard_section_eh_frame): Align zero terminator to
+ four bytes. Align CIEs to four or eight bytes depending on
+ per_encoding_aligned8. Align FDEs according to their encoding.
+ Pad last FDE to output section alignment.
+ (_bfd_elf_write_section_eh_frame): Adjust to suit. Remove
+ assertion.
+ * elf64-ppc.c (glink_eh_frame_cie): Delete padding.
+ (ppc64_elf_size_stubs): Pad glink eh_frame as per elf-eh-frame.c.
+ (ppc64_elf_finish_dynamic_sections): Adjust to suit.
+
+2017-03-02 Martin Bickel <binutils@ineranves.de>
+
+ PR ld/21212
+ * elf.c (rewrite_elf_program_header): Do not issue a warning for
+ empty segments which have a zero filesz, but a non-zero memsz.
+
+2017-03-02 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (ppc_elf_vle_split16): Correct insn mask typo.
+
+2017-02-28 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_ha_reloc): Revert last change.
+ (ppc64_elf_relocate_section): Likewise.
+
+2017-02-28 Alan Modra <amodra@gmail.com>
+
+ PR 20995
+ * elf32-nios2.c (nios2_elf32_relocate_section): Use htab
+ rather than elf32_nios2_hash_table or elf_hash_table.
+ (create_got_section): Likewise.
+ (nios2_elf32_finish_dynamic_symbol): Likewise.
+ (nios2_elf32_adjust_dynamic_symbol): Likewise.
+ (nios2_elf32_size_dynamic_sections): Likewise.
+ (nios2_elf32_check_relocs): Delete dynobj, sgot, and srelgot
+ vars. Use htab equivalents directly instead. Don't create
+ all dynamic sections on needing just the GOT. Use a goto
+ rather than a fall-through with reloc test. Ensure
+ htab->dynobj is set when making dynamic sreloc section.
+ (nios2_elf32_finish_dynamic_sections): Delete dynobj, use htab
+ equivalent directly instead. Don't segfault on looking for
+ .dynamic when dynamic sections have not been created. Don't
+ segfault on .got.plt being discarded.
+ (nios2_elf32_size_dynamic_sections): Delete plt and got vars.
+ Don't set "relocs" on .rela.plt. Do handle .sbss. Delete
+ fixme and another not so relevant comment.
+ (nios2_elf_add_symbol_hook): Delete dynobj var. If not
+ already set, set hash table dynobj on creating .sbss.
+
+2017-02-28 Alan Modra <amodra@gmail.com>
+
+ * reloc.c (BFD_RELOC_PPC_16DX_HA): New.
+ * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_16DX_HA>): New howto.
+ (ppc64_elf_reloc_type_lookup): Translate new bfd reloc.
+ (ppc64_elf_ha_reloc): Correct overflow test on REL16DX_HA.
+ (ppc64_elf_relocate_section): Likewise.
+ * elf32-ppc.c (ppc_elf_howto_raw <R_PPC_16DX_HA>): New howto.
+ (ppc_elf_reloc_type_lookup): Translate new bfd reloc.
+ (ppc_elf_check_relocs): Handle R_PPC_16DX_HA to pacify gcc.
+ * libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+
+2017-02-28 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_create_dynamic_sections): Don't make
+ dynamic .data.rel.ro read-only.
+ * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Compare section
+ rather than section flags when deciding where copy reloc goes.
+ * elf32-cris.c (elf_cris_finish_dynamic_symbol): Likewise.
+ * elf32-hppa.c (elf32_hppa_finish_dynamic_symbol): Likewise.
+ * elf32-i386.c (elf_i386_finish_dynamic_symbol): Likewise.
+ * elf32-metag.c (elf_metag_finish_dynamic_symbol): Likewise.
+ * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol): Likewise.
+ * elf32-nios2.c (nios2_elf32_finish_dynamic_symbol): Likewise.
+ * elf32-or1k.c (or1k_elf_finish_dynamic_symbol): Likewise.
+ * elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Likewise.
+ * elf32-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+ * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol): Likewise.
+ * elf32-tilepro.c (tilepro_elf_finish_dynamic_symbol): Likewise.
+ * elf64-ppc.c (ppc64_elf_finish_dynamic_symbol): Likewise.
+ * elf64-s390.c (elf_s390_finish_dynamic_symbol): Likewise.
+ * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise.
+ * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol): Likewise.
+ * elfnn-riscv.c (riscv_elf_finish_dynamic_symbol): Likewise.
+ * elfxx-mips.c (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
+ * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Likewise.
+ * elfxx-tilegx.c (tilegx_elf_finish_dynamic_symbol): Likewise.
+
+2017-02-28 Maciej W. Rozycki <macro@imgtec.com>
+
+ * elfxx-mips.c (mips_elf_perform_relocation): Also handle the
+ `jalr $0, $25' instruction encoding.
+
2017-02-27 Nick Clifton <nickc@redhat.com>
PR ld/21180
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index f17813a..59403af 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3362,6 +3362,7 @@ instruction. */
BFD_RELOC_PPC_VLE_SDAREL_HI16D,
BFD_RELOC_PPC_VLE_SDAREL_HA16A,
BFD_RELOC_PPC_VLE_SDAREL_HA16D,
+ BFD_RELOC_PPC_16DX_HA,
BFD_RELOC_PPC_REL16DX_HA,
BFD_RELOC_PPC64_HIGHER,
BFD_RELOC_PPC64_HIGHER_S,
@@ -6155,13 +6156,13 @@ instructions. */
BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21,
/* AArch64 TLS DESC relocation. */
- BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC,
+ BFD_RELOC_AARCH64_TLSDESC_LD64_LO12,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC,
/* AArch64 TLS DESC relocation. */
- BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC,
+ BFD_RELOC_AARCH64_TLSDESC_ADD_LO12,
/* AArch64 TLS DESC relocation. */
BFD_RELOC_AARCH64_TLSDESC_OFF_G1,
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index f5a8d75..9e3d6f5 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -342,6 +342,10 @@ struct eh_cie_fde
make_per_encoding_relative is. */
unsigned int per_encoding_relative : 1;
+ /* True if the CIE contains personality data aligned to a
+ multiple of eight bytes. */
+ unsigned int per_encoding_aligned8 : 1;
+
/* True if we need to add an 'R' (FDE encoding) entry to the
CIE's augmentation data. */
unsigned int add_fde_encoding : 1;
@@ -350,7 +354,7 @@ struct eh_cie_fde
unsigned int merged : 1;
/* Unused bits. */
- unsigned int pad1 : 18;
+ unsigned int pad1 : 17;
} cie;
} u;
unsigned int reloc_index;
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 1b03b9b..6967f37 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -309,11 +309,10 @@ extra_augmentation_data_bytes (struct eh_cie_fde *entry)
return size;
}
-/* Return the size that ENTRY will have in the output. ALIGNMENT is the
- required alignment of ENTRY in bytes. */
+/* Return the size that ENTRY will have in the output. */
static unsigned int
-size_of_output_cie_fde (struct eh_cie_fde *entry, unsigned int alignment)
+size_of_output_cie_fde (struct eh_cie_fde *entry)
{
if (entry->removed)
return 0;
@@ -321,8 +320,22 @@ size_of_output_cie_fde (struct eh_cie_fde *entry, unsigned int alignment)
return 4;
return (entry->size
+ extra_augmentation_string_bytes (entry)
- + extra_augmentation_data_bytes (entry)
- + alignment - 1) & -alignment;
+ + extra_augmentation_data_bytes (entry));
+}
+
+/* Return the offset of the FDE or CIE after ENT. */
+
+static unsigned int
+next_cie_fde_offset (struct eh_cie_fde *ent,
+ struct eh_cie_fde *last,
+ asection *sec)
+{
+ while (++ent < last)
+ {
+ if (!ent->removed)
+ return ent->new_offset;
+ }
+ return sec->size;
}
/* Assume that the bytes between *ITER and END are CFA instructions.
@@ -811,6 +824,8 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
{
length = -(buf - ehbuf) & (per_width - 1);
REQUIRE (skip_bytes (&buf, end, length));
+ if (per_width == 8)
+ this_inf->u.cie.per_encoding_aligned8 = 1;
}
this_inf->u.cie.personality_offset = buf - start;
ENSURE_NO_RELOCS (buf);
@@ -1326,7 +1341,7 @@ _bfd_elf_discard_section_eh_frame
struct eh_cie_fde *ent;
struct eh_frame_sec_info *sec_info;
struct eh_frame_hdr_info *hdr_info;
- unsigned int ptr_size, offset;
+ unsigned int ptr_size, offset, eh_alignment;
if (sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME)
return FALSE;
@@ -1406,14 +1421,46 @@ _bfd_elf_discard_section_eh_frame
sec_info->cies = NULL;
}
+ /* It may be that some .eh_frame input section has greater alignment
+ than other .eh_frame sections. In that case we run the risk of
+ padding with zeros before that section, which would be seen as a
+ zero terminator. Alignment padding must be added *inside* the
+ last FDE instead. For other FDEs we align according to their
+ encoding, in order to align FDE address range entries naturally. */
offset = 0;
for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent)
if (!ent->removed)
{
+ eh_alignment = 4;
+ if (ent->size == 4)
+ ;
+ else if (ent->cie)
+ {
+ if (ent->u.cie.per_encoding_aligned8)
+ eh_alignment = 8;
+ }
+ else
+ {
+ eh_alignment = get_DW_EH_PE_width (ent->fde_encoding, ptr_size);
+ if (eh_alignment < 4)
+ eh_alignment = 4;
+ }
+ offset = (offset + eh_alignment - 1) & -eh_alignment;
ent->new_offset = offset;
- offset += size_of_output_cie_fde (ent, ptr_size);
+ offset += size_of_output_cie_fde (ent);
}
+ /* Pad the last FDE out to the output section alignment if there are
+ following sections, in order to ensure no padding between this
+ section and the next. (Relies on the output section alignment
+ being the maximum of all input sections alignments, which is the
+ case unless someone is overriding alignment via scripts.) */
+ eh_alignment = 4;
+ if (sec->map_head.s != NULL
+ && (sec->map_head.s->size != 4
+ || sec->map_head.s->map_head.s != NULL))
+ eh_alignment = 1 << sec->output_section->alignment_power;
+ offset = (offset + eh_alignment - 1) & -eh_alignment;
sec->rawsize = sec->size;
sec->size = offset;
return offset != sec->rawsize;
@@ -1732,8 +1779,7 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
struct elf_link_hash_table *htab;
struct eh_frame_hdr_info *hdr_info;
unsigned int ptr_size;
- struct eh_cie_fde *ent;
- bfd_size_type sec_size;
+ struct eh_cie_fde *ent, *last_ent;
if (sec->sec_info_type != SEC_INFO_TYPE_EH_FRAME)
/* FIXME: octets_per_byte. */
@@ -1771,7 +1817,8 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
if (!ent->removed && ent->new_offset < ent->offset)
memmove (contents + ent->new_offset, contents + ent->offset, ent->size);
- for (ent = sec_info->entry; ent < sec_info->entry + sec_info->count; ++ent)
+ last_ent = sec_info->entry + sec_info->count;
+ for (ent = sec_info->entry; ent < last_ent; ++ent)
{
unsigned char *buf, *end;
unsigned int new_size;
@@ -1782,13 +1829,13 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
if (ent->size == 4)
{
/* Any terminating FDE must be at the end of the section. */
- BFD_ASSERT (ent == sec_info->entry + sec_info->count - 1);
+ BFD_ASSERT (ent == last_ent - 1);
continue;
}
buf = contents + ent->new_offset;
end = buf + ent->size;
- new_size = size_of_output_cie_fde (ent, ptr_size);
+ new_size = next_cie_fde_offset (ent, last_ent, sec) - ent->new_offset;
/* Update the size. It may be shrinked. */
bfd_put_32 (abfd, new_size - 4, buf);
@@ -2059,18 +2106,6 @@ _bfd_elf_write_section_eh_frame (bfd *abfd,
}
}
- /* We don't align the section to its section alignment since the
- runtime library only expects all CIE/FDE records aligned at
- the pointer size. _bfd_elf_discard_section_eh_frame should
- have padded CIE/FDE records to multiple of pointer size with
- size_of_output_cie_fde. */
- sec_size = sec->size;
- if (sec_info->count != 0
- && sec_info->entry[sec_info->count - 1].size == 4)
- sec_size -= 4;
- if ((sec_size % ptr_size) != 0)
- abort ();
-
/* FIXME: octets_per_byte. */
return bfd_set_section_contents (abfd, sec->output_section,
contents, (file_ptr) sec->output_offset,
diff --git a/bfd/elf.c b/bfd/elf.c
index 94726ba..9418e51 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -6689,11 +6689,16 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd)
/* Special segments, such as the PT_PHDR segment, may contain
no sections, but ordinary, loadable segments should contain
something. They are allowed by the ELF spec however, so only
- a warning is produced. */
- if (segment->p_type == PT_LOAD)
+ a warning is produced.
+ There is however the valid use case of embedded systems which
+ have segments with p_filesz of 0 and a p_memsz > 0 to initialize
+ flash memory with zeros. No warning is shown for that case. */
+ if (segment->p_type == PT_LOAD
+ && (segment->p_filesz > 0 || segment->p_memsz == 0))
+ /* xgettext:c-format */
_bfd_error_handler (_("\
-%B: warning: Empty loadable segment detected, is this intentional ?"),
- ibfd);
+%B: warning: Empty loadable segment detected at vaddr=0x%.8x, is this intentional ?"),
+ ibfd, segment->p_vaddr);
map->count = 0;
*pointer_to_map = map;
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 8171b0b..0a78595 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -16311,7 +16311,7 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd,
+ h->root.u.def.section->output_section->vma
+ h->root.u.def.section->output_offset);
rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_COPY);
- if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (h->root.u.def.section == htab->root.sdynrelro)
s = htab->root.sreldynrelro;
else
s = htab->root.srelbss;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index a69c7e4..97b8cc3 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -2275,7 +2275,7 @@ elf_cris_finish_dynamic_symbol (bfd *output_bfd,
&& (h->root.type == bfd_link_hash_defined
|| h->root.type == bfd_link_hash_defweak));
- if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (h->root.u.def.section == htab->root.sdynrelro)
s = htab->root.sreldynrelro;
else
s = htab->root.srelbss;
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index d5b911c..1deebf4 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -4432,7 +4432,7 @@ elf32_hppa_finish_dynamic_symbol (bfd *output_bfd,
+ eh->root.u.def.section->output_section->vma);
rela.r_addend = 0;
rela.r_info = ELF32_R_INFO (eh->dynindx, R_PARISC_COPY);
- if ((eh->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (eh->root.u.def.section == htab->etab.sdynrelro)
sec = htab->etab.sreldynrelro;
else
sec = htab->etab.srelbss;
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index e6e70d8..2784ef7 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -5666,7 +5666,7 @@ do_glob_dat:
+ h->root.u.def.section->output_section->vma
+ h->root.u.def.section->output_offset);
rel.r_info = ELF32_R_INFO (h->dynindx, R_386_COPY);
- if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (h->root.u.def.section == htab->elf.sdynrelro)
s = htab->elf.sreldynrelro;
else
s = htab->elf.srelbss;
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 40a2baf..c45d719 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -3229,7 +3229,7 @@ elf_metag_finish_dynamic_symbol (bfd *output_bfd,
+ eh->root.u.def.section->output_section->vma);
rel.r_addend = 0;
rel.r_info = ELF32_R_INFO (eh->dynindx, R_METAG_COPY);
- if ((eh->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (eh->root.u.def.section == htab->etab.sdynrelro)
s = htab->etab.sreldynrelro;
else
s = htab->etab.srelbss;
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index 27118c1..325a0d6 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -3277,7 +3277,7 @@ microblaze_elf_finish_dynamic_symbol (bfd *output_bfd,
+ h->root.u.def.section->output_offset);
rela.r_info = ELF32_R_INFO (h->dynindx, R_MICROBLAZE_COPY);
rela.r_addend = 0;
- if ((h->root.u.def.section->flags & SEC_READONLY) != 0)
+ if (h->root.u.def.section == htab->elf.sdynrelro)
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx
@ 2016-12-17 15:05 jkratoch
0 siblings, 0 replies; 9+ messages in thread
From: jkratoch @ 2016-12-17 15:05 UTC (permalink / raw)
To: archer-commits
The branch, users/jkratoch/indexcxx has been updated
via 0c0575d9bce26a219a5db55b10aa4e28650150ff (commit)
via ddb9ad345c9b4a8cfe2c9a71190ecf408454e745 (commit)
via 97f00e367c8222cda51bc7c0e9d3073a487a5976 (commit)
via db7b55faa1a11e632ddf57505c9bb64bc783471a (commit)
via 221855059a11ab76aa909a5df4104354f9384139 (commit)
via 4c4067e410581fe5c6190407b4fd410e7b71f9e4 (commit)
via a961cdd5f139d3c3e09170db52bd8df7dafae13f (commit)
via 02aa377fbdd17b763b1e32ad72ccfd1c617ce463 (commit)
via cadf97cf20cf76af35e41075dff81197fbec0e51 (commit)
via 5e7fc731f80e0d08385a05ad47dda332a49d9341 (commit)
via 8184783a4069e04deb2e43b4ad0d66d80f1ad2df (commit)
via eefc3365838ed15c02bd7da39fbc31c00d07b398 (commit)
via 353abf7c10561aab3e8e7ffce6e270c3743376f0 (commit)
via 63e014fccdd91a89873554f6b33d7128d7112813 (commit)
via c1fc2d7ee590f3bc87ee79c36e7216b0b6bb054b (commit)
via 7acd51d6971f12b832cd7281f669a7ae7feddf45 (commit)
via 98fa61facff8fb041205950d642f5403372bfd96 (commit)
via a02c3512655cc2c8ad68e4b656959b7d284acc7d (commit)
via 6650f7bd18f8161b9f666d3e65a6346e23a9d85f (commit)
via fc8e0108db6c60f2ecefb4004cddb94e8824fd42 (commit)
via 591be3e4a841ac56bb3ee094447b708d58a6d4b8 (commit)
via 03fb64f837bd8466ba6e7b7cb8880f5c6c87daab (commit)
via a6a51754740513db76fdee3aa153cdd51e87a24a (commit)
via aa785360cfa271505394080c8e367017782ca57a (commit)
via 963201cf5d29c4dc718b5fb3507e085b302ff896 (commit)
via 9282b95ab7bfe1cdf471e9dd609ae0ea7bbed925 (commit)
via 971f1d27d2ee2732f9ab2fa75923007b40e2bbec (commit)
via 1bec0c8632397f3c5cdcf27bbb53318f6a6af7e0 (commit)
via 1336427510a5ffe7ed8f0c402cc9d315cc679952 (commit)
via bfbf34de2f27672282d4fa4c0916cc41890dcc6c (commit)
via d81222d3863037a90e0402cf438f7e45600feea2 (commit)
via 75c6202b1d13b892581e8dd56b8e0664815390c1 (commit)
via 22b05d33b4c870d65972ff8aefdd297ddc66d139 (commit)
via 6392030005291f7c783da2247b63ae31dc8352e0 (commit)
via ea0ffd5be2dfd6ee696fc15294d7b2bf29f267a7 (commit)
via d32a48b9f2d8a374b7ce3f2c47cc9a1c3b184838 (commit)
via 88acc2e16743fc1e6384758c9a68cd6d2a8bbd46 (commit)
via d36cab83a963f5bb3773e0218cc02f63b0851d0b (commit)
via 029e9d52de3ac7fe984dc079ebd24506fd1eace7 (commit)
via 3a0b8f7ddb874283879baaf8af6d11094f4c4999 (commit)
via cc90de49738ad220bd1d3d001b492679fc488fe1 (commit)
via 5d9f66cb84b9f228c1082d3a1037355edceddded (commit)
via e83563a9ed0dd6ccc415c4b0cce373fc3264b7a5 (commit)
via 98fdf25a43abdad5784e762466fdd7bd59b0899e (commit)
via ec6f610ffcc411237e9f8955dd2227cefd255af2 (commit)
via 4783ebbcfa35032ac2742f403258a14b647d9ba6 (commit)
via 64c111834081a117f902cffc15dadbc535f1c65e (commit)
via f17ecb4baca990b57cc57e8337c4e03ecee02742 (commit)
via 55af478400524cba7994e353fd9a98ef1543df2f (commit)
via 1736a7bd96e8927c3f889a35f9153df4fd19d833 (commit)
via f94f411b8308674eb4f790a9fcad0ffa30b568e5 (commit)
via a28aa6edd4ba848c110cd73fd4e29c2bbdb2cb72 (commit)
via 1a31b34a18d61dee55042f2ab23c8fa9203fe6ef (commit)
via f1b5deee16144a75aa605bf37ed38d461587d399 (commit)
via fc2f703edb656c69b0026a006c6063cdb255e06a (commit)
via 198cd59d289209ad63cdd6da45e02a1c12b423a7 (commit)
via 364ca42e71dfdce3f34e97ef028f7e3d5b5d880e (commit)
via c752a4cccb99ba73f51eff74b394dcdcd26d4c59 (commit)
via 53488a6e194af11c2528e5e284facb8a6171b695 (commit)
via cfccf141f0db8de28ba21a8920939c30e123d73e (commit)
via 39f66f3ae25ebd3a065218ce880280fd5b4b861c (commit)
via 860b03a8f357d1565bd9d79ae25121059b2d28ae (commit)
via 731f7c4ea30cc409c45412eec15e3d66afe051f5 (commit)
via bf355b690f07315bf2704e349c4f1c9ca611f031 (commit)
via 329d01f70ea6367a9593c9b31e268c06dd729ec9 (commit)
via 3a2488dd21a895df3ffb49048f5de1a83ce2ddd4 (commit)
via 1d262527cf7ef3cdd2c015dc3540b47996e94d37 (commit)
via 980d0cdd2fc40c30f3ddef644659d7d0dc00ed40 (commit)
via 69a2af1016e03239f7af4e55268bd27fc500f800 (commit)
via da17fe9de923fcee29e6f809693eb7e590966575 (commit)
via 8e2a4f11d477986aa360a3b588d35a194efe58f8 (commit)
via c3187fa5cc72734e6fc766a85d657018c0516bad (commit)
via 21389b7f3451a482e14fef9bd32257c4c87f4317 (commit)
via 0947023d1d4b5d8803a1065d622f707010b2bcdc (commit)
via 785102a7d34f2d48f9a1616bf931fea6de2385fb (commit)
via a9617a426d001a748168fbc399fcc77e6d8d3cac (commit)
via e9e431d19426a6dd6b8923850398b847af0a1532 (commit)
via e2f9914792465953ca945333d0cbedf0b2d7b3d6 (commit)
via 14f6890677849172a4b13779acd9089c9baa3a81 (commit)
via 4b0781150f69b6ff251dac447c77e4d4f6598da8 (commit)
via 5f5c6e032e8d5303e9903c0538f84f76bb4d8733 (commit)
via 343fa6906329eb5ec070cf2c05884e49a1cb9d46 (commit)
via 6725647ca2a0adc9206059814725102b53ea6478 (commit)
via b8760d2cb51517789110c7b2dbd8f61dce08291d (commit)
via be0fcbee1d47558af13288c6aece922dd4be6df5 (commit)
via c2596ca5d7f6ab6d38882bf0f0fc44fe352afcb1 (commit)
via 1c3a5fbe155614a0f87079b953df0d7618e0ab50 (commit)
via a5018ae555cdf491005907c03f997558ba15fc47 (commit)
via dc60b26d983494a3cdec0d4f167ed98fde1a832a (commit)
via 86a6934561f0048624f3ff83f5d3c2565514f0aa (commit)
via 5590c2bae0fb41e90bc9698e55d8ec1fe22a9173 (commit)
via 4f3ca05b487e9755018b4c9a053a2e6c35d8a7df (commit)
via 8b929e420a810afe23d5ba57a98109c74d1d5816 (commit)
via 92744f058094edd0b29bf9762f4ac26e4c6743c2 (commit)
via 5eecd8621b955fb99860fc1b0d87074071f42f72 (commit)
via 005304aae36522a90bbe169faea36db559d0f3d6 (commit)
via 7c2ba67e6ab10879968c938aefd4d0d0b4ce79bc (commit)
via 5e359a63b7a39e0ff0f750ca8fc97d27b14c0ef7 (commit)
via 39eeab253474493bc9477dbb2bd9c8041f05764b (commit)
via fc72affa6875e81fc9d495a216a8bcb34045ffcd (commit)
via e99f7af2bfbdb08c9cc454d6e5c82e70d34b957e (commit)
via efe4db3f06b77934bd81f393194e0fdcfeecf811 (commit)
via 82d93790a85300d8452450b6d43efb6b15b53788 (commit)
via f49547a604b4dd2c75e3636d4a422d52edc4fa6c (commit)
via 14c1428b29fff12d8119ce6f4703be0de08197af (commit)
via fa6631b4eecfcca00c13b9594e6336dffd40982f (commit)
via 406bd128dba2a59d0736839fc87a59bce319076c (commit)
via 9b5481c63ab5e1e66e8f23681741039754eabcce (commit)
via 52c4f3bdd5957a31b671a9791f462be5e8eadd85 (commit)
via e2996cc315d6ea242e1a954dc20246485ccc8512 (commit)
via c28eeff2eabbba2246799470f3713716fa629680 (commit)
via 0691188992efa4afab80bfdf966479bc331ce0a4 (commit)
via 49e8a725825c77aacc7458b9d7771cb2fa2f64c7 (commit)
via a12fd8e1b1c9c6a16e3cc9fc477d7e459776b587 (commit)
via 597e138ca0cf96889a1965d06d28552c1d1174d2 (commit)
via a55c9876bb111fd301b4762cf501de0040b8f9db (commit)
via 88add6d8e794073758b5398c52bbb76ab40a2923 (commit)
via daae68f4f372e0618d6b9c64ec0f1f74eae6ab3d (commit)
via 39d4daf68e696bbf2db417abe677b2e68f3aace9 (commit)
via e9a1e93ecab4e67aacb9cd6a5a953c8c0bc23027 (commit)
via df9236f89620c3897b2257854b9a4eedc89217ba (commit)
via 668650d58d61d9d170f3e5b5c1657ed1c3e2b34b (commit)
via 4132f1c0dfe6bb8984c0dd521388ba6b7b32a4af (commit)
via 8c5b4e5228ec94923fbdfb0008926b0b2a3f51c2 (commit)
via 4e95fbcd79b84308417fc25ce12cacdb2a61c0d0 (commit)
via ca16c5b392b1c78019fea1710c4f4433161626c5 (commit)
via f522190fa7f04a8d9a1dfc51d0cf69973c08afb5 (commit)
via b8ac28419be22fe0cc72f6eaaba1ab029610fc71 (commit)
via 35dc6e06960790cd60b890c14e45f82f110b898f (commit)
via 8400d40d954ec3b4a3fe9200645a1b6e90ba46f4 (commit)
via 474436e67c72d2426e79e600d725812514db0dbe (commit)
via 4193bc588b4e66da0ed502eaef6e7ce85272fb42 (commit)
via 10c56208ee8ce4d51de64277207b84a5d1be8c95 (commit)
via bef721e278d9ba3178e679eda38ac86ef2dc0d5d (commit)
via 107c2d628b924de1854d6d254d60e97e1887ce4a (commit)
via df3ee9ca894f7e831713c332aa7820a6463c2435 (commit)
via ec835369f121c11d6e9484ed8c6c11097ad545c5 (commit)
via 01770bbde902e075e524b518ac6c1087a4cc1cfb (commit)
via 7ed7e438bf8a21983eeaeec0617868f8bab06197 (commit)
via d7f399a8de4c55eb841db6493597a587fac002de (commit)
via 008459ea88ad4fdcb7da37dad7f68888ef6ecc47 (commit)
via 531336e3a0b79ed60cfc36ad2d6579b6a71175da (commit)
via 0c1b455e294c6debb4efedc7f1346f3c43249f15 (commit)
via f5ac6ab387ef0974f6348ac7febc691fbb6c0eb4 (commit)
via a9752fdf83985f62a0c343311a9cb42ad13f9876 (commit)
via e5a873b7071d74320d4e0cbbc2f358dcf2322557 (commit)
via fe6fae079099c0eeb3186086d6b150800c0e8770 (commit)
via 233c8c27eb81b0a3ab5182dcb59c7306ba9bd3f3 (commit)
via 68c638d6e655a937a48770a5df765e6ebbc5b890 (commit)
via 08698b7b46c9c932530dcbcd7e851d27a7d2c503 (commit)
via d5451cd45325d12b2cc3d10ffe67f09b0e26b967 (commit)
via 432ec0814b01a93b88eddf13092ea6abef34652d (commit)
via 4d9a9006139d1ceea787cdda871dff8943e493f0 (commit)
via 018572b88885ae67d22612937fa1e4fd98d5f5ad (commit)
via 397b8d2a9fb6651924c311f41b90cabeb3fc3ae9 (commit)
via be2884c1ea9b96fdb04c6d244d9e7aa1b654a47a (commit)
via 376c3ecd17d0636bcf4e527c2e2ca2f94822fe64 (commit)
via 6a67d49e559b432ead2859e9bb327852adb53112 (commit)
via 36d18bc526b055be896d8dc319cb3ade42238534 (commit)
via 77a179e77b38161e461f5e37512f0b3fc3582181 (commit)
via 33b2fac610fff1255a24763277a4bf77f1b59ef1 (commit)
via 909c0aa5824080c287b390f82726cf5bfb7011e3 (commit)
via 37e20dd6599203c4e261fc3a2e86711c90cbbed9 (commit)
via c5209615263fd0444da28cdfb6661ad287909a70 (commit)
via 78afa7f8599e46eb94a93510b383dfb35e549f7e (commit)
via 0f1254327820d7b3f67f873aa40e76679f067288 (commit)
via 84c93cd5f1ff869eb8c04314738eaa2cddb3c29e (commit)
via fb9feb35913d4cf26baf01e1638b18af301f5387 (commit)
via cd2ddb6cde55a20d191e1002dbe1977df695cda9 (commit)
via bb95117e107fe58ecd35683bf0e8da3b414378ff (commit)
via de97fdd4a05cd7ad0b05444f1721f26c1ad9322f (commit)
via 9f058c10cef5987ee1f1cb28c9a8cf5ef1ec4d11 (commit)
via cdc7edd7b17dddd3558bd04d9b2fb5a73dc75f1c (commit)
via bc6c7af4a2f23c48a38139fc7e0ed2ac7b12bb69 (commit)
via 88256e713c707aeb850688071150d32f9cca5a91 (commit)
via 88ddd4a1ef8818984f87f574b424ccdc7db19660 (commit)
via 69ace2200106348a1b00d509a6a234337c104c17 (commit)
via 4cbd84083ea89e870526ed0c80d462084887ba6e (commit)
via 4ee1d7e401a8c1aedfdc86aac7faa8267eab1e5c (commit)
via cec4b2e3fee8ae2c41089fc7454da56f676f653c (commit)
via 5cd1d8bcc24e948e86a636161e6d72f6316545a7 (commit)
via 40a0bfddf07620f5321927b3231502debb3b73bc (commit)
via e82ab856bb4689330c29fb9f1c57a8555b26380e (commit)
via 6d6ad65b43efa17a825702297331fcb290445a18 (commit)
via a37a2806e3289294ed214aed3c8a45db46026b39 (commit)
via 50455f1ab2935f7321215dfa681745c9b1cb5b19 (commit)
via 95a23284a3db0ec85bb0b11c70e6b5acf00563f6 (commit)
via b9b118c3bb29052ee76c6bf32b99962cda5113ba (commit)
via 4a9d4ea535a6c9b8c2e7cdf91377abe284d0b277 (commit)
via 56df3084847984aeddd8c24ca997242ec8c5a369 (commit)
via 5486f16481dffa1c1a0d1fd9e38b97e3678078ed (commit)
via 5084b13657023904cb60737abdf4cefb539a5fc4 (commit)
via ad02e4fe877f3a874145dd045626501245e65624 (commit)
via 7913a64cab3930fe524f0e38f85cfca11bd52dcb (commit)
via e9a38e0f5287ce7b4629f5f923191e38dd7355c0 (commit)
via 502d895cd1ca5d4abf4ef55984cbf5239aeaef0c (commit)
via ea3d7d1cab4221ab729327bb4d957352c79d05f0 (commit)
via f0e9390be5bbfa3ee777d81dacfccd713ebddb68 (commit)
via abe7c33b45288b407e6d001aad713183d4bab5c6 (commit)
via ee881e5d3312ea5396bddc37e8673b77bf549b4b (commit)
via 0a0640e3ba9a668c4c317520c48246e1cc8d75ca (commit)
via aec6cd371d194f93cb7651c219b75eed05bdda98 (commit)
via 268ebe95201d2ebdcf68cad9dc67ff6d1e25be9e (commit)
via 157686a88644b111658c661fc225881e75f3b0db (commit)
via cd58485720b47d80fed0b281d15a9198f43eaf0c (commit)
via abfcb414b9900ef996b1665323a950610dbdca43 (commit)
via 1a0884415891b197972f8acf59131c3c9376807f (commit)
via 7dc54575d91a2b41f6c3e838eec44a7017a24436 (commit)
via ee40d8d45213caf0cfb63e603f0fd5a58532e751 (commit)
via 4deb8f714d555a2f530e37c3e7af32bc42fdda58 (commit)
from 4951936409ad913e04f1a9f6a7cdbb21c1da926f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 0c0575d9bce26a219a5db55b10aa4e28650150ff
Merge: 4951936 ddb9ad3
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Dec 17 16:01:12 2016 +0100
Merge remote-tracking branch 'gdb/master' into indexcxx
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +
bfd/ChangeLog | 213 +
bfd/aoutx.h | 65 +-
bfd/bfd-in.h | 4 +
bfd/bfd-in2.h | 4 +
bfd/config.bfd | 11 +-
bfd/elf.c | 101 +-
bfd/elf32-rx.c | 16 +-
bfd/elf64-hppa.c | 37 +-
bfd/elf64-ppc.c | 413 +-
bfd/elf64-ppc.h | 2 -
bfd/elflink.c | 112 +-
bfd/elfnn-aarch64.c | 37 +-
bfd/elfxx-mips.c | 11 +-
bfd/elfxx-sparc.c | 4 +-
bfd/peicode.h | 7 +-
bfd/version.h | 2 +-
binutils/ChangeLog | 69 +
binutils/MAINTAINERS | 11 +-
binutils/nm.c | 7 +-
binutils/objcopy.c | 5 +-
binutils/readelf.c | 9 +-
binutils/testsuite/binutils-all/arc/objdump.exp | 2 +-
binutils/testsuite/binutils-all/mips/mips-ase-1.d | 29 +
binutils/testsuite/binutils-all/mips/mips-ase-1.s | 12 +
binutils/testsuite/binutils-all/mips/mips-ase-2.d | 29 +
binutils/testsuite/binutils-all/mips/mips-ase-2.s | 12 +
binutils/testsuite/binutils-all/mips/mips-ase-3.d | 18 +
binutils/testsuite/binutils-all/mips/mips.exp | 5 +
.../binutils-all/mips/mips16-extend-noinsn.d | 33 +
.../binutils-all/mips/mips16-extend-noinsn.s | 25 +
.../testsuite/binutils-all/mips/mips16-pcrel.d | 200 +
.../testsuite/binutils-all/mips/mips16-pcrel.s | 219 +
config/ChangeLog | 6 +
config/acx.m4 | 2 +-
config/bootstrap-asan.mk | 2 +-
config/multi.m4 | 3 +-
configure | 4 +-
configure.ac | 2 +-
gas/ChangeLog | 284 ++
gas/app.c | 2 +-
gas/config/tc-aarch64.c | 30 +-
gas/config/tc-arc.c | 169 +-
gas/config/tc-arm.c | 107 +-
gas/config/tc-mips.c | 12 +-
gas/configure | 2 +-
gas/configure.tgt | 3 +
gas/doc/c-arc.texi | 104 +
gas/doc/c-arm.texi | 1 +
gas/expr.c | 2 +-
gas/read.c | 31 +-
gas/read.h | 5 +-
gas/subsegs.c | 4 +
gas/symbols.c | 11 +-
gas/testsuite/gas/aarch64/addsub.d | 2 +-
gas/testsuite/gas/aarch64/adr_1.d | 1 +
gas/testsuite/gas/aarch64/advsimd-across.d | 2 +-
gas/testsuite/gas/aarch64/advsimd-armv8_3.d | 2 +-
gas/testsuite/gas/aarch64/advsimd-fp16.d | 2 +-
gas/testsuite/gas/aarch64/advsimd-misc.d | 2 +-
gas/testsuite/gas/aarch64/advsisd-copy.d | 2 +-
gas/testsuite/gas/aarch64/advsisd-misc.d | 2 +-
gas/testsuite/gas/aarch64/alias.d | 2 +-
gas/testsuite/gas/aarch64/armv8-ras-1.d | 2 +-
gas/testsuite/gas/aarch64/b_1.d | 4 +-
gas/testsuite/gas/aarch64/beq_1.d | 4 +-
gas/testsuite/gas/aarch64/bitfield-dump | 2 +-
gas/testsuite/gas/aarch64/bitfield-no-aliases.d | 2 +-
gas/testsuite/gas/aarch64/codealign.d | 2 +-
gas/testsuite/gas/aarch64/codealign_1.d | 2 +-
gas/testsuite/gas/aarch64/crc32-directive.d | 2 +-
gas/testsuite/gas/aarch64/crc32.d | 2 +-
gas/testsuite/gas/aarch64/crypto-directive.d | 2 +-
gas/testsuite/gas/aarch64/crypto.d | 2 +-
gas/testsuite/gas/aarch64/diagnostic.l | 217 +-
gas/testsuite/gas/aarch64/diagnostic.s | 1 +
gas/testsuite/gas/aarch64/dwarf.d | 32 +-
gas/testsuite/gas/aarch64/float-fp16.d | 2 +-
gas/testsuite/gas/aarch64/floatdp2.d | 2 +-
gas/testsuite/gas/aarch64/fp-armv8_3.d | 2 +-
gas/testsuite/gas/aarch64/fp-const0-parse.d | 2 +-
gas/testsuite/gas/aarch64/fp_cvt_int.d | 2 +-
gas/testsuite/gas/aarch64/fpmov.d | 2 +-
gas/testsuite/gas/aarch64/inst-directive.d | 2 +-
gas/testsuite/gas/aarch64/int-insns.d | 2 +-
gas/testsuite/gas/aarch64/ldr_1.d | 4 +-
gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d | 2 +-
gas/testsuite/gas/aarch64/ldst-exclusive.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-imm-post-ind.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-imm-pre-ind.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-pair.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-uns-imm.d | 2 +-
gas/testsuite/gas/aarch64/ldst-reg-unscaled-imm.d | 2 +-
gas/testsuite/gas/aarch64/lor-directive.d | 2 +-
gas/testsuite/gas/aarch64/lor.d | 2 +-
gas/testsuite/gas/aarch64/lse-atomic.d | 2 +-
gas/testsuite/gas/aarch64/mapmisc.d | 78 +-
gas/testsuite/gas/aarch64/mov-no-aliases.d | 2 +-
gas/testsuite/gas/aarch64/mov.d | 2 +-
gas/testsuite/gas/aarch64/movi.d | 2 +-
gas/testsuite/gas/aarch64/movw_label.d | 16 +-
gas/testsuite/gas/aarch64/msr.d | 2 +-
gas/testsuite/gas/aarch64/neon-fp-cvt-int.d | 2 +-
gas/testsuite/gas/aarch64/neon-frint.d | 2 +-
gas/testsuite/gas/aarch64/neon-ins.d | 2 +-
gas/testsuite/gas/aarch64/neon-not.d | 2 +-
gas/testsuite/gas/aarch64/neon-vfp-reglist-post.d | 2 +-
gas/testsuite/gas/aarch64/neon-vfp-reglist.d | 2 +-
gas/testsuite/gas/aarch64/no-aliases.d | 2 +-
gas/testsuite/gas/aarch64/optional.d | 12 +-
gas/testsuite/gas/aarch64/pac.d | 2 +-
gas/testsuite/gas/aarch64/pan-directive.d | 2 +-
gas/testsuite/gas/aarch64/pan.d | 2 +-
gas/testsuite/gas/aarch64/programmer-friendly.d | 1 +
gas/testsuite/gas/aarch64/rdma-directive.d | 2 +-
gas/testsuite/gas/aarch64/rdma.d | 2 +-
gas/testsuite/gas/aarch64/reloc-data.d | 1 +
gas/testsuite/gas/aarch64/reloc-dtprel_g0.d | 4 +-
gas/testsuite/gas/aarch64/reloc-dtprel_g0_nc.d | 4 +-
gas/testsuite/gas/aarch64/reloc-dtprel_g1.d | 4 +-
gas/testsuite/gas/aarch64/reloc-dtprel_g1_nc.d | 1 +
gas/testsuite/gas/aarch64/reloc-dtprel_g2.d | 1 +
gas/testsuite/gas/aarch64/reloc-dtprel_hi12.d | 4 +-
gas/testsuite/gas/aarch64/reloc-dtprel_lo12-1.d | 4 +-
.../gas/aarch64/reloc-dtprel_lo12-ldst16.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12-ldst32.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12-ldst64.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12-ldst8.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12_nc-ldst16.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12_nc-ldst32.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12_nc-ldst64.d | 1 +
.../gas/aarch64/reloc-dtprel_lo12_nc-ldst8.d | 1 +
gas/testsuite/gas/aarch64/reloc-dtprel_lo12_nc.d | 4 +-
gas/testsuite/gas/aarch64/reloc-gotoff_g0_nc.d | 1 +
gas/testsuite/gas/aarch64/reloc-gotoff_g1.d | 1 +
gas/testsuite/gas/aarch64/reloc-gottprel_g0_nc.d | 1 +
gas/testsuite/gas/aarch64/reloc-gottprel_g1.d | 1 +
gas/testsuite/gas/aarch64/reloc-insn.d | 1 +
.../gas/aarch64/reloc-tlsdesc_off_g0_nc.d | 1 +
gas/testsuite/gas/aarch64/reloc-tlsdesc_off_g1.d | 1 +
gas/testsuite/gas/aarch64/reloc-tlsgd_g0_nc.d | 1 +
gas/testsuite/gas/aarch64/reloc-tlsgd_g1.d | 1 +
gas/testsuite/gas/aarch64/reloc-tlsldm-1.d | 4 +-
gas/testsuite/gas/aarch64/reloc-tlsldm-page-1.d | 4 +-
gas/testsuite/gas/aarch64/reloc-tlsldm_lo12_nc-1.d | 4 +-
gas/testsuite/gas/aarch64/shifted.d | 2 +-
gas/testsuite/gas/aarch64/sve.d | 2 +-
gas/testsuite/gas/aarch64/symbol.d | 2 +-
gas/testsuite/gas/aarch64/sysreg-1.d | 2 +-
gas/testsuite/gas/aarch64/sysreg-2.d | 2 +-
gas/testsuite/gas/aarch64/sysreg-3.d | 2 +-
gas/testsuite/gas/aarch64/sysreg.d | 2 +-
gas/testsuite/gas/aarch64/system-2.d | 2 +-
gas/testsuite/gas/aarch64/system-3.d | 2 +-
gas/testsuite/gas/aarch64/system.d | 66 +-
gas/testsuite/gas/aarch64/tail_padding.d | 1 +
gas/testsuite/gas/aarch64/tbz_1.d | 4 +-
gas/testsuite/gas/aarch64/tlbi_op.d | 2 +-
gas/testsuite/gas/aarch64/tls-desc.d | 1 +
gas/testsuite/gas/aarch64/tls.d | 32 +-
gas/testsuite/gas/aarch64/uao-directive.d | 2 +-
gas/testsuite/gas/aarch64/uao.d | 2 +-
gas/testsuite/gas/aarch64/virthostext-directive.d | 2 +-
gas/testsuite/gas/aarch64/virthostext.d | 2 +-
gas/testsuite/gas/arc/add_s-err.s | 2 +-
gas/testsuite/gas/arc/cpu-em-err.s | 4 +
gas/testsuite/gas/arc/cpu-em4-err.s | 4 +
gas/testsuite/gas/arc/cpu-fpuda-err.s | 6 +
gas/testsuite/gas/arc/cpu-hs-err.s | 5 +
gas/testsuite/gas/arc/cpu-quarkse-err.s | 7 +
gas/testsuite/gas/arc/lpcount-err.s | 9 +
gas/testsuite/gas/arc/noargs_a7.s | 1 +
gas/testsuite/gas/arc/textauxregister-1.d | 10 +
gas/testsuite/gas/arc/textauxregister-1.s | 5 +
gas/testsuite/gas/arc/textcondcode-err.s | 2 +
gas/testsuite/gas/arc/textcoreregister-err.s | 2 +
gas/testsuite/gas/arm/armv8_3-a-fp-bad.d | 2 +
gas/testsuite/gas/arm/armv8_3-a-fp-bad.l | 7 +
gas/testsuite/gas/arm/armv8_3-a-fp-bad.s | 8 +
gas/testsuite/gas/arm/armv8_3-a-fp.d | 15 +
gas/testsuite/gas/arm/armv8_3-a-fp.s | 8 +
gas/testsuite/gas/arm/armv8_3-a-simd-bad.d | 2 +
gas/testsuite/gas/arm/armv8_3-a-simd-bad.l | 39 +
gas/testsuite/gas/arm/armv8_3-a-simd-bad.s | 51 +
gas/testsuite/gas/arm/armv8_3-a-simd.d | 47 +
gas/testsuite/gas/arm/armv8_3-a-simd.s | 49 +
gas/testsuite/gas/i386/i386.exp | 1 +
gas/testsuite/gas/i386/xop32reg.d | 15 +
gas/testsuite/gas/i386/xop32reg.s | 13 +
gas/testsuite/gas/mips/mips.exp | 5 +
.../gas/mips/mips16-branch-unextended-1.d | 3 +
.../gas/mips/mips16-branch-unextended-1.s | 8 +
.../gas/mips/mips16-branch-unextended-2.d | 3 +
.../gas/mips/mips16-branch-unextended-2.s | 8 +
gas/testsuite/gas/mips/mips16-branch-unextended.l | 6 +
gas/testsuite/gas/mips/mips16-extend.d | 16 +
gas/testsuite/gas/mips/mips16-extend.s | 23 +
gas/testsuite/gas/mips/mips16-sprel-swap.d | 20 +
gas/testsuite/gas/mips/mips16-sprel-swap.s | 24 +
gas/testsuite/gas/mmix/err-byte1.s | 5 +-
gdb/ChangeLog | 565 +++
gdb/Makefile.in | 4 +-
gdb/NEWS | 15 +
gdb/aarch64-tdep.c | 196 +-
gdb/ada-lang.c | 2 +-
gdb/alpha-fbsd-tdep.c | 2 +-
gdb/alpha-nbsd-tdep.c | 22 +-
gdb/alpha-obsd-tdep.c | 2 +-
gdb/amd64-fbsd-tdep.c | 2 +-
gdb/amd64-nbsd-tdep.c | 2 +-
gdb/amd64-obsd-tdep.c | 55 +-
gdb/arm-nbsd-nat.c | 29 -
gdb/arm-nbsd-tdep.c | 27 +-
gdb/arm-obsd-tdep.c | 15 +-
gdb/arm-tdep.c | 60 +-
gdb/breakpoint.c | 10 +-
gdb/cli-out.c | 46 +-
gdb/cli-out.h | 9 +-
gdb/cli/cli-script.c | 200 +-
gdb/cli/cli-script.h | 6 +
gdb/config/i386/i386gnu.mh | 3 +
gdb/configure.tgt | 8 +-
gdb/cris-tdep.c | 5 +-
gdb/darwin-nat-info.c | 5 +-
gdb/data-directory/Makefile.in | 3 +
gdb/dbxread.c | 201 +-
gdb/defs.h | 10 +-
gdb/disable-implicit-rules.mk | 27 +
gdb/doc/ChangeLog | 16 +
gdb/doc/Makefile.in | 3 +
gdb/doc/gdb.texinfo | 22 +-
gdb/dwarf2loc.c | 24 +-
gdb/dwarf2read.c | 33 +-
gdb/elfread.c | 2 +
gdb/fbsd-tdep.c | 2 +-
gdb/frame.c | 5 +-
gdb/gdbserver/ChangeLog | 4 +
gdb/gdbserver/Makefile.in | 3 +
gdb/gnu-nat.c | 174 +-
gdb/gnulib/Makefile.in | 3 +
gdb/hppa-nbsd-tdep.c | 2 +-
gdb/hppa-obsd-tdep.c | 20 +-
gdb/hppa-tdep.c | 23 -
gdb/i386-bsd-tdep.c | 35 -
gdb/i386-fbsd-tdep.c | 16 +-
gdb/i386-gnu-nat.c | 26 +-
gdb/i386-nbsd-tdep.c | 2 +-
gdb/i386-obsd-tdep.c | 71 +-
gdb/inferior.c | 18 +-
gdb/m68k-bsd-tdep.c | 111 +-
gdb/mi/mi-out.c | 80 +-
gdb/mips-nbsd-tdep.c | 2 +-
gdb/mips64-obsd-tdep.c | 2 +-
gdb/osabi.c | 44 +-
gdb/ppc-fbsd-tdep.c | 7 +-
gdb/ppc-nbsd-tdep.c | 2 +-
gdb/ppc-obsd-tdep.c | 22 +-
gdb/printcmd.c | 3 +
gdb/record-full.c | 2 +-
gdb/rl78-tdep.c | 36 +-
gdb/rs6000-tdep.c | 3 +-
gdb/rx-tdep.c | 103 +-
gdb/sh-nbsd-tdep.c | 21 +-
gdb/solib.c | 24 +-
gdb/sparc-nbsd-tdep.c | 58 +-
gdb/sparc-obsd-tdep.c | 4 +-
gdb/sparc-tdep.h | 4 +-
gdb/sparc64-fbsd-tdep.c | 2 +-
gdb/sparc64-nbsd-tdep.c | 2 +-
gdb/sparc64-obsd-tdep.c | 2 +-
gdb/stabsread.c | 9 +-
gdb/symmisc.c | 2 +-
gdb/testsuite/ChangeLog | 858 ++++
gdb/testsuite/Makefile.in | 3 +
gdb/testsuite/gdb.ada/array_return.exp | 8 +-
gdb/testsuite/gdb.ada/assign_1.exp | 2 +-
gdb/testsuite/gdb.ada/boolean_expr.exp | 2 +-
gdb/testsuite/gdb.ada/catch_ex.exp | 6 +-
gdb/testsuite/gdb.ada/expr_delims.exp | 10 +-
gdb/testsuite/gdb.ada/info_exc.exp | 2 +-
gdb/testsuite/gdb.ada/mi_catch_ex.exp | 6 +-
gdb/testsuite/gdb.ada/mi_dyn_arr.exp | 4 +-
gdb/testsuite/gdb.ada/mi_ex_cond.exp | 2 +-
gdb/testsuite/gdb.ada/mi_exc_info.exp | 2 +-
gdb/testsuite/gdb.ada/mi_interface.exp | 4 +-
gdb/testsuite/gdb.ada/mi_task_arg.exp | 2 +-
gdb/testsuite/gdb.ada/mi_task_info.exp | 2 +-
gdb/testsuite/gdb.ada/mi_var_array.exp | 4 +-
gdb/testsuite/gdb.ada/start.exp | 4 +-
gdb/testsuite/gdb.ada/watch_arg.exp | 4 +-
gdb/testsuite/gdb.arch/alpha-step.exp | 6 +-
gdb/testsuite/gdb.arch/altivec-regs.exp | 4 +-
gdb/testsuite/gdb.arch/amd64-disp-step.exp | 2 +-
gdb/testsuite/gdb.arch/arm-disp-step.exp | 2 +-
gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp | 4 +-
gdb/testsuite/gdb.arch/e500-prologue.exp | 2 +-
gdb/testsuite/gdb.arch/e500-regs.exp | 4 +-
gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp | 10 +-
gdb/testsuite/gdb.arch/gdb1291.exp | 2 +-
gdb/testsuite/gdb.arch/gdb1431.exp | 2 +-
gdb/testsuite/gdb.arch/gdb1558.exp | 4 +-
gdb/testsuite/gdb.arch/i386-bp_permanent.exp | 4 +-
gdb/testsuite/gdb.arch/i386-disp-step.exp | 2 +-
gdb/testsuite/gdb.arch/i386-dr3-watch.exp | 2 +-
gdb/testsuite/gdb.arch/i386-float.exp | 2 +-
gdb/testsuite/gdb.arch/i386-gnu-cfi.exp | 8 +-
gdb/testsuite/gdb.arch/i386-mpx-simple_segv.exp | 6 +-
gdb/testsuite/gdb.arch/i386-mpx.exp | 16 +-
gdb/testsuite/gdb.arch/i386-permbkpt.exp | 4 +-
gdb/testsuite/gdb.arch/i386-sse-stack-align.exp | 2 +-
gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp | 2 +-
gdb/testsuite/gdb.arch/mips16-thunks.exp | 10 +-
gdb/testsuite/gdb.arch/pa-nullify.exp | 8 +-
gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp | 2 +-
gdb/testsuite/gdb.arch/powerpc-d128-regs.exp | 12 +-
gdb/testsuite/gdb.arch/powerpc-power.exp | 2 +-
gdb/testsuite/gdb.arch/ppc-dfp.exp | 4 +-
gdb/testsuite/gdb.arch/s390-tdbregs.exp | 4 +-
gdb/testsuite/gdb.arch/spu-info.exp | 2 +-
gdb/testsuite/gdb.arch/spu-ls.exp | 2 +-
gdb/testsuite/gdb.arch/thumb-bx-pc.exp | 2 +-
gdb/testsuite/gdb.arch/vsx-regs.exp | 4 +-
gdb/testsuite/gdb.base/advance.exp | 2 +-
gdb/testsuite/gdb.base/all-architectures-0.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-1.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-2.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-3.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-4.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-5.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-6.exp | 17 +
gdb/testsuite/gdb.base/all-architectures-7.exp | 17 +
gdb/testsuite/gdb.base/all-architectures.exp.in | 336 ++
.../gdb.base/annota-input-while-running.exp | 2 +-
gdb/testsuite/gdb.base/annota1.exp | 2 +-
gdb/testsuite/gdb.base/annota3.exp | 2 +-
gdb/testsuite/gdb.base/arrayidx.exp | 10 +-
gdb/testsuite/gdb.base/asmlabel.exp | 2 +-
gdb/testsuite/gdb.base/assign.exp | 2 +-
gdb/testsuite/gdb.base/async.exp | 2 +-
gdb/testsuite/gdb.base/attach-wait-input.exp | 2 +-
gdb/testsuite/gdb.base/attach.exp | 4 +-
.../gdb.base/auto-connect-native-target.exp | 8 +-
gdb/testsuite/gdb.base/auxv.exp | 2 +-
gdb/testsuite/gdb.base/bang.exp | 2 +-
.../gdb.base/batch-preserve-term-settings.exp | 2 +-
gdb/testsuite/gdb.base/bfp-test.exp | 20 +-
gdb/testsuite/gdb.base/bigcore.exp | 8 +-
gdb/testsuite/gdb.base/bitfields2.exp | 2 +-
gdb/testsuite/gdb.base/bp-permanent.exp | 2 +-
gdb/testsuite/gdb.base/break-always.exp | 2 +-
gdb/testsuite/gdb.base/break-fun-addr.exp | 4 +-
gdb/testsuite/gdb.base/break-idempotent.exp | 4 +-
.../gdb.base/break-main-file-remove-fail.exp | 2 +-
gdb/testsuite/gdb.base/break-probes.exp | 2 +-
gdb/testsuite/gdb.base/break-unload-file.exp | 2 +-
gdb/testsuite/gdb.base/break.exp | 16 +-
gdb/testsuite/gdb.base/breakpoint-shadow.exp | 4 +-
gdb/testsuite/gdb.base/call-ar-st.exp | 2 +-
gdb/testsuite/gdb.base/call-rt-st.exp | 4 +-
gdb/testsuite/gdb.base/call-sc.exp | 2 +-
gdb/testsuite/gdb.base/call-signal-resume.exp | 4 +-
gdb/testsuite/gdb.base/call-strs.exp | 2 +-
gdb/testsuite/gdb.base/callexit.exp | 6 +-
gdb/testsuite/gdb.base/callfuncs.exp | 6 +-
gdb/testsuite/gdb.base/catch-fork-kill.exp | 2 +-
.../gdb.base/catch-gdb-caused-signals.exp | 2 +-
.../gdb.base/catch-signal-siginfo-cond.exp | 2 +-
gdb/testsuite/gdb.base/catch-syscall.exp | 2 +-
gdb/testsuite/gdb.base/charset.exp | 6 +-
gdb/testsuite/gdb.base/checkpoint.exp | 16 +-
gdb/testsuite/gdb.base/commands.exp | 138 +-
gdb/testsuite/gdb.base/compare-sections.exp | 2 +-
gdb/testsuite/gdb.base/completion.exp | 2 +-
gdb/testsuite/gdb.base/comprdebug.exp | 4 +-
gdb/testsuite/gdb.base/cond-eval-mode.exp | 2 +-
gdb/testsuite/gdb.base/condbreak-call-false.exp | 2 +-
gdb/testsuite/gdb.base/consecutive-step-over.exp | 2 +-
gdb/testsuite/gdb.base/constvars.exp | 2 +-
gdb/testsuite/gdb.base/coredump-filter.exp | 2 +-
gdb/testsuite/gdb.base/cursal.exp | 2 +-
gdb/testsuite/gdb.base/cvexpr.exp | 2 +-
gdb/testsuite/gdb.base/debug-expr.exp | 2 +-
gdb/testsuite/gdb.base/del.exp | 2 +-
gdb/testsuite/gdb.base/detach.exp | 2 +-
gdb/testsuite/gdb.base/dfp-test.exp | 18 +-
gdb/testsuite/gdb.base/disabled-location.exp | 2 +-
gdb/testsuite/gdb.base/disasm-end-cu.exp | 10 +-
gdb/testsuite/gdb.base/display.exp | 4 +-
gdb/testsuite/gdb.base/dmsym.exp | 6 +-
.../gdb.base/double-prompt-target-event-error.exp | 2 +-
gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp | 2 +-
gdb/testsuite/gdb.base/dprintf-detach.exp | 2 +-
gdb/testsuite/gdb.base/dprintf-next.exp | 2 +-
gdb/testsuite/gdb.base/dprintf-non-stop.exp | 4 +-
gdb/testsuite/gdb.base/dprintf-pending.exp | 2 +-
gdb/testsuite/gdb.base/dso2dso.exp | 4 +-
gdb/testsuite/gdb.base/dtrace-probe.exp | 2 +-
gdb/testsuite/gdb.base/dump.exp | 4 +-
gdb/testsuite/gdb.base/echo.exp | 2 +-
gdb/testsuite/gdb.base/ending-run.exp | 6 +-
gdb/testsuite/gdb.base/enum_cond.exp | 2 +-
gdb/testsuite/gdb.base/eval.exp | 6 +-
gdb/testsuite/gdb.base/examine-backward.exp | 2 +-
gdb/testsuite/gdb.base/exe-lock.exp | 2 +-
gdb/testsuite/gdb.base/exec-invalid-sysroot.exp | 6 +-
.../gdb.base/execl-update-breakpoints.exp | 8 +-
gdb/testsuite/gdb.base/execution-termios.exp | 2 +-
gdb/testsuite/gdb.base/expand-psymtabs.exp | 2 +-
gdb/testsuite/gdb.base/exprs.exp | 2 +-
gdb/testsuite/gdb.base/fileio.exp | 4 +-
gdb/testsuite/gdb.base/find.exp | 2 +-
gdb/testsuite/gdb.base/finish.exp | 2 +-
gdb/testsuite/gdb.base/fixsection.exp | 4 +-
gdb/testsuite/gdb.base/float128.exp | 12 +-
gdb/testsuite/gdb.base/floatn.exp | 40 +-
gdb/testsuite/gdb.base/foll-exec-mode.exp | 6 +-
gdb/testsuite/gdb.base/foll-exec.exp | 12 +-
gdb/testsuite/gdb.base/foll-vfork.exp | 4 +-
gdb/testsuite/gdb.base/fork-running-state.exp | 2 +-
gdb/testsuite/gdb.base/frame-args.exp | 2 +-
gdb/testsuite/gdb.base/fullpath-expand.exp | 2 +-
gdb/testsuite/gdb.base/func-ptr.exp | 2 +-
gdb/testsuite/gdb.base/gcore-buffer-overflow.exp | 2 +-
gdb/testsuite/gdb.base/gcore-relro-pie.exp | 2 +-
gdb/testsuite/gdb.base/gcore.exp | 4 +-
gdb/testsuite/gdb.base/gdb1056.exp | 2 +-
gdb/testsuite/gdb.base/gdb1090.exp | 2 +-
gdb/testsuite/gdb.base/gdb11531.exp | 2 +-
gdb/testsuite/gdb.base/gdb1250.exp | 2 +-
gdb/testsuite/gdb.base/gdb1555.exp | 2 +-
.../gdb.base/global-var-nested-by-dso.exp | 4 +-
gdb/testsuite/gdb.base/gnu-ifunc.exp | 6 +-
gdb/testsuite/gdb.base/hashline1.exp | 2 +-
gdb/testsuite/gdb.base/hashline2.exp | 2 +-
gdb/testsuite/gdb.base/hashline3.exp | 2 +-
.../gdb.base/hbreak-in-shr-unsupported.exp | 4 +-
gdb/testsuite/gdb.base/hbreak-unmapped.exp | 4 +-
gdb/testsuite/gdb.base/hook-stop.exp | 2 +-
gdb/testsuite/gdb.base/huge.exp | 4 +-
gdb/testsuite/gdb.base/infcall-input.exp | 4 +-
gdb/testsuite/gdb.base/info-fun.exp | 6 +-
gdb/testsuite/gdb.base/info-shared.exp | 4 +-
gdb/testsuite/gdb.base/interrupt-noterm.exp | 2 +-
gdb/testsuite/gdb.base/jit-simple.exp | 4 +-
gdb/testsuite/gdb.base/jit-so.exp | 13 +-
gdb/testsuite/gdb.base/jit.exp | 7 +-
gdb/testsuite/gdb.base/jump.exp | 2 +-
gdb/testsuite/gdb.base/label.exp | 2 +-
gdb/testsuite/gdb.base/line-symtabs.exp | 2 +-
gdb/testsuite/gdb.base/lineinc.exp | 2 +-
gdb/testsuite/gdb.base/list.exp | 2 +-
gdb/testsuite/gdb.base/logical.exp | 2 +-
gdb/testsuite/gdb.base/longjmp.exp | 4 +-
gdb/testsuite/gdb.base/macscp.exp | 6 +-
gdb/testsuite/gdb.base/maint.exp | 29 +-
gdb/testsuite/gdb.base/max-value-size.exp | 2 +-
gdb/testsuite/gdb.base/miscexprs.exp | 2 +-
gdb/testsuite/gdb.base/multi-forks.exp | 16 +-
gdb/testsuite/gdb.base/new-ui-echo.exp | 2 +-
gdb/testsuite/gdb.base/new-ui-pending-input.exp | 2 +-
gdb/testsuite/gdb.base/new-ui.exp | 2 +-
gdb/testsuite/gdb.base/nodebug.exp | 2 +-
gdb/testsuite/gdb.base/nofield.exp | 2 +-
gdb/testsuite/gdb.base/offsets.exp | 2 +-
gdb/testsuite/gdb.base/overlays.exp | 24 +-
.../gdb.base/paginate-after-ctrl-c-running.exp | 2 +-
gdb/testsuite/gdb.base/paginate-bg-execution.exp | 4 +-
gdb/testsuite/gdb.base/paginate-inferior-exit.exp | 2 +-
gdb/testsuite/gdb.base/pending.exp | 10 +-
gdb/testsuite/gdb.base/pointers.exp | 2 +-
gdb/testsuite/gdb.base/pr11022.exp | 4 +-
gdb/testsuite/gdb.base/printcmds.exp | 8 +-
gdb/testsuite/gdb.base/prologue.exp | 2 +-
gdb/testsuite/gdb.base/ptr-typedef.exp | 4 +-
gdb/testsuite/gdb.base/ptype.exp | 2 +-
gdb/testsuite/gdb.base/radix.exp | 10 +-
gdb/testsuite/gdb.base/randomize.exp | 6 +-
gdb/testsuite/gdb.base/range-stepping.exp | 2 +-
gdb/testsuite/gdb.base/realname-expand.exp | 4 +-
gdb/testsuite/gdb.base/relativedebug.exp | 2 +-
gdb/testsuite/gdb.base/relocate.exp | 2 +-
gdb/testsuite/gdb.base/remote.exp | 4 +-
gdb/testsuite/gdb.base/reread.exp | 4 +-
gdb/testsuite/gdb.base/return2.exp | 4 +-
gdb/testsuite/gdb.base/savedregs.exp | 4 +-
gdb/testsuite/gdb.base/sep.exp | 2 +-
gdb/testsuite/gdb.base/sepdebug.exp | 14 +-
gdb/testsuite/gdb.base/sepsymtab.exp | 2 +-
gdb/testsuite/gdb.base/set-inferior-tty.exp | 2 +-
gdb/testsuite/gdb.base/set-noassign.exp | 2 +-
gdb/testsuite/gdb.base/setshow.exp | 2 +-
gdb/testsuite/gdb.base/shlib-call.exp | 2 +-
gdb/testsuite/gdb.base/shreloc.exp | 12 +-
gdb/testsuite/gdb.base/sigaltstack.exp | 2 +-
gdb/testsuite/gdb.base/sigbpt.exp | 4 +-
gdb/testsuite/gdb.base/siginfo-addr.exp | 2 +-
gdb/testsuite/gdb.base/siginfo-obj.exp | 10 +-
gdb/testsuite/gdb.base/siginfo-thread.exp | 8 +-
gdb/testsuite/gdb.base/signals.exp | 2 +-
gdb/testsuite/gdb.base/signest.exp | 2 +-
gdb/testsuite/gdb.base/signull.exp | 4 +-
gdb/testsuite/gdb.base/sigrepeat.exp | 2 +-
gdb/testsuite/gdb.base/skip.exp | 20 +-
gdb/testsuite/gdb.base/so-impl-ld.exp | 2 +-
gdb/testsuite/gdb.base/solib-corrupted.exp | 2 +-
gdb/testsuite/gdb.base/solib-disc.exp | 2 +-
gdb/testsuite/gdb.base/solib-display.exp | 14 +-
gdb/testsuite/gdb.base/solib-overlap.exp | 6 +-
gdb/testsuite/gdb.base/solib-search.exp | 6 +-
gdb/testsuite/gdb.base/solib-symbol.exp | 4 +-
gdb/testsuite/gdb.base/source-execution.exp | 2 +-
gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp | 2 +-
gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp | 2 +-
gdb/testsuite/gdb.base/stack-checking.exp | 2 +-
gdb/testsuite/gdb.base/stale-infcall.exp | 2 +-
gdb/testsuite/gdb.base/step-break.exp | 2 +-
gdb/testsuite/gdb.base/step-line.exp | 2 +-
gdb/testsuite/gdb.base/step-over-exit.exp | 2 +-
gdb/testsuite/gdb.base/step-test.exp | 2 +-
gdb/testsuite/gdb.base/structs.exp | 4 +-
gdb/testsuite/gdb.base/structs2.exp | 2 +-
gdb/testsuite/gdb.base/sym-file.exp | 2 +-
gdb/testsuite/gdb.base/symtab-search-order.exp | 4 +-
gdb/testsuite/gdb.base/term.exp | 2 +-
gdb/testsuite/gdb.base/testenv.exp | 22 +-
gdb/testsuite/gdb.base/twice.exp | 2 +-
gdb/testsuite/gdb.base/type-opaque.exp | 2 +-
gdb/testsuite/gdb.base/unload.exp | 2 +-
gdb/testsuite/gdb.base/until-nodebug.exp | 2 +-
gdb/testsuite/gdb.base/until.exp | 2 +-
gdb/testsuite/gdb.base/unwindonsignal.exp | 4 +-
gdb/testsuite/gdb.base/varargs.exp | 2 +-
gdb/testsuite/gdb.base/watch-cond.exp | 6 +-
gdb/testsuite/gdb.base/watch-non-mem.exp | 2 +-
gdb/testsuite/gdb.base/watch_thread_num.exp | 12 +-
gdb/testsuite/gdb.base/watchpoint-cond-gone.exp | 4 +-
gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp | 2 +-
gdb/testsuite/gdb.base/watchpoint-solib.exp | 2 +-
gdb/testsuite/gdb.base/watchpoint.exp | 16 +-
gdb/testsuite/gdb.base/watchpoints.exp | 14 +-
gdb/testsuite/gdb.base/whatis.exp | 2 +-
gdb/testsuite/gdb.base/wrong_frame_bt_full.exp | 2 +-
gdb/testsuite/gdb.btrace/dlopen.exp | 2 +-
gdb/testsuite/gdb.cell/arch.exp | 14 +-
gdb/testsuite/gdb.cell/break.exp | 12 +-
gdb/testsuite/gdb.cell/bt.exp | 12 +-
gdb/testsuite/gdb.cell/core.exp | 6 +-
gdb/testsuite/gdb.cell/data.exp | 8 +-
gdb/testsuite/gdb.cell/dwarfaddr.exp | 4 +-
gdb/testsuite/gdb.cell/ea-cache.exp | 10 +-
gdb/testsuite/gdb.cell/ea-standalone.exp | 4 +-
gdb/testsuite/gdb.cell/ea-test.exp | 4 +-
gdb/testsuite/gdb.cell/f-regs.exp | 8 +-
gdb/testsuite/gdb.cell/fork.exp | 8 +-
gdb/testsuite/gdb.cell/gcore.exp | 8 +-
gdb/testsuite/gdb.cell/mem-access.exp | 8 +-
gdb/testsuite/gdb.cell/ptype.exp | 8 +-
gdb/testsuite/gdb.cell/registers.exp | 8 +-
gdb/testsuite/gdb.cell/sizeof.exp | 8 +-
gdb/testsuite/gdb.cell/solib-symbol.exp | 8 +-
gdb/testsuite/gdb.cell/solib.exp | 8 +-
gdb/testsuite/gdb.compile/compile-tls.exp | 2 +-
gdb/testsuite/gdb.compile/compile.exp | 16 +-
gdb/testsuite/gdb.cp/arg-reference.exp | 2 +-
gdb/testsuite/gdb.cp/baseenum.exp | 2 +-
gdb/testsuite/gdb.cp/dispcxx.exp | 2 +-
gdb/testsuite/gdb.cp/exception.exp | 4 +-
gdb/testsuite/gdb.cp/gdb2384.exp | 2 +-
gdb/testsuite/gdb.cp/gdb2495.exp | 28 +-
gdb/testsuite/gdb.cp/local.exp | 4 +-
gdb/testsuite/gdb.cp/mb-inline.exp | 2 +-
gdb/testsuite/gdb.cp/mb-templates.exp | 2 +-
gdb/testsuite/gdb.cp/method2.exp | 2 +-
gdb/testsuite/gdb.cp/nextoverthrow.exp | 2 +-
gdb/testsuite/gdb.cp/operator.exp | 2 +-
gdb/testsuite/gdb.cp/ovldbreak.exp | 8 +-
gdb/testsuite/gdb.cp/pr10687.exp | 2 +-
gdb/testsuite/gdb.cp/pr10728.exp | 6 +-
gdb/testsuite/gdb.cp/pr9167.exp | 2 +-
gdb/testsuite/gdb.cp/scope-err.exp | 2 +-
gdb/testsuite/gdb.cp/shadow.exp | 10 +-
gdb/testsuite/gdb.cp/templates.exp | 2 +-
gdb/testsuite/gdb.cp/virtfunc.exp | 2 +-
gdb/testsuite/gdb.disasm/am33.exp | 2 +-
gdb/testsuite/gdb.disasm/h8300s.exp | 2 +-
gdb/testsuite/gdb.disasm/mn10300.exp | 2 +-
gdb/testsuite/gdb.disasm/sh3.exp | 2 +-
gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp | 2 +-
gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp | 8 +-
gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp | 2 +-
.../gdb.dwarf2/dw2-single-line-discriminators.exp | 2 +-
gdb/testsuite/gdb.dwarf2/main-subprogram.c | 29 +
gdb/testsuite/gdb.dwarf2/main-subprogram.exp | 73 +
gdb/testsuite/gdb.fortran/complex.exp | 2 +-
gdb/testsuite/gdb.fortran/library-module.exp | 4 +-
gdb/testsuite/gdb.gdb/selftest.exp | 2 +-
gdb/testsuite/gdb.gdb/xfullpath.exp | 2 +-
gdb/testsuite/gdb.go/chan.exp | 4 +-
gdb/testsuite/gdb.go/hello.exp | 6 +-
gdb/testsuite/gdb.go/integers.exp | 18 +-
gdb/testsuite/gdb.go/methods.exp | 4 +-
gdb/testsuite/gdb.go/package.exp | 2 +-
gdb/testsuite/gdb.guile/guile.exp | 2 +-
gdb/testsuite/gdb.guile/scm-cmd.exp | 2 +-
gdb/testsuite/gdb.guile/scm-frame-inline.exp | 2 +-
gdb/testsuite/gdb.guile/scm-objfile.exp | 2 +-
gdb/testsuite/gdb.guile/scm-parameter.exp | 8 +-
gdb/testsuite/gdb.guile/scm-pretty-print.exp | 2 +-
gdb/testsuite/gdb.guile/scm-progspace.exp | 6 +-
gdb/testsuite/gdb.guile/scm-symbol.exp | 2 +-
gdb/testsuite/gdb.guile/scm-type.exp | 2 +-
gdb/testsuite/gdb.guile/scm-value.exp | 8 +-
gdb/testsuite/gdb.linespec/keywords.exp | 2 +-
gdb/testsuite/gdb.linespec/linespec.exp | 2 +-
gdb/testsuite/gdb.linespec/ls-errs.exp | 2 +-
gdb/testsuite/gdb.linespec/macro-relative.exp | 2 +-
gdb/testsuite/gdb.linespec/thread.exp | 2 +-
gdb/testsuite/gdb.mi/gdb701.exp | 2 +-
gdb/testsuite/gdb.mi/gdb792.exp | 2 +-
gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp | 4 +-
gdb/testsuite/gdb.mi/mi-dprintf-pending.exp | 4 +-
gdb/testsuite/gdb.mi/mi-dprintf.exp | 2 +-
gdb/testsuite/gdb.mi/mi-exit-code.exp | 2 +-
gdb/testsuite/gdb.mi/mi-fullname-deleted.exp | 4 +-
gdb/testsuite/gdb.mi/mi-logging.exp | 8 +-
gdb/testsuite/gdb.mi/mi-pending.exp | 8 +-
gdb/testsuite/gdb.mi/mi-solib.exp | 2 +-
gdb/testsuite/gdb.mi/new-ui-mi-sync.exp | 4 +-
gdb/testsuite/gdb.mi/pr11022.exp | 2 +-
.../gdb.mi/user-selected-context-sync.exp | 6 +-
gdb/testsuite/gdb.multi/dummy-frame-restore.exp | 4 +-
gdb/testsuite/gdb.multi/multi-arch-exec.exp | 2 +-
gdb/testsuite/gdb.multi/remove-inferiors.exp | 2 +-
gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp | 2 +-
gdb/testsuite/gdb.objc/basicclass.exp | 8 +-
gdb/testsuite/gdb.opencl/datatypes.exp | 6 +-
gdb/testsuite/gdb.opt/clobbered-registers-O2.exp | 2 +-
gdb/testsuite/gdb.opt/solib-intra-step.exp | 2 +-
gdb/testsuite/gdb.pascal/floats.exp | 28 +-
gdb/testsuite/gdb.pascal/hello.exp | 4 +-
gdb/testsuite/gdb.pascal/integers.exp | 18 +-
gdb/testsuite/gdb.perf/backtrace.exp | 2 +-
gdb/testsuite/gdb.perf/single-step.exp | 2 +-
gdb/testsuite/gdb.perf/skip-command.exp | 2 +-
gdb/testsuite/gdb.perf/skip-prologue.exp | 11 +-
gdb/testsuite/gdb.perf/solib.exp | 2 +-
gdb/testsuite/gdb.python/lib-types.exp | 2 +-
gdb/testsuite/gdb.python/py-as-string.exp | 2 +-
gdb/testsuite/gdb.python/py-bad-printers.exp | 2 +-
gdb/testsuite/gdb.python/py-block.exp | 24 +-
gdb/testsuite/gdb.python/py-breakpoint.exp | 20 +-
gdb/testsuite/gdb.python/py-cmd.exp | 4 +-
gdb/testsuite/gdb.python/py-events.exp | 4 +-
gdb/testsuite/gdb.python/py-evsignal.exp | 2 +-
gdb/testsuite/gdb.python/py-evthreads.exp | 2 +-
gdb/testsuite/gdb.python/py-finish-breakpoint.exp | 16 +-
gdb/testsuite/gdb.python/py-finish-breakpoint2.exp | 2 +-
gdb/testsuite/gdb.python/py-frame-inline.exp | 2 +-
gdb/testsuite/gdb.python/py-frame.exp | 2 +-
.../gdb.python/py-framefilter-invalidarg.exp | 4 +-
gdb/testsuite/gdb.python/py-framefilter.exp | 6 +-
gdb/testsuite/gdb.python/py-function.exp | 4 +-
gdb/testsuite/gdb.python/py-inferior.exp | 2 +-
gdb/testsuite/gdb.python/py-infthread.exp | 2 +-
gdb/testsuite/gdb.python/py-linetable.exp | 4 +-
gdb/testsuite/gdb.python/py-mi.exp | 2 +-
gdb/testsuite/gdb.python/py-objfile.exp | 4 +-
gdb/testsuite/gdb.python/py-parameter.exp | 82 +-
gdb/testsuite/gdb.python/py-pp-maint.exp | 2 +-
gdb/testsuite/gdb.python/py-pp-registration.exp | 2 +-
gdb/testsuite/gdb.python/py-prettyprint.exp | 2 +-
gdb/testsuite/gdb.python/py-recurse-unwind.exp | 2 +-
gdb/testsuite/gdb.python/py-shared.exp | 6 +-
gdb/testsuite/gdb.python/py-symbol.exp | 74 +-
gdb/testsuite/gdb.python/py-symtab.exp | 40 +-
gdb/testsuite/gdb.python/py-template.exp | 2 +-
gdb/testsuite/gdb.python/py-type.exp | 60 +-
gdb/testsuite/gdb.python/py-unwind-maint.exp | 2 +-
gdb/testsuite/gdb.python/py-unwind.exp | 2 +-
gdb/testsuite/gdb.python/py-value.exp | 52 +-
gdb/testsuite/gdb.python/py-xmethods.exp | 70 +-
gdb/testsuite/gdb.python/python.exp | 70 +-
gdb/testsuite/gdb.reverse/break-precsave.exp | 4 +-
gdb/testsuite/gdb.reverse/break-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/consecutive-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/consecutive-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/finish-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp | 4 +-
gdb/testsuite/gdb.reverse/finish-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/fstatat-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/getresuid-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/i386-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/i386-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/i386-sse-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/i387-stack-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/insn-reverse.exp | 4 +-
.../gdb.reverse/machinestate-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/machinestate.exp | 2 +-
.../gdb.reverse/next-reverse-bkpt-over-sr.exp | 4 +-
gdb/testsuite/gdb.reverse/pipe-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/readv-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/recvmsg-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/rerun-prec.exp | 2 +-
gdb/testsuite/gdb.reverse/s390-mvcle.exp | 2 +-
gdb/testsuite/gdb.reverse/sigall-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/sigall-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/solib-precsave.exp | 12 +-
gdb/testsuite/gdb.reverse/solib-reverse.exp | 8 +-
gdb/testsuite/gdb.reverse/step-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/step-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/time-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/until-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/until-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/waitpid-reverse.exp | 2 +-
gdb/testsuite/gdb.reverse/watch-precsave.exp | 6 +-
gdb/testsuite/gdb.reverse/watch-reverse.exp | 2 +-
gdb/testsuite/gdb.server/solib-list.exp | 2 +-
gdb/testsuite/gdb.stabs/gdb11479.exp | 6 +-
gdb/testsuite/gdb.stabs/weird.exp | 12 +-
gdb/testsuite/gdb.threads/fork-child-threads.exp | 2 +-
gdb/testsuite/gdb.threads/fork-plus-threads.exp | 2 +-
gdb/testsuite/gdb.threads/fork-thread-pending.exp | 4 +-
.../forking-threads-plus-breakpoint.exp | 4 +-
gdb/testsuite/gdb.threads/hand-call-in-threads.exp | 4 +-
.../gdb.threads/interrupted-hand-call.exp | 4 +-
gdb/testsuite/gdb.threads/leader-exit.exp | 2 +-
gdb/testsuite/gdb.threads/linux-dp.exp | 2 +-
.../gdb.threads/local-watch-wrong-thread.exp | 2 +-
.../next-while-other-thread-longjmps.exp | 2 +-
gdb/testsuite/gdb.threads/non-ldr-exit.exp | 2 +-
gdb/testsuite/gdb.threads/pending-step.exp | 2 +-
gdb/testsuite/gdb.threads/print-threads.exp | 8 +-
.../gdb.threads/process-dies-while-detaching.exp | 6 +-
.../gdb.threads/process-dies-while-handling-bp.exp | 2 +-
gdb/testsuite/gdb.threads/pthreads.exp | 8 +-
gdb/testsuite/gdb.threads/queue-signal.exp | 2 +-
gdb/testsuite/gdb.threads/reconnect-signal.exp | 4 +-
.../gdb.threads/signal-command-handle-nopass.exp | 2 +-
.../signal-command-multiple-signals-pending.exp | 2 +-
.../gdb.threads/signal-delivered-right-thread.exp | 2 +-
gdb/testsuite/gdb.threads/signal-sigtrap.exp | 2 +-
gdb/testsuite/gdb.threads/sigthread.exp | 2 +-
gdb/testsuite/gdb.threads/staticthreads.exp | 4 +-
gdb/testsuite/gdb.threads/stepi-random-signal.exp | 2 +-
.../gdb.threads/thread-unwindonsignal.exp | 4 +-
gdb/testsuite/gdb.threads/thread_check.exp | 2 +-
gdb/testsuite/gdb.threads/thread_events.exp | 2 +-
gdb/testsuite/gdb.threads/tid-reuse.exp | 2 +-
gdb/testsuite/gdb.threads/tls-nodebug.exp | 2 +-
gdb/testsuite/gdb.threads/tls-shared.exp | 2 +-
gdb/testsuite/gdb.threads/tls-so_extern.exp | 2 +-
gdb/testsuite/gdb.threads/tls.exp | 8 +-
gdb/testsuite/gdb.threads/watchpoint-fork.exp | 4 +-
gdb/testsuite/gdb.threads/wp-replication.exp | 6 +-
gdb/testsuite/gdb.trace/actions-changed.exp | 4 +-
gdb/testsuite/gdb.trace/actions.exp | 8 +-
gdb/testsuite/gdb.trace/ax.exp | 2 +-
gdb/testsuite/gdb.trace/backtrace.exp | 10 +-
gdb/testsuite/gdb.trace/change-loc.exp | 10 +-
gdb/testsuite/gdb.trace/collection.exp | 2 +-
gdb/testsuite/gdb.trace/deltrace.exp | 4 +-
gdb/testsuite/gdb.trace/disconnected-tracing.exp | 4 +-
gdb/testsuite/gdb.trace/entry-values.exp | 6 +-
gdb/testsuite/gdb.trace/ftrace-lock.exp | 10 +-
gdb/testsuite/gdb.trace/ftrace.exp | 8 +-
gdb/testsuite/gdb.trace/infotrace.exp | 6 +-
.../gdb.trace/mi-trace-frame-collected.exp | 4 +-
gdb/testsuite/gdb.trace/mi-trace-unavailable.exp | 4 +-
gdb/testsuite/gdb.trace/mi-traceframe-changed.exp | 4 +-
gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp | 10 +-
gdb/testsuite/gdb.trace/mi-tsv-changed.exp | 12 +-
gdb/testsuite/gdb.trace/no-attach-trace.exp | 4 +-
gdb/testsuite/gdb.trace/packetlen.exp | 4 +-
gdb/testsuite/gdb.trace/passc-dyn.exp | 4 +-
gdb/testsuite/gdb.trace/passcount.exp | 4 +-
gdb/testsuite/gdb.trace/pending.exp | 20 +-
gdb/testsuite/gdb.trace/pr16508.exp | 2 +-
gdb/testsuite/gdb.trace/qtro.exp | 4 +-
gdb/testsuite/gdb.trace/range-stepping.exp | 8 +-
gdb/testsuite/gdb.trace/read-memory.exp | 4 +-
gdb/testsuite/gdb.trace/report.exp | 10 +-
gdb/testsuite/gdb.trace/save-trace.exp | 2 +-
gdb/testsuite/gdb.trace/signal.exp | 4 +-
gdb/testsuite/gdb.trace/stap-trace.exp | 2 +-
gdb/testsuite/gdb.trace/status-stop.exp | 8 +-
gdb/testsuite/gdb.trace/strace.exp | 14 +-
gdb/testsuite/gdb.trace/tfile.exp | 2 +-
gdb/testsuite/gdb.trace/tfind.exp | 6 +-
gdb/testsuite/gdb.trace/trace-break.exp | 20 +-
gdb/testsuite/gdb.trace/trace-condition.exp | 10 +-
gdb/testsuite/gdb.trace/trace-enable-disable.exp | 8 +-
gdb/testsuite/gdb.trace/trace-mt.exp | 14 +-
gdb/testsuite/gdb.trace/tracecmd.exp | 10 +-
gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp | 2 +-
gdb/testsuite/gdb.trace/tspeed.exp | 4 +-
gdb/testsuite/gdb.trace/tstatus.exp | 2 +-
gdb/testsuite/gdb.trace/tsv.exp | 20 +-
gdb/testsuite/gdb.trace/unavailable.exp | 2 +-
gdb/testsuite/gdb.trace/while-dyn.exp | 2 +-
gdb/testsuite/gdb.trace/while-stepping.exp | 4 +-
gdb/testsuite/lib/gdb-guile.exp | 2 +-
gdb/testsuite/lib/gdb.exp | 10 +-
gdb/testsuite/lib/mi-support.exp | 8 +-
gdb/testsuite/lib/pascal.exp | 2 +-
gdb/testsuite/lib/perftest.exp | 2 +-
gdb/testsuite/lib/prelink-support.exp | 2 +-
gdb/testsuite/lib/selftest-support.exp | 2 +-
gdb/tracefile-tfile.c | 2 +-
gdb/tracefile.c | 4 +-
gdb/tracepoint.c | 88 +-
gdb/tracepoint.h | 2 +-
gdb/trad-frame.c | 21 +-
gdb/trad-frame.h | 1 +
gdb/tui/tui-out.c | 4 +-
gdb/ui-out.c | 609 ++--
gdb/ui-out.h | 36 +-
gdb/valops.c | 1 -
gdb/value.c | 63 +-
gdb/value.h | 2 +-
gdb/vax-nbsd-tdep.c | 2 +-
gdb/vax-obsd-tdep.c | 178 -
gold/ChangeLog | 178 +
gold/Makefile.in | 4 +-
gold/aarch64.cc | 2 +
gold/arm.cc | 2 +
gold/layout.cc | 42 +-
gold/layout.h | 2 +-
gold/object.cc | 5 +-
gold/options.cc | 63 +-
gold/options.h | 54 +-
gold/output.cc | 65 +-
gold/output.h | 4 +-
gold/powerpc.cc | 196 +-
gold/script-sections.cc | 142 +-
gold/target.h | 12 +-
gold/testsuite/Makefile.am | 58 +
gold/testsuite/Makefile.in | 92 +-
gold/testsuite/file_in_many_sections.c | 34 +
gold/testsuite/file_in_many_sections_test.sh | 31 +
gold/testsuite/pr20717.c | 3 +
gold/testsuite/pr20717.sh | 40 +
gold/testsuite/pr20717.t | 5 +
gold/testsuite/script_test_13.c | 2 +
gold/testsuite/script_test_13.sh | 41 +
gold/testsuite/script_test_13.t | 7 +
gold/testsuite/script_test_15.c | 10 +
gold/testsuite/script_test_15a.sh | 41 +
gold/testsuite/script_test_15a.t | 40 +
gold/testsuite/script_test_15b.sh | 42 +
gold/testsuite/script_test_15b.t | 49 +
gold/testsuite/script_test_15c.sh | 42 +
gold/testsuite/script_test_15c.t | 41 +
gold/testsuite/script_test_2.cc | 18 +-
include/ChangeLog | 39 +
include/bfdlink.h | 3 +
include/elf/mips.h | 2 +-
include/opcode/aarch64.h | 6 +-
include/opcode/arc.h | 5 +
include/opcode/arm.h | 4 +
include/opcode/mips.h | 6 +-
ld/ChangeLog | 232 +
ld/Makefile.am | 10 +
ld/Makefile.in | 12 +
ld/configure | 2 +-
ld/configure.tgt | 7 +-
ld/emulparams/arclinux_prof.sh | 1 -
ld/emulparams/armelf_fuchsia.sh | 32 +
ld/emulparams/armelfb_fuchsia.sh | 2 +
ld/emultempl/elf32.em | 6 +-
ld/emultempl/ppc64elf.em | 1 -
ld/ld.texinfo | 12 +
ld/ldctor.c | 15 +-
ld/ldexp.c | 14 +-
ld/ldlex.h | 1 +
ld/ldlex.l | 10 +-
ld/ldmain.c | 2 +-
ld/lexsup.c | 6 +
ld/pe-dll.c | 11 +-
ld/scripttempl/pe.sc | 6 +-
ld/testsuite/ld-aarch64/aarch64-elf.exp | 271 +-
ld/testsuite/ld-aarch64/erratum843419.d | 92 +-
ld/testsuite/ld-aarch64/farcall-b-defsym.d | 4 +-
ld/testsuite/ld-aarch64/farcall-b-plt.d | 8 +-
ld/testsuite/ld-aarch64/farcall-b.d | 6 +-
ld/testsuite/ld-aarch64/farcall-bl-defsym.d | 4 +-
ld/testsuite/ld-aarch64/farcall-bl-plt.d | 8 +-
ld/testsuite/ld-aarch64/farcall-bl.d | 6 +-
ld/testsuite/ld-aarch64/ifunc-15.d | 4 +-
ld/testsuite/ld-aarch64/ifunc-16.d | 4 +-
ld/testsuite/ld-aarch64/ifunc-5a-local.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-5a.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-5b-local.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-5b.d | 4 +-
ld/testsuite/ld-aarch64/ifunc-5r-local.d | 6 +-
ld/testsuite/ld-aarch64/ifunc-6a.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-6b.d | 4 +-
ld/testsuite/ld-aarch64/ifunc-7a.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-7b.d | 2 +-
ld/testsuite/ld-aarch64/ifunc-8.d | 2 +-
ld/testsuite/ld-aarch64/limit-b.d | 4 +-
ld/testsuite/ld-aarch64/limit-bl.d | 4 +-
ld/testsuite/ld-aarch64/relocs-ilp32.ld | 19 +
ld/testsuite/ld-aarch64/tls-relax-gd-ie-ilp32.d | 10 +
.../ld-aarch64/tls-relax-ld-le-small-ilp32.d | 14 +
.../ld-aarch64/tls-relax-ld-le-tiny-ilp32.d | 13 +
ld/testsuite/ld-cdtest/cdtest-foo.cc | 2 +-
ld/testsuite/ld-elf/flags1.d | 1 -
ld/testsuite/ld-elf/indirect.exp | 3 +
ld/testsuite/ld-elf/indirect1b.c | 3 +
ld/testsuite/ld-elf/indirect2.c | 3 +
ld/testsuite/ld-elf/indirect3b.c | 3 +
ld/testsuite/ld-elf/indirect4b.c | 6 +
ld/testsuite/ld-elf/loadaddr1.d | 2 +-
ld/testsuite/ld-elf/nobits-1.d | 2 -
ld/testsuite/ld-elf/note-1.d | 2 -
ld/testsuite/ld-elf/note-2.d | 2 -
ld/testsuite/ld-elf/pr18718.c | 3 +
ld/testsuite/ld-elf/pr18720.rd | 4 +
ld/testsuite/ld-elf/pr18720b.c | 5 +
ld/testsuite/ld-elf/pr19553c.c | 3 +
ld/testsuite/ld-elf/shared.exp | 4 +-
ld/testsuite/ld-elfvers/vers.exp | 32 +-
ld/testsuite/ld-elfvers/vers.h | 7 +
ld/testsuite/ld-elfvers/vers1.c | 16 +-
ld/testsuite/ld-elfvers/vers1.sym | 8 +-
ld/testsuite/ld-elfvers/vers15.c | 6 +-
ld/testsuite/ld-elfvers/vers15.sym | 6 +-
ld/testsuite/ld-elfvers/vers18.c | 8 +-
ld/testsuite/ld-elfvers/vers18.sym | 8 +-
ld/testsuite/ld-elfvers/vers21.c | 7 +-
ld/testsuite/ld-elfvers/vers21.sym | 6 +-
ld/testsuite/ld-elfvers/vers22a.c | 2 +-
ld/testsuite/ld-elfvers/vers22a.sym | 2 +-
ld/testsuite/ld-elfvers/vers23a.c | 2 +-
ld/testsuite/ld-elfvers/vers23a.sym | 2 +-
ld/testsuite/ld-elfvers/vers27d.sym | 2 +-
ld/testsuite/ld-elfvers/vers27d1.c | 2 +-
ld/testsuite/ld-elfvers/vers4.c | 2 +-
ld/testsuite/ld-elfvers/vers4.sym | 2 +-
ld/testsuite/ld-elfvers/vers4a.sym | 2 +-
ld/testsuite/ld-elfvers/vers5.c | 8 +-
ld/testsuite/ld-elfvers/vers6.c | 8 +-
ld/testsuite/ld-elfvers/vers6.sym | 8 +-
ld/testsuite/ld-elfvers/vers7a.c | 4 +-
ld/testsuite/ld-elfvers/vers7a.sym | 4 +-
ld/testsuite/ld-elfvers/vers9.c | 8 +-
ld/testsuite/ld-elfvers/vers9.sym | 8 +-
ld/testsuite/ld-elfweak/elfweak.exp | 18 +-
ld/testsuite/ld-elfweak/strong.sym | 2 +-
ld/testsuite/ld-elfweak/strongcomm.sym | 4 +-
ld/testsuite/ld-elfweak/strongdata.sym | 4 +-
ld/testsuite/ld-ifunc/pr16467b.c | 3 +
ld/testsuite/ld-plugin/lto.exp | 12 +-
ld/testsuite/ld-plugin/plugin-13.d | 2 +-
ld/testsuite/ld-plugin/plugin-14.d | 2 +-
ld/testsuite/ld-plugin/plugin-15.d | 2 +-
ld/testsuite/ld-plugin/plugin-16.d | 2 +-
ld/testsuite/ld-plugin/plugin-20.d | 2 +-
ld/testsuite/ld-plugin/plugin-21.d | 2 +-
ld/testsuite/ld-plugin/plugin-22.d | 2 +-
ld/testsuite/ld-plugin/plugin-23.d | 2 +-
ld/testsuite/ld-plugin/plugin-6.d | 2 +-
ld/testsuite/ld-plugin/plugin-7.d | 2 +-
ld/testsuite/ld-plugin/plugin-8.d | 2 +-
ld/testsuite/ld-plugin/plugin.exp | 7 +
ld/testsuite/ld-plugin/pr12760b.c | 15 +-
ld/testsuite/ld-plugin/pr16746a.c | 8 +-
ld/testsuite/ld-plugin/pr16746b.c | 6 +
ld/testsuite/ld-powerpc/dotsym1.d | 15 +
ld/testsuite/ld-powerpc/dotsym2.d | 16 +
ld/testsuite/ld-powerpc/dotsym3.d | 16 +
ld/testsuite/ld-powerpc/dotsym4.d | 17 +
ld/testsuite/ld-powerpc/dotsymref.s | 4 +
ld/testsuite/ld-powerpc/nodotsym.s | 11 +
ld/testsuite/ld-powerpc/powerpc.exp | 8 +
ld/testsuite/ld-powerpc/tocopt7.d | 54 +
ld/testsuite/ld-powerpc/tocopt7.out | 26 +
ld/testsuite/ld-powerpc/tocopt7.s | 216 +
ld/testsuite/ld-powerpc/tocopt8.d | 46 +
ld/testsuite/ld-powerpc/tocopt8.s | 188 +
ld/testsuite/ld-powerpc/vle-multiseg-5.d | 6 +-
ld/testsuite/ld-scripts/phdrs.exp | 8 -
ld/testsuite/ld-scripts/phdrs3a.d | 2 +-
ld/testsuite/ld-scripts/pr14962-2.d | 2 +-
ld/testsuite/ld-scripts/pr14962.d | 2 +-
ld/testsuite/ld-sparc/sparc.exp | 3 +
ld/testsuite/ld-sparc/wdispcall.dd | 18 +
ld/testsuite/ld-sparc/wdispcall.s | 14 +
libiberty/ChangeLog | 22 +
libiberty/argv.c | 19 +
libiberty/configure | 3 +-
libiberty/cp-demangle.c | 61 +-
libiberty/testsuite/demangle-expected | 29 +
opcodes/ChangeLog | 180 +
opcodes/aarch64-asm-2.c | 4 +-
opcodes/aarch64-asm.c | 16 +-
opcodes/aarch64-dis-2.c | 4 +-
opcodes/aarch64-opc-2.c | 4 +-
opcodes/aarch64-opc.c | 17 +-
opcodes/aarch64-tbl.h | 12 +-
opcodes/arc-dis.c | 99 +-
opcodes/arc-opc.c | 83 +-
opcodes/arc-tbl.h | 4472 ++++++++++----------
opcodes/arm-dis.c | 36 +-
opcodes/i386-dis.c | 15 +-
opcodes/mips-dis.c | 143 +-
opcodes/mips16-opc.c | 18 +-
opcodes/ppc-dis.c | 2 +-
opcodes/rl78-dis.c | 32 +-
opcodes/rx-dis.c | 32 +-
sim/ChangeLog | 5 +
sim/MAINTAINERS | 1 +
sim/aarch64/ChangeLog | 16 +
sim/aarch64/simulator.c | 69 +-
sim/testsuite/sim/aarch64/ChangeLog | 9 +
sim/testsuite/sim/aarch64/adds.s | 81 +
sim/testsuite/sim/aarch64/fstur.s | 136 +
sim/testsuite/sim/aarch64/tbnz.s | 55 +
sim/testsuite/sim/aarch64/testutils.inc | 16 +-
zlib/configure | 1 -
1021 files changed, 13526 insertions(+), 7076 deletions(-)
create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-1.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-1.s
create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-2.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-2.s
create mode 100644 binutils/testsuite/binutils-all/mips/mips-ase-3.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-extend-noinsn.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-extend-noinsn.s
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-pcrel.d
create mode 100644 binutils/testsuite/binutils-all/mips/mips16-pcrel.s
create mode 100644 gas/testsuite/gas/arc/cpu-em-err.s
create mode 100644 gas/testsuite/gas/arc/cpu-em4-err.s
create mode 100644 gas/testsuite/gas/arc/cpu-fpuda-err.s
create mode 100644 gas/testsuite/gas/arc/cpu-hs-err.s
create mode 100644 gas/testsuite/gas/arc/cpu-quarkse-err.s
create mode 100644 gas/testsuite/gas/arc/lpcount-err.s
create mode 100644 gas/testsuite/gas/arc/textauxregister-1.d
create mode 100644 gas/testsuite/gas/arc/textauxregister-1.s
create mode 100644 gas/testsuite/gas/arc/textcondcode-err.s
create mode 100644 gas/testsuite/gas/arc/textcoreregister-err.s
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.d
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.l
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp-bad.s
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp.d
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-fp.s
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.d
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.l
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd-bad.s
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd.d
create mode 100644 gas/testsuite/gas/arm/armv8_3-a-simd.s
create mode 100644 gas/testsuite/gas/i386/xop32reg.d
create mode 100644 gas/testsuite/gas/i386/xop32reg.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-1.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-1.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-2.d
create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended-2.s
create mode 100644 gas/testsuite/gas/mips/mips16-branch-unextended.l
create mode 100644 gas/testsuite/gas/mips/mips16-extend.d
create mode 100644 gas/testsuite/gas/mips/mips16-extend.s
create mode 100644 gas/testsuite/gas/mips/mips16-sprel-swap.d
create mode 100644 gas/testsuite/gas/mips/mips16-sprel-swap.s
create mode 100644 gdb/disable-implicit-rules.mk
create mode 100644 gdb/testsuite/gdb.base/all-architectures-0.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-1.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-2.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-3.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-4.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-5.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-6.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures-7.exp
create mode 100644 gdb/testsuite/gdb.base/all-architectures.exp.in
create mode 100644 gdb/testsuite/gdb.dwarf2/main-subprogram.c
create mode 100644 gdb/testsuite/gdb.dwarf2/main-subprogram.exp
delete mode 100644 gdb/vax-obsd-tdep.c
create mode 100644 gold/testsuite/file_in_many_sections.c
create mode 100755 gold/testsuite/file_in_many_sections_test.sh
create mode 100644 gold/testsuite/pr20717.c
create mode 100755 gold/testsuite/pr20717.sh
create mode 100644 gold/testsuite/pr20717.t
create mode 100644 gold/testsuite/script_test_13.c
create mode 100755 gold/testsuite/script_test_13.sh
create mode 100644 gold/testsuite/script_test_13.t
create mode 100644 gold/testsuite/script_test_15.c
create mode 100755 gold/testsuite/script_test_15a.sh
create mode 100644 gold/testsuite/script_test_15a.t
create mode 100755 gold/testsuite/script_test_15b.sh
create mode 100644 gold/testsuite/script_test_15b.t
create mode 100755 gold/testsuite/script_test_15c.sh
create mode 100644 gold/testsuite/script_test_15c.t
create mode 100644 ld/emulparams/armelf_fuchsia.sh
create mode 100644 ld/emulparams/armelfb_fuchsia.sh
create mode 100644 ld/testsuite/ld-aarch64/relocs-ilp32.ld
create mode 100644 ld/testsuite/ld-aarch64/tls-relax-gd-ie-ilp32.d
create mode 100644 ld/testsuite/ld-aarch64/tls-relax-ld-le-small-ilp32.d
create mode 100644 ld/testsuite/ld-aarch64/tls-relax-ld-le-tiny-ilp32.d
create mode 100644 ld/testsuite/ld-elf/pr18720.rd
create mode 100644 ld/testsuite/ld-powerpc/dotsym1.d
create mode 100644 ld/testsuite/ld-powerpc/dotsym2.d
create mode 100644 ld/testsuite/ld-powerpc/dotsym3.d
create mode 100644 ld/testsuite/ld-powerpc/dotsym4.d
create mode 100644 ld/testsuite/ld-powerpc/dotsymref.s
create mode 100644 ld/testsuite/ld-powerpc/nodotsym.s
create mode 100644 ld/testsuite/ld-powerpc/tocopt7.d
create mode 100644 ld/testsuite/ld-powerpc/tocopt7.out
create mode 100644 ld/testsuite/ld-powerpc/tocopt7.s
create mode 100644 ld/testsuite/ld-powerpc/tocopt8.d
create mode 100644 ld/testsuite/ld-powerpc/tocopt8.s
create mode 100644 ld/testsuite/ld-sparc/wdispcall.dd
create mode 100644 ld/testsuite/ld-sparc/wdispcall.s
create mode 100644 sim/testsuite/sim/aarch64/adds.s
create mode 100644 sim/testsuite/sim/aarch64/fstur.s
create mode 100644 sim/testsuite/sim/aarch64/tbnz.s
First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index 84ad164..1852129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-12-08 Alan Modra <amodra@gmail.com>
+
+ * configure: Regenerate.
+
+2016-12-02 Josh Conner <joshconner@google.com>
+
+ * configure.ac: Add fuchsia to targets that use ELF.
+ * configure: Regenerated.
+
2016-11-07 Doug Evans <dje@google.com>
* config.sub: Sync with upstream version 2016-11-03.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0d79764..8c09c2c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,216 @@
+2016-12-16 fincs <fincs.alt1@gmail.com>
+
+ * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Add handling
+ for info->gc_keep_exported.
+ (bfd_elf_gc_sections): Likewise.
+
+2016-12-15 Alan Modra <amodra@gmail.com>
+
+ PR ld/20968
+ PR ld/20908
+ * elflink.c (bfd_elf_final_link): Revert 2016-12-02 change. Move
+ reloc counting code later after ELF flavour test.
+
+2016-12-14 Maciej W. Rozycki <macro@imgtec.com>
+
+ * bfd-in.h (elf_internal_abiflags_v0): New struct declaration.
+ (bfd_mips_elf_get_abiflags): New prototype.
+ * elfxx-mips.c (bfd_mips_elf_get_abiflags): New function.
+ * bfd-in2.h: Regenerate.
+
+2016-12-14 Yury Norov <ynorov@caviumnetworks.com>
+
+ * bfd/elfnn-aarch64.c: fix TLS relaxations for ilp32 where
+ TCB_SIZE is used.
+
+2016-12-13 Alan Modra <amodra@gmail.com>
+
+ * elf64-hppa.c (elf64_hppa_modify_segment_map): Don't add PHDR
+ for objcopy/strip or when a ld script specifies PHDRS.
+
+2016-12-13 Alan Modra <amodra@gmail.com>
+
+ * elf32-rx.c (elf32_rx_modify_program_headers): Don't adjust
+ segments that include the ELF file header or program headers.
+
+2016-12-08 Alan Modra <amodra@gmail.com>
+
+ PR ld/20932
+ * elflink.c (bfd_elf_record_link_assignment): Handle warning symbols.
+
+2016-12-07 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20932
+ * elflink.c (bfd_elf_record_link_assignment): Replace call to
+ abort with an error message and error return value.
+
+2016-12-06 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20931
+ * elf.c (copy_special_section_fields): Check for an invalid
+ sh_link field before attempting to follow it.
+
+ PR binutils/20929
+ * aoutx.h (squirt_out_relocs): Check for relocs without an
+ associated symbol.
+
+2016-12-06 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ok_lo_toc_insn): Add r_type param. Recognize
+ lq,lfq,lxv,lxsd,lxssp,lfdp,stq,stfq,stxv,stxsd,stxssp,stfdp.
+ Don't match lmd and stmd.
+
+2016-12-05 Alyssa Milburn <amilburn@zall.org>
+
+ * elfxx-sparc.c: Do not stop processing relocations after
+ partially relaxing a call with WDISP30.
+
+2016-12-05 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20905
+ * peicode.h (pe_ILF_object_p): Use strnlen to avoid running over
+ the end of the string buffer.
+
+ PR binutils/20907
+ * peicode.h (pe_ILF_build_a_bfd): Replace abort with error return.
+
+ PR binutils/20921
+ * aoutx.h (squirt_out_relocs): Check for and report any relocs
+ that could not be recognised.
+
+ PR binutils/20922
+ * elf.c (find_link): Check for null headers before attempting to
+ match them.
+
+ PR ld/20925
+ * aoutx.h (aout_link_add_symbols): Replace BFD_ASSERT with return
+ FALSE.
+
+ PR ld/20924
+ (aout_link_add_symbols): Fix off by one error checking for
+ overflow of string offset.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (struct ppc_link_hash_entry): Delete "was_undefined".
+ (struct ppc_link_hash_table): Delete "twiddled_syms". Add
+ "need_func_desc_adj".
+ (lookup_fdh): Link direct fdh sym via oh field and set flags.
+ (make_fdh): Make strong and weak undefined function descriptor
+ symbols.
+ (ppc64_elf_merge_symbol): New function.
+ (elf_backend_merge_symbol): Define.
+ (ppc64_elf_archive_symbol_lookup): Don't test undefweak for fake
+ function descriptors.
+ (add_symbol_adjust): Don't twiddle symbols to undefweak.
+ Propagate more ref flags to function descriptor symbol. Make
+ some function descriptor symbols dynamic.
+ (ppc64_elf_before_check_relocs): Only run add_symbol_adjust for
+ ELFv1. Set need_func_desc_adj. Don't fix undefs list.
+ (ppc64_elf_check_relocs): Set non_ir_ref for descriptors.
+ Don't call lookup_fdh here.
+ (ppc64_elf_gc_sections): New function.
+ (bfd_elf64_bfd_gc_sections): Define.
+ (ppc64_elf_gc_mark_hook): Mark descriptor.
+ (func_desc_adjust): Don't make fake function descriptor syms strong
+ here. Exit earlier on non-dotsyms. Take note of elf.dynamic
+ flag when deciding whether a dynamic function descriptor might
+ be needed. Transfer elf.dynamic and set elf.needs_plt. Move
+ plt regardless of visibility. Make descriptor dynamic if
+ entry sym is dynamic, not for other cases.
+ (ppc64_elf_func_desc_adjust): Don't run func_desc_adjust if
+ already done.
+ (ppc64_elf_edit_opd): Use oh field rather than lookup_fdh.
+ (ppc64_elf_size_stubs): Likewise.
+ (ppc_build_one_stub): Don't clear was_undefined. Only set sym
+ undefweak if stub symbol is defined.
+ (undo_symbol_twiddle, ppc64_elf_restore_symbols): Delete.
+ * elf64-ppc.h (ppc64_elf_restore_symbols): Don't declare.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_hide_symbol): Access hash table as
+ elf_link_hash_table rather than ppc_link_hash_table.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (add_symbol_adjust): Delete dead code.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (add_symbol_adjust): Correct order of tests for
+ warning and indirect symbols.
+
+2016-12-03 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic
+ flags when direct symbol is versioned_hidden.
+
+2016-12-02 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20908
+ * elflink.c (bfd_elf_final_link): Check for ELF flavour binaries
+ when following indirect links.
+
+ PR ld/20909
+ * aoutx.h (aout_link_add_symbols): Fix off-by-one error in check
+ for an illegal string offset.
+
+2016-12-02 Gary Benson <gbenson@redhat.com>
+
+ * elf.c (_bfd_elf_make_section_from_shdr): Pass offset to
+ elf_parse_notes.
+
+2016-12-02 Josh Conner <joshconner@google.com>
+
+ * config.bfd: Add support for fuchsia (OS).
+
+2016-12-01 Yury Norov <ynorov@caviumnetworks.com>
+
+ PR ld/20868
+ * elfnn-aarch64.c (elfNN_aarch64_tls_relax): Use 32-bit accesses
+ to the GOT when operating in 32-bit mode.
+
+2016-12-01 Ma Jiang <ma.jiang@zte.com.cn>
+
+ PR ld/16720
+ * elfxx-mips.c (mips_elf_calculate_relocation): Remove overflow
+ test for HI16 relocs.
+
+2016-12-01 Nick Clifton <nickc@redhat.com>
+
+ PR binutils/20891
+ * aoutx.h (find_nearest_line): Handle the case where the main file
+ name and the directory name are both empty.
+
+ PR binutils/20892
+ * aoutx.h (find_nearest_line): Handle the case where the function
+ name is empty.
+
+2016-11-30 Alan Modra <amodra@gmail.com>
+
+ * elf.c (get_program_header_size): Revert accidental change.
+
+2016-11-30 Alan Modra <amodra@gmail.com>
+
+ PR ld/20886
+ * elf64-ppc.c (ppc64_elf_size_stubs): Make rawsize max size seen
+ on any pass past STUB_SHRINK_ITER.
+
+2016-11-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_fix_symbol_flags): Hide hidden versioned
+ symbol in executable.
+ (elf_link_output_extsym): Don't change bind from global to
+ local when linking executable.
+
+2016-11-28 Nick Clifton <nickc@redhat.com>
+
+ PR ld/20815
+ * elf.c (phdr_sorter): Delete.
+ (assign_file_positions_except_relocs): Do not sort program
+ headers.
+
2016-11-25 Jon Turney <jon.turney@dronecode.org.uk>
PR ld/20193
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 089fe57..c64f288 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -1955,6 +1955,7 @@ NAME (aout, swap_std_reloc_out) (bfd *abfd,
PUT_WORD (abfd, g->address, natptr->r_address);
+ BFD_ASSERT (g->howto != NULL);
r_length = g->howto->size ; /* Size as a power of two. */
r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */
/* XXX This relies on relocs coming from a.out files. */
@@ -2393,16 +2394,39 @@ NAME (aout, squirt_out_relocs) (bfd *abfd, asection *section)
for (natptr = native;
count != 0;
--count, natptr += each_size, ++generic)
- MY_swap_ext_reloc_out (abfd, *generic,
- (struct reloc_ext_external *) natptr);
+ {
+ /* PR 20921: If the howto field has not been initialised then skip
+ this reloc.
+ PR 20929: Similarly for the symbol field. */
+ if ((*generic)->howto == NULL
+ || (*generic)->sym_ptr_ptr == NULL)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ _bfd_error_handler (_("\
+%B: attempt to write out unknown reloc type"), abfd);
+ return FALSE;
+ }
+ MY_swap_ext_reloc_out (abfd, *generic,
+ (struct reloc_ext_external *) natptr);
+ }
}
else
{
for (natptr = native;
count != 0;
--count, natptr += each_size, ++generic)
- MY_swap_std_reloc_out (abfd, *generic,
- (struct reloc_std_external *) natptr);
+ {
+ if ((*generic)->howto == NULL
+ || (*generic)->sym_ptr_ptr == NULL)
+ {
+ bfd_set_error (bfd_error_invalid_operation);
+ _bfd_error_handler (_("\
+%B: attempt to write out unknown reloc type"), abfd);
+ return FALSE;
+ }
+ MY_swap_std_reloc_out (abfd, *generic,
+ (struct reloc_std_external *) natptr);
+ }
}
if (bfd_bwrite ((void *) native, natsize, abfd) != natsize)
@@ -2666,7 +2690,7 @@ NAME (aout, find_nearest_line) (bfd *abfd,
char *buf;
*filename_ptr = abfd->filename;
- *functionname_ptr = 0;
+ *functionname_ptr = NULL;
*line_ptr = 0;
if (disriminator_ptr)
*disriminator_ptr = 0;
@@ -2811,9 +2835,17 @@ NAME (aout, find_nearest_line) (bfd *abfd,
*filename_ptr = main_file_name;
else
{
- sprintf (buf, "%s%s", directory_name, main_file_name);
- *filename_ptr = buf;
- buf += filelen + 1;
+ if (buf == NULL)
+ /* PR binutils/20891: In a corrupt input file both
+ main_file_name and directory_name can be empty... */
+ * filename_ptr = NULL;
+ else
+ {
+ snprintf (buf, filelen + 1, "%s%s", directory_name,
+ main_file_name);
+ *filename_ptr = buf;
+ buf += filelen + 1;
+ }
}
}
@@ -2822,6 +2854,12 @@ NAME (aout, find_nearest_line) (bfd *abfd,
const char *function = func->name;
char *colon;
+ if (buf == NULL)
+ {
+ /* PR binutils/20892: In a corrupt input file func can be empty. */
+ * functionname_ptr = NULL;
+ return TRUE;
+ }
/* The caller expects a symbol name. We actually have a
function name, without the leading underscore. Put the
underscore back in, so that the caller gets a symbol name. */
@@ -3017,10 +3055,9 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
continue;
/* PR 19629: Corrupt binaries can contain illegal string offsets. */
- if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd))
+ if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd))
return FALSE;
name = strings + GET_WORD (abfd, p->e_strx);
-
value = GET_WORD (abfd, p->e_value);
flags = BSF_GLOBAL;
string = NULL;
@@ -3076,10 +3113,12 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
case N_INDR | N_EXT:
/* An indirect symbol. The next symbol is the symbol
which this one really is. */
- BFD_ASSERT (p + 1 < pend);
+ /* See PR 20925 for a reproducer. */
+ if (p + 1 >= pend)
+ return FALSE;
++p;
/* PR 19629: Corrupt binaries can contain illegal string offsets. */
- if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd))
+ if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd))
return FALSE;
string = strings + GET_WORD (abfd, p->e_strx);
section = bfd_ind_section_ptr;
@@ -3115,7 +3154,7 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
++p;
string = name;
/* PR 19629: Corrupt binaries can contain illegal string offsets. */
- if (GET_WORD (abfd, p->e_strx) > obj_aout_external_string_size (abfd))
+ if (GET_WORD (abfd, p->e_strx) >= obj_aout_external_string_size (abfd))
return FALSE;
name = strings + GET_WORD (abfd, p->e_strx);
section = bfd_und_section_ptr;
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 4b3bcfd..14f55ab 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1045,3 +1045,7 @@ extern bfd_boolean v850_elf_create_sections
extern bfd_boolean v850_elf_set_note
(bfd *, unsigned int, unsigned int);
+
+/* MIPS ABI flags data access. For the disassembler. */
+struct elf_internal_abiflags_v0;
+extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index fdb7878..1c6b70f 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1052,6 +1052,10 @@ extern bfd_boolean v850_elf_create_sections
extern bfd_boolean v850_elf_set_note
(bfd *, unsigned int, unsigned int);
+
+/* MIPS ABI flags data access. For the disassembler. */
+struct elf_internal_abiflags_v0;
+extern struct elf_internal_abiflags_v0 *bfd_mips_elf_get_abiflags (bfd *);
/* Extracted from init.c. */
void bfd_init (void);
diff --git a/bfd/config.bfd b/bfd/config.bfd
index b692f0a..5bca5d9 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -260,6 +260,11 @@ case "${targ}" in
targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
want64=true
;;
+ aarch64-*-fuchsia*)
+ targ_defvec=aarch64_elf64_le_vec
+ targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
+ want64=true
+ ;;
aarch64-*-cloudabi*)
targ_defvec=aarch64_elf64_le_cloudabi_vec
targ_selvecs=aarch64_elf64_be_cloudabi_vec
@@ -359,6 +364,10 @@ case "${targ}" in
targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
;;
+ arm-*-fuchsia*)
+ targ_defvec=arm_elf32_le_vec
+ targ_selvecs="arm_elf32_be_vec"
+ ;;
arm-*-nacl*)
targ_defvec=arm_elf32_nacl_le_vec
targ_selvecs="arm_elf32_nacl_be_vec i386_elf32_nacl_vec"
@@ -766,7 +775,7 @@ case "${targ}" in
targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
want64=true
;;
- x86_64-*-elf* | x86_64-*-rtems*)
+ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia)
targ_defvec=x86_64_elf64_vec
targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
want64=true
diff --git a/bfd/elf.c b/bfd/elf.c
index 936255e..678c043 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1062,7 +1062,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
if (!bfd_malloc_and_get_section (abfd, newsect, &contents))
return FALSE;
- elf_parse_notes (abfd, (char *) contents, hdr->sh_size, -1);
+ elf_parse_notes (abfd, (char *) contents, hdr->sh_size, hdr->sh_offset);
free (contents);
}
@@ -1271,13 +1271,19 @@ find_link (const bfd * obfd, const Elf_Internal_Shdr * iheader, const unsigned i
Elf_Internal_Shdr ** oheaders = elf_elfsections (obfd);
unsigned int i;
- if (section_match (oheaders[hint], iheader))
+ BFD_ASSERT (iheader != NULL);
+
+ /* See PR 20922 for a reproducer of the NULL test. */
+ if (oheaders[hint] != NULL
+ && section_match (oheaders[hint], iheader))
return hint;
for (i = 1; i < elf_numsections (obfd); i++)
{
Elf_Internal_Shdr * oheader = oheaders[i];
+ if (oheader == NULL)
+ continue;
if (section_match (oheader, iheader))
/* FIXME: Do we care if there is a potential for
multiple matches ? */
@@ -1340,6 +1346,16 @@ copy_special_section_fields (const bfd *ibfd,
in the input bfd. */
if (iheader->sh_link != SHN_UNDEF)
{
+ /* See PR 20931 for a reproducer. */
+ if (iheader->sh_link >= elf_numsections (ibfd))
+ {
+ (* _bfd_error_handler)
+ /* xgettext:c-format */
+ (_("%B: Invalid sh_link field (%d) in section number %d"),
+ ibfd, iheader->sh_link, secnum);
+ return FALSE;
+ }
+
sh_link = find_link (obfd, iheaders[iheader->sh_link], iheader->sh_link);
if (sh_link != SHN_UNDEF)
{
@@ -4254,7 +4270,7 @@ get_program_header_size (bfd *abfd, struct bfd_link_info *info)
PT_INTERP segment. In this case, assume we also need a
PT_PHDR segment, although that may not be true for all
targets. */
- segs += 3;
+ segs += 2;
}
if (bfd_get_section_by_name (abfd, ".dynamic") != NULL)
@@ -5854,52 +5870,6 @@ find_section_in_list (unsigned int i, elf_section_list * list)
return list;
}
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-05-24 20:35 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-24 7:20 [SCM] users/jkratoch/indexcxx: Merge remote-tracking branch 'gdb/master' into indexcxx jkratoch
-- strict thread matches above, loose matches on Subject: below --
2017-05-24 20:35 jkratoch
2017-05-21 17:30 jkratoch
2017-05-07 20:21 jkratoch
2017-04-29 22:28 jkratoch
2017-04-22 14:46 jkratoch
2017-04-05 16:17 jkratoch
2017-03-22 21:57 jkratoch
2016-12-17 15:05 jkratoch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).