Commit Graph

95014 Commits

Author SHA1 Message Date
Alan Modra
a67ae9b01a Re: PowerPC64 __tls_get_addr_opt stub .eh_frame fix
The modified test failed on some powerpc targets due to differences in
default hash style.  If the default hash style is both, then more
sections are created, bumping section ids.  Section id is used in stub
symbols and although the test is careful to not depend on id in
labels, the stub hash traversal order changes when stub names change.
That lead to the stubs being emitted in a different order and thus not
matching expected output.

	* testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with hash-style
	specified.
2018-08-01 19:06:37 +09:30
Alan Modra
1aa4214141 PowerPC64 __tls_get_addr_opt stub .eh_frame fix
This patch sets stub_offset in ppc_size_one_stub rather than in
ppc_build_one_stub.  That allows the plt stub alignment to be done in
just ppc_size_one_stub rather than both functions.  The patch also
corrects the place where the alignment was done, fixing a possible
error in .eh_frame data, and tidies some offset calculations.

bfd/
	* elf64-ppc.c (plt_stub_pad): Delay plt_stub_size call until needed.
	(ppc_build_one_stub): Don't set stub_offset, instead assert that
	it is sane.  Don't adjust stub_offset for alignment.  Adjust size
	calculation.  Use "targ" temp when calculating offsets.
	(ppc_size_one_stub): Set stub_offset here.  Use "targ" temp when
	calculating offsets.  Adjust for alignment before setting
	tls_get_addr_opt_bctrl.
ld/
	* testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with plt alignment.
	* testsuite/ld-powerpc/tlsopt5.s: Add extra call.
	* testsuite/ld-powerpc/tlsopt5.wf: Adjust expected output.
	* testsuite/ld-powerpc/tlsopt5.d: Likewise.
2018-08-01 12:14:22 +09:30
Alan Modra
cb86a42aba csky regen
bfd/
	* po/SRC-POTFILES.in: Regenerate.
gas/
	* po/POTFILES.in: Regenerate.
ld/
	* po/BLD-POTFILES.in: Regenerate.
opcodes/
	* po/POTFILES.in: Regenerate.
2018-08-01 10:32:56 +09:30
GDB Administrator
33633d9f5b Automatic date update in version.in 2018-08-01 00:00:43 +00:00
Nick Clifton
07cc045019 Correct previous update - new translation for the opcodes subdirectory.
opcodes	* po/sv.po: Updated Swedish translation.
2018-07-31 17:49:53 +01:00
Nick Clifton
11cfdeb386 Updated Swedish translation for the binutils sub-directory.
* po/sv.po: Updated Swedish translation.
2018-07-31 17:46:15 +01:00
Joel Brobecker
f61cfa0740 Document the GDB 8.1.1 release in gdb/ChangeLog
gdb/ChangeLog:

	GDB 8.1.1 released.
2018-07-31 07:59:44 -07:00
Jan Vrany
5abe0f0cc7 Fix segfault when invoking -var-info-path-expression on a dynamic varobj
Invoking -var-info-path-expression on a dynamic varobj lead either in wrong
(nonsense) result or to a segmentation fault in cplus_describe_child().
This was caused by the fact that varobj_get_path_expr() called
cplus_path_expr_of_child() ignoring the fact the parent of the variable
is dynamic. Then, cplus_describe_child() accessed the underlaying C type
members by index, causing (i) either wrong (nonsense) expression being
returned (since dynamic child may be completely arbibtrary value)
or (ii) segmentation fault (in case the index higher than number of
underlaying C type members.

This fixes the problem by checking whether a varobj is a child of a dynamic
varobj and, if so, reporting an error as described in documentation.

gdb/ChangeLog:

	* varobj.c (varobj_get_path_expr_parent): Report an error if
	parent is a dynamic varobj.

gdb/testsuite/Changelog:

	* gdb.python/py-mi-var-info-path-expression.c: New file.
	* gdb.python/py-mi-var-info-path-expression.py: New file.
	* gdb.python/py-mi-var-info-path-expression.exp: New file.
2018-07-31 10:13:41 -04:00
Simon Marchi
472fa5eec2 Re-generate gnulib import
I noticed that re-generating our gnulib import introduced some changes.
I supposed that this comes from the recent upgrade to autoconf 2.69
(though I haven't checked).

Tested by rebuilding on GNU/Linux x86-64 and mingw (cross-compiled from
GNU/Linux).

gdb/ChangeLog:

	* gnulib/aclocal.m4: Re-generate.
	* gnulib/config.in: Re-generate.
	* gnulib/configure: Re-generate.
	* gnulib/import/Makefile.in: Re-generate.
	* gnulib/import/m4/gnulib-comp.m4: Re-generate.
	* gnulib/import/m4/onceonly.m4: Re-generate.
2018-07-31 10:09:10 -04:00
Simon Marchi
1c28969efc Delete test target descriptions when exiting
Looking at the address sanitizer output, this was a quite low hanging
fruit.  We create target_desc objects for testing that we never free.
Saving them in unique_ptrs takes care of it.

I created a small struct to hold these because I thought it would help
readability.

gdb/ChangeLog:

	* target-descriptions.c (struct xml_test_tdesc): New.
	(xml_tdesc): Change type to std::vector<xml_test_tdesc>.
	(record_xml_tdesc): Update.
	(maintenance_check_xml_descriptions): Update.
	* target-descriptions.h (record_xml_tdesc): Update comment.
2018-07-31 10:06:00 -04:00
Jan Beulich
1424ad8677 x86: also optimize KXOR{D,Q} and KANDN{D,Q}
These can be converted to 2-byte VEX encoding when both source registers
are the same, by using KXORW / KANDNW as replacement.
2018-07-31 10:58:05 +02:00
Jan Beulich
ae2387feae x86: fold various AVX512 templates with so far differing Masking attributes
There's no insn allowing ZEROING_MASKING alone. Re-purpose its value for
handling the not uncommon case of insns allowing either form of masking
with register operands, but only merging masking with a memory operand.
2018-07-31 10:57:09 +02:00
Jan Beulich
fa77b93ab7 x86: add more exhaustive tests for invalid AVX512 zeroing-masking
Before changing how things get handled, install a full set of tests,
such that it can be demonstrated that the subsequent change doesn't
break things.
2018-07-31 10:56:09 +02:00
Jan Beulich
6ff00b5e12 x86/Intel: correct permitted operand sizes for AVX512 scatter/gather
AVX gather insns correctly allow the element size to be specified rather
than the full vector size. Make AVX512 ones match.
2018-07-31 10:55:17 +02:00
Jan Beulich
7a8655d2bb x86: don't abort() upon DATA16 prefix on (E)VEX encoded insn
Instead of hitting the abort() in output_insn() (commented by "There
should be no other prefixes for instructions with VEX prefix"), report
a proper diagnostic instead, just like we do e.g. for invalid REP
prefixes.
2018-07-31 10:54:05 +02:00
Jan Beulich
e951d5ca3d x86: drop CpuVREX
It is fully redundant with CpuAVX512F.
2018-07-31 10:52:37 +02:00
GDB Administrator
ef6ba1ed0d Automatic date update in version.in 2018-07-31 00:00:34 +00:00
Sergio Durigan Junior
fb66cde8a4 Match any kind of error after "cannot resolve name" on lib/gdbserver-support.exp:gdbserver_start
On commit:

commit 7f1f7e2393
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date:   Fri Jul 13 16:20:34 2018 -0400

    Expect for another variant of error message when gdbserver cannot resolve hostname

I extended the regular expression being used to identify whether
gdbserver could not resolve a (host)name.  This was needed because the
error message being printed had a different variation across some
systems.  However, as it turns out, I've just noticed that the message
has yet another variation:

  target remote tcp8:123:2353
  tcp8:123:2353: cannot resolve name: System error
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  tcp8:123:2353: No such file or directory.
  (gdb) FAIL: gdb.server/server-connect.exp: tcp8: connect to gdbserver using tcp8:123

which is causing FAILs on some systems (namely, Fedora-i686 on
BuildBot).

So instead of trying to predict everything that can be printed, I
decided to just match anything after the "cannot resolve name: " part.
This patch implements that.

Regression tested on the BuildBot.

gdb/testsuite/ChangeLog:
2018-07-30  Sergio Durigan Junior  <sergiodj@redhat.com>

	* lib/gdbserver-support.exp (gdbserver_start): Match any kind of
	error after "cannot resolve name" string.
2018-07-30 17:16:20 -04:00
Jim Wilson
eb41b24898 RISC-V: Set insn info fields correctly when disassembling.
include/
	* opcode/riscv.h (INSN_TYPE, INSN_BRANCH, INSN_CONDBRANCH, INSN_JSR)
	(INSN_DREF, INSN_DATA_SIZE, INSN_DATA_SIZE_SHIFT, INSN_1_BYTE)
	(INSN_2_BYTE, INSN_4_BYTE, INSN_8_BYTE, INSN_16_BYTE): New.

	opcodes/
	* riscv-dis.c (riscv_disassemble_insn): Set insn_type and data_size
	fields.
	* riscv-opc.c (riscv_opcodes): Use new INSN_* flags to annotate insns.
2018-07-30 13:55:41 -07:00
Andrew Burgess
c8f2dc0dc9 gdb: Fix sizeof for dynamic types other than arrays
In commit:

   commit 37cc0caeca
   Date:   Wed Jul 18 13:38:35 2018 +0200
   [gdb/exp] Interpret size of vla with unknown size as <optimized out>

All dynamic types are treated as arrays in the 'sizeof' code path,
which means that structures can incorrectly be treated as arrays.
This can cause a failure in the gdb.base/vla-datatypes.exp test
script.

This commit adds a check that we do have an array before checking the
array bounds, and I also check that the array index type is dynamic
too.  This second check probably isn't strictly necessary, but
shouldn't hurt, a non-dynamic index type shouldn't have undefined high
bound.

gdb/ChangeLog:

	* eval.c (evaluate_subexp_for_sizeof): Check for array type before
	checking array bounds are defined.
2018-07-30 19:51:53 +01:00
Jan Beulich
629cfaf1b0 x86: don't mistakenly scale non-8-bit displacements
In commit b5014f7af2 I've removed (instead of replaced) a conditional,
resulting in addressing forms not allowing 8-bit displacements to now
get their displacements scaled under certain circumstances. Re-add the
missing conditional.
2018-07-30 17:25:05 +02:00
Andrew Jenner
2409af1e94 * MAINTAINERS (C-SKY): Add Yunhai Shang as co-maintainer. 2018-07-30 08:22:21 -07:00
Andrew Jenner
d0ba5758c2 * MAINTAINERS (C-SKY): Add Lifang Xia as maintainer. 2018-07-30 07:53:38 -07:00
Tom Tromey
463c08d160 Fix crash with -D_GLIBCXX_DEBUG
I noticed a buildbot failure where gdb crashed in info-os.exp, when
compiled with -D_GLIBCXX_DEBUG:

    (gdb) info os procgroups
    /usr/include/c++/7/bits/stl_algo.h:4834:
    Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)).
    Objects involved in the operation:
	iterator::value_type "< operator type" {
	  type = pid_pgid_entry;
	}

The bug here is that pid_pgid_entry::operator< violates the C++
irreflexivity rule; that is, that an object cannot be less than
itself.

Tested locally by re-running info-os.exp.

gdb/ChangeLog
2018-07-30  Tom Tromey  <tom@tromey.com>

	* nat/linux-osdata.c (pid_pgid_entry::operator<): Fix
	irreflexivity violation.
2018-07-30 08:33:26 -06:00
Tom Tromey
dba7455e76 Remove old lint code
This removes dead code that, according to the comments, existed to
placate lint.  I don't think this has been relevant in a long time,
and certainly not since gdb switched to C++.

Tested by rebuilding.

ChangeLog
2018-07-30  Tom Tromey  <tom@tromey.com>

	* cli/cli-decode.c (lookup_cmd): Remove lint code.
	* value.c (unpack_long): Remove lint code.
	* valops.c (value_ind): Remove lint code.
	* valarith.c (value_x_binop, value_x_unop, value_equal)
	(value_pos): Remove lint code.
2018-07-30 08:29:47 -06:00
Nick Clifton
a05b9f5e1e Prevent a seg-fault in the linker when trying to process SH object files with bogus relocs.
PR 22706
	* elf32-sh.c (sh_elf_relocate_section): When processing
	translation relocs, fail if the relocation offset is too small.
	Replace BFD_ASSERTs with more helpful error messages.
2018-07-30 13:58:15 +01:00
Nick Clifton
4570c3d98c Fix thinko in the placement of the .gnu.build.attributes section.
* scripttempl/elf.sc: Move the .gnu.build.attributes section to
	after the .comment section.
2018-07-30 12:35:37 +01:00
Andrew Jenner
b8891f8d62 Add support for the C_SKY series of processors.
This patch series is a new binutils port for C-SKY processors, including support for both the V1 and V2 processor variants.  V1 is derived from the MCore architecture while V2 is substantially different, with mixed 16- and 32-bit instructions, a larger register set, a different (but overlapping) ABI, etc.  There is support for bare-metal ELF targets and Linux with both glibc and uClibc.

This code is being contributed jointly by C-SKY Microsystems and Mentor Graphics.  C-SKY is responsible for the technical content and has proposed Lifang Xia and Yunhai Shang as port maintainers.  (Note that C-SKY does have a corporate copyright assignment on file with the FSF.) Mentor Graphics' role has been cleaning up the code, adding documentation and additional test cases, etc, to address issues we anticipated reviewers would complain about.

bfd     * Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES): Add C-SKY.
        (BFD32_BACKENDS, BFD_BACKENDS_CFILES): Likewise.
        * Makefile.in: Regenerated.
        * archures.c (enum bfd_architecture): Add bfd_arch_csky and
        related bfd_mach defines.
        (bfd_csky_arch): Declare.
        (bfd_archures_list): Add C-SKY.
        * bfd-in.h (elf32_csky_build_stubs): Declare.
        (elf32_csky_size_stubs): Declare.
        (elf32_csky_next_input_section: Declare.
        (elf32_csky_setup_section_lists): Declare.
        * bfd-in2.h: Regenerated.
        * config.bfd: Add C-SKY.
        * configure.ac: Likewise.
        * configure: Regenerated.
        * cpu-csky.c: New file.
        * elf-bfd.h (enum elf_target_id): Add C-SKY.
        * elf32-csky.c: New file.
        * libbfd.h: Regenerated.
        * reloc.c: Add C-SKY relocations.
        * targets.c (csky_elf32_be_vec, csky_elf32_le_vec): Declare.
        (_bfd_target_vector): Add C-SKY target vector entries.

binutils* readelf.c: Include elf/csky.h.
        (guess_is_rela): Handle EM_CSKY.
        (dump_relocations): Likewise.
        (get_machine_name): Likewise.
        (is_32bit_abs_reloc): Likewise.

include  * dis-asm.h (csky_symbol_is_valid): Declare.
         * opcode/csky.h: New file.

opcodes  * Makefile.am (TARGET_LIBOPCODES_CFILES): Add csky-dis.c.
         * Makefile.in: Regenerated.
         * configure.ac: Add C-SKY.
         * configure: Regenerated.
         * csky-dis.c: New file.
         * csky-opc.h: New file.
         * disassemble.c (ARCH_csky): Define.
         (disassembler, disassemble_init_for_target): Add case for ARCH_csky.
         * disassemble.h (print_insn_csky, csky_get_disassembler): Declare.

gas      * Makefile.am (TARGET_CPU_CFILES): Add entry for C-SKY.
         (TARGET_CPU_HFILES, TARGET_ENV_HFILES): Likewise.
         * Makefile.in: Regenerated.
         * config/tc-csky.c: New file.
         * config/tc-csky.h: New file.
         * config/te-csky_abiv1.h: New file.
         * config/te-csky_abiv1_linux.h: New file.
         * config/te-csky_abiv2.h: New file.
         * config/te-csky_abiv2_linux.h: New file.
         * configure.tgt: Add C-SKY.
         * doc/Makefile.am (CPU_DOCS): Add entry for C-SKY.
         * doc/Makefile.in: Regenerated.
         * doc/all.texi: Set CSKY feature.
         * doc/as.texi (Overview): Add C-SKY options.
         (Machine Dependencies): Likewise.
         * doc/c-csky.texi: New file.
         * testsuite/gas/csky/*: New test cases.

ld      * Makefile.am (ALL_EMULATION_SOURCES): Add C-SKY emulations.
        (ecskyelf.c, ecskyelf_linux.c): New rules.
        * Makefile.in: Regenerated.
        * configure.tgt: Add C-SKY.
        * emulparams/cskyelf.sh: New file.
        * emulparams/cskyelf_linux.sh: New file.
        * emultempl/cskyelf.em: New file.
        * gen-doc.texi: Add C-SKY.
        * ld.texi: Likewise.
        (Options specific to C-SKY targets): New section.
        * testsuite/ld-csky/*: New tests.
2018-07-30 12:24:14 +01:00
Nick Clifton
7d8a316657 Combine ,gnu.build.attributes.* sections into one .gnu.build.attributes section during linking.
gold	* layout.cc (section_name_mapping): Add an entry for
	.gnu.build.attributes.

ld	* scripttempl/elf.sc: Place .gnu.build.attributes sections with
	other read-only sections.
2018-07-30 09:34:40 +01:00
GDB Administrator
906c6f2c54 Automatic date update in version.in 2018-07-30 00:00:27 +00:00
John David Anglin
29e6f4745e Fix unwind offset for start_symbol.
* config/tc-hppa.c: Include "struc-symbol.h".
	(pa_build_unwind_subspace): Use call_info->start_symbol->sy_frag
	instead of frag_now for local symbol replacement.
2018-07-29 12:51:23 -04:00
GDB Administrator
51b7979529 Automatic date update in version.in 2018-07-29 00:00:51 +00:00
Andrew Burgess
c708f4d256 gdb: Don't call gdb_load_shlib unless GDB is running
The gdb_load_shlib function will, on remote targets, try to run some
GDB commands.  This obviously isn't going to work unless GDB is
running.

The gdb.trace/tspeed.exp test calls gdb_load_shlib before starting
GDB.  Don't do that.

The failure that's triggered is actually DeJaGNU complaining that the
variable $use_gdb_stub doesn't exist, this is only created when GDB is
started.  Something like this should trigger a failure:

  make check-gdb \
    RUNTESTFLAGS="--target_board=remote-gdbserver-on-localhost \
                  gdb.trace/tspeed.exp"

This commit also adds a check to gdb_load_shlib that GDB is running.
The check is always performed, so this should catch cases where a GDB
developer adds a use of gdb_load_shlib but doesn't test their code
with a remote target.

gdb/testsuite/ChangeLog:

	* gdb.trace/tspeed.exp: Only call gdb_load_shlib after gdb has
	started.
	* lib/gdb.exp (gdb_load_shlib): Call perror if GDB is not running.
2018-07-28 20:21:50 +01:00
Tom de Vries
37cc0caeca [gdb/exp] Interpret size of vla with unknown size as <optimized out>
At -O3 -g -gstrict-dwarf, gcc generates for an optimized out vla 'a' a
DW_TAG_variable with type DW_TAG_array_type containing one
DW_TAG_subrange_type, but without DW_AT_upper_bound or DW_AT_count, which
makes the upper bound value 'unknown':
...
	.uleb128 0x15   # (DIE (0x161) DW_TAG_variable)
        .long   0xec    # DW_AT_abstract_origin
        .long   0x170   # DW_AT_type
	...
        .uleb128 0xa    # (DIE (0x170) DW_TAG_array_type)
        .long   0x110   # DW_AT_type
        .long   0x17f   # DW_AT_sibling
        .uleb128 0x17   # (DIE (0x179) DW_TAG_subrange_type)
        .long   0xc6    # DW_AT_type
        .byte   0       # end of children of DIE 0x170
...

But gdb prints '0' for the size of 'a':
...
/gdb ./vla-1.exe -batch -ex "b f1" -ex "run" -ex "p sizeof(a)"
Breakpoint 1 at 0x4004c0: f1. (2 locations)

Breakpoint 1, f1 (i=<optimized out>) at vla-1.c:18
18      }
$1 = 0
...
while <optimized out> would be more appropriate.

This patch fixes that in evaluate_subexp_for_sizeof.

Build and reg-tested on x86_64-linux.

2018-07-28  Tom de Vries  <tdevries@suse.de>

	* eval.c (evaluate_subexp_for_sizeof): Interpret size of dynamic type
	with undefined upper bound as <optimized out>.

	* gdb.base/vla-optimized-out-o3-strict.exp: New file.
2018-07-28 10:16:30 +02:00
GDB Administrator
5842d7025f Automatic date update in version.in 2018-07-28 00:00:33 +00:00
Jim Wilson
d19969ffbf RISC-V: Fix gas configure support for riscv*-*-*.
gas/
	* configure.tgt (riscv*): Accept as alias for riscv32*.
2018-07-27 14:35:29 -07:00
Sergio Durigan Junior
129eb0f1f1 Improve gcore manpage and clarify "-o" option
Ref.: https://bugs.debian.org/904628

It has been reported that gcore's manpage is a bit imprecise when it
comes to two things:

- It doesn't explicity say that the command accepts more than one PID
  on its CLI.

- It fails to mention that the argument passed through the "-o" option
  is actually a prefix that will be used to compose the corefile's
  filename, and not the actual filename.

I decided to give it a try and rewrite parts of the text to further
clarify these two points.  I ended up rewording the "Description"
section because, IMHO, it was a bit confuse to understand.

To make things consistent, I've also renamed the "$name" variable in
the gcore.in script, and expanded the usage text.

gdb/doc/ChangeLog:
2018-07-27  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.texinfo (gcore man): Rewrite "Description" and "-o"
	option sections to further clarify that gcore can take more
	than one PID, and that "-o" is used to specify a prefix, not a
	filename.

gdb/ChangeLog:
2018-07-27  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gcore.in: Rename variable "name" to "prefix".  Expand
	"usage" text.
2018-07-27 15:56:54 -04:00
H.J. Lu
1286ab7881 x86: Check for more than 2 memory references
For

movsd (%esi), %ss:(%edi), %ss:(%eax)

we got

[hjl@gnu-tools-1 tmp]$ as -o x.o x.s
x.s: Assembler messages:
x.s:1: Error: too many memory references for `movsd'
munmap_chunk(): invalid pointer
x.s:1: Internal error (Aborted).
Please report this bug.
[hjl@gnu-tools-1 tmp]$

struct _i386_insn has

const seg_entry *seg[2];

3 memory references will overflow the seg array.  We should issue an
error if there are more than 2 memory references.

	PR gas/23453
	* config/tc-i386.c (parse_operands): Check for more than 2
	memory references.
	* testsuite/gas/i386/inval.s: Add a movsd test with 3 memory
	references.
	* testsuite/gas/i386/x86-64-inval.s: Likewise.
	* testsuite/gas/i386/inval.l: Updated.
	* testsuite/gas/i386/x86-64-inval.l: Likewise.
2018-07-27 06:35:09 -07:00
John Darrington
469d3b57ce S12Z: Remove ELF_TARGET_ID macro
* elf32-s12z.c (ELF_TARGET_ID): Don't define.
2018-07-27 11:28:59 +09:30
John Darrington
370e4b5079 Add functions and macros to read and write 24 bit values.
* libbfd.c (bfd_getb24, bfd_getl24): New functions.
	(bfd_get_24, bfd_put_24): New macros.
	* bfd-in2.h: Regenerate.
2018-07-27 11:28:59 +09:30
John Darrington
cd4d353f81 S12Z: Remove inappropriate comment.
* elf32-s12z.c (s12z_elf_set_mach_from_flags): Remove comment.
2018-07-27 11:28:59 +09:30
John Darrington
fe57a8c9f5 S12Z: Emit uninitialized data in the .bss segment
* scripttempl/elfm9s12z.sc: Put input sections called .common
	into the .bss segment.
2018-07-27 11:28:59 +09:30
John Darrington
5b73b52bcc S12Z: Emit initialized data segment image.
* scripttempl/elfm9s12z.sc: Emit the data_section at the end of text.
2018-07-27 11:28:59 +09:30
Chenghua Xu
2bb9bbe2e8 MIPS/GAS: Correct the AFL_ASE_MASK macro
Fix an issue with commit 8095d2f70e ("MIPS/GAS: Split Loongson MMI
Instructions from loongson2f/3a"), AFL_ASE_MASK should be 0x0006ffff
instead of 0x0004ffff.

2018-07-27  Chenghua Xu  <paul.hua.gm@gmail.com>
            Maciej W. Rozycki  <macro@linux-mips.org>

include/
	* elf/mips.h (AFL_ASE_MASK): Correct typo.
2018-07-27 01:12:43 +01:00
Alan Modra
16065af1b0 Re: PowerPC Improve support for Gekko & Broadway
PowerPC has replaced use of "long" for insns with "int64_t", in
preparation for 64-bit power10 insns.

	* ppc-opc.c (insert_sprbat): Correct function parameter and
	return type.
	(extract_sprbat): Likewise, variable too.
2018-07-27 09:39:11 +09:30
GDB Administrator
c93cb6280f Automatic date update in version.in 2018-07-27 00:00:35 +00:00
Jon Turney
6af79d7b5a
Fix Cygwin compilation after target_ops C++ conversion.
After f6ac5f3d "Convert struct target_ops to C++", we need to explicitly use
the global namespace when calling ::close() from windows_nat_target methods,
as that object has a close() method.

gdb/ChangeLog:

2018-07-14  Jon Turney  <jon.turney@dronecode.org.uk>

	* windows-nat.c (windows_nat_target::create_inferior): Update to
	call close() in global namespace.
2018-07-26 22:26:27 +01:00
H.J. Lu
1f75763aa1 x86: Initialize broadcast_op.bytes to 0
* config/tc-i386.c (check_VecOperations): Initialize
	broadcast_op.bytes to 0.
2018-07-26 08:49:12 -07:00
Tom Tromey
7974897237 Make psymbols and psymtabs independent of the program space
This patch finally makes partial symbols and partial symtabs
independent of the program space.

Specifically:

It changes add_psymbol_to_list to accept a section index, and changes
the psymbol readers to pass this.  At the same time it removes the
code to add the objfile's section offset to the psymbol.

It adds an objfile argument to the psymtab textlow and texthigh
accessors and changes some code to use the raw variants instead.

It removes the "relocate" method from struct quick_symbol_functions,
as it is no longer needed any more.

It changes partial_symbol::address so that the relevant offset is now
applied at the point of use.

gdb/ChangeLog
2018-07-26  Tom Tromey  <tom@tromey.com>

	* dwarf-index-write.c (add_address_entry): Don't add objfile
	offsets.
	* dbxread.c (find_stab_function): Rename from
	find_stab_function_addr.  Return a bound_minimal_symbol.
	(read_dbx_symtab): Use raw_text_low, raw_text_high.
	Don't add objfile offsets.
	(end_psymtab): Use raw_text_low, raw_text_high,
	MSYMBOL_VALUE_RAW_ADDRESS.
	(read_ofile_symtab): Update.
	(process_one_symbol): Update.
	* dwarf2read.c (create_addrmap_from_index): Don't add objfile
	offsets.
	(dw2_relocate): Remove.
	(dw2_find_pc_sect_symtab): Bias PC by the text offset before
	searching addrmap.
	(dwarf2_gdb_index_functions, dwarf2_debug_names_functions):
	Update.
	(process_psymtab_comp_unit_reader, add_partial_symbol)
	(add_partial_subprogram, dwarf2_ranges_read): Update.
	(load_partial_dies): Update.
	(add_address_entry): Don't add objfile offsets.
	(dwarf2_build_include_psymtabs): Update.
	(create_addrmap_from_aranges): Don't add objfile offsets.
	(dw2_find_pc_sect_compunit_symtab): Update.
	* mdebugread.c (parse_symbol): Don't add objfile offsets.
	(parse_lines): Remove 'pst' parameter, replace with 'textlow'.
	Update.
	(parse_partial_symbols): Don't add objfile offsets.  Use
	raw_text_low, raw_text_high.  Update.
	(handle_psymbol_enumerators, psymtab_to_symtab_1): Update.
	* objfiles.c (objfile_relocate1): Don't relocate psymtabs_addrmap
	or call 'relocate' quick function.  Clear psymbol_map.
	* psympriv.h (struct partial_symbol) <address>: Add section
	offset.
	<set_unrelocated_address>: Rename from set_address.
	<raw_text_low, raw_text_high>: New methods.
	<text_low, text_high>: Add objfile parameter.
	(add_psymbol_to_bcache): Add 'section' parameter.  Call
	set_unrelocated_address.
	* psymtab.c (find_pc_sect_psymtab_closer, find_pc_sect_psymtab)
	(find_pc_psymbol): Update.
	(fixup_psymbol_section, relocate_psymtabs): Remove.
	(dump_psymtab, psym_functions): Update.
	(add_psymbol_to_bcache, add_psymbol_to_list): Add 'section'
	parameter.
	(maintenance_info_psymtabs, maintenance_check_psymtabs): Update.
	(start_psymtab_common): Update.
	* symfile-debug.c (debug_qf_relocate): Remove.
	(debug_sym_quick_functions): Update.
	* symfile.h (struct quick_symbol_functions) <relocate>: Remove.
	* xcoffread.c (scan_xcoff_symtab): Don't add objfile offsets.
	Update.
2018-07-26 09:18:31 -06:00
Tom Tromey
52948f01e4 Add validity bits for psymtab high and low fields
Right now some psymtab code checks whether a psymtab's textlow or
texthigh fields are valid by comparing against 0.

I imagine this is mildly wrong in the current environment, but once
psymtabs are relocated dynamically, it will no longer be correct,
because it will be much more normal to see a psymtab with a textlow of
zero -- this will just mean it appears at the start of the text
section.

This patch introduces validity bits to handle this situation more
nicely, and changes users of the code to follow.

gdb/ChangeLog
2018-07-26  Tom Tromey  <tromey@redhat.com>

	* dbxread.c (end_psymtab): Use text_high_valid and
	text_low_valid.
	* mdebugread.c (parse_partial_symbols): Use text_low_valid.
	(psymtab_to_symtab_1): Use text_high_valid and text_low_valid.
	* psympriv.h (struct partial_symtab) <m_text_low, m_text_high>:
	Update comment.
	<text_low_valid, text_high_valid>: New fields.
	<set_text_low, set_text_high>: Update.
	* xcoffread.c (scan_xcoff_symtab): Use text_low_valid.
2018-07-26 09:18:31 -06:00