external/binutils.git
7 years agoPR gdb/17210 - fix possible memory leak in read_memory_robust
Tom Tromey [Thu, 9 Jun 2016 15:46:53 +0000 (09:46 -0600)]
PR gdb/17210 - fix possible memory leak in read_memory_robust

PR gdb/17210 concerns a possible memory leak in read_memory_robust.
The bug can happen because read_memory_robust allocates memory, does
not install any cleanups, and invokes QUIT.  Similarly, target_read
calls QUIT, so it too can potentially throw.

The fix is to install cleanups to guard the allocated memory.

Built and regtested on x86-64 Fedora 23.  I couldn't think of a way to
test this, so no new test; and of course this means it should have
more careful review.

2016-06-29  Tom Tromey  <tom@tromey.com>

PR gdb/17210:
* target.c (free_memory_read_result_vector): Take a pointer to the
VEC as an argument.
(read_memory_robust): Install a cleanup for "result".
* mi/mi-main.c (mi_cmd_data_read_memory_bytes): Update.

7 years agogold: Support 386 TLS code sequences without PLT
H.J. Lu [Wed, 29 Jun 2016 15:38:43 +0000 (08:38 -0700)]
gold: Support 386 TLS code sequences without PLT

There are extensions to 386 psABI:

https://groups.google.com/forum/#!topic/ia32-abi/awsRSvJOJfs

to call tls_get_addr via GOT:

call *___tls_get_addr@GOT(%reg)

where EBX register isn't required as GOT base.

Since direct call is 4-byte long and indirect call, is 5-byte long, the
extra one byte must be handled properly.

For general dynamic model, 7-byte lea instruction before call
instruction is replaced by 6-byte one to make room for indirect call.
For local dynamic model, we simply use 5-byte indirect call.

TLS linker optimization is updated to recognize new instruction
patterns.  For local dynamic model to local exec model transition,
we generate a 6-byte lea instruction as nop, instead of a 1-byte nop
plus a 4-byte lea instruction.

PR gold/20308
* i386.cc (Target_i386::Relocate::relocate): Allow
R_386_GOT32X relocation against ___tls_get_addr.
(Target_i386::Relocate::tls_gd_to_ie): Support indirect
call to __tls_get_addr.
(Target_i386::Relocate::tls_gd_to_le): Likewise.
(Target_i386::Relocate::tls_ld_to_le): Likewise.
* testsuite/Makefile.am (check_PROGRAMS): Add pr20308a_test,
pr20308b_test, pr20308c_test, pr20308d_test, pr20308e_test.
(pr20308a_test_SOURCES): New.
(pr20308a_test_DEPENDENCIES): Likewise.
(pr20308a_test_CFLAGS): Likewise.
(pr20308a_test_LDFLAGS): Likewise.
(pr20308a_test_LDADD): Likewise.
(pr20308b_test_SOURCES): Likewise.
(pr20308b_test_DEPENDENCIES): Likewise.
(pr20308b_test_CFLAGS): Likewise.
(pr20308b_test_LDFLAGS): Likewise.
(pr20308b_test_LDADD): Likewise.
(pr20308c_test_SOURCES): Likewise.
(pr20308c_test_DEPENDENCIES): Likewise.
(pr20308c_test_CFLAGS): Likewise.
(pr20308c_test_LDFLAGS): Likewise.
(pr20308c_test_LDADD): Likewise.
(pr20308d_test_SOURCES): Likewise.
(pr20308d_test_DEPENDENCIES): Likewise.
(pr20308d_test_CFLAGS): Likewise.
(pr20308d_test_LDFLAGS): Likewise.
(pr20308d_test_LDADD): Likewise.
(pr20308e_test_SOURCES): Likewise.
(pr20308e_test_DEPENDENCIES): Likewise.
(pr20308e_test_CFLAGS): Likewise.
(pr20308e_test_LDFLAGS): Likewise.
(pr20308e_test_LDADD): Likewise.
(pr20308a.so): Likewise.
(pr20308b.so): Likewise.
(pr20308_gd.o): Likewise.
(pr20308_ld.o): Likewise.
(MOSTLYCLEANFILES): Add pr20308a.so pr20308b.so.
* testsuite/Makefile.in: Regenerated.
* testsuite/pr20308_def.c: New file.
* testsuite/pr20308_gd.S: Likewise.
* testsuite/pr20308_ld.S: Likewise.
* testsuite/pr20308_main.c: Likewise.

7 years agogold: Support x86-64 TLS code sequences without PLT
H.J. Lu [Wed, 29 Jun 2016 15:37:30 +0000 (08:37 -0700)]
gold: Support x86-64 TLS code sequences without PLT

There are extensions to x86-64 psABI:

https://groups.google.com/forum/#!topic/x86-64-abi/de5_KnLHxtI

to call tls_get_addr via GOT:

call *__tls_get_addr@GOTPCREL(%rip)

Since direct call is 4-byte long and indirect call, is 5-byte long, the
extra one byte must be handled properly.

For general dynamic model, one 0x66 prefix before call instruction is
removed to make room for indirect call.  For local dynamic model, we
simply use 5-byte indirect call.

TLS linker optimization is updated to recognize new instruction
patterns.  For local dynamic model to local exec model transition, we
generate 4 0x66 prefixes, instead of 3, before mov instruction in 64-bit
and generate a 5-byte nop, instead of 4-byte, before mov instruction in
32-bit.

PR gold/20216
* configure.ac (DEFAULT_TARGET_X86_64_OR_X32): New
AM_CONDITIONAL.
* configure: Regenerated.
* x86_64.cc (Target_x86_64<size>::Relocate::relocate): Allow
R_X86_64_GOTPCRELX relocation against __tls_get_addr.
(Target_x86_64<size>::Relocate::tls_gd_to_ie): Support indirect
call to __tls_get_addr.
(Target_x86_64<size>::Relocate::tls_gd_to_le): Likewise.
(Target_x86_64<size>::Relocate::tls_ld_to_le): Likewise.
* testsuite/Makefile.am (check_PROGRAMS): Add pr20216a_test,
pr20216b_test, pr20216c_test, pr20216d_test, pr20216e_test.
(pr20216a_test_SOURCES): New.
(pr20216a_test_DEPENDENCIES): Likewise.
(pr20216a_test_CFLAGS): Likewise.
(pr20216a_test_LDFLAGS): Likewise.
(pr20216a_test_LDADD): Likewise.
(pr20216b_test_SOURCES): Likewise.
(pr20216b_test_DEPENDENCIES): Likewise.
(pr20216b_test_CFLAGS): Likewise.
(pr20216b_test_LDFLAGS): Likewise.
(pr20216b_test_LDADD): Likewise.
(pr20216c_test_SOURCES): Likewise.
(pr20216c_test_DEPENDENCIES): Likewise.
(pr20216c_test_CFLAGS): Likewise.
(pr20216c_test_LDFLAGS): Likewise.
(pr20216c_test_LDADD): Likewise.
(pr20216d_test_SOURCES): Likewise.
(pr20216d_test_DEPENDENCIES): Likewise.
(pr20216d_test_CFLAGS): Likewise.
(pr20216d_test_LDFLAGS): Likewise.
(pr20216d_test_LDADD): Likewise.
(pr20216e_test_SOURCES): Likewise.
(pr20216e_test_DEPENDENCIES): Likewise.
(pr20216e_test_CFLAGS): Likewise.
(pr20216e_test_LDFLAGS): Likewise.
(pr20216e_test_LDADD): Likewise.
(pr20216a.so): Likewise.
(pr20216b.so): Likewise.
(pr20216_gd.o): Likewise.
(pr20216_ld.o): Likewise.
(MOSTLYCLEANFILES): Add pr20216a.so pr20216b.so.
* testsuite/Makefile.in: Regenerated.
* testsuite/pr20216_def.c: New file.
* testsuite/pr20216_gd.S: Likewise.
* testsuite/pr20216_ld.S: Likewise.
* testsuite/pr20216_main.c: Likewise.

7 years agoInitialize strtok_r's saveptr to NULL
Manish Goregaokar [Wed, 29 Jun 2016 11:39:43 +0000 (17:09 +0530)]
Initialize strtok_r's saveptr to NULL

Building gdb with --enable-build-with-cxx=no trips on a warning:

 ../../binutils-gdb/gdb/rust-lang.c:173:15: error: saveptr may be used
 uninitialized in this function [-Werror=maybe-uninitialized]
     ret.name = concat (TYPE_NAME (type), "::", token, (char *) NULL);

The problem is that gcc doesn't understand that "tail" can never be
NULL in the call to strtok_r:

      name = xstrdup (TYPE_FIELD_NAME (type, 0));
      cleanup = make_cleanup (xfree, name);
      tail = name + strlen (RUST_ENUM_PREFIX);
...
      for (token = strtok_r (tail, "$", &saveptr);

Fix this by always initializing saveptr.

2016-06-29  Manish Goregaokar  <manish@mozilla.com>

gdb/ChangeLog:
    * rust-lang.c (rust_get_disr_info): Initialize saveptr to NULL.

7 years agoSet unknown_syscall differently on arm linux
Yao Qi [Wed, 29 Jun 2016 13:51:41 +0000 (14:51 +0100)]
Set unknown_syscall differently on arm linux

Currently, we use 123456789 as unknown or illegal syscall number, and
expect program return ENOSYS.  Although 123456789 is an illegal syscall
number on arm linux, kernel sends SIGILL rather than returns -ENOSYS.
However, arm linux kernel returns -ENOSYS if syscall number is within
0xf0001..0xf07ff, so we can use 0xf07ff for unknown_syscall in test.

gdb/testsuite:

2016-06-29  Yao Qi  <yao.qi@linaro.org>

* gdb.base/catch-syscall.c [__arm__]: Set unknown_syscall to
0x0f07ff.

7 years agosparc: make SPARC_OPCODE_ARCH_MAX part of its enum
Trevor Saunders [Fri, 27 May 2016 08:52:45 +0000 (04:52 -0400)]
sparc: make SPARC_OPCODE_ARCH_MAX part of its enum

include/ChangeLog:

2016-06-29  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* opcode/sparc.h (enum sparc_opcode_arch_val): Move
SPARC_OPCODE_ARCH_MAX into the enum.

7 years agoUse strtok_r instead of strsep in rust_get_disr_info
Manish Goregaokar [Wed, 29 Jun 2016 10:12:28 +0000 (15:42 +0530)]
Use strtok_r instead of strsep in rust_get_disr_info

strsep doesn't exist on Windows.

2016-06-29  Manish Goregaokar  <manish@mozilla.com>

gdb/ChangeLog:
    * rust-lang.c (rust_get_disr_info): Use strtok_r instead of strsep.

7 years agoPreserve all mapping symbols in ARM and AArch64 object files.
Nick Clifton [Wed, 29 Jun 2016 10:17:40 +0000 (11:17 +0100)]
Preserve all mapping symbols in ARM and AArch64 object files.

bfd * elfnn-aarch64.c (is_aarch64_mapping_symbol): New function.
Returns TRUE for AArch64 mapping symbols.
(elfNN_aarch64_backend_symbol_processing): New function.  Marks
mapping symbols as precious in object files so that they will not
be stripped.
(elf_backend_symbol_processing): Define.

* elf32-arm.c (is_arm_mapping_symbol): New function.  Returns TRUE
for ARM mapping symbols.
(elf32_arm_backend_symbol_processing): Make use of the new function.

7 years agoCorrect fix for typo
Nick Clifton [Wed, 29 Jun 2016 08:09:03 +0000 (09:09 +0100)]
Correct fix for typo

7 years agoFix typo
Nick Clifton [Wed, 29 Jun 2016 08:06:55 +0000 (09:06 +0100)]
Fix typo

7 years agoGAS: Fix `abort' expansion in write.c
Maciej W. Rozycki [Tue, 28 Jun 2016 16:33:38 +0000 (17:33 +0100)]
GAS: Fix `abort' expansion in write.c

Remove an internal diagnostic regression introduced with the inclusion of
"libbfd.h" from write.c, added with:

commit e7ff5c732e7b95aafccd0910ea1a5cb8251a1033
Author: Alan Modra <amodra@gmail.com>
Date:   Fri Feb 16 03:40:17 2007 +0000

That change made "libbfd.h" override the `abort' definition provided by
"as.h" earlier on, making the message produced by any calls reached from
write.c, which is a part of the GAS proper, look like they came from
BFD, e.g.:

.../gas/testsuite/gas/elf/type.s: Assembler messages:
.../gas/testsuite/gas/elf/type.s:30: Error: symbol type "gnu_unique_object" is supported only by GNU targets
../as-new: BFD (GNU Binutils) 2.26.51.20160628 internal error, aborting at .../gas/write.c:608 in size_seg

../as-new: Please report this bug.

vs:

.../gas/testsuite/gas/elf/type.s: Assembler messages:
.../gas/testsuite/gas/elf/type.s:30: Error: symbol type "gnu_unique_object" is supported only by GNU targets
.../gas/testsuite/gas/elf/type.s: Internal error, aborting at .../gas/write.c:602 in size_seg
Please report this bug.

With the removal of "libbfd.h" restore the latter message format.

gas/
* write.c: Remove "libbfd.h" inclusion.

7 years agoAutomatic date update in version.in
GDB Administrator [Wed, 29 Jun 2016 00:00:26 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years ago[GOLD] Modify script_test_12
Alan Modra [Tue, 28 Jun 2016 22:30:58 +0000 (08:00 +0930)]
[GOLD] Modify script_test_12

Changes necessary to make this test pass on powerpc64.

* script_test_12.t: Delete .plt, specify 64k page size.
* script_test_12i.t: Likewise.

7 years ago[GOLD] alignment test
Alan Modra [Tue, 28 Jun 2016 22:30:15 +0000 (08:00 +0930)]
[GOLD] alignment test

PowerPC gcc aligns char arrays to a word which results in the test
failing since it expects a char alignment.  As the test already uses
gcc attributes to assign variables to sections, we may as well use an
attribute to align too.

* testsuite/plugin_layout_with_alignment.c: Explicitly align all
variables.

7 years ago[GOLD] Disable copy_test_protected on powerpc
Alan Modra [Tue, 28 Jun 2016 22:29:34 +0000 (07:59 +0930)]
[GOLD] Disable copy_test_protected on powerpc

A target like powerpc64 that is PIC by default doesn't need copy relocs.

* testsuite/Makefile.am (copy_test_protected): Disable for powerpc.
* testsuite/Makefile.in: Regenerate.

7 years agoFix execute permission on gold/testsuite/script_test_14.sh.
Cary Coutant [Tue, 28 Jun 2016 22:44:22 +0000 (15:44 -0700)]
Fix execute permission on gold/testsuite/script_test_14.sh.

7 years agoImplement the R_AARCH64_NONE relocation.
Igor Kudrin [Tue, 28 Jun 2016 22:43:43 +0000 (15:43 -0700)]
Implement the R_AARCH64_NONE relocation.

According to "ELF for the ARM(r) 64-bit Architecture (AArch64)",
this relocation can be used "to prevent removal of sections that
might otherwise appear to be unused."

gold/
* aarch64-reloc.def (NONE): New relocation.
* aarch64.cc (Target_aarch64::Scan::local): Handle R_AARCH64_NONE.
(Target_aarch64::Scan::global): Likewise.
* testsuite/Makefile.am (aarch64_reloc_none): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/aarch64_reloc_none.s: New test source file.
* testsuite/aarch64_reloc_none.sh: New test script.

7 years agoConvert indirect calls to direct when possible.
Sriraman Tallam [Tue, 28 Jun 2016 22:42:33 +0000 (15:42 -0700)]
Convert indirect calls to direct when possible.

Please see patch discussion:
https://www.sourceware.org/ml/binutils/2016-05/msg00322.html

2016-06-28  Sriraman Tallam  <tmsriram@google.com>

* x86_64.cc (Lazy_view): New class.
(can_convert_mov_to_lea): Templatize function.  Make the function
check for appropriate relocation types and use the view parameter
to get section contents.
(can_convert_callq_to_direct): New function.
(Target_x86_64<size>::Scan::global): Refactor.
(Target_x86_64<size>::Relocate::relocate): Refactor. Change any indirect
call via GOT that can be converted.
* testsuite/Makefile.am (x86_64_indirect_call_to_direct.sh): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/x86_64_indirect_call_to_direct1.s: New file.
* testsuite/x86_64_indirect_jump_to_direct1.s: New file.

7 years agoImplement SORT_BY_INIT_PRIORITY.
Igor Kudrin [Tue, 28 Jun 2016 22:34:11 +0000 (15:34 -0700)]
Implement SORT_BY_INIT_PRIORITY.

2016-06-28  Igor Kudrin  <ikudrin@accesssoftek.com>

gold/
PR gold/18098
* script-c.h (Sort_wildcard): Add SORT_WILDCARD_BY_INIT_PRIORITY.
* script-sections.cc (Input_section_sorter::get_init_priority): New method.
(Input_section_sorter::operator()): Handle SORT_WILDCARD_BY_INIT_PRIORITY.
(Output_section_element_input::print): Likewise.
* script.cc (script_keyword_parsecodes): Add entry SORT_BY_INIT_PRIORITY.
* yyscript.y (SORT_BY_INIT_PRIORITY): New token.
(wildcard_section): Handle SORT_BY_INIT_PRIORITY.

* testsuite/Makefile.am (script_test_14): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/script_test_14.s: New test source file.
* testsuite/script_test_14.sh: New test script.
* testsuite/script_test_14.t: New test linker script.

7 years agoImplement SORT_BY_INIT_PRIORITY.
Igor Kudrin [Tue, 28 Jun 2016 20:56:05 +0000 (13:56 -0700)]
Implement SORT_BY_INIT_PRIORITY.

2016-06-28  Igor Kudrin  <ikudrin@accesssoftek.com>

gold/
PR gold/18098
* script-c.h (Sort_wildcard): Add SORT_WILDCARD_BY_INIT_PRIORITY.
* script-sections.cc (Input_section_sorter::get_init_priority): New method.
(Input_section_sorter::operator()): Handle SORT_WILDCARD_BY_INIT_PRIORITY.
(Output_section_element_input::print): Likewise.
* script.cc (script_keyword_parsecodes): Add entry SORT_BY_INIT_PRIORITY.
* yyscript.y (SORT_BY_INIT_PRIORITY): New token.
(wildcard_section): Handle SORT_BY_INIT_PRIORITY.

* testsuite/Makefile.am (script_test_14): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/script_test_14.s: New test source file.
* testsuite/script_test_14.sh: New test script.
* testsuite/script_test_14.t: New test linker script.

7 years ago[TILEPro] Don't build gdb
Walter Lee [Tue, 28 Jun 2016 18:15:32 +0000 (14:15 -0400)]
[TILEPro] Don't build gdb

In configure.ac, add gdb to noconfigdirs for TILEPro.

       * configure.ac (tilepro-*-*): Add gdb to noconfigdirs.
       * configure: Regenerate.

7 years ago[AArch64] Use int64_t for address offset
Yao Qi [Tue, 28 Jun 2016 16:24:25 +0000 (17:24 +0100)]
[AArch64] Use int64_t for address offset

In AArch64 displaced stepping and fast tracepoint, GDB/GDBserver needs
to check whether the offset can fit in the range.  We are using int32_t
for offset, it is sufficient to get an offset from an instruction, but
it is not enough to get an offset from two addresses.  For example,
we have a BL in shared lib which is at 0x0000002000040774, and the
scratch pad for displaced stepping is at 0x400698.  The offset can't
fit in 28 bit imm.  However, since we are using int32_t for offset, GDB
thinks the offset can fit it, and generate the B instruction with wrong
offset.

It fixes the following fail,

-FAIL: gdb.base/dso2dso.exp: next over call to sub2

gdb:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* aarch64-tdep.c (aarch64_displaced_step_b): Use int64_t for
variable new_offset.

gdb/gdbserver:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_ftrace_insn_reloc_b): Use int64_t
for variable new_offset.
(aarch64_ftrace_insn_reloc_b_cond): Likewise.
(aarch64_ftrace_insn_reloc_cb): Likewise.
(aarch64_ftrace_insn_reloc_tb): Likewise.
(aarch64_install_fast_tracepoint_jump_pad): Likewise.  Use
PRIx64 instead of PRIx32.

7 years agoFix typo in previous commit
Nick Clifton [Tue, 28 Jun 2016 16:03:11 +0000 (17:03 +0100)]
Fix typo in previous commit

7 years agoSkip version check for unreferenced and undefined symbol
H.J. Lu [Tue, 28 Jun 2016 15:08:04 +0000 (08:08 -0700)]
Skip version check for unreferenced and undefined symbol

No need to check version if symbol is unreferenced and undefined.

bfd/

PR ld/20306
* elflink.c (elf_link_check_versioned_symbol): Return false
for unreferenced undefined symbol.

ld/testsuite/

* testsuite/ld-gc/gc.exp: Run pr20306 test.
* ld-gc/pr20306.c: New file.
* ld-gc/pr20306.d: Likewise.

7 years agoFix more linker testsuite failures.
Nick Clifton [Tue, 28 Jun 2016 14:55:22 +0000 (15:55 +0100)]
Fix more linker testsuite failures.

bfin * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
is needed.

ld * testsuite/ld-elf/comm-data.exp: Expect comm-data2 test to fail
for bfin.
* testsuite/ld-elf/elf.exp: Expect pr14170 and symbolic function
tests to fail for bfin.
* testsuite/ld-elf/endsym.d: Expect to fail with cr16, crx, dlx,
nds32 and visium.
* testsuite/ld-elf/var1.d: Expect to fail with d30v, dlx, ft32 and
microblaze.
* testsuite/ld-pe/pe.exp: Expect foreign symbol test to fail for
mcore-pe.

7 years agoRelax previous restriction on running binutils ar tests for Alpha targets, allowing...
Nick Clifton [Tue, 28 Jun 2016 13:05:34 +0000 (14:05 +0100)]
Relax previous restriction on running binutils ar tests for Alpha targets, allowing the tests to be run for ELF variants.

* testsuite/binutils-all/ar.exp: Relax previous restriction on
Alpha targets.  Allow ELF based Alpha targets.

7 years agoUse `supports_gnu_unique' with the `unique_symbol' and `type' tests
Maciej W. Rozycki [Tue, 28 Jun 2016 12:21:36 +0000 (13:21 +0100)]
Use `supports_gnu_unique' with the `unique_symbol' and `type' tests

Complement commit a43942db49b0 ("LD/ELF: Unify STB_GNU_UNIQUE handling")
and use `supports_gnu_unique' with the `unique_symbol' and `type' tests,
fixing failures like:

.../binutils/testsuite/binutils-all/unique.s: Assembler messages:
.../binutils/testsuite/binutils-all/unique.s:2: Error: symbol type "gnu_unique_object" is supported only by GNU targets

ERROR: .../binutils/testsuite/binutils-all/unique.s: assembly failed
UNRESOLVED: ar unique symbol in archive
.../binutils/ar -s -r -c tmpdir/artest.a tmpdir/unique.o
Executing on host: .../binutils/ar -s -r -c tmpdir/artest.a tmpdir/unique.o   (timeout = 300)
.../binutils/ar: tmpdir/unique.o: No such file or directory

FAIL: ar unique symbol in archive

and:

.../gas/testsuite/gas/elf/type.s: Assembler messages:
.../gas/testsuite/gas/elf/type.s:30: Error: symbol type "gnu_unique_object" is supported only by GNU targets
../as-new: BFD (GNU Binutils) 2.26.51.20160628 internal error, aborting at .../gas/write.c:608 in size_seg

../as-new: Please report this bug.

.../gas/testsuite/../../binutils/readelf -s dump.o | grep "1 *\[FIONTCU\]" > dump.out
Executing on host: sh -c {.../gas/testsuite/../../binutils/readelf -s dump.o >readelf.out 2>gas.stderr}  /dev/null  (timeout = 300)
readelf: Error: dump.o: Failed to read file's magic number
FAIL: elf type list

on MIPS/FreeBSD targets:

mips-freebsd  -FAIL: ar unique symbol in archive
mips-freebsd  -FAIL: elf type list
mips64-freebsd  -FAIL: ar unique symbol in archive
mips64-freebsd  -FAIL: elf type list
mips64el-freebsd  -FAIL: ar unique symbol in archive
mips64el-freebsd  -FAIL: elf type list
mipsel-freebsd  -FAIL: ar unique symbol in archive
mipsel-freebsd  -FAIL: elf type list

binutils/
* testsuite/binutils-all/ar.exp: Use `supports_gnu_unique' with
the `unique_symbol' test.

gas/
* testsuite/gas/elf/elf.exp: Use `supports_gnu_unique' with the
`type' test.

7 years agoMark ARM mapping symbols in object files are precious, so that strip will not remove...
Nick Clifton [Tue, 28 Jun 2016 12:22:49 +0000 (13:22 +0100)]
Mark ARM mapping symbols in object files are precious, so that strip will not remove them.

* elf32-arm.c (elf32_arm_backend_symbol_processing): New
function.  Marks mapping symbols in object files as precious, so
that strip will not remove them.
(elf_backend_symbol_processing): Define.

7 years agoFix RX and M68HC11 linker testsuite failures.
Nick Clifton [Tue, 28 Jun 2016 11:43:14 +0000 (12:43 +0100)]
Fix RX and M68HC11 linker testsuite failures.

ld * testsuite/ld-elf/merge.d: Add m68hc11 to list of targets that
expect to fail this test.
* testsuite/ld-scripts/overlay-size.d: Skip the entire test for
RX.
* testsuite/ld-scripts/rgn-at10.d: No longer expect this test to
fail for the RX.
* testsuite/ld-scripts/rgn-at11.d: Likewise.
* testsuite/ld-scripts/rgn-at2.d: Likewise.
* testsuite/ld-scripts/rgn-at6.d: Likewise.
* testsuite/ld-scripts/rgn-at7.d: Likewise.
* testsuite/ld-scripts/rgn-at8.d: Likewise.

7 years agoImplement get_syscall_trapinfo for arm-linux
Yao Qi [Tue, 28 Jun 2016 11:02:36 +0000 (12:02 +0100)]
Implement get_syscall_trapinfo for arm-linux

gdb/gdbserver:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* linux-arm-low.c (arm_get_syscall_trapinfo): New function.
(the_low_target): Install arm_get_syscall_trapinfo.

7 years agoImplement get_syscall_trapinfo for aarch64-linux
Yao Qi [Tue, 28 Jun 2016 11:02:35 +0000 (12:02 +0100)]
Implement get_syscall_trapinfo for aarch64-linux

gdb/gdbserver:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_get_syscall_trapinfo): New
function.
(the_low_target): Install aarch64_get_syscall_trapinfo.

7 years agoRemove parameter sysret from linux_target_ops.get_syscall_trapinfo
Yao Qi [Tue, 28 Jun 2016 11:02:35 +0000 (12:02 +0100)]
Remove parameter sysret from linux_target_ops.get_syscall_trapinfo

When I implement linux_target_ops.get_syscall_trapinfo for aarch64 and arm,
I find the second parameter sysret isn't used at all.  In RSP, we don't
need syscall return value either, because GDB can figure out the return
value from registers content got by 'g' packet.

This patch is to remove them.

gdb/gdbserver:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (get_syscall_trapinfo): Remove parameter sysret.
Callers updated.
* linux-low.h (struct linux_target_ops) <get_syscall_trapinfo>:
Remove parameter sysno.
* linux-x86-low.c (x86_get_syscall_trapinfo): Remove parameter
sysret.

7 years agoProbe catch syscall support
Yao Qi [Tue, 28 Jun 2016 11:02:35 +0000 (12:02 +0100)]
Probe catch syscall support

In 82075af2c14b1f8a54fa5796fb63f7ef23f98d9d (Implement 'catch syscall'
for gdbserver), only x86 is supported, but the test can still be run
on other linux targets, like aarch64 and ppc, with native-gdbserver.
This causes many new fails.

This patch removes the check on isnative and on target triplets.
Instead, we can insert catch point, and resume the program to see whether
catch syscall is supported or not.

gdb/testsuite:

2016-06-28  Yao Qi  <yao.qi@linaro.org>

* gdb.base/catch-syscall.exp: Remove check on isnative and target
triplets.  Start gdb, execute catch syscall, and continue.  Check
gdb's output to determine catch syscall is supported.

7 years agoDon't convert R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.
James Clarke [Tue, 28 Jun 2016 11:00:56 +0000 (12:00 +0100)]
Don't convert R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.

bfd * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.

gold * sparc.cc (Target_sparc::Scan::local): Don't convert R_SPARC_32
to R_SPARC_RELATIVE if class is ELFCLASS64.
(Target_sparc::Scan::global): Likewise.

ld * testsuite/ld-elf/symbolic-func.r: Allow non-zero offsets from
.text.

7 years agoMIPS/LD/testsuite: Accept any UNIX OS/ABI with GNU attribute tests
Maciej W. Rozycki [Tue, 28 Jun 2016 10:08:58 +0000 (11:08 +0100)]
MIPS/LD/testsuite: Accept any UNIX OS/ABI with GNU attribute tests

Remove failures with FreeBSD targets, e.g:

regexp_diff match failure
regexp "^  OS/ABI:                            UNIX - System V$"
line   "  OS/ABI:                            UNIX - FreeBSD"
FAIL: ld-mips-elf/attr-gnu-4-50

introduced with commit 351cdf24d223 ("[MIPS] Implement O32 FPXX, FP64
and FP64A ABI extensions").

ld/
* testsuite/ld-mips-elf/attr-gnu-4-10.d: Match any UNIX OS/ABI.
* testsuite/ld-mips-elf/attr-gnu-4-50.d: Likewise.
* testsuite/ld-mips-elf/attr-gnu-4-60.d: Likewise.
* testsuite/ld-mips-elf/attr-gnu-4-70.d: Likewise.

7 years agoFix new testcase for hppa64
Alan Modra [Tue, 28 Jun 2016 09:33:59 +0000 (19:03 +0930)]
Fix new testcase for hppa64

Anything in first column is a label on hppa64.

PR gas/20247
* testsuite/gas/elf/section11.s: Don't start directives in first column.

7 years agoDon't run ld-scripts/pr20302 on linuxaout
Alan Modra [Tue, 28 Jun 2016 09:32:08 +0000 (19:02 +0930)]
Don't run ld-scripts/pr20302 on linuxaout

PR ld/20302
* testsuite/ld-scripts/pr20302.d: Exclude *-*-*aout.

7 years agoInvalid read in _bfd_elf_get_symbol_version_string
Alan Modra [Tue, 28 Jun 2016 09:29:33 +0000 (18:59 +0930)]
Invalid read in _bfd_elf_get_symbol_version_string

PR 20304
* objdump.c (objdump_print_symname): Don't attempt to retrieve
version info from synthetic symbols.

7 years ago[AArch64] Make register indices be full 64-bit values
Richard Sandiford [Tue, 28 Jun 2016 08:21:04 +0000 (09:21 +0100)]
[AArch64] Make register indices be full 64-bit values

aarch64_opnd_info used bitfields to hold vector element indices,
but values were stored into those bitfields before their ranges had
been checked.  This meant large invalid indices could be silently
truncated to smaller valid indices.

The two obvious fixes were to do the range checking earlier or use
a full 64-bit field for the index.  I went for the latter for two
reasons:

      - Doing the range checking in operand_general_constraint_met_p
        seems structurally cleaner than doing it while parsing.

      - The bitfields didn't really buy us anything.  The imm field
        of the union is already 128 bits, so we can use a full int64_t
        index without growing the structure.

The patch also adds missing range checks for the elements in a register
list index.

include/
* opcode/aarch64.h (aarch64_opnd_info): Change index fields to int64_t.

opcodes/
* aarch64-opc.c (operand_general_constraint_met_p): Check the
range of ldst_elemlist operands.
(print_register_list): Use PRIi64 to print the index.
(aarch64_print_operand): Likewise.

gas/
* testsuite/gas/aarch64/diagnostic.s,
testsuite/gas/aarch64/diagnostic.l: Add tests for out-of-range indices.

7 years agoMIPS16: Add R_MIPS16_PC16_S1 branch relocation support
Maciej W. Rozycki [Tue, 28 Jun 2016 00:23:36 +0000 (01:23 +0100)]
MIPS16: Add R_MIPS16_PC16_S1 branch relocation support

For R_MIPS16_PC16_S1 the calculation is `(sign_extend(A) + S - P) >> 1'
and the usual MIPS16 bit shuffling applies to relocated field handling,
as per the encoding of the branch target in the extended form of the
MIPS16 B, BEQZ, BNEZ, BTEQZ and BTNEZ instructions.

include/
* elf/mips.h (R_MIPS16_PC16_S1): New relocation.

bfd/
* elf32-mips.c (elf_mips16_howto_table_rel): Add
R_MIPS16_PC16_S1.
(mips16_reloc_map): Likewise.
* elf64-mips.c (mips16_elf64_howto_table_rel): Likewise.
(mips16_elf64_howto_table_rela): Likewise.
(mips16_reloc_map): Likewise.
* elfn32-mips.c (elf_mips16_howto_table_rel): Likewise.
(elf_mips16_howto_table_rela): Likewise.
(mips16_reloc_map): Likewise.
* elfxx-mips.c (mips16_branch_reloc_p): New function.
(mips16_reloc_p): Handle R_MIPS16_PC16_S1.
(b_reloc_p): Likewise.
(mips_elf_calculate_relocation): Likewise.
(_bfd_mips_elf_check_relocs): Likewise.
* reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.

gas/
* config/tc-mips.c (mips16_reloc_p): Handle
BFD_RELOC_MIPS16_16_PCREL_S1.
(b_reloc_p): Likewise.
(limited_pcrel_reloc_p): Likewise.
(md_pcrel_from): Likewise.
(md_apply_fix): Likewise.
(tc_gen_reloc): Likewise.
(md_convert_frag): Likewise.
(mips_fix_adjustable): Update comment.
* testsuite/gas/mips/mips16-branch-reloc-2.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-branch-reloc-3.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-branch-addend-2.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-branch-addend-3.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-branch-absolute.d: Remove error
output, add dump patterns.
* testsuite/gas/mips/mips16-branch-reloc-2.l: Remove file.
* testsuite/gas/mips/mips16-branch-reloc-3.l: Remove file.
* testsuite/gas/mips/mips16-branch-addend-2.l: Remove file.
* testsuite/gas/mips/mips16-branch-addend-3.l: Remove file.
* testsuite/gas/mips/mips16-branch-absolute.l: Remove file.
* testsuite/gas/mips/mips16-branch-addend-2.s: Add padding.
* testsuite/gas/mips/branch-weak.s: Adjust alignment, avoid
implicit instruction padding, avoid MIPS16 JR->JRC conversion.
* testsuite/gas/mips/branch-weak-6.d: New test.
* testsuite/gas/mips/branch-weak-7.d: New test.
* testsuite/gas/mips/mips.exp: Run the new tests.

ld/
* testsuite/ld-mips-elf/mips16-branch-2.d: New test.
* testsuite/ld-mips-elf/mips16-branch-3.d: New test.
* testsuite/ld-mips-elf/mips16-branch-addend-2.d: New test.
* testsuite/ld-mips-elf/mips16-branch-addend-3.d: New test.
* testsuite/ld-mips-elf/mips16-branch.s: New test source.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.

7 years agoAutomatic date update in version.in
GDB Administrator [Tue, 28 Jun 2016 00:00:21 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoFix changelog
Manish Goregaokar [Mon, 27 Jun 2016 16:54:15 +0000 (22:24 +0530)]
Fix changelog

7 years agoPrint void types correctly in Rust
Manish Goregaokar [Mon, 27 Jun 2016 15:46:59 +0000 (21:16 +0530)]
Print void types correctly in Rust

Rust prefers to not specify the return type of a function when it is unit
(`()`). The type is also referred to as "void" in debuginfo but not in actual
usage, so we should never be printing "void" when the language is Rust.

2016-06-27  Manish Goregaokar  <manish@mozilla.com>

gdb/ChangeLog:
    * rust-lang.c (rust_print_type): Print unit types as "()"
    * rust-lang.c (rust_print_type): Omit return type for functions
    returning unit

gdb/testsuite/ChangeLog:
    * gdb.rust/simple.rs: Add test for returning unit in a function
    * gdb.rust/simple.exp: Add expectation for functions returning unit

7 years agoMake the kernel dwarf stack unwinder work for ARC targets.
Vineet Gupta [Mon, 27 Jun 2016 15:50:29 +0000 (16:50 +0100)]
Make the kernel dwarf stack unwinder work for ARC targets.

* config//tc-arc.c (tc_arc_frame_initial_instructions): Use
cfi_add_CFA_def_cfa to generate default CFA with offset
* testsuite/gas/cfi/cfi-arc-1.d: Update expected output.

7 years agoAllow a second -T<section>=<addr> to override a previous version on the same linker...
Nick Clifton [Mon, 27 Jun 2016 15:35:58 +0000 (16:35 +0100)]
Allow a second -T<section>=<addr> to override a previous version on the same linker command line.

PR ld/20302
* lexsup.c (set_segment_start): If resetting the start address of
a section, remember to generate a new script element as well.
* testsuite/ld-scripts/pr20302.d: New test.
* testsuite/ld-scripts/scripts.exp: Run the new test.

7 years agooops - omitted from previous delta
Nick Clifton [Mon, 27 Jun 2016 12:52:20 +0000 (13:52 +0100)]
oops - omitted from previous delta

7 years agoAdd command line option to stop the assembler from padding the end of sections to...
Nick Clifton [Mon, 27 Jun 2016 12:49:09 +0000 (13:49 +0100)]
Add command line option to stop the assembler from padding the end of sections to their alignment boundary.

PR gas/20247
* as.h (do_not_pad_sections_to_alignment): New global variable.
* as.c (show_usage): Add --no-pad-sections.
(parse_args): Likewise.
* write.c (size_seg): Skip padding the end of the section if
requested from the command line.
(SUB_SEGMENT_ALIGN): Likewise.
* doc/as.texinfo: Document the new option.
* NEWS: Mention the new feature.
* testsuite/gas/elf/section11.s: New test.
* testsuite/gas/elf/section11.d: New test driver.
* testsuite/gas/elf/elf.exp: Run the new test.

7 years agoPR 19264 looping in ppc64_elf_size_stubs
Alan Modra [Mon, 27 Jun 2016 10:30:09 +0000 (20:00 +0930)]
PR 19264 looping in ppc64_elf_size_stubs

b399102 fixed the testcase in this PR but it may be possible to
trigger the problem in other ways.

PR ld/19264
* elf64-ppc.c (STUB_SHRINK_ITER): Define.
(ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER
if shrinking stubs.
(ppc64_elf_size_stubs): Adjust to suit.

7 years agoFix use of a dangling pointer for Python breakpoint objects
Pierre-Marie de Rodat [Mon, 27 Jun 2016 10:11:25 +0000 (12:11 +0200)]
Fix use of a dangling pointer for Python breakpoint objects

When a Python script tries to create a breakpoint but fails to do so,
gdb.Breakpoint.__init__ raises an exception and the breakpoint does not
exist anymore in the Python interpreter. However, GDB still keeps a
reference to the Python object to be used for a later hook, which is
wrong.

This commit adds the necessary cleanup code so that there is no stale
reference to this Python object. It also adds a new testcase to
reproduce the bug and check the fix.

2016-06-25  Pierre-Marie de Rodat  <derodat@adacore.com>

gdb/
* python/py-breakpoint.c (bppy_init): Clear bppy_pending_object
when there is an error during the breakpoint creation.

gdb/testsuite

* gdb.python/py-breakpoint-create-fail.c,
gdb.python/py-breakpoint-create-fail.exp,
gdb.python/py-breakpoint-create-fail.py: New testcase.

7 years agoadd ChangeLog entries
Trevor Saunders [Mon, 27 Jun 2016 10:01:34 +0000 (06:01 -0400)]
add ChangeLog entries

7 years agodlx: move prototype of dlx_set_skip_hi16 to elf/dlx.h
Trevor Saunders [Sat, 4 Jun 2016 01:43:06 +0000 (21:43 -0400)]
dlx: move prototype of dlx_set_skip_hi16 to elf/dlx.h

bfd/ChangeLog:

2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* elf32-dlx.h: New file.
* elf32-dlx.c: Adjust.

gas/ChangeLog:

2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-dlx.c: Include bfd/elf32-dlx.h.
* config/tc-dlx.h: Remove prototype of dlx_set_skip_hi16.

7 years agoxtensa: remove a sentinal
Trevor Saunders [Mon, 23 May 2016 04:35:40 +0000 (00:35 -0400)]
xtensa: remove a sentinal

gas/ChangeLog:

2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-xtensa.c (xtensa_elf_suffix): Use ARRAY_SIZE instead of a
sentinal element.
(map_suffix_reloc_to_operator): Likewise.
(map_operator_to_reloc): Likewise.

7 years agonds32: remove a sentinal
Trevor Saunders [Sat, 28 May 2016 22:16:47 +0000 (18:16 -0400)]
nds32: remove a sentinal

gas/ChangeLog:

2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-nds32.c (md_begin): Use ARRAY_SIZE instead of a sentinal
element in relax_table.

7 years agoAutomatic date update in version.in
GDB Administrator [Mon, 27 Jun 2016 00:00:10 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Sun, 26 Jun 2016 00:00:17 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoaarch64: make the type of reg_entry::type aarch64_reg_type
Trevor Saunders [Sat, 4 Jun 2016 21:56:32 +0000 (17:56 -0400)]
aarch64: make the type of reg_entry::type aarch64_reg_type

gas/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-aarch64.c: Make the type of reg_entry::type
aarch_reg_type.

7 years agoremove a few sentinals
Trevor Saunders [Thu, 21 Apr 2016 13:56:50 +0000 (09:56 -0400)]
remove a few sentinals

gas/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-bfin.c (bfin_cpus): Remove sentinal.
(md_parse_option): Adjust.
* config/tc-aarch64.c (aarch64_parse_abi): Replace use of a sentinal
with iteration from 0 to ARRAY_SIZE.
* config/tc-mcore.c (md_begin): Likewise.
* config/tc-visium.c (visium_parse_arch): Likewise.

opcodes/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* mcore-opc.h: Remove sentinal.
* mcore-dis.c (print_insn_mcore): Adjust.

7 years agosimplify tic54x_set_default_include ()
Trevor Saunders [Mon, 6 Jun 2016 02:25:21 +0000 (22:25 -0400)]
simplify tic54x_set_default_include ()

its only called with an argument of 0, so we might as well remove the code
supporting other values.

gas/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-tic54x.c (tic54x_set_default_include): remove argument
   and simplify accordingly.
(tic54x_include): Adjust.
(tic54x_mlib): Likewise.

7 years agoxtensa: prototype xtensa_make_property_section in elf/xtensa.h
Trevor Saunders [Sat, 4 Jun 2016 20:46:58 +0000 (16:46 -0400)]
xtensa: prototype xtensa_make_property_section in elf/xtensa.h

There's no reason to have multiple prototypes for the same function.

include/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* elf/xtensa.h (xtensa_make_property_section): New prototype.

gas/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-xtensa.c (xtensa_make_property_section): Remove prototype.

bfd/ChangeLog:

2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* elf32-xtensa.c (xtensa_make_property_section): Remove prototype.

7 years agoFix formatting in rust-lang.c
Tom Tromey [Sat, 25 Jun 2016 14:41:45 +0000 (08:41 -0600)]
Fix formatting in rust-lang.c

This fixes up a few formatting nits in rust-lang.c.
Built and regtested on x86-64 Fedora 23.

2016-06-25  Tom Tromey  <tom@tromey.com>

* rust-lang.c (rust_get_disr_info, rust_print_type): Fix
formatting.

7 years agoAdd tests for printing of NonZero-optimized enums in Rust
Manish Goregaokar [Sat, 25 Jun 2016 05:40:38 +0000 (11:10 +0530)]
Add tests for printing of NonZero-optimized enums in Rust

gdb/testsuite/ChangeLog:
2016-06-25  Manish Goregaokar  <manish@mozilla.com>

    PR gdb/20239
    * gdb.rust/simple.rs: Add more tests for printing NonZero enums.
    * gdb.rust/simple.exp: Add test expectations for new NonZero tests.

7 years agoMake evaluation and type-printing of all NonZero optimized enums work
Manish Goregaokar [Sat, 25 Jun 2016 05:39:23 +0000 (11:09 +0530)]
Make evaluation and type-printing of all NonZero optimized enums work

gdb/ChangeLog:
2016-06-25  Manish Goregaokar  <manish@mozilla.com>

    PR gdb/20239
    * rust-lang.c (rust_get_disr_info): Correctly interpret
    NonZero-optimized enums of arbitrary depth.
    (rust_print_type): Correctly print NonZero-optimized
    enums.

7 years agoSupport structure offsets that are 512K or larger.
David Taylor [Tue, 12 Apr 2016 19:02:57 +0000 (15:02 -0400)]
Support structure offsets that are 512K or larger.

GDB computes structure byte offsets using a 32 bit integer.  And,
first it computes the offset in bits and then converts to bytes.  The
result is that any offset that if 512K bytes or larger overflows.
This patch changes GDB to use LONGEST for such calculations.

PR gdb/17520 Structure offset wrong when 1/4 GB or greater.
* c-lang.h: Change all parameters, variables, and struct or union
members used as struct or union fie3ld offsets from int to
LONGEST.
* c-valprint.c: Likewise.
* cp-abi.c: Likewise.
* cp-abi.h: Likewise.
* cp-valprint.c: Likewise.
* d-valprint.c: Likewise.
* dwarf2loc.c: Likewise.
* eval.c: Likewise.
* extension-priv.h: Likewise.
* extension.c: Likewise.
* extension.h: Likewise.
* findvar.c: Likewise.
* gdbtypes.h: Likewise.
* gnu-v2-abi.c: Likewise.
* gnu-v3-abi.c: Likewise.
* go-valprint.c: Likewise.
* guile/guile-internal.h: Likewise.
* guile/scm-pretty-print.c: Likewise.
* jv-valprint.c Likewise.
* opencl-lang.c: Likewise.
* p-lang.h: Likewise.
* python/py-prettyprint.c: Likewise.
* python/python-internal.h: Likewise.
* spu-tdep.c: Likewise.
* typeprint.c: Likewise.
* valarith.c: Likewise.
* valops.c: Likewise.
* valprint.c: Likewise.
* valprint.h: Likewise.
* value.c: Likewise.
* value.h: Likewise.
* p-valprint.c: Likewise.
* c-typeprint.c (c_type_print_base): When printing offset, use
plongest, not %d.
* gdbtypes.c (recursive_dump_type): Ditto.

7 years agoAutomatic date update in version.in
GDB Administrator [Sat, 25 Jun 2016 00:00:19 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoMIPS16/GAS: Restore unsupported relocation diagnostics
Maciej W. Rozycki [Fri, 24 Jun 2016 23:49:10 +0000 (00:49 +0100)]
MIPS16/GAS: Restore unsupported relocation diagnostics

Correct a MIPS16 relocation handling regression in GAS introduced with:

commit 177b4a6ad0047c8995fbc55016bc4f4b68d53b4a
Author: Alexandre Oliva <aoliva@redhat.com>
Date:   Mon Mar 18 18:56:18 2002 +0000

discussed at <https://sourceware.org/ml/binutils/2002-03/msg00345.html>,
which removed a preparatory call to `mips16_extended_frag' previously
made from `md_estimate_size_before_relax'.  As a result the function is
never called with its `sec' parameter non-NULL and consequently all the
unsupported relocation checks within are dead and never trigger, causing
any unhandled relocations to silently resolve to 0.  Unfortunately there
was no sufficient test suite coverage back then to catch this.

Remove all dead code then, and all the associated comments.  Update the
remaining call to `mips16_extended_frag' from `mips_relax_frag' to pass
the relocation section as the `sec' parameter and use it to mark frags
which require an external relocation, as extended.  Finally handle any
outstanding MIPS16 relocations in `md_convert_frag' and report an error
since we don't support any except with percent operators.

gas/
* config/tc-mips.c (append_insn): Use any `O_symbol' expression
unchanged with relaxed MIPS16 instructions.
(mips16_extended_frag): Adjust accordingly.  Return 1 right
away if a relocation will be required for the symbol requested.
Remove dead first relaxation pass code.
(mips_relax_frag): Pass `sec' down to `mips16_extended_frag'.
(md_convert_frag): Adjust symbol value calculation.  Raise an
error if a relocation is required for the symbol requested.
* testsuite/gas/mips/mips16@relax-swap3.d: Remove dump patterns,
add error output.
* testsuite/gas/mips/mips16@relax-swap3.l: New error output.
* testsuite/gas/mips/mips16-pcrel-relax-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-relax-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-relax-2.d: New test.
* testsuite/gas/mips/mips16-pcrel-relax-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-2.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-4.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-5.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-6.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-7.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-0.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-1.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-2.d: New test.
* testsuite/gas/mips/mips16-pcrel-addend-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-absolute.d: New test.
* testsuite/gas/mips/mips16-branch-reloc-0.d: New test.
* testsuite/gas/mips/mips16-branch-reloc-1.d: New test.
* testsuite/gas/mips/mips16-branch-reloc-2.d: New test.
* testsuite/gas/mips/mips16-branch-reloc-3.d: New test.
* testsuite/gas/mips/mips16-branch-addend-0.d: New test.
* testsuite/gas/mips/mips16-branch-addend-1.d: New test.
* testsuite/gas/mips/mips16-branch-addend-2.d: New test.
* testsuite/gas/mips/mips16-branch-addend-3.d: New test.
* testsuite/gas/mips/mips16-branch-absolute.d: New test.
* testsuite/gas/mips/mips16-absolute-reloc-0.d: New test.
* testsuite/gas/mips/mips16-absolute-reloc-1.d: New test.
* testsuite/gas/mips/mips16-absolute-reloc-2.d: New test.
* testsuite/gas/mips/mips16-absolute-reloc-3.d: New test.
* testsuite/gas/mips/mips16-pcrel-reloc-2.l: New error output.
* testsuite/gas/mips/mips16-pcrel-reloc-3.l: New error output.
* testsuite/gas/mips/mips16-pcrel-reloc-6.l: New error output.
* testsuite/gas/mips/mips16-pcrel-reloc-7.l: New error output.
* testsuite/gas/mips/mips16-pcrel-addend-2.l: New error output.
* testsuite/gas/mips/mips16-pcrel-addend-3.l: New error output.
* testsuite/gas/mips/mips16-pcrel-absolute.l: New error output.
* testsuite/gas/mips/mips16-branch-reloc-2.l: New error output.
* testsuite/gas/mips/mips16-branch-reloc-3.l: New error output.
* testsuite/gas/mips/mips16-branch-addend-2.l: New error output.
* testsuite/gas/mips/mips16-branch-addend-3.l: New error output.
* testsuite/gas/mips/mips16-branch-absolute.l: New error output.
* testsuite/gas/mips/mips16-absolute-reloc-2.l: New error output.
* testsuite/gas/mips/mips16-absolute-reloc-3.l: New error output.
* testsuite/gas/mips/mips16-pcrel-relax-0.s: New test source.
* testsuite/gas/mips/mips16-pcrel-relax-2.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-0.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-1.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-2.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-3.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-4.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-5.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-6.s: New test source.
* testsuite/gas/mips/mips16-pcrel-reloc-7.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-0.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-1.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-2.s: New test source.
* testsuite/gas/mips/mips16-pcrel-addend-3.s: New test source.
* testsuite/gas/mips/mips16-pcrel-absolute.s: New test source.
* testsuite/gas/mips/mips16-branch-reloc-0.s: New test source.
* testsuite/gas/mips/mips16-branch-reloc-1.s: New test source.
* testsuite/gas/mips/mips16-branch-reloc-2.s: New test source.
* testsuite/gas/mips/mips16-branch-reloc-3.s: New test source.
* testsuite/gas/mips/mips16-branch-addend-0.s: New test source.
* testsuite/gas/mips/mips16-branch-addend-1.s: New test source.
* testsuite/gas/mips/mips16-branch-addend-2.s: New test source.
* testsuite/gas/mips/mips16-branch-addend-3.s: New test source.
* testsuite/gas/mips/mips16-branch-absolute.s: New test source.
* testsuite/gas/mips/mips16-absolute-reloc-0.s: New test source.
* testsuite/gas/mips/mips16-absolute-reloc-1.s: New test source.
* testsuite/gas/mips/mips16-absolute-reloc-2.s: New test source.
* testsuite/gas/mips/mips16-absolute-reloc-3.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.

7 years agoAdd myself as a Write After Approval maintainer.
David Taylor [Fri, 24 Jun 2016 21:05:31 +0000 (17:05 -0400)]
Add myself as a Write After Approval maintainer.

7 years agoAdd support for catching system calls to native FreeBSD targets.
John Baldwin [Mon, 13 Jun 2016 04:24:42 +0000 (21:24 -0700)]
Add support for catching system calls to native FreeBSD targets.

All platforms on FreeBSD use a shared system call table, so use a
single XML file to describe the system calls available on each FreeBSD
platform.

Recent versions of FreeBSD include the identifier of the current
system call when reporting a system call entry or exit event in the
ptrace_lwpinfo structure obtained via PT_LWPINFO in fbsd_wait.  As
such, FreeBSD native targets do not use the gdbarch method to fetch
the system call code.  In addition, FreeBSD register sets fetched via
ptrace do not include an equivalent of 'orig_rax' (on amd64 for
example), so the system call code cannot be extracted from the
available registers during a system call exit.  However, GDB assumes
that system call catch points are not supported if the gdbarch method
is not present.  As a workaround, FreeBSD ABIs install a dummy gdbarch
method that throws an internal_error if it is ever invoked.

gdb/ChangeLog:

* configure.ac: Check for support for system call LWP fields on
FreeBSD.
* config.in, configure: Rebuild.
* data-directory/Makefile.in (SYSCALLS_FILES): Add freebsd.xml.
* fbsd-nat.c (fbsd_wait) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
Report system call events.
[HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]
(fbsd_set_syscall_catchpoint): New function.
(fbsd_nat_add_target) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
Set "to_set_syscall_catchpoint" to "fbsd_set_syscall_catchpoint".
* fbsd-tdep.c: Include xml-syscall.h
(fbsd_get_syscall_number): New function.
(fbsd_init_abi): Set XML system call file name.
Add "get_syscall_number" gdbarch method.
* syscalls/freebsd.xml: New file.

7 years agoAdd a gdbarch 'print_auxv_entry' method for FreeBSD ABIs.
John Baldwin [Thu, 16 Jun 2016 04:33:42 +0000 (21:33 -0700)]
Add a gdbarch 'print_auxv_entry' method for FreeBSD ABIs.

Add a 'print_auxv_entry' method for FreeBSD ABIs that parses
FreeBSD-specific auxiliary vector entries and outputs a suitable
description using fprint_auxv_entry.

gdb/ChangeLog:

* fbsd-tdep.c: Include "auxv.h".
(fbsd_print_auxv_entry): New function.
(fbsd_init_abi): Install gdbarch "print_auxv_entry" method.

7 years agoAdd a new gdbarch method to print a single AUXV entry.
John Baldwin [Sat, 11 Jun 2016 22:51:38 +0000 (15:51 -0700)]
Add a new gdbarch method to print a single AUXV entry.

Different platforms have different meanings for auxiliary vector
entries.  The 'print_auxv_entry' gdbarch method allows an architecture
to output a suitable description for platform-specific entries.

A fprint_auxv_entry function is split out of fprint_target_auxv.
This function outputs the description of a single auxiliary vector
entry to the specified file using caller-supplied formatting and
strings to describe the vector type.

The existing switch on auxiliary vector types is moved out of
fprint_target_auxv into a new default_print_auxv_entry function.
default_print_auxv_entry chooses an appropriate format and description
and calls fprint_single_auxv to describe a single vector entry.
This function is used as the default 'print_auxv_entry' gdbarch method.

fprint_target_auxv now invokes the gdbarch 'print_auxv_entry' method
on each vector entry.

gdb/ChangeLog:

* auxv.c (fprint_auxv_entry): New function.
(default_print_auxv_entry): New function.
(fprint_target_auxv): Use gdbarch_print_auxv_entry.
* auxv.h (enum auxv_format): New enum.
(fprint_auxv_entry): Declare.
(default_print_auxv_entry): Declare.
* gdbarch.sh (print_auxv_entry): New.
* gdbarch.c, gdbarch.h: Re-generated.

7 years agoCreate a pseudo section for the ELF AUXV core dump note on FreeBSD.
John Baldwin [Sun, 12 Jun 2016 19:34:51 +0000 (12:34 -0700)]
Create a pseudo section for the ELF AUXV core dump note on FreeBSD.

The procstat AUXV core dump note in FreeBSD consists of 32-bit integer
followed by an array of auxiliary vector entries.

bfd/ChangeLog:

* elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV
notes.

7 years agoFetch the ELF auxiliary vector from live processes on FreeBSD.
John Baldwin [Sat, 11 Jun 2016 22:07:38 +0000 (15:07 -0700)]
Fetch the ELF auxiliary vector from live processes on FreeBSD.

Use the kern.proc.auxv.<pid> sysctl to fetch the ELF auxiliary vector for
a live process.

gdb/ChangeLog:

* fbsd-nat.c [KERN_PROC_AUXV] New variable super_xfer_partial.
(fbsd_xfer_partial): New function.
(fbsd_nat_add_target) [KERN_PROC_AUXV] Set "to_xfer_partial" to
"fbsd_xfer_partial".

7 years agoAdd elfcore_grok_freebsd_note to parse FreeBSD ELF core notes.
John Baldwin [Sun, 12 Jun 2016 15:56:31 +0000 (08:56 -0700)]
Add elfcore_grok_freebsd_note to parse FreeBSD ELF core notes.

Move parsing of FreeBSD-specific ELF core notes out of elfcore_grok_note
into a new elfcore_grok_freebsd_note function.  Add core note grok routines
for FreeBSD's psinfo and prstatus notes while here rather than depending
on the native handling in elfcore_grok_note.

bfd/ChangeLog:

* elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for
FreeBSD.  Remove case for NT_FREEBSD_THRMISC.
(elfcore_grok_freebsd_psinfo): New function.
(elfcore_grok_freebsd_prstatus): New function.
(elfcore_grok_freebsd_note): New function.
(elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD"
notes.

7 years agoAdd constants for FreeBSD-specific auxiliary vector entry types.
John Baldwin [Thu, 16 Jun 2016 05:44:11 +0000 (22:44 -0700)]
Add constants for FreeBSD-specific auxiliary vector entry types.

include/ChangeLog:

* elf/common.h (AT_FREEBSD_EXECPATH, AT_FREEBSD_CANARY)
(AT_FREEBSD_CANARYLEN, AT_FREEBSD_OSRELDATE, AT_FREEBSD_NCPUS)
(AT_FREEBSD_PAGESIZES, AT_FREEBSD_PAGESIZESLEN)
(AT_FREEBSD_TIMEKEEP, AT_FREEBSD_STACKPROT): Define.

7 years agoAdd missing ChangeLog entry for "fix undefined reference [...]" commit.
Joel Brobecker [Fri, 24 Jun 2016 17:04:56 +0000 (13:04 -0400)]
Add missing ChangeLog entry for "fix undefined reference [...]" commit.

7 years agofix undefined reference to bfd_link_plugin_object_p during link
Joel Brobecker [Fri, 24 Jun 2016 16:16:24 +0000 (12:16 -0400)]
fix undefined reference to bfd_link_plugin_object_p during link

When configured with the default options, GDB currently fails to link,
due to an undefined reference to bfd_link_plugin_object_p, coming from
elflink.c:

    #ifdef BFD_SUPPORTS_PLUGINS
           || (abfd->plugin_format == bfd_plugin_unknown
              && bfd_link_plugin_object_p (abfd))
    #endif

This is because BFD_SUPPORTS_PLUGINS is always defined. It is its value
that determines whether plugin support is enabled or not.

bfd/ChangeLog:

        * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather
        than its existance.

7 years agoMIPS objcopy --rename-section fix
Alan Modra [Thu, 23 Jun 2016 12:41:57 +0000 (22:11 +0930)]
MIPS objcopy --rename-section fix

Some MIPS targets use a named section symbol rather than a symbol with
no name as is used with most ELF targets.  When renaming sections, the
named section symbol needs to be renamed too.

Rather than fix this bug, I'd originally intended to just correct the
xfail added recently for update-1.o vs update4.o in update-section.exp,
using the same set of targets for the localize-hidden-1 mips xfail.
I'd extracted that target test into a new function, is_bad_symtab.  It
turns out to be useful in readelf.exp too.

bfd/
* config.bfd: Delete mips vxworks patterns matched earlier.
Combine mips*-*-none with mips*-*-elf*.
binutils/
* objcopy.c (find_section_rename): Forward declare.  Remove
ibfd and sec_ptr param.  Add old_name param.  Allow for NULL
returned_flags.  Move read of section name and flags to..
(setup_section): ..here.  Update find_section_rename call.
(filter_symbols): Rename section symbols for renamed sections.
(copy_object): Call filter_symbols when renamed sections.
* testsuite/lib/binutils-common.exp (is_bad_symtab): New.
* testsuite/binutils-all/update-section.exp: Revert 96037eb0
mips xfail.
* testsuite/binutils-all/objcopy.exp (copy_executable): Use
is_bad_symtab.
(localize-hidden-1): xfail if is_bad_symtab.
* testsuite/binutils-all/readelf.exp: Use is_bad_symtab to select
between mips/tmips.

7 years agoaarch64 ld testsuite
Alan Modra [Fri, 24 Jun 2016 01:50:53 +0000 (11:20 +0930)]
aarch64 ld testsuite

Fixes failure on aarch64-rtems.

* testsuite/ld-aarch64/aarch64-elf.exp (aarch64_choose_ilp32_emul):
Don't error out, always return an emulation.

7 years agoalpha-openbsd build failure
Alan Modra [Fri, 24 Jun 2016 01:24:50 +0000 (10:54 +0930)]
alpha-openbsd build failure

This target doesn't build, due to a missing gas/config/te-obsd.h file.
It's been that way since the commit switching to elf, in 2002.
https://lists.gnu.org/archive/html/bug-gnu-utils/2002-07/msg00128.html

* configure.tgt (alpha-*-openbsd*): Use em=nbsd.

7 years agoLimit objdump -S context lines
Alan Modra [Fri, 24 Jun 2016 01:20:25 +0000 (10:50 +0930)]
Limit objdump -S context lines

Showing context lines is confusing in many cases, an obvious example
being loops.

* objdump.c (struct print_file_list): Add "max_printed".
(try_print_file_open): Init new field.
(show_line): Don't show 5 context lines when redisplaying source.

7 years agoCheck DEFAULT_LD_Z_RELRO for -z relro help message
H.J. Lu [Fri, 24 Jun 2016 12:21:43 +0000 (05:21 -0700)]
Check DEFAULT_LD_Z_RELRO for -z relro help message

* lexsup.c (elf_shlib_list_options): Check DEFAULT_LD_Z_RELRO
for -z relro help message.

7 years agoMove logic out of symbol_find_demangled_name
Tom Tromey [Thu, 26 May 2016 21:04:07 +0000 (15:04 -0600)]
Move logic out of symbol_find_demangled_name

This patch moves most of the demangling logic out of
symbol_find_demangled_name into the various language_defn objects.

The simplest way to do this seemed to be to add a new method to
language_defn.  This is shame given the existing la_demangle, but
given Ada's unusual needs, and the differing demangling options
between languages, la_demangle didn't seem to fit.

In order to make this work, I made enum language order-sensitive.
This helps preserve the current ordering of demangling operations.

2016-06-23  Tom Tromey  <tom@tromey.com>

* symtab.c (symbol_find_demangled_name): Loop over languages and
use language_sniff_from_mangled_name.
* rust-lang.c (rust_sniff_from_mangled_name): New function.
(rust_language_defn): Update.
* p-lang.c (pascal_language_defn): Update.
* opencl-lang.c (opencl_language_defn): Update.
* objc-lang.c (objc_sniff_from_mangled_name): New function.
(objc_language_defn): Update.
* m2-lang.c (m2_language_defn): Update.
* language.h (struct language_defn) <la_sniff_from_mangled_name>: New
field.
(language_sniff_from_mangled_name): Declare.
* language.c (language_sniff_from_mangled_name): New function.
(unknown_language_defn, auto_language_defn, local_language_defn):
Update.
* jv-lang.c (java_sniff_from_mangled_name): New function.
(java_language_defn): Use it.
* go-lang.c (go_sniff_from_mangled_name): New function.
(go_language_defn): Use it.
* f-lang.c (f_language_defn): Update.
* defs.h (enum language): Reorder.
* d-lang.c (d_sniff_from_mangled_name): New function.
(d_language_defn): Use it.
* cp-support.h (gdb_sniff_from_mangled_name): Declare.
* cp-support.c (gdb_sniff_from_mangled_name): New function.
* c-lang.c (c_language_defn, cplus_language_defn)
(asm_language_defn, minimal_language_defn): Update.
* ada-lang.c (ada_sniff_from_mangled_name): New function.
(ada_language_defn): Use it.

7 years agoMove filename extensions into language_defn
Tom Tromey [Thu, 26 May 2016 16:33:28 +0000 (10:33 -0600)]
Move filename extensions into language_defn

This moves filename extensions from a function in symfile.c out to
each language_defn.  I think this is an improvement because it means
less digging around when writing a new language port.

2016-06-23  Tom Tromey  <tom@tromey.com>

* ada-lang.c (ada_extensions): New array.
(ada_language_defn): Use it.
* c-lang.c (c_extensions): New array.
(c_language_defn): Use it.
(cplus_extensions): New array.
(cplus_language_defn): Use it.
(asm_extensions): New array.
(asm_language_defn): Use it.
(minimal_language_defn): Update.
* d-lang.c (d_extensions): New array.
(d_language_defn): Use it.
* f-lang.c (f_extensions): New array.
(f_language_defn): Use it.
* go-lang.c (go_language_defn): Update.
* jv-lang.c (java_extensions): New array.
(java_language_defn): Use it.
* language.c (add_language): Call add_filename_language.
(unknown_language_defn, auto_language_defn, local_language_defn):
Update.
* language.h (struct language_defn) <la_filename_extensions>: New
field.
* m2-lang.c (m2_language_defn): Update.
* objc-lang.c (objc_extensions): New array.
(objc_language_defn): Use it.
* opencl-lang.c (opencl_language_defn): Update.
* p-lang.c (p_extensions): New array.
(pascal_language_defn): Use it.
* rust-lang.c (rust_extensions): New array.
(rust_language_defn): Use it.
* symfile.c (add_filename_language): No longer static.  Make "ext"
const.
(init_filename_language_table): Remove.
(_initialize_symfile): Update.
* symfile.h (add_filename_language): Declare.

7 years agoUse VEC for filename_language_table
Tom Tromey [Thu, 26 May 2016 16:22:03 +0000 (10:22 -0600)]
Use VEC for filename_language_table

This patch changes filename_language_table to be a VEC.  This seemed
like a reasonable cleanup over the old code.

2016-06-23  Tom Tromey  <tom@tromey.com>

* symfile.c (filename_language_table): Now a VEC.
(fl_table_size, fl_table_next): Remove.
(add_filename_language): Use VEC_safe_push.
(set_ext_lang_command, info_ext_lang_command)
(deduce_language_from_filename): Use VEC_iterate.
(init_filename_language_table): Use VEC_empty.

7 years agoMake gdbpy_parameter static
Tom Tromey [Thu, 9 Jun 2016 21:07:55 +0000 (15:07 -0600)]
Make gdbpy_parameter static

While working on the next patch in this series, I noticed that
gdbpy_parameter did not need to be exported.  This makes it "static".

2016-06-23  Tom Tromey  <tom@tromey.com>

* python/python.c (gdbpy_parameter): Now static.
* python/python-internal.h (gdbpy_parameter): Don't declare.

7 years agoAutomatic date update in version.in
GDB Administrator [Fri, 24 Jun 2016 00:00:15 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoFix bug with grouping sections.
Cary Coutant [Thu, 23 Jun 2016 16:45:25 +0000 (09:45 -0700)]
Fix bug with grouping sections.

The fix for PR 15370 did not correctly check all patterns in a group,
but instead threw all unassigned sections into the group. This patch
fixes that.

2016-06-23  Cary Coutant  <ccoutant@gmail.com>
    Igor Kudrin  <ikudrin@accesssoftek.com>

gold/
PR gold/15370
* script-sections.cc
(Output_section_element_input::set_section_addresses): Keep bin_count
separate from input_pattern_count.
* testsuite/script_test_12.t: Add another section .x4.
* testsuite/script_test_12i.t: Likewise.
* testsuite/script_test_12a.c: Likewise.
* testsuite/script_test_12b.c: Likewise.

7 years agoFix compilation error in MSYS2 environment.
Igor Kudrin [Thu, 23 Jun 2016 15:50:18 +0000 (08:50 -0700)]
Fix compilation error in MSYS2 environment.

gold/
* gold-threads.cc (impl_threads::Lock_impl_threads): Fix typos.

7 years agoPR gdb/16483 - simplify "info frame-filters" output
Tom Tromey [Mon, 20 Jun 2016 16:28:37 +0000 (10:28 -0600)]
PR gdb/16483 - simplify "info frame-filters" output

PR gdb/16483 notes that the output of "info frame-filters" is quite
voluminous.  In particular it prints an entry for each objfile, even if
only to say that the objfile does not have any associated frame filters.

I think it's better to only print output when there is a frame filter.
There's nothing worth doing with the no-frame-filter information, and
limiting the output makes it much more readable.

Built and regtested on x86-64 Fedora 23.

2016-06-23  Tom Tromey  <tom@tromey.com>

PR gdb/16483:
* python/lib/gdb/command/frame_filters.py
(InfoFrameFilter.list_frame_filters): Rename to print_list.  Print
nothing if no filters found.  Return value indicating whether
filters were printed.
(InfoFrameFilter.print_list): Remove.
(InfoFrameFilter.invoke): Print message if no frame filters
found.

2016-06-23  Tom Tromey  <tom@tromey.com>

PR gdb/16483:
* gdb.python/py-framefilter.exp: Add "info frame-filter" test
before any filters are loaded.

7 years agoMIPS/GAS: Keep the original microMIPS symbol reference in branch relocs
Maciej W. Rozycki [Thu, 23 Jun 2016 10:33:52 +0000 (11:33 +0100)]
MIPS/GAS: Keep the original microMIPS symbol reference in branch relocs

Keep original microMIPS symbols in references from branch relocations so
that the ISA bit is retained and can be verified for validity in static
link.  No need to update WRT MIPS16 symbols because we keep them all
anyway for other reasons.

gas/
* config/tc-mips.c (b_reloc_p): New function.
(mips_fix_adjustable): Also keep the original microMIPS symbol
referred from branch relocations.
* testsuite/gas/mips/branch-local-1.d: New test.
* testsuite/gas/mips/branch-local-n32-1.d: New test.
* testsuite/gas/mips/branch-local-n64-1.d: New test.
* testsuite/gas/mips/micromips@branch-misc-4-64.d: Update
relocations.
* testsuite/gas/mips/branch-local-1.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new cases.

7 years ago[ARC] Misc minor edits/fixes
Graham Markall [Tue, 21 Jun 2016 19:25:29 +0000 (20:25 +0100)]
[ARC] Misc minor edits/fixes

The code supporting -mspfp, -mdpfp, and -mfpuda options are in
sections of code that are commented as being for backward
compatibility only, and having no effect. However, they do have an
effect, enabling the SPX, DPX, and DPA instruction subclasses
respectively. This commit moves the code supporting these options
away from the comments indicating that they are dummy options, and
also fixes a small issue where -mnps400 had the additional effect
of enabling SPX instructions.

A couple of other minor edits (that make no functional change) are
also included.

gas/ChangeLog:

        * config/tc-arc.c (options, md_longopts, md_parse_option):
        Move -mspfp, -mdpfp and -mfpuda out of the sections for
        dummy options. Correct erroneous enabling of SPFP
        instructions when using -mnps400.

include/ChangeLog:

        * opcode/arc.h: Make insn_class_t alphabetical again.

opcodes/ChangeLog:

        * arc-opc.c: Correct description of availability of NPS400
        features.

7 years agoAutomatic date update in version.in
GDB Administrator [Thu, 23 Jun 2016 00:00:23 +0000 (00:00 +0000)]
Automatic date update in version.in

7 years agoMIPS/LD/testsuite: Use wildcard address matching in `undefweak-overflow'
Maciej W. Rozycki [Wed, 22 Jun 2016 23:41:34 +0000 (00:41 +0100)]
MIPS/LD/testsuite: Use wildcard address matching in `undefweak-overflow'

So that test case updates result in legible dump pattern changes.

ld/
* testsuite/ld-mips-elf/undefweak-overflow.d: Use wildcard
address matching.

7 years agoMIPS/LD/testsuite: Uniquely identify `undefweak-overflow' tests
Maciej W. Rozycki [Wed, 22 Jun 2016 23:29:14 +0000 (00:29 +0100)]
MIPS/LD/testsuite: Uniquely identify `undefweak-overflow' tests

ld/
* testsuite/ld-mips-elf/mips-elf.exp: Uniquely identify
`undefweak-overflow' tests.

7 years agoMIPS/GAS: Handle resolved R6 PC-relative relocations (ChangeLog)
Maciej W. Rozycki [Tue, 21 Jun 2016 20:22:39 +0000 (21:22 +0100)]
MIPS/GAS: Handle resolved R6 PC-relative relocations (ChangeLog)

Add missing ChangeLog entry for commit 41947d9e38c4 ("MIPS/GAS: Handle
resolved R6 PC-relative relocations").

7 years agoAdd support for yet some more new ISA 3.0 instructions.
Peter Bergner [Wed, 22 Jun 2016 22:55:17 +0000 (17:55 -0500)]
Add support for yet some more new ISA 3.0 instructions.

opcodes/
* ppc-opc.c (RM, DRM, VXASH, VXASH_MASK, XMMF, XMMF_MASK): New defines.
(powerpc_opcodes) <brd, brh, brw, mffsce, mffscdrn, mffscdrni,
mffscrn, mffscrni, mffsl, nandxor, rldixor, setbool,
xor3>: New mnemonics.
<setb>: Change to a VX form instruction.
(insert_sh6): Add support for rldixor.
(extract_sh6): Likewise.

gas/
* testsuite/gas/ppc/power9.d <brd, brh, brw, mffs, mffs., mffsce,
mffscdrn, mffscdrni, mffscrn, mffscrni, mffsl, nandxor, rldixor,
setbool, xor3>: New tests.
* testsuite/gas/ppc/power9.s: Likewise.

7 years agoaddmore extern C
Trevor Saunders [Sat, 4 Jun 2016 03:11:46 +0000 (23:11 -0400)]
addmore extern C

opcodes/ChangeLog:

2016-06-22  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* arc-ext.h: Wrap in extern C.

include/ChangeLog:

2016-06-22  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* elf/dlx.h: Wrap in extern C.
* elf/xtensa.h: Likewise.
* opcode/arc.h: Likewise.

7 years agoFix various binutils testsuite failures.
Nick Clifton [Wed, 22 Jun 2016 13:42:26 +0000 (14:42 +0100)]
Fix various binutils testsuite failures.

* testsuite/binutils-all/ar.exp: Skip tests for Alpha target.
Skip bfdtest1 tests for tic30 target.
* testsuite/binutils-all/arm/objdump.exp: Skip for aout arm
target.
* testsuite/binutils-all/compress.exp: Expect some tests to fail
on the nds32.
* testsuite/binutils-all/copy-3.d: Skip for go32 targets.
* testsuite/binutils-all/copy-4.d: Skip for AIX and linuxecoff
targets.
* testsuite/binutils-all/nm.exp: Treat beos based targets as ELF
targets.
* testsuite/binutils-all/objcopy.exp: Only run reverse bytes tests
if the bintest.o file was created.  Use the
get_standard_section_names proc to get the name of the data
section.
* testsuite/binutils-all/objdump.exp: Update regexps to allow for
RX section names.
* testsuite/binutils-all/readelf.exp: Use
get_standard_section_names proc to get the name of the data
section.
* testsuite/binutils-all/readelf.r: Allow for non standard text
section names.
* testsuite/binutils-all/readelf.s: Update regexps for tilepro.
* testsuite/binutils-all/size.exp: Allow for non standard section
names.
* testsuite/binutils-all/update-section.exp: Expect comapre 1vs4
to fail on mips targets.
* testsuite/lib/utils-lib.exp (default_binutils_run): Use
get_standard_section_names proc.
(run_dump_test): Likewise.
(proc get_standard_section_names): New proc.

7 years agogold: Add a linker configure option --enable-relro
H.J. Lu [Wed, 22 Jun 2016 12:39:22 +0000 (05:39 -0700)]
gold: Add a linker configure option --enable-relro

Add a configure option --enable-relro to decide whether -z relro should
be enabled by default.  Default to yes.

PR ld/20283
* NEWS: Mention --enable-relro.
* configure.ac: Add --enable-relro.
(DEFAULT_LD_Z_RELRO): New.  Set by --enable-relro and default
to 1.
* config.in: Regenerated.
* configure: Likewise.
* options.h (General_options::relro): Default to
DEFAULT_LD_Z_RELRO.

7 years agold: Add a linker configure option --enable-relro
H.J. Lu [Wed, 22 Jun 2016 12:37:24 +0000 (05:37 -0700)]
ld: Add a linker configure option --enable-relro

Add a configure option --enable-relro to decide whether -z relro should
be enabled in ELF linker by default.  Default to yes for all Linux
targets, except FRV, HPPA, IA64 and MIPS, since many relro tests fail
on these targets.

PR ld/20283
* NEWS: Mention --enable-relro.
* configure.ac: Add --enable-relro.
(DEFAULT_LD_Z_RELRO): New.  Set by --enable-relro.
* configure.tgt (ac_default_ld_z_relro): Default it to 1 for
some Linux targets.
* config.in: Regenerated.
* configure: Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse): Set
link_info.relro to DEFAULT_LD_Z_RELRO.
* testsuite/config/default.exp (ld_elf_shared_opt): New.
* testsuite/lib/ld-lib.exp (run_dump_test): Pass
$ld_elf_shared_opt to ld for ELF targets with shared object
support.
(run_ld_link_tests): Likewise.

7 years agotilegx: move TILEGX_NUM_PIPELINE_ENCODINGS to tilegx_pipeline enum
Trevor Saunders [Sat, 28 May 2016 15:54:51 +0000 (11:54 -0400)]
tilegx: move TILEGX_NUM_PIPELINE_ENCODINGS to tilegx_pipeline enum

Its closely related to what the encodings are, more than a set of random
constants, so it seems to make sense to put it here.

include/ChangeLog:

2016-06-22  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* opcode/tilegx.h: Move TILEGX_NUM_PIPELINE_ENCODINGS into
tilegx_pipeline.