external/binutils.git
8 years agoAutomatic date update in version.in
GDB Administrator [Sat, 26 Mar 2016 00:00:16 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoAutomatic date update in version.in
GDB Administrator [Fri, 25 Mar 2016 00:00:17 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoMore -Wstack-usage warnings: opcodes/aarch64-*
Jan Kratochvil [Thu, 24 Mar 2016 21:42:09 +0000 (22:42 +0100)]
More -Wstack-usage warnings: opcodes/aarch64-*

opcodes Fix -Wstack-usage warnings.
* aarch64-dis.c (print_operands): Substitute size.
* aarch64-opc.c (print_register_offset_address): Substitute tblen.

8 years agogas: sparc: allow ASR registers in the 0..31 range in V9 and later
Jose E. Marchesi [Thu, 24 Mar 2016 17:28:41 +0000 (10:28 -0700)]
gas: sparc: allow ASR registers in the 0..31 range in V9 and later

In the SPARC V9 (and later) versions of the SPARC specification, the
section C.1.1 "Register Names" specifies that:

"asr_reg.  An asr_reg is an Ancillary State Register name.  It may have
 one of the following values:

  %asr16-%asr31"

The rationale of having this restriction was that the registers from 16
to 31 are reserved to implementations, and are therefore "non-V9".  It
also assumes that the existing ASR registers in the range 0..31 will
have their own names such as %y, that can be used to access such
registers.

However, this is problematic.  When a new ASR register is introduced,
such as %mcdper a.k.a. %asr14, it is useful to be able to use %asr14 in
order to not depend on the latest version of the assembler.

The Solaris assembler is lax and allows to assembly instructions
referring to %asr0 to %asr31.  This patch makes the GNU assembler to
mimic that behavior.

gas/ChangeLog:

  2016-03-24  Jose E. Marchesi  <jose.marchesi@oracle.com>

* config/tc-sparc.c (sparc_ip): Remove the V9 restriction on ASR
registers to be in the 16..31 range.

8 years agosparc: reorder wr instructions in sparc_opcodes to fix diagnostics
Jose E. Marchesi [Thu, 24 Mar 2016 17:20:45 +0000 (10:20 -0700)]
sparc: reorder wr instructions in sparc_opcodes to fix diagnostics

This patch changes the location of several variants of the `wr'
instruction in sparc_opcodes.  This is to get the assembler to emit the
right diagnostics when an invalid %asrN register is used in an
instruction.

8 years agomake microblaze build with -Wwrite-strings
Trevor Saunders [Sun, 20 Mar 2016 01:48:07 +0000 (21:48 -0400)]
make microblaze build with -Wwrite-strings

frag_var () assigns its last argument to frag::fr_opcode, and it turns out
some targets modify the string that points to.  However it appears niether the
generic code or the microblaze code modifies what fr_opcode points to, so this
code should be safe.  So we unfortunately need to cast to char * when passing
an argument to frag_var () but otherwise microblaze can itself point to these
strings with const char *.

gas/ChangeLog:

2016-03-24  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-microblaze.c (md_assemble): Cast opc to char * when calling
frag_var ().

8 years agolocalize string returned from visium's md_atof ()
Trevor Saunders [Sat, 19 Mar 2016 11:38:46 +0000 (07:38 -0400)]
localize string returned from visium's md_atof ()

I'm not sure the string it returns is particularly useful, or better than the
string returned by other atof implementations on failure, but given the others
return a localized string it seems like this one should too.

gas/ChangeLog:

2016-03-24  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* config/tc-visium.c (md_atof): Localize the string returned on
failure.

8 years agoAdd quotation mark in test message
Yao Qi [Thu, 24 Mar 2016 09:53:50 +0000 (09:53 +0000)]
Add quotation mark in test message

I happen to see a quotation mark is missing the following test,

 gdb_test "break $end_location" \
     "Breakpoint $decimal at .* line $end_location\." \
     set breakpoint at end of main"

so the test result is

PASS: gdb.reverse/break-reverse.exp: set

This patch is to add the missing quotation mark back, and the test
result becomes

PASS: gdb.reverse/break-reverse.exp: set breakpoint at end of main

gdb/testsuite:

2016-03-24  Yao Qi  <yao.qi@linaro.org>

* gdb.reverse/break-reverse.exp: Add quotation mark in the
test message.

8 years agoAutomatic date update in version.in
GDB Administrator [Thu, 24 Mar 2016 00:00:19 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoMore AArch64 simulator improvements.
Nick Clifton [Wed, 23 Mar 2016 17:37:30 +0000 (17:37 +0000)]
More AArch64 simulator improvements.

* cpustate.c (aarch64_get_FP_half): New function.  Read a vector
register as a half precision floating point number.
(aarch64_set_FP_half): New function.  Similar, but for setting
a half precision register.
(aarch64_get_thread_id): New function.  Returns the value of the
CPU's TPIDR register.
(aarch64_get_FPCR): New function.  Returns the value of the CPU's
floating point control register.
(aarch64_set_FPCR): New function.  Set the value of the CPU's FPCR
register.
* cpustate.h: Add prototypes for new functions.
* sim-main.h (struct _sim_cpu): Add FPCR and tpidr fields.
* memory.c: Use unaligned core access functions for all memory
reads and writes.
* simulator.c (HALT_NYI): Generate an error message if tracing
will not tell the user why the simulator is halting.
(HALT_UNREACHABLE): Delete.  Delete (unneeded) uses of the macro.
(INSTR): New time-saver macro.
(fldrb_abs): New function.  Loads an 8-bit value using a scaled
offset.
(fldrh_abs): New function.  Likewise for 16-bit values.
(do_vec_SSHL): Allow for negative shift values.
(do_vec_USHL): Likewise.
(do_vec_SHL): Correct computation of shift amount.
(do_vec_SSHR_USHR): Correct decision of signed vs unsigned
shifts and computation of shift value.
(clz): New function.  Counts leading zero bits.
(do_vec_CLZ): New function.  Implements CLZ (vector).
(do_vec_MOV_element): Call do_vec_CLZ.
(dexSimpleFPCondCompare): Implement.
(do_FCVT_half_to_single): New function.  Implements one of the
FCVT operations.
(do_FCVT_half_to_double): New function.  Likewise.
(do_FCVT_single_to_half): New function.  Likewise.
(do_FCVT_double_to_half): New function.  Likewise.
(dexSimpleFPDataProc1Source): Call new FCVT functions.
(do_scalar_SHL): Handle negative shifts.
(do_scalar_shift): Handle SSHR.
(do_scalar_USHL): New function.
(do_double_add): Simplify to just performing a double precision
add operation.  Move remaining code into...
(do_scalar_vec): ... New function.
(dexLoadUnsignedImmediate): Call new fldrb_abs and fldrh_abs
functions.
(system_get): Add support for TPIDR, CTR, FPCR, FPSR and CPSR
registers.
(system_set): New function.
(do_MSR_immediate): New function.  Stub for now.
(do_MSR_reg): New function.  Likewise. Partially implements MSR
instruction.
(do_SYS): New function.  Stub for now,
(dexSystem): Call new functions.

8 years agoRemove comments on software_single_step in gdbarch.sh
Yao Qi [Wed, 23 Mar 2016 11:21:20 +0000 (11:21 +0000)]
Remove comments on software_single_step in gdbarch.sh

This comment is out of date.  We've already done that.  Patch is to remove
it.

gdb:

2016-03-23  Yao Qi  <yao.qi@linaro.org>

* gdbarch.sh (software_single_step): Remove comments.
* gdbarch.h: Regenerated.

8 years agoAutomatic date update in version.in
GDB Administrator [Wed, 23 Mar 2016 00:00:23 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agomake more variables const
Trevor Saunders [Sun, 20 Mar 2016 05:34:02 +0000 (01:34 -0400)]
make more variables const

gas/ChangeLog:

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

* config/tc-h8300.c (h8300_elf_section): Add const qualifiers.
* config/tc-ia64.c (obj_elf_vms_common): Likewise.
* config/tc-m68hc11.c (md_begin): Likewise.
(print_opcode_list): Likewise.
* config/tc-msp430.c (msp430_section): Likewise.
* config/tc-score.c (struct s3_insn_to_dependency): Likewise.
(s3_build_dependency_insn_hsh): Likewise.
* config/tc-score7.c (struct s7_insn_to_dependency): Likewise.
(s7_build_dependency_insn_hsh): Likewise.
* config/tc-tic4x.c: Likewise.
* config/tc-tic54x.c (tic54x_set_default_include): Likewise.
(subsym_get_arg): Likewise.
* config/tc-xtensa.c (struct suffix_reloc_map): Likewise.
(get_directive): Likewise.
(cache_literal_section): Likewise.
* config/xtensa-relax.c: Likewise.
* symbols.c (symbol_create): Likewise.
(local_symbol_make): Likewise.
(symbol_relc_make_expr): Likewise.

include/ChangeLog:

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

* opcode/i960.h: Add const qualifiers.
* opcode/tic4x.h (struct tic4x_inst): Likewise.

8 years agotc-pdp11.c: remove useless code
Trevor Saunders [Sun, 20 Mar 2016 05:07:55 +0000 (01:07 -0400)]
tc-pdp11.c: remove useless code

if the condition is true then we know that str already points to a'\0' in the
string passed to the function.  Since we know the latter part of the function
doesn't modify that string, and str already points to a null byte there's no
point in changing str to point to a literal empty string.

gas/ChangeLog:

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

* config/tc-pdp11.c (md_assemble): Remove useless if and assignment to
str.

8 years agotc-sparc.c: get rid of wierd usage of strchr ()
Trevor Saunders [Sun, 20 Mar 2016 05:36:16 +0000 (01:36 -0400)]
tc-sparc.c: get rid of wierd usage of strchr ()

This lets us avoid assigning a literal to a char *, and perhaps more
importantly makes it clearer what is going on here.

gas/ChangeLog:

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

* config/tc-sparc.c (sparc_regname_to_dw2regnum): Replace strchr ()
call with a switch.

8 years agouse do_align () directly in tc-ia64.c
Trevor Saunders [Sun, 28 Feb 2016 23:00:00 +0000 (18:00 -0500)]
use do_align () directly in tc-ia64.c

gas/ChangeLog:

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

* config/tc-ia64.c (ia64_do_align): Remove.
(ia64_cons_align): Call do_align () directly.
(dot_proc): Likewise.
(stmt_float_cons): Likewise.

8 years agoreplace some raw xmalloc / xrealloc with the XNEW* macros
Trevor Saunders [Sun, 14 Feb 2016 03:00:07 +0000 (22:00 -0500)]
replace some raw xmalloc / xrealloc with the XNEW* macros

This increases consistancy of how we allocate memory, and always casting the
result to the proper type.  It also helps make sure we get any use of sizeof on
the result type correct.

gas/ChangeLog:

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

* listing.c (listing_message): Use XNEW style allocation macros.
* read.c (read_a_source_file): Likewise.
(read_symbol_name): Likewise.
(s_mri_common): Likewise.
(assign_symbol): Likewise.
(s_reloc): Likewise.
(emit_expr_with_reloc): Likewise.
(s_incbin): Likewise.
(s_include): Likewise.
* sb.c (sb_build): Likewise.
(sb_check): Likewise.

8 years agoFix unbounded stack usage warning inside the SAFE_BYTE_GET macro.
Nick Clifton [Tue, 22 Mar 2016 13:25:22 +0000 (13:25 +0000)]
Fix unbounded stack usage warning inside the SAFE_BYTE_GET macro.

PR 19851
binutils * dwarf.c (SAFE_BYTE_GET): Replace local dynamic array allocation
with run time size check.

8 years agoImprove COFF/PE linker garbage collection by preventing the removal of sections conta...
Nick Clifton [Tue, 22 Mar 2016 12:25:08 +0000 (12:25 +0000)]
Improve COFF/PE linker garbage collection by preventing the removal of sections containing exported symbols.

PR ld/19803
* ldlang.c (lang_add_gc_name): New function.  Adds the provided
symbol name to the list of gc symbols.
(lang_process): Call lang_add_gc_name with entry_symbol_default if
entry_symbol.name is NULL.  Use lang_add_gc_name to add the init
and fini function names.
* pe-dll.c (process_def_file_and_drectve): Add exported names to
the gc symbol list.
* testsuite/ld-pe/pr19803.s: Do not export _testval symbol.
* testsuite/ld-pe/pr19803.d: Tweak expected output.

8 years agoAttribute with DW_FORM_flag_present
Alan Modra [Tue, 22 Mar 2016 12:20:18 +0000 (22:50 +1030)]
Attribute with DW_FORM_flag_present

PR 19850
* dwarf2.c (read_attribute_value): Skip info_ptr check for
DW_FORM_flag_present.

8 years agoFix tic54x regression
Alan Modra [Tue, 22 Mar 2016 12:18:37 +0000 (22:48 +1030)]
Fix tic54x regression

One of the tic54x testcases looks for a section alignment of 1.  After
9136aa49 the alignment became 0.  While it happens that an alignment
of 0 is treated as an alignment of 1, there is no reason to not apply
the explicit alignment.

* write.c (record_alignment): Revert 2016-02-18 change.

8 years agoRemove more alloca calls
Alan Modra [Tue, 22 Mar 2016 12:08:53 +0000 (22:38 +1030)]
Remove more alloca calls

* config/tc-alpha.c (load_expression): Replace alloca with xmalloc.
(emit_jsrjmp, tc_gen_reloc): Likewise.
* config/tc-i370.c (i370_macro): Likewise.

8 years agoRestore v850-rh850 as a recognised v850 architecture name for backwards compatibility.
Nick Clifton [Tue, 22 Mar 2016 11:34:26 +0000 (11:34 +0000)]
Restore v850-rh850 as a recognised v850 architecture name for backwards compatibility.

bfd * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an
architecture name for backwards compatibility.

8 years agoFix possible unbounded stack use in peXXigen.c
Nick Clifton [Tue, 22 Mar 2016 10:37:42 +0000 (10:37 +0000)]
Fix possible unbounded stack use in peXXigen.c

* peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible
unbounded stack use.

8 years agoAdd -Wstack-usage to the gcc warning flags list, but only if using a sufficiently...
Nick Clifton [Tue, 22 Mar 2016 09:41:16 +0000 (09:41 +0000)]
Add -Wstack-usage to the gcc warning flags list, but only if using a sufficiently recent version of gcc.

bfd * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a
sufficiently recent version of GCC.
* configure: Regenerate.

others * configure: Regenerate.

8 years agoFix problem where gold fails to issue an undefined symbol error during LTO.
Cary Coutant [Tue, 22 Mar 2016 02:07:55 +0000 (19:07 -0700)]
Fix problem where gold fails to issue an undefined symbol error during LTO.

During LTO, if (1) an IR file contains a COMDAT group that is kept,
(2) a later non-claimed file contains the same group, which we discard,
and (3) the plugin fails to provide a definition of the symbols in that
COMDAT group, gold silently resolves any references to those symbols
to 0.

This patch adds a check for a placeholder symbol when deciding
whether to issue an undefined symbol error. It also adds an extra
note after any undefined placeholder symbol error that explains
that a definition was expected from the plugin.

gold/
PR gold/19842
* errors.cc (Errors::undefined_symbol): Add info message when
symbol should have been provided by a plugin.
* target-reloc.h (issue_undefined_symbol_error): Check for
placeholder symbols defined in discarded sections.
* testsuite/Makefile.am (plugin_test_9b): New test case.
* testsuite/Makefile.in: Regenerate.
* testsuite/plugin_test_9b_elf.cc: New test source file.
* testsuite/plugin_test_9b_ir.cc: New test source file.

8 years agoBinutils fails to build with -O0
Alan Modra [Tue, 22 Mar 2016 03:50:18 +0000 (14:20 +1030)]
Binutils fails to build with -O0

PR 19851
* plugin.c (try_load_plugin): Avoid -Wstack-usage warning.

8 years agoAutomatic date update in version.in
GDB Administrator [Tue, 22 Mar 2016 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoarc/nps400: Add first nps400 instructions
Andrew Burgess [Tue, 15 Mar 2016 22:01:34 +0000 (22:01 +0000)]
arc/nps400: Add first nps400 instructions

Adds the first few nps400 instructions.

gas/ChangeLog:

* testsuite/gas/arc/nps400-0.d: New file.
* testsuite/gas/arc/nps400-0.s: New file.
* testsuite/gas/arc/nps400-1.d: New file.
* testsuite/gas/arc/nps400-1.s: New file.

include/ChangeLog:

* opcodes/arc.h (insn_class_t): Add BITOP type.

opcodes/ChangeLog:

* arc-nps400-tbl.h: New file.
* arc-opc.c: Add top level comment.
(insert_nps_3bit_dst): New function.
(extract_nps_3bit_dst): New function.
(insert_nps_3bit_src2): New function.
(extract_nps_3bit_src2): New function.
(insert_nps_bitop_size): New function.
(extract_nps_bitop_size): New function.
(arc_flag_operands): Add nps400 entries.
(arc_flag_classes): Add nps400 entries.
(arc_operands): Add nps400 entries.
(arc_opcodes): Add nps400 include.

8 years agoarc/opcodes: Use flag operand class to handle multiple flag matches
Andrew Burgess [Mon, 14 Mar 2016 22:17:47 +0000 (22:17 +0000)]
arc/opcodes: Use flag operand class to handle multiple flag matches

When parsing the operand instruction flags we don't currently detect the
case where multiple flags are provided from the same class set, these
will be accepted and the bit values merged together, resulting in the
wrong instruction being assembled.  For example:

    adc.n.eq r0,r0,r2

Will assemble without error, yet, upon disassembly, the instruction will
actually be:

    adc.c r0,r0,r2

In a later commit the concept of required flags will be introduced.
Required flags are just like normal instruction flags, except that they
must be present for the instruction to match.  Adding this will allow
for simpler instructions in the instruction table, and allow for more
sharing of operand extraction and insertion functions.

To solve both of the above issues (multiple flags being invalid, and
required flags), this commit reworks the flag class mechanism.
Currently the flag class is never used.  Each instruction can reference
multiple flag classes, each flag class has a class type and a set of
flags.  However, at present, the class type is never used.  The current
values identify the type of instruction that the flag will be used in,
but this is not required information.

Instead, this commit discards the old flag classes, and introduces 3 new
classes.  The first F_CLASS_NONE, is just a NULL marker value, and is
only used in the NULL marker flag class.  The other two flag classes are
F_FLAG_OPTIONAL, and F_FLAG_REQUIRED.

The class F_FLAG_OPTIONAL has the property that at most one of the flags
in the flag set for that class must be present in the instruction.  The
"at most" one means that no flags being present is fine.

The class F_FLAG_REQUIRED is not currently used, but will be soon.  With
this class, exactly one of the flags from this class must be present in
the instruction.  If the flag class contains a single flag, then of
course that flag must be present.  However, if the flag class contained
two or more, then one, and only one of them must be present.

gas/ChangeLog:

* config/tc-arc.c (find_opcode_match): Move lnflg, and i
declarations to start of block.  Reset code on all flags before
attempting to match them.  Handle multiple hits on the same flag.
Handle flag class.
* testsuite/gas/arc/asm-errors.d: New file.
* testsuite/gas/arc/asm-errors.err: New file.
* testsuite/gas/arc/asm-errors.s: New file.

include/ChangeLog:

* opcode/arc.h (flag_class_t): Remove all old flag classes, add 3
new classes instead.

opcodes/ChangeLog:

* arc-opc.c (arc_flag_classes): Convert all flag classes to use
the new class enum values.

8 years agoarc: Add nps400 machine type, and assembler flag.
Andrew Burgess [Tue, 15 Mar 2016 21:51:50 +0000 (21:51 +0000)]
arc: Add nps400 machine type, and assembler flag.

This commit introduces the nps400 machine type as a variant of arc.
There's a new flag in the assembler to select this machine type.  All
other changes are just adding handling of the new machine type into the
relevant places.

The nps400 is an arc700 variant with some vendor specific instructions
added into the instruction set.  This commit does not add any of the new
instructions, this is just laying the groundwork for future commits.
However, in preparation for these new instructions a new opcode define for
nps400 has been added to include/opcode/arc.h, this new opcode define is
used in the assembler and disassembler along with the existing define
for arc700 such that when assembling and disassembling for nps400 the
user will have access to all arc700 instructions and all the nps400
vendor extension instructions.

bfd/ChangeLog:

* archures.c (bfd_mach_arc_nps400): Define.
* bfd-in2.h: Regenerate.
* cpu-arc.c (arch_info_struct): New entry for nps400, renumber
some existing entries to make space.
* elf32-arc.c (arc_elf_object_p): Add nps400 case.
(arc_elf_final_write_processing): Likewise.

binutils/ChangeLog:

* readelf.c (decode_ARC_machine_flags): Handle nps400.

gas/ChangeLog:

* config/tc-arc.c (cpu_types): Add nps400 entry.
(check_zol): Handle nps400.

include/ChangeLog:

* elf/arc.h (E_ARC_MACH_NPS400): Define.
* opcode/arc.h (ARC_OPCODE_NPS400): Define.

opcodes/ChangeLog:

* arc-dis.c (print_insn_arc): Handle nps400.

8 years agoarc: Remove EF_ARC_CPU_GENERIC constant.
Andrew Burgess [Tue, 15 Mar 2016 21:38:30 +0000 (21:38 +0000)]
arc: Remove EF_ARC_CPU_GENERIC constant.

The constant EF_ARC_CPU_GENERIC is defined in the include/elf/arc.h
file, and is used in a few places in binutils, however, this constant
should never make it into the elf header flags; we always set a valid
cpu type in the assembler, which should then be copied over during
linking.

There are some non-gnu arc compilers that don't write an architecture
type into the e_flags field, instead leaving the field as 0, which is
the EF_ARC_CPU_GENERIC value.  This non-gnu compiler uses the machine
type to distinguish between the old and newer arc architectures, setting
the machine type to EM_ARC_COMPACT for old arc600, arc601, and arc700
architectures, while using EM_ARC_COMPACT2 for newer arcem and archs
architectures.

Previously when displaying the machine flags for an older EM_ARC_COMPACT
machine, if the e_flags had not been filled in, then we relied on the
default case statement to display the message "Generic ARCompact", while
in the EM_ARC_COMPACT2 case we specifically handled EF_ARC_CPU_GENERIC
to print "ARC Generic", leaving the default case to print a message
about unrecognised cpu flag.

After this commit EF_ARC_CPU_GENERIC has been removed, for both machine
types EM_ARC_COMPACT and EM_ARC_COMPACT2 we now rely on the default case
statement to handle the situation where the e_flags has not been filled
in.  The message displayed is now "Unknown ARCompact" (for older arc
architectures) and "Unknown ARC" (for the newer architectures).  The
switch from "Generic" to "Unknown" in the message string is for clarity,
calling the file "Generic" can give the impression that the file is
compiled for a common sub-set of the architectures, and would therefore
run on any type of machine (or at least any type of new or old machine
depending on if the machine type is ARC or ARCv2).  However, this was
not what "Generic" meant, it really meant "Unknown", so that's what we
now say.

As part of the merging of the readelf flag reading code, I have unified
the strings used in displaying the ELF ABI.  This means that for older
arc machines (arc600, arc601, and arc700) the string used for the
original ABI, and ABIv2 have changed, the current ABIv3 remains the
same.  For the newer architectures (arcem and archs) the abi strings
remain unchanged in all cases.

bfd/ChangeLog:

* elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
EF_ARC_CPU_GENERIC.
(arc_elf_final_write_processing): Don't bother setting cpu field
in e_flags, this will have been set elsewhere.

binutils/ChangeLog:

* readelf.c (get_machine_flags): Move arc processing into...
(decode_ARC_machine_flags): ... new function.  Remove use of
EF_ARC_CPU_GENERIC, change default case from "generic arc" to
"unknown arc".  Merged ABI printing between two machine types.

gas/ChangeLog:

* config/tc-arc.c (arc_select_cpu): Remove use of
EF_ARC_CPU_GENERIC.

include/ChangeLog:

* elf/arc.h (EF_ARC_CPU_GENERIC): Delete.  Update related comment.

8 years agoarc: Remove duplicated constant in include/elf/arc.h
Andrew Burgess [Tue, 15 Mar 2016 19:09:23 +0000 (19:09 +0000)]
arc: Remove duplicated constant in include/elf/arc.h

In the include/elf/arc.h there are two constants that mask out the
machine architecture field.  One is used lots (EF_ARC_MACH_MSK), the
other is used only once (EF_ARC_MACH).  Remove EF_ARC_MACH.

bfd/ChangeLog:

* elf32-arc.c (arc_elf_final_write_processing): Switch to using
EF_ARC_MACH_MSK.

include/ChangeLog:

* elf/arc.h (EF_ARC_MACH): Delete.
(EF_ARC_MACH_MSK): Remove out of date comment.

8 years agoarc/gas: default mach is arc700, initialised in md_begin
Andrew Burgess [Tue, 1 Mar 2016 11:41:12 +0000 (11:41 +0000)]
arc/gas: default mach is arc700, initialised in md_begin

This commit restructures the selection of the default cpu/mach so that
the choice is made from md_begin (if the user has not provided a command
line choice).  This will reduce the amount of change needed in a later
patch.

At the request of Synopsys, the default architecture changes to ARC700
from this commit, previously the default was a non-existent
super-architecture that contained all instructions from all arc
variants.  There's some clean up associated with removing the default
merged architecture, and a small test fix now that the default is
ARC700.

binutils/ChangeLog:

* testsuite/binutils-all/objdump.exp (cpus_expected): Add ARC700
to the architecture list.

gas/ChangeLog:

* config/tc-arc.c (arc_target): Delay initialisation until
arc_select_cpu.
(arc_target_name): Likewise.
(arc_features): Likewise.
(arc_mach_type): Likewise.
(cpu_types): Remove "all" entry.
(arc_select_cpu): New function, most of the content is from...
(md_parse_option): ... here.  Call new arc_select_cpu.
(md_begin): Call arc_select_cpu if needed, default is now arc700.

include/ChangeLog:

* opcode/arc.h (ARC_OPCODE_BASE): Delete.

opcodes/ChangeLog:

* arc-opc.c (BASE): Delete.

8 years agogas/arc: Fix test for big-endian arc
Andrew Burgess [Tue, 15 Mar 2016 22:38:41 +0000 (22:38 +0000)]
gas/arc: Fix test for big-endian arc

The inline-data test checks the specific bytes laid down by the
assembler, and so relies on the endianness of the target.  I could
change the expected results to be endian agnostic, however, I worried
that a bug in the assembler that gets the endianness wrong would then
slip through.  Instead I add a new test for big-endian arc, and restrict
the existing test to little-endian arc.

gas/ChangeLog:

* testsuite/gas/arc/inline-data-1.d: Add target restriction.
* testsuite/gas/arc/inline-data-2.d: New file.

8 years agoRemove use of alloca.
Nick Clifton [Mon, 21 Mar 2016 16:31:46 +0000 (16:31 +0000)]
Remove use of alloca.

bfd * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
* configure: Regenerate.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
alloca with call to xmalloc.
* elf32-nds32.c: Likewise.
* elf64-hppa.c: Likewise.
* elfxx-mips.c: Likewise.
* pef.c: Likewise.
* pei-x86_64.c: Likewise.
* som.c: Likewise.
* xsym.c: Likewise.

binutils * dlltool.c: Replace use of alloca with call to xmalloc.
* dllwrap.c: Likewise.
* nlmconv.c: Likewise.
* objdump.c: Likewise.
* resrc.c: Likewise.
* winduni.c: Likewise.
* configure: Regenerate.

gas * atof-generic.c: Replace use of alloca with call to xmalloc.
* cgen.c: Likewise.
* dwarf2dbg.c: Likewise.
* macro.c: Likewise.
* remap.c: Likewise.
* stabs.c: Likewise.
* symbols.c: Likewise.
* config/obj-elf.c: Likewise.
* config/tc-aarch64.c: Likewise.
* config/tc-arc.c: Likewise.
* config/tc-arm.c: Likewise.
* config/tc-avr.c: Likewise.
* config/tc-ia64.c: Likewise.
* config/tc-mips.c: Likewise.
* config/tc-msp430.c: Likewise.
* config/tc-nds32.c: Likewise.
* config/tc-ppc.c: Likewise.
* config/tc-sh.c: Likewise.
* config/tc-tic30.c: Likewise.
* config/tc-tic54x.c: Likewise.
* config/tc-xstormy16.c: Likewise.
* config/te-vms.c: Likewise.
* configure: Regenerate.

ld * emultempl/msp430.em: Replace use of alloca with call to xmalloc.
* plugin.c: Likewise.
* pe-dll.c: Likewise.

8 years agoARM process record: median instructions
Yao Qi [Mon, 21 Mar 2016 10:41:38 +0000 (10:41 +0000)]
ARM process record: median instructions

This patch is to support some ARM median instructions in process
record.  With this patch applied, these fails are fixed:

 -FAIL: gdb.reverse/break-precsave.exp: run to end of main
 -FAIL: gdb.reverse/break-precsave.exp: go to end of main forward
 -FAIL: gdb.reverse/break-precsave.exp: end of record log
 -FAIL: gdb.reverse/break-reverse.exp: continue to breakpoint: end
 -FAIL: gdb.reverse/break-reverse.exp: end of record log
 -FAIL: gdb.reverse/until-precsave.exp: run to end of main
 -FAIL: gdb.reverse/until-precsave.exp: advance to marker2
 -FAIL: gdb.reverse/until-precsave.exp: until func, not called by current frame
 -FAIL: gdb.reverse/until-precsave.exp: reverse-advance to marker2
 -FAIL: gdb.reverse/until-precsave.exp: reverse-finish from marker2
 -FAIL: gdb.reverse/until-precsave.exp: reverse-advance to final return of factorial
 -FAIL: gdb.reverse/until-precsave.exp: reverse-until to entry of factorial
 -FAIL: gdb.reverse/until-reverse.exp: advance to marker2
 -FAIL: gdb.reverse/until-reverse.exp: until func, not called by current frame
 -FAIL: gdb.reverse/until-reverse.exp: reverse-advance to marker2
 -FAIL: gdb.reverse/until-reverse.exp: reverse-finish from marker2
 -FAIL: gdb.reverse/until-reverse.exp: reverse-advance to final return of factorial
 -FAIL: gdb.reverse/until-reverse.exp: reverse-until to entry of factorial

gdb:

2016-03-21  Yao Qi  <yao.qi@linaro.org>

* arm-tdep.c (arm_record_media): New.
(arm_record_ld_st_reg_offset): Call arm_record_media.

8 years agoCanonicalize more arm linux syscalls
Yao Qi [Mon, 21 Mar 2016 10:22:59 +0000 (10:22 +0000)]
Canonicalize more arm linux syscalls

This patch is to canonicalize more syscalls on arm linux in process
record.  In this patch, I also comment out some syscalls which isn't
handled by GDB now.  With this patch applied, two fails are fixed.

-FAIL: gdb.reverse/fstatat-reverse.exp: continue to breakpoint: marker2
-FAIL: gdb.reverse/recvmsg-reverse.exp: continue to breakpoint: marker2

gdb:

2016-03-21  Yao Qi  <yao.qi@linaro.org>

* arm-linux-tdep.c (arm_canonicalize_syscall): Canonicalize
more syscalls.

8 years agoFix problem where gold cannot build .eh_frame_hdr from ld -r output.
Cary Coutant [Mon, 21 Mar 2016 02:15:56 +0000 (19:15 -0700)]
Fix problem where gold cannot build .eh_frame_hdr from ld -r output.

When running ld -r on objects that have comdat groups, when gold
deduplicates a function in a comdat group, it removes the relocations
from the EH information that referred to the dropped copy of the function.
When running a final link using the result of the -r link, the missing
relocation cause it to fail to recognize the FDE for the dropped
function.

This patch improves gold's FDE scanning to take into account the
possibility that an FDE corresponds to a dropped function, and drops
that FDE as well.

Gnu ld, on the other hand, leaves the relocations in the ld -r output,
but makes them R_NONE with an r_sym field of 0. This was sufficient to
let both linkers recognize the FDE properly.

With this fix, if you do an ld -r with gold, then do the final link with
Gnu ld, the .eh_frame_hdr section will not be generated. To make it work
with Gnu ld, we would have to leave the R_NONE relocations in, but I
think it's better to drop the relocations entirely. I'd hope that if
you're doing a -r link with gold, you'll also do the final link with
gold.

gold/
PR gold/19002
* ehframe.cc (Eh_frame::read_fde): Check for dropped functions.
* testsuite/Makefile.am (eh_test_2): New test.
* testsuite/Makefile.in: Regenerate.
* testsuite/eh_test_2.sh: New test script.
* testsuite/eh_test_a.cc (bar): Make it comdat.
* testsuite/eh_test_b.cc (bar): Add a duplicate copy.

8 years agoAutomatic date update in version.in
GDB Administrator [Mon, 21 Mar 2016 00:00:18 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agotc-i386.c: store encoded instructions in unsigned char[]
Trevor Saunders [Sun, 14 Feb 2016 19:41:38 +0000 (14:41 -0500)]
tc-i386.c: store encoded instructions in unsigned char[]

char can be a signed type, and some of the values in these arrays are greater
than 0x80 which means they are outside of the range a signed char can store.
Fortunately it seems most compilers handle this in the obvious way by storing
the same bits as a negative number, but this is wierd and easily fixed.

gas/ChangeLog:

2016-03-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>

* tc-i386.c (f32_1): Change type to unsigned char[].
(f32_2): Likewise.
(f32_3): Likewise.
(f32_4): Likewise.
(f32_5): Likewise.
(f32_6): Likewise.
(f32_7): Likewise.
(f32_8): Likewise.
(f32_9): Likewise.
(f32_10): Likewise.
(f32_11): Likewise.
(f32_12): Likewise.
(f32_13): Likewise.
(f32_14): Likewise.
(f16_3): Likewise.
(f16_4): Likewise.
(f16_5): Likewise.
(f16_6): Likewise.
(f16_7): Likewise.
(f16_8): Likewise.
(jump_31): Likewise.
(f32_patt): Likewise.
(f16_patt): Likewise.
(alt_3): Likewise.
(alt_4): Likewise.
(alt_5): Likewise.
(alt_6): Likewise.
(alt_7): Likewise.
(alt_8): Likewise.
(alt_9): Likewise.
(alt_10): Likewise.
(alt_patt): Likewise.

8 years agoAutomatic date update in version.in
GDB Administrator [Sun, 20 Mar 2016 00:00:19 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoAutomatic date update in version.in
GDB Administrator [Sat, 19 Mar 2016 00:00:18 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoRemove is_n64_ data member from Mips_relobj class.
Vladimir Radosavljevic [Fri, 18 Mar 2016 21:54:35 +0000 (14:54 -0700)]
Remove is_n64_ data member from Mips_relobj class.

elfcpp/
* mips.h (abi_64): Remove.

gold/
* mips.cc (Mips_relobj::is_n64_): Remove.
(Target_mips::ei_class_): Likewise.
(Mips_relobj::is_newabi): Call methods.
(Mips_relobj::is_n64): Change checking for N64 ABI.
(Target_mips::is_output_n64): Likewise.
(Target_mips::merge_processor_specific_flags): Remove ei_class
argument, and remove comparing ei_class.
(Target_mips::do_adjust_elf_header): Remove setting EI_CLASS field
of the ELF header.
(Target_mips::do_finalize_sections): Don't pass ei_class argument
to merge_processor_specific_flags.
(Target_mips::elf_mips_abi_name): Remove ei_class argument, and
change checking for N64 ABI.

8 years agoUpdate description of AArch64 assembler directives.
Nick Clifton [Fri, 18 Mar 2016 17:30:12 +0000 (17:30 +0000)]
Update description of AArch64 assembler directives.

gas * doc/c-aarch64.texi (AArch64 Directives): Add descriptions of
.cpu, .dword, .even, .inst. .tlsdescadd, .tlsdesccall,
.tlsdescldr and .xword directives.

8 years agoFix thinko in new GET_VEC_ELEMENT macro.
Nick Clifton [Fri, 18 Mar 2016 17:08:27 +0000 (17:08 +0000)]
Fix thinko in new GET_VEC_ELEMENT macro.

* cpustate.c: (GET_VEC_ELEMENT): And fix thinko using macro arguments.

8 years agoFix the disassembly of the AArch64's OOR instruction as a MOV instruction.
Nick Clifton [Fri, 18 Mar 2016 17:02:20 +0000 (17:02 +0000)]
Fix the disassembly of the AArch64's OOR instruction as a MOV instruction.

PR target/19721
opcodes * aarch64-tbl.h (aarch64_opcode_table): Fix type of second operand
of MOV insn that aliases an ORR insn.

gas * testsuite/gas/aarch64/pr19721.s: New test source file.
* testsuite/gas/aarch64/pr19721.d: New test driver file.

8 years agoMake sparc_software_single_step static
Yao Qi [Fri, 18 Mar 2016 15:01:47 +0000 (15:01 +0000)]
Make sparc_software_single_step static

sparc_software_single_step is not used out of sparc-tdep.c, so this
patch makes it static.

gdb:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* sparc-tdep.c (sparc_software_single_step): Make it static.
* sparc-tdep.h (sparc_software_single_step): Remove declaration.

8 years agoFix code to check for illegal element numbers when accessing AArch64 vector registers...
Nick Clifton [Fri, 18 Mar 2016 14:44:27 +0000 (14:44 +0000)]
Fix code to check for illegal element numbers when accessing AArch64 vector registers in AArch64 sim.

* cpustate.c (GET_VEC_ELEMENT): Fix off by one error checking
for an invalid element index.
(SET_VEC_ELEMENT): Likewise.

8 years ago[spu] throw error when target_read_memory fails
Yao Qi [Fri, 18 Mar 2016 14:39:09 +0000 (14:39 +0000)]
[spu] throw error when target_read_memory fails

I happen to see that 1 is returned in spu_software_single_step when
target_read_memory returns 1.  It must be wrong.  That patch changes
it to throwing an error.  Note that I choose to throw error because I
find the code in the end of spu_software_single_step throws errors.

gdb:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* spu-tdep.c (spu_software_single_step): Throw error when
target_read_memory fails.

8 years agoCheck lwp_signal_can_be_delivered for enqueue/dequeue pending signals
Yao Qi [Fri, 18 Mar 2016 14:34:37 +0000 (14:34 +0000)]
Check lwp_signal_can_be_delivered for enqueue/dequeue pending signals

The enqueue and dequeue signals in linux_resume_one_lwp_throw use one
condition and its inverted one.  This patch is to move the condition
into a function lwp_signal_can_be_delivered, so that the next patch can
change the condition in one place.

gdb/gdbserver:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (lwp_signal_can_be_delivered): New function.
(linux_resume_one_lwp_throw): Use lwp_signal_can_be_delivered.

8 years agoSet signal to 0 after enqueue_pending_signal
Yao Qi [Fri, 18 Mar 2016 14:31:40 +0000 (14:31 +0000)]
Set signal to 0 after enqueue_pending_signal

Today, we enqueue signal in linux_resume_one_lwp_throw, but set
variable 'signal' many lines below with the comment

      /* Postpone any pending signal.  It was enqueued above.  */
      signal = 0;

I feel difficult to associate code across many lines, and we should
move the code close to enqueue_pending_signal call.  This is what
this patch does in general.  After this change, variable 'signal'
is set to zero very early, so the 'signal' value in the following
debugging message makes no sense, so I remove it from the debugging
message.  The function returns early if lwp->status_pending_p is
true, so 'signal' value in the debugging message doesn't matter,
AFAICS.  Also, I move one debugging message several lines below to
make it close the real ptrace call,

  if (debug_threads)
    debug_printf ("Resuming lwp %ld (%s, signal %d, stop %s)\n",
  lwpid_of (thread), step ? "step" : "continue", signal,
  lwp->stop_expected ? "expected" : "not expected");

so that the debugging message can reflect what GDBserver does.  This
is a code refactor and only debugging messages are affected.

gdb/gdbserver:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (linux_resume_one_lwp_throw): Set 'signal' to
0 if signal is enqueued.  Remove 'signal' from one debugging
message.  Move one debugging message to some lines below.
Remove code setting 'signal' to 0.

8 years agoRemove redundant WIFSTOPPED check
Yao Qi [Fri, 18 Mar 2016 14:28:14 +0000 (14:28 +0000)]
Remove redundant WIFSTOPPED check

WIFSTOPPED is checked linux_wstatus_maybe_breakpoint, so WIFSTOPPED
in "WIFSTOPPED (wstat) && linux_wstatus_maybe_breakpoint (wstat)"
is redundant.  This patch removes WIFSTOPPED check.

gdb/gdbserver:

2016-03-18  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (linux_low_filter_event): Remove redundant
WIFSTOPPED check together with linux_wstatus_maybe_breakpoint.

8 years agoRemove spurious empty line in changelog entry.
Nick Clifton [Fri, 18 Mar 2016 13:09:03 +0000 (13:09 +0000)]
Remove spurious empty line in changelog entry.

8 years agoFix generation of as.1 manual page so that it can be converted to DocBook format.
Nick Clifton [Fri, 18 Mar 2016 13:07:33 +0000 (13:07 +0000)]
Fix generation of as.1 manual page so that it can be converted to DocBook format.

gas * doc/as.texinfo: Place the target specific command line options
into their own man page section.

etc * texi2pod.pl: Add TARGET to the list of recognised man page
sections.

8 years agoEnsure that the .rdata_pseudo_runtime_reloc sections are not discarded by gabage...
Awson [Fri, 18 Mar 2016 11:45:43 +0000 (11:45 +0000)]
Ensure that the .rdata_pseudo_runtime_reloc sections are not discarded by gabage collection.

PR 19531
* scripttempl/pe.sc (.rdata_runtime_pseudo_reloc): Always KEEP
this section.
* scripttempl/pep.sc (.rdata_runtime_pseudo_reloc): Likewise.

8 years agoFix possible failure in the AVR linker tests.
Senthil Kumar Selvaraj [Fri, 18 Mar 2016 09:51:47 +0000 (09:51 +0000)]
Fix possible failure in the AVR linker tests.

* ld-avr/gc-section-debugline.d: Relax regex check for CU.

8 years agoAdd simulation of MUL and NEG instructions to AArch64 simulator.
Nick Clifton [Fri, 18 Mar 2016 09:32:32 +0000 (09:32 +0000)]
Add simulation of MUL and NEG instructions to AArch64 simulator.

* cpustate.c: Remove spurious spaces from TRACE strings.
Print hex equivalents of floats and doubles.
Check element number against array size when accessing vector
registers.
* memory.c: Trace memory reads when --trace-memory is enabled.
Remove float and double load and store functions.
* memory.h (aarch64_get_mem_float): Delete prototype.
(aarch64_get_mem_double): Likewise.
(aarch64_set_mem_float): Likewise.
(aarch64_set_mem_double): Likewise.
* simulator (IS_SET): Always return either 0 or 1.
(IS_CLEAR): Likewise.
(fldrs_pcrel): Load and store floats using 32-bit memory accesses
and doubles using 64-bit memory accesses.
(fldrd_pcrel, fldrs_wb, fldrs_abs, fldrs_scale_ext): Likewise.
(fldrd_wb, fldrd_abs, fsturs, fsturd, fldurs, fldurd): Likewise.
(fstrs_abs, fstrs_wb, fstrs_scale_ext, fstrd_abs): Likewise.
(fstrd_wb, fstrd_scale_ext, store_pair_float): Likewise.
(store_pair_double, load_pair_float, load_pair_double): Likewise.
(do_vec_MUL_by_element): New function.
(do_vec_op2): Call do_vec_MUL_by_element.
(do_scalar_NEG): New function.
(do_double_add): Call do_scalar_NEG.

8 years agoAutomatic date update in version.in
GDB Administrator [Fri, 18 Mar 2016 00:00:09 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoAdd mips and s390 build targets for gold.
Cary Coutant [Thu, 17 Mar 2016 22:37:10 +0000 (15:37 -0700)]
Add mips and s390 build targets for gold.

* configure.ac: Add mips and s390 to the gold target check.
* configure: Regenerate.

8 years agoAdd MIPS-64 support.
Vladimir Radosavljevic [Thu, 17 Mar 2016 22:07:49 +0000 (15:07 -0700)]
Add MIPS-64 support.

gold/
* mips.cc (enum Special_relocation_symbol): New enum type.
(is_readonly_section): New function.
(eh_reloc): Likewise.
(Mips_got_entry::is_section_symbol_): New member.
(Mips_got_entry::is_section_symbol): New method.
(Mips_got_info::record_local_got_symbol): Add is_section_symbol
argument.
(Mips_relobj::mips_elf_options_section_name): New method.
(Mips_output_data_got::record_local_got_symbol): Add
is_section_symbol argument, and pass it to
Mips_got_info::record_local_got_symbol.
(Mips_output_data_got::got_offset): Add addend argument, and pass
it to Relobj::local_got_offset.
(struct Mips_output_reloc_writer): New type.
(class Mips_output_data_reloc): New class.
(Mips_output_data_plt::Reloc_section): Change type to
Mips_output_data_reloc.
(Target_mips::Reloc_section): Likewise.
(Mips_reloc_types::get_r_addend): Remove unsigned from return type.
(Mips_classify_reloc::get_r_type2): New method.
(Mips_classify_reloc::get_r_type3): Likewise.
(Mips_classify_reloc::get_r_ssym): Likewise.
(Target_mips::Reloca_section): Remove.
(Relocate::should_apply_static_reloc): Rename from
should_apply_r_mips_32_reloc.
(Target_mips::copy_reloc): Replace Reltype parameter with r_type
and r_offset.
(Mips_relocate_functions::Valtype): New type.
(Mips_relocate_functions::Valtype64): New type.
(Mips_relocate_functions::check_overflow): New method.
(Mips_relocate_functions::mips_reloc_unshuffle): Move to public
interface.
(Mips_relocate_functions::mips_reloc_shuffle): Likewise.
(Mips_relocate_functions::rel16): Add support for resolving
relocations for Mips64.
(Mips_relocate_functions::rel32): Likewise.
(Mips_relocate_functions::reljalr): Likewise.
(Mips_relocate_functions::relpc32): Likewise.
(Mips_relocate_functions::rel26): Likewise.
(Mips_relocate_functions::relpc16): Likewise.
(Mips_relocate_functions::relmicromips_pc7_s1): Likewise.
(Mips_relocate_functions::relmicromips_pc10_s1): Likewise.
(Mips_relocate_functions::relmicromips_pc16_s1): Likewise.
(Mips_relocate_functions::do_relhi16): Likewise.
(Mips_relocate_functions::do_relgot16_local): Likewise.
(Mips_relocate_functions::rello16): Likewise.
(Mips_relocate_functions::relgot): Likewise.
(Mips_relocate_functions::relgotpage): Likewise.
(Mips_relocate_functions::relgotofst): Likewise.
(Mips_relocate_functions::relgot_hi16): Likewise.
(Mips_relocate_functions::relgot_lo16): Likewise.
(Mips_relocate_functions::relgprel): Likewise.
(Mips_relocate_functions::relgprel32): Likewise.
(Mips_relocate_functions::tlsrelhi16): Likewise.
(Mips_relocate_functions::tlsrello16): Likewise.
(Mips_relocate_functions::tlsrel32): Likewise.
(Mips_relocate_functions::relsub): Likewise.
(Mips_relocate_functions::releh): New method.
(Mips_relocate_functions::rel64): Likewise.
(Mips_got_info::record_local_got_symbol): Add is_section_symbol and
pass it to Mips_got_entry.
(Mips_got_info::add_local_entries): Pass addend argument
to code functions, and for STT_SECTION symbols call
add_symbolless_local_addend.
(Mips_got_info::add_tls_entries): Pass addend argument to code
functions.
(Mips_relobj::do_read_symbols): Read gp value that was used to
create object.
(Mips_output_data_plt::plt_entry): Remove opcode from l[wd]
instruction. Opcode for instruction will be selected later.
(Target_mips::gc_process_relocs): Add case for SHT_RELA.
(Target_mips::scan_relocatable_relocs): Likewise.
(Target_mips::emit_relocs_scan): Likewise.
(Target_mips::relocate_relocs): Likewise.
(Target_mips::do_finalize_sections): Skip objects for merging
processor specific flags in which all input sections will be
discarded.
(mips_get_size_for_reloc): Add case for R_MIPS_EH.
(Target_mips::Scan::get_reference_flags): Likewise.
(Target_mips::relocate_special_relocatable): Call rel26 method with
calculate_only and calculated_value arguments.
(Target_mips::Scan::local): Add case for R_MIPS_EH. Don't create a
dynamic relocation against a readonly sections, and pass
is_section_symbol to Mips_got_info::record_local_got_symbol.
(Target_mips::Scan::global): Add case for R_MIPS_EH. Don't create a
dynamic relocation against a readonly sections, and pass r_type
and r_offset to Target_mips::copy_reloc.
(Target_mips::Relocate::relocate): Add support for resolving
relocations for Mips64.
(Target_mips::mips_info): Add case for Mips64 default dynamic
linker name.
(Target_selector_mips): Correct emulation names.

8 years agoAdd missing Mips_output_data_la25_stub::do_print_to_mapfile.
Vladimir Radosavljevic [Thu, 17 Mar 2016 21:27:48 +0000 (14:27 -0700)]
Add missing Mips_output_data_la25_stub::do_print_to_mapfile.

gold/
* mips.cc (class Mips_output_data_la25_stub): Add
do_print_to_mapfile function.

8 years agoFix problem with --emit-relocs for Mips-32.
Vladimir Radosavljevic [Thu, 17 Mar 2016 20:28:34 +0000 (13:28 -0700)]
Fix problem with --emit-relocs for Mips-32.

gold/
* mips.cc (Mips_classify_reloc::put_r_info): Call 32bit version of
elf_r_info.

8 years agoSuggest running gdbserver for a PID in container
Jan Kratochvil [Thu, 17 Mar 2016 17:17:30 +0000 (18:17 +0100)]
Suggest running gdbserver for a PID in container

currently
gdb -p <pid from a container>
will print:
warning: Target and debugger are in different PID namespaces; thread lists and other data are likely unreliable

It correctly states the problem but it does not say how to solve it.

Originally I wanted to suggest also the Docker "-p 1234:1234" parameter but
I see the containers are more general topic than just Docker (even LxC etc.).

According to Gary future GDBs should be able to work even without gdbserver.
But currently gdbserver is still required.

gdb/ChangeLog
2016-03-17  Jan Kratochvil  <jan.kratochvil@redhat.com>

* linux-thread-db.c (check_pid_namespace_match): Extend the message.

8 years agoPR remote/19496, timeout in forking-threads-plus-bkpt
Pedro Alves [Thu, 17 Mar 2016 10:21:37 +0000 (10:21 +0000)]
PR remote/19496, timeout in forking-threads-plus-bkpt

This patch addresses a failure in
gdb.threads/forking-threads-plus-breakpoint.exp:

FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=1:
detach_on_fork=on: inferior 1 exited (timeout)

Cause:

A fork event was reported to GDB before GDB knew about the parent
thread, followed immediately by a breakpoint event in a different
thread.  The parent thread was subsequently added via
remote_notice_new_inferior in process_stop_reply, but when the thread
was added the thread_info.state was set to THREAD_STOPPED.  The fork
event was then handled correctly, but when the fork parent was resumed
via a call to keep_going, the state was unchanged.

The breakpoint event was then handled, which caused all the
non-breakpoint threads to be stopped.  When the breakpoint thread was
resumed, all the non-breakpoint threads were resumed via
infrun.c:restart_threads.  Our old fork parent wasn't restarted,
because it still had thread_info.state set to THREAD_STOPPED.
Ultimately the program under debug hung waiting for a pthread_join
while the old fork parent was stopped forever by GDB.

Fix:

Since this is non-stop, then the bug is that the thread should have
been added in THREAD_RUNNING state.  Consider that infrun may be
pulling target events out of the target_ops backend into its own event
queue, but, not process them immediately.  E.g., infrun may be
stopping all threads temporarily for a step-over-breakpoint operation
for thread A (stop_all_threads).  The waitstatus of all threads is
thus left pending in the thread structure (save_status), including the
fork event of thread B.  Right at this point, if the user does "info
threads", that should show thread B (the fork parent) running, not
stopped, even if internally, gdb is holding it paused for a little
bit.

Thus if in non-stop mode, always add new threads in the external
user-visible THREAD_RUNNING state.  Change remote_notice_new_inferior
to accept the internal executing state of the thread instead, with
EXECUTING set to 1 when we discover a thread that is running on the
target (such as through remote_update_thread_list), and 0 when the
thread is really paused (such as when we see a stop reply).

Tested on x86_64 Linux and Nios II Linux target with x86 Linux host.

gdb/ChangeLog:
2016-03-17  Pedro Alves  <palves@redhat.com>
    Don Breazeal  <donb@codesourcery.com>

PR remote/19496
* infcmd.c (notice_new_inferior): Use the 'leave_running' argument
instead of checking the 'non_stop' global.
* remote.c (remote_add_thread): New parameter 'executing'.  Use it
to set the new thread's executing state.
(remote_notice_new_inferior): Rename parameter 'running' to
'executing'.  Always set the thread state to THREAD_RUNNING in
non-stop mode, and to THREAD_STOPPED in all-stop mode.  Pass
EXECUTING to remote_add_thread and notice_new_inferior.
(remote_update_thread_list): Update to pass executing state, not
running state.

8 years agoS390: Add syscall info for syscalls up to 374
Andreas Arnez [Thu, 17 Mar 2016 09:55:55 +0000 (10:55 +0100)]
S390: Add syscall info for syscalls up to 374

Represent new Linux syscalls for s390 and s390x in GDB's syscall info.
Add the syscalls from 355 (userfaultfd) up to 374 (mlock2) as well as
the previously reserved NUMA syscalls 268-270, 287, and 310.

gdb/ChangeLog:

* syscalls/s390-linux.xml: Add NUMA syscalls and new syscalls up
to 374.
* syscalls/s390x-linux.xml: Likewise.

8 years agoS390: Fix output path for s390-multiarch test case
Andreas Arnez [Thu, 17 Mar 2016 09:55:55 +0000 (10:55 +0100)]
S390: Fix output path for s390-multiarch test case

Since test artifacts are organized in a directory hierarchy, the
s390-multiarch test case is not executed correctly any more.  This is
because it uses an obsolete way of constructing the output paths.

This fix invokes standard_testfile instead.

gdb/testsuite/ChangeLog:

* gdb.arch/s390-multiarch.exp: Use standard_testfile instead of
maintaining separate logic for constructing the output path.

8 years agolinux-record: Simplify with record_mem_at_reg()
Andreas Arnez [Thu, 17 Mar 2016 08:58:57 +0000 (09:58 +0100)]
linux-record: Simplify with record_mem_at_reg()

The function record_linux_system_call() often records a memory area
whose address is contained in a register.  So far this required two
function calls: one for fetching the register value, and another one for
recording the memory area.  These two function calls are now merged into
a new local helper function, and all occurrences are adjusted.  This
reduces the source code and makes it more readable.

gdb/ChangeLog:

* linux-record.c (record_mem_at_reg): New helper function.
(record_linux_system_call): Exploit new helper function where
applicable.

8 years agolinux-record.c: Fix whitespace issues
Andreas Arnez [Thu, 17 Mar 2016 08:58:57 +0000 (09:58 +0100)]
linux-record.c: Fix whitespace issues

This patch changes whitespace only, fixing whitespace issues in
linux-record.c.

gdb/ChangeLog:

* linux-record.c: Fix whitespace issues; tabify, remove trailing
spaces.

8 years agolinux-record: Fix bad fall-through for pipe/pipe2
Andreas Arnez [Thu, 17 Mar 2016 08:58:56 +0000 (09:58 +0100)]
linux-record: Fix bad fall-through for pipe/pipe2

This patch added handling for some syscalls to linux-record.c:

  https://sourceware.org/ml/gdb-patches/2015-10/msg00452.html

But for both `pipe' and `pipe2' the patch lacks a statement after an
`if', such that the following `break' is interpreted as the `if'-body
instead.

This adds the missing (return-) statements for the conditionals.

gdb/ChangeLog:

* linux-record.c (record_linux_system_call): Add missing return
statements to handling of pipe and pipe2 syscalls.

8 years agoAutomatic date update in version.in
GDB Administrator [Thu, 17 Mar 2016 00:00:22 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agotestsuite/ChangeLog is no longer supposed to exist
Alan Modra [Wed, 16 Mar 2016 23:27:50 +0000 (09:57 +1030)]
testsuite/ChangeLog is no longer supposed to exist

move entries to main ChangeLog

8 years agoPR remote/19496, interrupted syscall in forking-threads-plus-bkpt
Don Breazeal [Wed, 16 Mar 2016 22:13:44 +0000 (15:13 -0700)]
PR remote/19496, interrupted syscall in forking-threads-plus-bkpt

This patch addresses "fork:Interrupted system call" (or wait:) failures
in gdb.threads/forking-threads-plus-breakpoint.exp.

The test program spawns ten threads, each of which do ten fork/waitpid
sequences.  The cause of the problem was that when one of the fork
children exited before the corresponding fork parent could initiate its
waitpid for that child, a SIGCHLD and/or SIGSTOP was delivered and
interrupted a fork or waitpid in another thread.

The fix was to wrap the system calls in a loop to retry the call if
it was interrupted, like:

do
  {
    pid = fork ();
  }
while (pid == -1 && errno == EINTR);

Since this is a Linux-only test I figure it is OK to use errno and EINTR.
I tried a number of alternative fixes using SIG_IGN, SA_RESTART,
pthread_sigblock, and bsd_signal, but none of these worked as well.

Tested on Nios II Linux target with x86 Linux host.

gdb/testsuite/ChangeLog:
2016-03-16  Don Breazeal  <donb@codesourcery.com>

* gdb.threads/forking-threads-plus-breakpoint.c (thread_forks):
Retry fork and waitpid on interrupted system call errors.
* gdb.threads/forking-threads-plus-breakpoint.exp: (do_test):
Use with_timeout_factor to increase timeout to 90.

8 years agoxml-tdesc.c (tdesc_start_enum): Fix c++ build.
Doug Evans [Wed, 16 Mar 2016 17:30:41 +0000 (10:30 -0700)]
xml-tdesc.c (tdesc_start_enum): Fix c++ build.

gdb/ChangeLog:

* xml-tdesc.c (tdesc_start_enum): Fix c++ build.

8 years ago[ARM] Support ARMv8.2 FP16 simd instructions
Jiong Wang [Wed, 16 Mar 2016 16:11:59 +0000 (16:11 +0000)]
[ARM] Support ARMv8.2 FP16 simd instructions

gas/
* config/tc-arm.c (N_S_32): New.
(N_F_16_32): Likewise.
(N_SUF_32): Support N_F16.
(N_IF_32): Likewise.
(neon_dyadic_misc): Likewise.
(do_neon_cmp): Likewise.
(do_neon_cmp_inv): Likewise.
(do_neon_mul): Likewise.
(do_neon_fcmp_absolute): Likewise.
(do_neon_step): Likewise.
(do_neon_abs_neg): Likewise.
(CVT_FLAVOR_VAR): Likewise.
(do_neon_cvt_1): Likewise.
(do_neon_recip_est): Likewise.
(do_vmaxnm): Likewise.
(do_vrint_1): Likewise.
(neon_check_type): Check architecture support for FP16 extension.
(insns): Update comments.
* testsuite/gas/arm/armv8-2-fp16-simd.s: New test source.
* testsuite/gas/arm/armv8-2-fp16-simd.d: New testcase for arm mode.
* testsuite/gas/arm/armv8-2-fp16-simd-thumb.d: Likewise for thumb mode.
* testsuite/gas/arm/armv8-2-fp16-simd-warning.d: New rejection test for
arm mode.
* testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb.d: Likewise for
thumb mode.
* testsuite/gas/arm/armv8-2-fp16-simd-warning.l: New expected rejection
error file.

opcode/
* arm-dis.c (neon_opcodes): Support new FP16 instructions.

8 years agoProcess record: Fix arm-linux syscall arguments
Yao Qi [Wed, 16 Mar 2016 14:55:56 +0000 (14:55 +0000)]
Process record: Fix arm-linux syscall arguments

Arguments are passed in r0-r6 on arm linux syscall (both EABI and OABI).
This patch is to set arm_linux_record_tdep.arg{1-7} to the right
register number.

This patch fixes the following test failures...

-FAIL: gdb.reverse/getresuid-reverse.exp: check ruid record
-FAIL: gdb.reverse/getresuid-reverse.exp: check rgid record
-FAIL: gdb.reverse/pipe-reverse.exp: check pipe record
-FAIL: gdb.reverse/readv-reverse.exp: check readv record
-FAIL: gdb.reverse/readv-reverse.exp: check readv record
-FAIL: gdb.reverse/readv-reverse.exp: check readv record
-FAIL: gdb.reverse/readv-reverse.exp: check readv record
-FAIL: gdb.reverse/waitpid-reverse.exp: check waitpid record

gdb:

2016-03-16  Yao Qi  <yao.qi@linaro.org>

* arm-linux-tdep.c (arm_linux_init_abi): Fix
arm_linux_record_tdep.arg1, arm_linux_record_tdep.arg2 and
arm_linux_record_tdep.arg3.  Set arm_linux_record_tdep.arg4,
arm_linux_record_tdep.arg5, arm_linux_record_tdep.arg6, and
arm_linux_record_tdep.arg7.

8 years agoFix checking bignum values that are being inserted into byte sized containers.
Nick Clifton [Wed, 16 Mar 2016 11:33:55 +0000 (11:33 +0000)]
Fix checking bignum values that are being inserted into byte sized containers.

* read.c (emit_expr_with_reloc): Add code check a bignum with
nbytes == 1.
* config/rx/rx-parse.y (rx_intop): Accept bignum values for sizes
other than 32-bits.
* testsuite/gas/elf/bignum.s: New test source file.
* testsuite/gas/elf/bignum.d: New test driver file.
* testsuite/gas/elf/elf.exp: Run the new test.

8 years agoAutomatic date update in version.in
GDB Administrator [Wed, 16 Mar 2016 00:00:19 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoPR 18303, Tolerate malformed input for lookup_symbol-called functions
Don Breazeal [Tue, 15 Mar 2016 22:18:28 +0000 (15:18 -0700)]
PR 18303, Tolerate malformed input for lookup_symbol-called functions

lookup_symbol is often called with user input.  Consequently, any
function called from lookup_symbol{,_in_language} should attempt to
deal with malformed input gracefully.  After all, malformed user
input is not a programming/API error.

This patch does not attempt to find/correct all instances of this.  It
only fixes locations in the code that trigger test suite failures.

This patch fixes PR breakpoints/18303, "Assertion: -breakpoint-insert
with windows paths of file in non-current directory".

The patch includes three new tests related to this.  One is just
gdb.linespec/ls-errs.exp copied and converted to use C++ instead of C, and
to add a case using a file name containing a Windows-style logical drive
specifier.  The others include an MI test to provide a regression test for
the specific case reported in PR 18303, and a C++ test for proper error
handling of access to a program variable when using a file scope specifier
that refers to a non-existent file.

Tested on x86_64 native Linux.

gdb/ChangeLog
2016-01-28  Keith Seitz  <keiths@redhat.com>

PR breakpoints/18303
* cp-namespace.c (cp_lookup_bare_symbol): Change assertion to
look for "::" instead of simply ":".
(cp_search_static_and_baseclasses): Return null_block_symbol for
malformed input.
Remove assertions.
* cp-support.c (cp_find_first_component_aux): Do not return
a prefix length for ':' unless the next character is also ':'.

gdb/testsuite/ChangeLog
2016-01-28  Don Breazeal  <donb@codesourcery.com>

* gdb.cp/scope-err.cc: New test program.
* gdb.cp/scope-err.exp: New test script.
* gdb.linespec/ls-errs.c (myfunction): Expanded to have multiple
lines and "set breakpoint here" comment.
* gdb.linespec/ls-errs.exp: Added C++ testing and new test case.
Fixed some whitespace and format issues.
* gdb.mi/mi-linespec-err-cp.cc: New test program.
* gdb.mi/mi-linespec-err-cp.exp: New test script.

8 years agoAdd cole945@ to earlier entry. Fix typo in same entry.
Doug Evans [Tue, 15 Mar 2016 22:02:13 +0000 (15:02 -0700)]
Add cole945@ to earlier entry. Fix typo in same entry.

8 years agoAdd cpsr_flags to aarch64 core regs.
Doug Evans [Tue, 15 Mar 2016 21:43:49 +0000 (14:43 -0700)]
Add cpsr_flags to aarch64 core regs.

gdb/ChangeLog:

* features/aarch64-core.xml (cpsr_flags): New flags type.
(cpsr): Use it.
* features/aarch64.c: Regenerate.

8 years agoRemove "end" spec.
Doug Evans [Tue, 15 Mar 2016 21:41:52 +0000 (14:41 -0700)]
Remove "end" spec.

gdb/ChangeLog:

* features/i386/32bit-core.xml (i386_eflags): Remove "end" spec.
* features/i386/32bit-sse.xml (i386_eflags): Ditto.
* features/i386/64bit-core.xml (i386_eflags): Ditto.
* features/i386/64bit-sse.xml (i386_eflags): Ditto.
* features/i386/x32-core.xml (i386_eflags): Ditto.

8 years agoExtend flags to support multibit and enum bitfields.
Doug Evans [Tue, 15 Mar 2016 21:37:29 +0000 (14:37 -0700)]
Extend flags to support multibit and enum bitfields.

gdb/ChangeLog:

Extend flags to support multibit and enum bitfields.
NEWS: Document new features.
* c-typeprint.c (c_type_print_varspec_prefix): Handle TYPE_CODE_FLAGS.
(c_type_print_varspec_suffix, c_type_print_base): Ditto.
* gdbtypes.c (arch_flags_type): Don't assume all fields are one bit.
(append_flags_type_field): New function.
(append_flags_type_flag): Call it.
* gdbtypes.h (append_flags_type_field): Declare.
* target-descriptions.c (struct tdesc_type_flag): Delete.
(enum tdesc_type_kind) <TDESC_TYPE_BOOL>: New enum value.
(enum tdesc_type_kind) <TDESC_TYPE_ENUM>: Ditto.
(struct tdesc_type) <u.f>: Delete.
(tdesc_predefined_types): Add "bool".
(tdesc_predefined_type): New function.
(tdesc_gdb_type): Handle TDESC_TYPE_BOOL, TDESC_TYPE_ENUM.
Update TDESC_TYPE_FLAGS support.
(tdesc_free_type): Handle TDESC_TYPE_ENUM.  Update TDESC_TYPE_FLAGS.
(tdesc_create_flags): Update.
(tdesc_create_enum): New function.
(tdesc_add_field): Initialize start,end to -1.
(tdesc_add_typed_bitfield): New function.
(tdesc_add_bitfield): Call it.
(tdesc_add_flag): Allow TDESC_TYPE_STRUCT.  Update.
(tdesc_add_enum_value): New function.
(maint_print_c_tdesc_cmd): Fold TDESC_TYPE_FLAGS support into
TDESC_TYPE_STRUCT.  Handle TDESC_TYPE_ENUM.
* target-descriptions.h (tdesc_create_enum): Declare.
(tdesc_add_typed_bitfield, tdesc_add_enum_value): Declare.
* valprint.c (generic_val_print_enum_1): New function.
(generic_val_print_enum): Call it.
(val_print_type_code_flags): Make static.  Handle multibit bitfields
and enum bitfields.
* valprint.h (val_print_type_code_flags): Delete.
* xml-tdesc.c (struct tdesc_parsing_data) <current_type_is_flags>:
Delete.  All uses removed.
(tdesc_start_enum): New function.
(tdesc_start_field): Handle multibit and enum bitfields.
(tdesc_start_enum_value): New function.
(enum_value_attributes, enum_children, enum_attributes): New static
globals.
(feature_children): Add "enum".
* features/gdb-target.dtd (enum, evalue): New elements.

gdb/doc/ChangeLog:

* gdb.texinfo (Target Descriptions): New menu item "Enum Target Types".
(Target Description Format): Mention enum types.  Update docs on
flags types.
(Predefined Target Types): Add "bool".
(Enum Target Types): New node.

gdb/testsuite/ChangeLog:

* gdb.xml/extra-regs.xml: Add enum, mixed_flags values.
* gdb.xml/tdesc-regs.exp (load_description): New arg xml_file.
All callers updated.  Add tests for enums, mixed flags register.

8 years agoUse int instead of LONGEST in tdesc_type sizes.
Doug Evans [Tue, 15 Mar 2016 19:57:06 +0000 (12:57 -0700)]
Use int instead of LONGEST in tdesc_type sizes.

gdb/ChangeLog:

* target-descriptions.c (struct tdesc_type) <u.u.size>: Change type
from LONGEST to int.
(struct tdesc_type) <u.f.size>: Ditto.
(tdesc_set_struct_size): Change type of "size" arg from LONGEST
to int.  Add assertion size > 0.
(tdesc_create_flags): Ditto.
* target-descriptions.h (tdesc_set_struct_size): Update.
(tdesc_create_flags): Update.
* xml-tdesc.c (MAX_FIELD_SIZE, MAX_FIELD_BITSIZE): New macros.
(MAX_VECTOR_SIZE): New macro.
(tdesc_start_struct): Catch conversion errors from LONGEST to int.
(tdesc_start_flags, tdesc_start_field, tdesc_start_vector): Ditto.

8 years agomaint_print_c_tdesc_cmd: Use type for TYPE_CODE_FLAGS instead of field_type.
Doug Evans [Tue, 15 Mar 2016 19:53:55 +0000 (12:53 -0700)]
maint_print_c_tdesc_cmd: Use type for TYPE_CODE_FLAGS instead of field_type.

gdb/ChangeLog:

* target-descriptions.c (maint_print_c_tdesc_cmd): Use "type" for
TYPE_CODE_FLAGS instead of "field_type", for consistency.
* features/i386/amd64-avx-linux.c: Regenerate.
* features/i386/amd64-avx.c: Regenerate.
* features/i386/amd64-avx512-linux.c: Regenerate.
* features/i386/amd64-avx512.c: Regenerate.
* features/i386/amd64-linux.c: Regenerate.
* features/i386/amd64-mpx-linux.c: Regenerate.
* features/i386/amd64-mpx.c: Regenerate.
* features/i386/amd64.c: Regenerate.
* features/i386/i386-avx-linux.c: Regenerate.
* features/i386/i386-avx.c: Regenerate.
* features/i386/i386-avx512-linux.c: Regenerate.
* features/i386/i386-avx512.c: Regenerate.
* features/i386/i386-linux.c: Regenerate.
* features/i386/i386-mmx-linux.c: Regenerate.
* features/i386/i386-mmx.c: Regenerate.
* features/i386/i386-mpx-linux.c: Regenerate.
* features/i386/i386-mpx.c: Regenerate.
* features/i386/i386.c: Regenerate.
* features/i386/x32-avx-linux.c: Regenerate.
* features/i386/x32-avx.c: Regenerate.
* features/i386/x32-avx512-linux.c: Regenerate.
* features/i386/x32-avx512.c: Regenerate.
* features/i386/x32-linux.c: Regenerate.
* features/i386/x32.c: Regenerate.

8 years agoRemove hand-called function from test.
Doug Evans [Tue, 15 Mar 2016 19:44:34 +0000 (12:44 -0700)]
Remove hand-called function from test.

gdb/testsuite/ChangeLog:

* gdb.base/skip.c (main): Call test_skip_file_and_function.
* gdb.base/skip.exp: Remove hand calling test_skip_file_and_function.

8 years agoBind defined symbol locally in PIE
H.J. Lu [Tue, 15 Mar 2016 18:46:51 +0000 (11:46 -0700)]
Bind defined symbol locally in PIE

Symbols defined in PIE should be bound locally, the same as -shared
-Bsymbolic.

bfd/

PR ld/19827
* elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
locally in PIE.
(elf_i386_relocate_section): Likewise.
* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
(elf_x86_64_relocate_section): Likewise.

ld/

PR ld/19827
* testsuite/ld-i386/i386.exp: Run PR ld/19827 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
* testsuite/ld-i386/pr19827.rd: New file.
* testsuite/ld-i386/pr19827a.S: Likewise.
* testsuite/ld-i386/pr19827b.S: Likewise.
* testsuite/ld-x86-64/pr19827.rd: Likewise.
* testsuite/ld-x86-64/pr19827a.S: Likewise.
* testsuite/ld-x86-64/pr19827b.S: Likewise.

8 years agoAdd -z noreloc-overflow option to x86-64 ld
H.J. Lu [Tue, 15 Mar 2016 18:07:06 +0000 (11:07 -0700)]
Add -z noreloc-overflow option to x86-64 ld

Add -z noreloc-overflow command-line option to the x86-64 ELF linker to
disable relocation overflow check.  This can be used to avoid relocation
overflow check if there will be no dynamic relocation overflow at
run-time.

bfd/

PR ld/19807
* elf64-x86-64.c (elf_x86_64_relocate_section): Check
no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S
relocation overflow check.

include/

PR ld/19807
* bfdlink.h (bfd_link_info): Add no_reloc_overflow_check.

ld/

PR ld/19807
* Makefile.am (ELF_X86_DEPS): Add
$(srcdir)/emulparams/reloc_overflow.sh.
* Makefile.in: Regenerated.
* NEWS: Mention -z noreloc-overflow.
* ld.texinfo: Document -z noreloc-overflow.
* emulparams/elf32_x86_64.sh: Source
${srcdir}/emulparams/reloc_overflow.sh.
* emulparams/elf_x86_64.sh: Likewise.
* emulparams/reloc_overflow.sh: New file.
* testsuite/ld-x86-64/pr19807-1.s: New file.
* testsuite/ld-x86-64/pr19807-1a.d: Likewise.
* testsuite/ld-x86-64/pr19807-1b.d: Likewise.
* testsuite/ld-x86-64/pr19807-2.s: Likewise.
* testsuite/ld-x86-64/pr19807-2a.d: Likewise.
* testsuite/ld-x86-64/pr19807-2b.d: Likewise.
* testsuite/ld-x86-64/pr19807-2c.d: Likewise.
* testsuite/ld-x86-64/pr19807-2d.d: Likewise.
* testsuite/ld-x86-64/pr19807-2e.d: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run PR ld/19807 tests.

8 years agoFix PR gdb/19676: Internal error in linux-thread.db.c if /proc not mounted
Pedro Alves [Tue, 15 Mar 2016 16:33:04 +0000 (16:33 +0000)]
Fix PR gdb/19676: Internal error in linux-thread.db.c if /proc not mounted

If /proc is not mounted, GDB fails an assertion in find_new_threads_once:

 Continuing.
 .../src/gdb/linux-thread-db.c:1249: internal-error: find_new_threads_once: Assertion `!target_has_execution' failed.
 A problem internal to GDB has been detected,
 further debugging may prove unreliable.
 Quit this debugging session? (y or n)

That was supposed to catch misuses of td_ta_thr_iter, which is unsafe
for live debugging.  However, if /proc is not mounted, we still
fallback to using it.

I didn't bother with a warning, because GDB already prints several
others related to failing to open /proc files.

gdb/ChangeLog:
2016-03-15  Pedro Alves  <palves@redhat.com>

PR gdb/19676
* linux-thread-db.c (try_thread_db_load_1): Leave
info->td_ta_thr_iter_p NULL iff debugging a live process and we
have /proc access.
(find_new_threads_once): Assert that we have a non-NULL
info->td_ta_thr_iter_p instead of checking whether the target has
execution.

8 years agoFix PR gdb/19676: Disable displaced stepping if /proc not mounted
Pedro Alves [Tue, 15 Mar 2016 16:33:04 +0000 (16:33 +0000)]
Fix PR gdb/19676: Disable displaced stepping if /proc not mounted

On GNU/Linux archs that support displaced stepping, if /proc is not
mounted, GDB gets stuck not able to step past breakpoints:

 (gdb) c
 Continuing.
 dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2163
 2163      LIBC_PROBE (init_complete, 2, LM_ID_BASE, r);
 Cannot find AT_ENTRY auxiliary vector entry.
 (gdb) c
 Continuing.
 dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:2163
 2163      LIBC_PROBE (init_complete, 2, LM_ID_BASE, r);
 Cannot find AT_ENTRY auxiliary vector entry.
 (gdb)

That's because GDB can't figure out where the scratch pad is.

This is a regression introduced by the earlier changes to make the
Linux native target always work in non-stop mode.

This commit makes GDB detect the case and fallback to stepping over
breakpoints in-line.

gdb/ChangeLog:
2016-03-15  Pedro Alves  <palves@redhat.com>

PR gdb/19676
* infrun.c (displaced_step_prepare): Also disable displaced
stepping on NOT_SUPPORTED_ERROR.
* linux-tdep.c (linux_displaced_step_location): If reading auxv
fails, throw NOT_SUPPORTED_ERROR instead of generic error.

8 years agoFix typo in previous gdb/doc/ commit
Pedro Alves [Tue, 15 Mar 2016 11:29:03 +0000 (11:29 +0000)]
Fix typo in previous gdb/doc/ commit

Should be s/reliability/reliably/.

gdb/doc/ChangeLog:
2016-03-15  Pedro Alves  <palves@redhat.com>

* gdb.texinfo (Tracepoint Actions): Fix typo.

8 years agoDocument possible unreliability of '$_ret'
Pedro Alves [Tue, 15 Mar 2016 11:08:52 +0000 (11:08 +0000)]
Document possible unreliability of '$_ret'

gdb/doc/ChangeLog:
2016-03-15  Pedro Alves  <palves@redhat.com>
    Andreas Arnez  <arnez@linux.vnet.ibm.com>
    Marcin Kościelnicki  <koriakin@0x04.net>

* gdb.texinfo (Tracepoint Actions): Document possible
unreliability of '$_ret'.

8 years agoUpdate x86 register name documentation.
Ulrich Drepper [Tue, 15 Mar 2016 11:00:28 +0000 (11:00 +0000)]
Update x86 register name documentation.

* doc/c-i386.texi (Register Naming): Update to details of the
        latest architecture version.

8 years agoAutomatic date update in version.in
GDB Administrator [Tue, 15 Mar 2016 00:00:19 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoRegenerate bfd-in2.h
H.J. Lu [Mon, 14 Mar 2016 20:17:22 +0000 (13:17 -0700)]
Regenerate bfd-in2.h

* bfd-in2.h: Regenerated.

8 years agogdb.base/default.exp: Add missing $_as_string to "show convenience" test
Simon Marchi [Mon, 14 Mar 2016 16:42:54 +0000 (12:42 -0400)]
gdb.base/default.exp: Add missing $_as_string to "show convenience" test

When adding the $_as_string convenience function, I missed a new test
failure in default.exp.  The tests lists the convenience functions, so
$_as_string should be added to the expected list.

Fixes:

+FAIL: gdb.base/default.exp: show convenience ($_caller_is = <internal function _caller_is> not found)

gdb/testsuite/ChangeLog:

* gdb.base/default.exp: Add $_as_string to the list of expected
convenience functions.

8 years agoAutomatic date update in version.in
GDB Administrator [Mon, 14 Mar 2016 00:00:10 +0000 (00:00 +0000)]
Automatic date update in version.in

8 years agoAdd more tests for PR ld/19539
H.J. Lu [Sun, 13 Mar 2016 15:57:10 +0000 (08:57 -0700)]
Add more tests for PR ld/19539

PR ld/19539
* testsuite/ld-i386/i386.exp: Run pr19539.
* testsuite/ld-i386/pr19539.d: New file.
* testsuite/ld-i386/pr19539.s: Likewise.
* testsuite/ld-i386/pr19539.t: Likewise.
* testsuite/ld-x86-64/pr19539.s: Likewise.
* testsuite/ld-x86-64/pr19539.t: Likewise.
* testsuite/ld-x86-64/pr19539a.d: Likewise.
* testsuite/ld-x86-64/pr19539b.d: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run pr19539a and pr19539b.

8 years agogdb/s390: Fill gen_return_address hook.
Marcin Kościelnicki [Sat, 14 Nov 2015 22:08:07 +0000 (23:08 +0100)]
gdb/s390: Fill gen_return_address hook.

gdb/ChangeLog:

* s390-linux-tdep.c (s390_gen_return_address): New function.
(s390_gdbarch_init): Fill gen_return_address hook.

8 years agoAutomatic date update in version.in
GDB Administrator [Sun, 13 Mar 2016 00:00:14 +0000 (00:00 +0000)]
Automatic date update in version.in