Commit Graph

94648 Commits

Author SHA1 Message Date
Tom Tromey
191cca6383 Remove a VEC from serial.c
This replaces a VEC in serial.c with a std::vector.

Tested by the buildbot.

gdb/ChangeLog
2018-06-09  Tom Tromey  <tom@tromey.com>

	* serial.c (serial_ops_p): Remove typedef.  Don't declare VEC.
	(serial_ops_list): Now static, std::vector.
	(serial_interface_lookup, serial_add_interface): Update.
2018-06-09 16:07:57 -06:00
Tom Tromey
c5d0225d25 Remove a VEC from dwarf2read.c
This removes a VEC from dwarf2read.c, replacing it with a std::vector.

Tested by the buildbot.

gdb/ChangeLog
2018-06-09  Tom Tromey  <tom@tromey.com>

	* dwarf2read.c (process_cu_includes): Update.
	(process_full_comp_unit): Update.
	* dwarf2read.h (struct dwarf2_per_objfile) <just_read_cus>: Now a
	std::vector.
2018-06-09 16:05:48 -06:00
Maciej W. Rozycki
d68033ea86 MIPS/LD/testsuite: Add microMIPS lazy binding stub tests
Adapt the existing regular MIPS lazy binding stub tests for microMIPS
code verification.  Check both regular and `--insn32' variants.

Correct indentation issues in the conditional updated.

	ld/
	* testsuite/ld-mips-elf/stub-dynsym-micromips-1-7fff.d: New
	test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-1-8000.d: New
	test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-1-fff0.d: New
	test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-1-10000.d: New
	test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-1-2fe80.d: New
	test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-insn32-1-7fff.d:
	New test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-insn32-1-8000.d:
	New test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-insn32-1-fff0.d:
	New test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-insn32-1-10000.d:
	New test.
	* testsuite/ld-mips-elf/stub-dynsym-micromips-insn32-1-2fe80.d:
	New test.
	* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.  Fix
	indentation.
2018-06-09 01:09:23 +01:00
Maciej W. Rozycki
653e0a1e04 MIPS/LD/testsuite: Fix lazy binding stub test symbol count comment
Update the symbol count in the comment associated with lazy binding stub
tests to match `base_syms', complementing commit 889acb80ac
("MIPS/Linux/LD/testsuite: Linker script _gp scope updates"),
<https://sourceware.org/ml/binutils/2012-08/msg00066.html>, and commit
2f9efdfcdb ("mips/bfd/ld: Fix --as-needed on mips and update related
ld tests"), <https://sourceware.org/ml/binutils/2013-09/msg00131.html>.

	ld/
	* testsuite/ld-mips-elf/mips-elf.exp: Update symbol count in the
	comment associated with lazy binding stub tests.
2018-06-09 01:09:23 +01:00
Maciej W. Rozycki
2f8b83ee96 MIPS/LD: Add missing `mips-*-windiss' target emulation dependency
As from commit 2ebd05b80b ("MIPS/LD: Correct `mips-*-windiss' target
emulation configuration") we have:

EXTRA_EM_FILE=mipself

in `emulparams/elf32mipswindiss.sh', however no corresponding Makefile
`mipself.em' dependency for `eelf32mipswindiss.c'.  Add it.

	ld/
	* Makefile.am (eelf32mipswindiss.c): Add `mipself.em' dependency.
	* Makefile.in: Regenerate.
2018-06-09 01:09:22 +01:00
GDB Administrator
30d42fef63 Automatic date update in version.in 2018-06-09 00:00:45 +00:00
Stan Cox
6341380d5c Add missing client_state struct references to win target.
gdbserver/ChangeLog
	* win32-low.c (win32_create_inferior):  last_ptid and last_status
	moved to client_state.
2018-06-08 16:40:52 -04:00
Pedro Alves
03349c9345 Make gdbreplay use more common routines
This makes gdbreplay share a bit more code with gdbserver, and paves
the way to share more in future.  Including common-defs.h pulls in
defines and headers that gdb and gdbserver assume are always
defined/available too, such as for example _(), ansidecl.h or a set of
system headers.  Including that revealed (static vs extern conflict)
gdbreplay had a local copy of perror_with_name (which exited directly
instead of throwing an error).  So I removed gdbreplay's local copy,
and then added enough .o files until gdbreplay linked successfully.

Also, use xstrdup instead of strdup.

gdb/gdbserver/ChangeLog:
2018-06-08  Pedro Alves  <palves@redhat.com>

	* Makefile.in (GDBREPLAY_OBS): Add common/cleanups.o,
	common/common-exceptions.o, common/common-utils.o,
	common/errors.o, common/print-utils.o and utils.o.
	* gdbreplay.c: Include "common-defs.h" instead of the two
	'config.h's here.  Don't include stdio.h, errno.h, stdlib.h,
	string.h or alloca.h.
	(perror_with_name): Delete.
	(remote_open): Use xstrdup instead of strdup.
	(main): Rename to ...
	(captured_main): ... this.
	(main): New.
2018-06-08 20:48:28 +01:00
H.J. Lu
ecf99cc092 ld/x86: Remove hidden _edata, __bss_start, and _end
There is no need to put hidden _edata, __bss_start, and _end in dynamic
symbol table in shared libraries.

bfd/

	PR ld/23161
	* elfxx-x86.c (elf_x86_hide_linker_defined): New function.
	(_bfd_x86_elf_link_check_relocs): Use it to hide hidden
	__bss_start, _end and _edata in shared libraries.

ld/

	PR ld/23161
	* testsuite/ld-elf/pr23161d.rd: Remove local _edata, __bss_start,
	and _end from dynamic symbol table.
2018-06-08 12:41:54 -07:00
Paul Koning
aeab512851 Fix build issue with Python 3.7
Originally reported in
https://bugzilla.redhat.com/show_bug.cgi?id=1577396 -- gdb build fails
with Python 3.7 due to references to a Python internal function whose
declaration changed in 3.7.

gdb/ChangeLog
2018-06-08  Paul Koning  <paul_koning@dell.com>

	    PR gdb/23252

	    * python/python.c (do_start_initialization):
	    Avoid call to internal Python API.
	    (init__gdb_module): New function.
2018-06-08 13:32:03 -04:00
Gary Benson
5045b3d789 linux: Add maintenance commands to test libthread_db
This commit adds two new commands which may be used to test thread
debugging libraries used by GDB:

  * "maint check libthread-db" tests the thread debugging library GDB
     is using for the current inferior.

  * "maint set/show check-libthread-db" selects whether libthread_db
     tests should be run automatically as libthread_db is auto-loaded.
     The default is to not run tests automatically.

The test itself is a basic integrity check exercising all libthread_db
functions used by GDB on GNU/Linux systems.  By extension this also
exercises the proc_service functions provided by GDB that libthread_db
uses.

This functionality is useful for NPTL developers and libthread_db
developers.  It could also prove useful investigating bugs reported
against GDB where the thread debugging library or GDB's proc_service
layer is suspect.

gdb/ChangeLog:

	* linux-thread-db.c (valprint.h): New include.
	(struct check_thread_db_info): New structure.
	(check_thread_db_on_load, tdb_testinfo): New static globals.
	(check_thread_db, check_thread_db_callback): New functions.
	(try_thread_db_load_1): Run integrity checks if requested.
	(maintenance_check_libthread_db): New function.
	(_initialize_thread_db): Register "maint check libthread-db"
	and "maint set/show check-libthread-db".
	* NEWS: Mention the above new commands.

gdb/doc/ChangeLog:

	* gdb.texinfo (Maintenance Commands): Document "maint check
	libthread-db" and "maint set/show check-libthread-db".

gdb/testsuite/ChangeLog:

	* gdb.threads/check-libthread-db.exp: New file.
	* gdb.threads/check-libthread-db.c: Likewise.
2018-06-08 18:06:46 +01:00
Tom Tromey
2f4f025ff1 Fix gdb mingw build
I noticed that the mingw build was failing in the buildbot.  This
patch fixes the problem.  I'm checking it in as obvious.

gdb/ChangeLog
2018-06-08  Tom Tromey  <tom@tromey.com>

	* windows-nat.c (windows_nat_target::xfer_partial): "beneath" is
	now a method.
2018-06-08 10:07:37 -06:00
kyrtka01
7ebd13590c [arm][gas] Add support for Arm Cortex-A76
This patch adds support to gas for -mcpu=cortex-a76 in the usual way.
make check-gas passes without problems.

2018-06-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    * config/tc-arm.c (arm_cpus): Add Cortex-A76 entry.
    * doc/c-arm.texi (-mcpu): Document cortex-a76.
2018-06-08 15:40:39 +01:00
kyrtka01
c2a0f9293a [AArch64][gas] Add support for Arm Cortex-A76
This patch adds support to gas for -mcpu=cortex-a76 in the usual way.
make check-gas passes without problems.

2018-06-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

    * config/tc-aarch64.c (aarch64_cpus): Add Cortex-A76 entry.
    * doc/c-aarch64.texi (-mcpu): Document cortex-a76.
2018-06-08 15:39:47 +01:00
Tom Tromey
343b0027ae Remove last cleanup from btrace code
This removes the last cleanup from btrace.c, replacing it with a use
of unique_xmalloc_ptr.

gdb/ChangeLog
2018-06-08  Tom Tromey  <tom@tromey.com>

	* btrace.c (parse_xml_raw): Use gdb::unique_xmalloc_ptr.
2018-06-08 07:05:49 -06:00
Tom Tromey
8dcc53b37f Remove cleanups from btrace code
This removes some cleanups from the btrace code by minorly C++-ifying
struct btrace_data.

gdb/ChangeLog
2018-06-08  Tom Tromey  <tom@tromey.com>

	* common/btrace-common.h (struct btrace_data): Add constructor,
	destructor, move assignment operator.
	<empty, clear, fini>: New methods.
	<format>: Initialize.
	(btrace_data_init, btrace_data_fini, btrace_data_clear)
	(btrace_data_empty): Don't declare.
	* common/btrace-common.c (btrace_data_init): Remove.
	(btrace_data::fini): Rename from btrace_data_fini.
	(btrace_data::empty): Rename from btrace_data_empty.
	(btrace_data::clear): Rename from btrace_data_clear.  Return
	bool.
	* btrace.h (make_cleanup_btrace_data): Don't declare.
	* btrace.c (btrace_add_pc, btrace_stitch_trace, btrace_clear)
	(parse_xml_btrace): Update.
	(do_btrace_data_cleanup, make_cleanup_btrace_data): Remove.
	(maint_btrace_clear_packet_history_cmd): Update.

gdb/gdbserver/ChangeLog
2018-06-08  Tom Tromey  <tom@tromey.com>

	* linux-low.c (linux_low_read_btrace): Update.
2018-06-08 07:05:49 -06:00
Egeyar Bagcioglu
cb36699271 Prevent undefined FMOV instructions being accepted by the AArch64 assembler.
Detect illegal FMOV instructions that changes the size from 32 bits to 64
    bits and vice versa. Add tests for these and other undefined FMOV
    instructions.

        PR 20319
gas     * testsuite/gas/aarch64/illegal-3.s: Test if unallocated FMOV encodings
        are detected as undefined.
        * testsuite/gas/aarch64/illegal-3.d: Likewise.
        * testsuite/gas/aarch64/illegal.s: Test if FMOV instructions that are
        changing the size from 32 bits to 64 bits and vice versa trigger an
        error.
        * testsuite/gas/aarch64/illegal.l: Likewise.

opcodes * aarch64-tbl.h: Introduce QL_INT2FP_FMOV and QL_FP2INT_FMOV.
        (aarch64_opcode_table) : Use QL_INT2FP_FMOV and QL_FP2INT_FMOV.
2018-06-08 14:04:11 +01:00
Alan Modra
fd161d860f Define various symbols conditionally in shared libraries
The values of symbols in shared libraries like _end, _edata, and
__bss_start are generally not that useful outside of the shared
library.  This patch defines them conditionally with PROVIDE, since a
shared library might need the local value.  An example is glibc ld.so
local access to "_begin", "_etext" and "_end".  (ld.so gains access to
the local values by making the references using hidden visibility.
That makes the definitions hidden too.)

We can't use PROVIDE_HIDDEN in the linker scripts because the shared
library might need the value of the symbol in the executable.  An
example is freebsd libc dynamic access to "_end".

	PR ld/23161
	* emulparams/aarch64cloudabi.sh: PROVIDE __bss_start__, _bss_end__,
	and __end__ in shared libraries.
	* emulparams/aarch64fbsd.sh: Likewise.
	* emulparams/aarch64linux.sh: Likewise.
	* emulparams/aarch64linux32.sh: Likewise.
	* emulparams/armelf_fuchsia.sh: Likewise.
	* emulparams/armelf_linux.sh: Likewise.
	* emulparams/armelf_phoenix.sh: Likewise.
	* emulparams/aarch64elf.sh: Likewise, and __data_start
	* emulparams/aarch64elf32.sh: Likewise.
	* emulparams/armelf.sh: Likewise.
	* emulparams/armnto.sh: Likewise.
	* emulparams/elf32bmip.sh: Remove duplicate ". = ." from
	OTHER_GOT_SYMBOLS.  PROVIDE _ftext, _fdata, and _fbss in shared libs.
	* emulparams/elf32bmipn32-defs.sh: Likewise.
	* emulparams/elf32frv.sh: PROVIDE __end and __data_start in shared libs.
	* emulparams/elf32lriscv-defs.sh: Tidy.
	* emulparams/elf32mcore.sh: PROVIDE __bss_start and _bss_end in
	shared libs
	* emulparams/elf32ppccommon.sh: PROVIDE __end in shared libs.
	* emulparams/elf32rl78.sh: Tidy.
	* emulparams/i386nto.sh: PROVIDE _btext in shared libs.
	* emulparams/shelf_nto.sh: Likewise.
	* emulparams/shlelf_nto.sh: Likewise.
	* emulparams/score3_elf.sh: PROVIDE _gp, _bss_start__, _bss_end__,
	__bss_end__, __end__, _fdata, _sdata_begin, and _bss_start in
	shared libs.
	* scripttempl/elf.sc: Don't use EXECUTABLE_SYMBOLS for shared
	libraries.  PROVIDE _edata, edata, __bss_start, and _end in shared
	libraries.
	* testsuite/ld-elf/pr23161.map,
	* testsuite/ld-elf/pr23161a.c,
	* testsuite/ld-elf/pr23161b.c,
	* testsuite/ld-elf/pr23161c.c,
	* testsuite/ld-elf/pr23161a.rd,
	* testsuite/ld-elf/pr23161b.rd,
	* testsuite/ld-elf/pr23161c.rd,
	* testsuite/ld-elf/pr23161d.rd: New tests.
	* testsuite/ld-elf/shared.exp: Run ld/23161 tests.
	* testsuite/ld-elf/pr23162.rd,
	* testsuite/ld-aarch64/ifunc-1-local.d,
	* testsuite/ld-aarch64/ifunc-1.d,
	* testsuite/ld-aarch64/ifunc-2-local.d,
	* testsuite/ld-aarch64/ifunc-2.d,
	* testsuite/ld-aarch64/ifunc-21.d,
	* testsuite/ld-aarch64/ifunc-3a.d,
	* testsuite/ld-alpha/tlsbin.rd,
	* testsuite/ld-alpha/tlsbin.sd,
	* testsuite/ld-alpha/tlsbinr.rd,
	* testsuite/ld-alpha/tlspic.rd,
	* testsuite/ld-alpha/tlspic.sd,
	* testsuite/ld-cris/dso-pltdis1.d,
	* testsuite/ld-cris/dso-pltdis2.d,
	* testsuite/ld-cris/dso12-pltdis.d,
	* testsuite/ld-cris/gotplt1.d,
	* testsuite/ld-cris/gotplt2.d,
	* testsuite/ld-cris/gotplt3.d,
	* testsuite/ld-cris/hiddef1.d,
	* testsuite/ld-cris/libdso-1.d,
	* testsuite/ld-cris/libdso-10.d,
	* testsuite/ld-cris/libdso-11.d,
	* testsuite/ld-cris/libdso-12.d,
	* testsuite/ld-cris/libdso-12b.d,
	* testsuite/ld-cris/libdso-12c.d,
	* testsuite/ld-cris/libdso-13.d,
	* testsuite/ld-cris/libdso-13b.d,
	* testsuite/ld-cris/libdso-14.d,
	* testsuite/ld-cris/libdso-15.d,
	* testsuite/ld-cris/libdso-15b.d,
	* testsuite/ld-cris/libdso-1c.d,
	* testsuite/ld-cris/libdso-1d.d,
	* testsuite/ld-cris/libdso-2.d,
	* testsuite/ld-cris/pic-gc-72.d,
	* testsuite/ld-cris/pic-gc-73.d,
	* testsuite/ld-cris/pr16044.d,
	* testsuite/ld-cris/pv32-1.d,
	* testsuite/ld-cris/tls-dso-dtpoffd2.d,
	* testsuite/ld-cris/tls-dso-dtpoffd4.d,
	* testsuite/ld-cris/tls-dso-tpoffgotcomm1.d,
	* testsuite/ld-cris/tls-gc-71.d,
	* testsuite/ld-cris/tls-gd-1.d,
	* testsuite/ld-cris/tls-gd-1h.d,
	* testsuite/ld-cris/tls-gd-2.d,
	* testsuite/ld-cris/tls-gd-2h.d,
	* testsuite/ld-cris/tls-ie-10.d,
	* testsuite/ld-cris/tls-ie-11.d,
	* testsuite/ld-cris/tls-ie-78.d,
	* testsuite/ld-cris/tls-ie-8.d,
	* testsuite/ld-cris/tls-ie-9.d,
	* testsuite/ld-cris/tls-js1.d,
	* testsuite/ld-cris/tls-ld-4.d,
	* testsuite/ld-cris/tls-ld-5.d,
	* testsuite/ld-cris/tls-ld-6.d,
	* testsuite/ld-cris/tls-ld-7.d,
	* testsuite/ld-cris/tls-ldgd-14.d,
	* testsuite/ld-cris/tls-ldgd-15.d,
	* testsuite/ld-cris/tls-ldgdex-14.d,
	* testsuite/ld-cris/tls-ldgdex-15.d,
	* testsuite/ld-cris/tls-ldgdx-14.d,
	* testsuite/ld-cris/tls-ldgdx-15.d,
	* testsuite/ld-cris/tls-legdx-16.d,
	* testsuite/ld-cris/tls-legdx-17.d,
	* testsuite/ld-cris/tls-local-54.d,
	* testsuite/ld-cris/tls-local-60.d,
	* testsuite/ld-cris/tls-local-61.d,
	* testsuite/ld-cris/tls-local-63.d,
	* testsuite/ld-cris/tls-local-64.d,
	* testsuite/ld-cris/tls-ok-30.d,
	* testsuite/ld-cris/tls-ok-32.d,
	* testsuite/ld-cris/tls-ok-34.d,
	* testsuite/ld-cris/tls-und-38.d,
	* testsuite/ld-cris/tls-und-42.d,
	* testsuite/ld-cris/tls-und-46.d,
	* testsuite/ld-cris/tls-und-50.d,
	* testsuite/ld-cris/weakhiddso.d,
	* testsuite/ld-cris/weakref2.d,
	* testsuite/ld-frv/fdpic-shared-1.d,
	* testsuite/ld-frv/fdpic-shared-2.d,
	* testsuite/ld-frv/fdpic-shared-3.d,
	* testsuite/ld-frv/fdpic-shared-4.d,
	* testsuite/ld-frv/fdpic-shared-5.d,
	* testsuite/ld-frv/fdpic-shared-7.d,
	* testsuite/ld-frv/fdpic-shared-8.d,
	* testsuite/ld-frv/tls-dynamic-2.d,
	* testsuite/ld-i386/ibt-plt-1.d,
	* testsuite/ld-i386/ibt-plt-2a.d,
	* testsuite/ld-i386/ibt-plt-2b.d,
	* testsuite/ld-i386/ibt-plt-2c.d,
	* testsuite/ld-i386/ibt-plt-2d.d,
	* testsuite/ld-i386/ibt-plt-3a.d,
	* testsuite/ld-i386/ibt-plt-3b.d,
	* testsuite/ld-i386/ibt-plt-3c.d,
	* testsuite/ld-i386/ibt-plt-3d.d,
	* testsuite/ld-i386/plt2.dd,
	* testsuite/ld-i386/pr20830.d,
	* testsuite/ld-i386/tlsbin-nacl.rd,
	* testsuite/ld-i386/tlsbin.rd,
	* testsuite/ld-i386/tlsbin2-nacl.rd,
	* testsuite/ld-i386/tlsbin2.rd,
	* testsuite/ld-i386/tlsbindesc-nacl.rd,
	* testsuite/ld-i386/tlsbindesc.rd,
	* testsuite/ld-i386/tlsdesc-nacl.rd,
	* testsuite/ld-i386/tlsdesc.rd,
	* testsuite/ld-i386/tlsgdesc-nacl.rd,
	* testsuite/ld-i386/tlsgdesc.rd,
	* testsuite/ld-i386/tlsnopic-nacl.rd,
	* testsuite/ld-i386/tlsnopic.dd,
	* testsuite/ld-i386/tlsnopic.rd,
	* testsuite/ld-i386/tlsnopic.sd,
	* testsuite/ld-i386/tlspic-nacl.rd,
	* testsuite/ld-i386/tlspic.rd,
	* testsuite/ld-i386/tlspic2-nacl.rd,
	* testsuite/ld-i386/tlspic2.rd,
	* testsuite/ld-ia64/merge1.d,
	* testsuite/ld-ia64/merge2.d,
	* testsuite/ld-ia64/merge3.d,
	* testsuite/ld-ia64/merge4.d,
	* testsuite/ld-ia64/merge5.d,
	* testsuite/ld-ia64/tlsbin.rd,
	* testsuite/ld-ia64/tlspic.rd,
	* testsuite/ld-ifunc/ifunc-2-i386-now.d,
	* testsuite/ld-ifunc/ifunc-2-local-i386-now.d,
	* testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d,
	* testsuite/ld-ifunc/ifunc-2-local-x86-64.d,
	* testsuite/ld-ifunc/ifunc-2-x86-64-now.d,
	* testsuite/ld-ifunc/ifunc-2-x86-64.d,
	* testsuite/ld-ifunc/pr17154-i386-now.d,
	* testsuite/ld-ifunc/pr17154-i386.d,
	* testsuite/ld-ifunc/pr17154-x86-64-now.d,
	* testsuite/ld-ifunc/pr17154-x86-64.d,
	* testsuite/ld-m68k/tls-def-1.d,
	* testsuite/ld-m68k/tls-gd-1.d2,
	* testsuite/ld-metag/shared.d,
	* testsuite/ld-metag/stub_pic_app.d,
	* testsuite/ld-mips-elf/rel32-n32.d,
	* testsuite/ld-mips-elf/rel32-o32.d,
	* testsuite/ld-mips-elf/rel64.d,
	* testsuite/ld-powerpc/ambiguousv1.d,
	* testsuite/ld-powerpc/ambiguousv1b.d,
	* testsuite/ld-powerpc/ambiguousv2.d,
	* testsuite/ld-powerpc/ambiguousv2b.d,
	* testsuite/ld-powerpc/tlsexe.d,
	* testsuite/ld-powerpc/tlsexe.r,
	* testsuite/ld-powerpc/tlsexe32.d,
	* testsuite/ld-powerpc/tlsexe32.g,
	* testsuite/ld-powerpc/tlsexe32.r,
	* testsuite/ld-powerpc/tlsexetoc.d,
	* testsuite/ld-powerpc/tlsexetoc.r,
	* testsuite/ld-powerpc/tlsso.d,
	* testsuite/ld-powerpc/tlsso.r,
	* testsuite/ld-powerpc/tlsso32.g,
	* testsuite/ld-powerpc/tlsso32.r,
	* testsuite/ld-powerpc/tlstocso.d,
	* testsuite/ld-powerpc/tlstocso.g,
	* testsuite/ld-powerpc/tlstocso.r,
	* testsuite/ld-s390/gotreloc_31-1.dd,
	* testsuite/ld-s390/tlsbin.dd,
	* testsuite/ld-s390/tlsbin.rd,
	* testsuite/ld-s390/tlsbin_64.dd,
	* testsuite/ld-s390/tlsbin_64.rd,
	* testsuite/ld-s390/tlspic.rd,
	* testsuite/ld-s390/tlspic_64.rd,
	* testsuite/ld-sh/tlsbin-2.d,
	* testsuite/ld-sh/tlspic-2.d,
	* testsuite/ld-sparc/gotop32.rd,
	* testsuite/ld-sparc/gotop64.rd,
	* testsuite/ld-sparc/tlssunbin32.rd,
	* testsuite/ld-sparc/tlssunbin64.rd,
	* testsuite/ld-sparc/tlssunnopic32.rd,
	* testsuite/ld-sparc/tlssunnopic64.rd,
	* testsuite/ld-sparc/tlssunpic32.rd,
	* testsuite/ld-sparc/tlssunpic64.rd,
	* testsuite/ld-x86-64/bnd-branch-1-now.d,
	* testsuite/ld-x86-64/bnd-ifunc-1-now.d,
	* testsuite/ld-x86-64/bnd-ifunc-2-now.d,
	* testsuite/ld-x86-64/bnd-ifunc-2.d,
	* testsuite/ld-x86-64/bnd-plt-1-now.d,
	* testsuite/ld-x86-64/bnd-plt-1.d,
	* testsuite/ld-x86-64/ibt-plt-1-x32.d,
	* testsuite/ld-x86-64/ibt-plt-1.d,
	* testsuite/ld-x86-64/ibt-plt-2a-x32.d,
	* testsuite/ld-x86-64/ibt-plt-2a.d,
	* testsuite/ld-x86-64/ibt-plt-2b-x32.d,
	* testsuite/ld-x86-64/ibt-plt-2b.d,
	* testsuite/ld-x86-64/ibt-plt-2c-x32.d,
	* testsuite/ld-x86-64/ibt-plt-2c.d,
	* testsuite/ld-x86-64/ibt-plt-2d-x32.d,
	* testsuite/ld-x86-64/ibt-plt-2d.d,
	* testsuite/ld-x86-64/ibt-plt-3a-x32.d,
	* testsuite/ld-x86-64/ibt-plt-3a.d,
	* testsuite/ld-x86-64/ibt-plt-3b-x32.d,
	* testsuite/ld-x86-64/ibt-plt-3b.d,
	* testsuite/ld-x86-64/ibt-plt-3c-x32.d,
	* testsuite/ld-x86-64/ibt-plt-3c.d,
	* testsuite/ld-x86-64/ibt-plt-3d-x32.d,
	* testsuite/ld-x86-64/ibt-plt-3d.d,
	* testsuite/ld-x86-64/ilp32-4-nacl.d,
	* testsuite/ld-x86-64/ilp32-4.d,
	* testsuite/ld-x86-64/load1c-nacl.d,
	* testsuite/ld-x86-64/load1c.d,
	* testsuite/ld-x86-64/load1d-nacl.d,
	* testsuite/ld-x86-64/load1d.d,
	* testsuite/ld-x86-64/mpx3n.dd,
	* testsuite/ld-x86-64/mpx4.dd,
	* testsuite/ld-x86-64/mpx4n.dd,
	* testsuite/ld-x86-64/plt2.dd,
	* testsuite/ld-x86-64/pr14207.d,
	* testsuite/ld-x86-64/pr19162.d,
	* testsuite/ld-x86-64/pr20253-1f.d,
	* testsuite/ld-x86-64/pr20253-1l.d,
	* testsuite/ld-x86-64/pr20830a-now.d,
	* testsuite/ld-x86-64/pr20830a.d,
	* testsuite/ld-x86-64/pr20830b-now.d,
	* testsuite/ld-x86-64/pr20830b.d,
	* testsuite/ld-x86-64/pr21038a-now.d,
	* testsuite/ld-x86-64/pr21038a.d,
	* testsuite/ld-x86-64/pr21038b-now.d,
	* testsuite/ld-x86-64/pr21038b.d,
	* testsuite/ld-x86-64/pr21038c-now.d,
	* testsuite/ld-x86-64/pr21038c.d,
	* testsuite/ld-x86-64/tlsbin-nacl.rd,
	* testsuite/ld-x86-64/tlsbin.rd,
	* testsuite/ld-x86-64/tlsbin2-nacl.rd,
	* testsuite/ld-x86-64/tlsbin2.rd,
	* testsuite/ld-x86-64/tlsbindesc-nacl.rd,
	* testsuite/ld-x86-64/tlsbindesc.rd,
	* testsuite/ld-x86-64/tlsdesc-nacl.rd,
	* testsuite/ld-x86-64/tlsdesc.rd,
	* testsuite/ld-x86-64/tlsgdesc-nacl.rd,
	* testsuite/ld-x86-64/tlsgdesc.rd,
	* testsuite/ld-x86-64/tlspic-nacl.rd,
	* testsuite/ld-x86-64/tlspic.rd,
	* testsuite/ld-x86-64/tlspic2-nacl.rd,
	* testsuite/ld-x86-64/tlspic2.rd: Update.
2018-06-08 20:17:34 +09:30
GDB Administrator
4f652d7b9a Automatic date update in version.in 2018-06-08 00:00:43 +00:00
Sergio Durigan Junior
13e3c6088e Add ChangeLog entry for e5a77256e8
I forgot to add a ChangeLog entry for my previous commit:

commit e5a77256e8
Author: Sergio Durigan Junior <sergiodj@redhat.com>
Date:   Tue Jun 5 17:55:39 2018 -0400

    Guard declarations of 'sve_{vq,vl}_from_{vl,vq}' macros on Aarch64 (and unbreak build)

This commit fixes that.
2018-06-07 14:17:53 -04:00
Pedro Alves
a1740ee157 Introduce class target_stack
Currently, the target stack is represented by a singly linked list,
with target_ops having a pointer to the target beneath.  This poses a
problem for multi-process / multi-target debugging.  In that case, we
will naturally want multiple instances of target stacks.  E.g., one
stack for inferior 1 which is debugging a core file, and another
target stack for inferior 2 which is debugging a remote process.  The
problem then is in finding a target's "beneath" target, if we consider
that for some target_ops types, we'll be sharing a single target_ops
instance between several inferiors.  For example, so far, I found no
need to have multiple instances of the spu_multiarch_target /
exec_target / dummy_target targets.

Thus this patch, which changes the target stack representation to an
array of pointers.  For now, there's still a single global instance of
this new target_stack class, though further down in the multi-target
work, each inferior will have its own instance.

gdb/ChangeLog:
2018-06-07  Pedro Alves  <palves@redhat.com>

	* target.h (target_ops) <beneath>: Now a method.  All references
	updated.
	(class target_stack): New.
	* target.c (g_target_stack): New.
	(g_current_top_target): Delete.
	(current_top_target): Get the top target out of g_target_stack.
	(target_stack::push, target_stack::unpush): New.
	(push_target, unpush_target): Reimplement.
	(target_is_pushed): Reimplement in terms of g_target_stack.
	(target_ops::beneath, target_stack::find_beneath): New.
2018-06-07 18:58:04 +01:00
Pedro Alves
d6ca69cddc Eliminate find_target_beneath
Call target_ops::beneath() throughout instead.

gdb/ChangeLog:
2018-06-07  Pedro Alves  <palves@redhat.com>

	* target.h (find_target_beneath): Delete declaration.
	* target.c (find_target_beneath): Delete definition.
	* aix-thread.c: All callers of find_target_beneath adjusted to
	call target_ops::beneath instead.
	* bsd-uthread.c: Likewise.
	* linux-thread-db.c: Likewise.
	* ravenscar-thread.c: Likewise.
	* sol-thread.c: Likewise.
	* spu-multiarch.c: Likewise.
2018-06-07 18:57:37 +01:00
Pedro Alves
b6a8c27bb8 target_ops::beneath -> target_ops::beneath()
This changes target_ops::beneath from a pointer to a method, and
adjusts all references throughout.  The idea here is to make it easier
to change the target stack representation from an intrusive singly
linked list to something else without leaking implementation details
throughout.

The commit does not change the representation yet, that will be done
in a following patch.  That is why a new target_ops::m_beneath field
appears here.  That new field isn't really documented properly or made
private, simply because it will be removed shortly.

Note that target_ops::beneath() is essentially the same as the current
find_target_beneath routine.  The following patch will eliminate the
latter.

gdb/ChangeLog:
2018-06-07  Pedro Alves  <palves@redhat.com>

	* target.h (target_ops) <beneath>: Now a method.  All references
	updated.
	(target_ops) <m_beneath>: New.
	* target.c (target_ops::beneath): New.
	* corelow.c: Adjust all references to target_ops::beneath.
	* linux-thread-db.c: Likewise.
	* make-target-delegates: Likewise.
	* record-btrace.c: Likewise.
	* record-full.c: Likewise.
	* remote.c: Likewise.
	* target.c: Likewise.
	* target-delegates.c: Regenerate.
2018-06-07 18:57:06 +01:00
Pedro Alves
8b88a78e63 target_stack -> current_top_target() throughout
The recent C++ification of target_ops replaced references to the old
"current_target" squashed target throughout with references to a
"target_stack" pointer.  I had picked the "target_stack" name very
early in the multi-target work, and managed to stick with it, even
though it's a bit of a misnomer, since it isn't really a "target
stack" object, but a pointer into the current top target in the stack.
As I'm splitting more pieces off of the multi-target branch, I've come
to think that it's better to rename it now.  A following patch will
introduce a new class to represent a target stack, and "target_stack"
would be _its_ ideal name.  (In the branch, the class is called
a_target_stack to work around the clash.)

Thus this commit renames target_stack to current_top_target and
replaces all references throughout.  Also, while at it,
current_top_target is made a function instead of a pointer, to make it
possible to change its internal implementation without leaking
implementation details out.  In a couple patches, the implementation
of the function will change to refer to a target stack object, and
then further down the multi-target work, it'll change again to find
the right target stack for the current inferior.

gdb/ChangeLog:
2018-06-07  Pedro Alves  <palves@redhat.com>

	* target.h (target_stack): Delete.
	(current_top_target): Declare function.
	* target.c (target_stack): Delete.
	(g_current_top_target): New.
	(current_top_target): New function.
	* auxv.c: Use current_top_target instead of target_stack
	throughout.
	* avr-tdep.c: Likewise.
	* breakpoint.c: Likewise.
	* corefile.c: Likewise.
	* elfread.c: Likewise.
	* eval.c: Likewise.
	* exceptions.c: Likewise.
	* frame.c: Likewise.
	* gdbarch-selftests.c: Likewise.
	* gnu-v3-abi.c: Likewise.
	* ia64-tdep.c: Likewise.
	* ia64-vms-tdep.c: Likewise.
	* infcall.c: Likewise.
	* infcmd.c: Likewise.
	* infrun.c: Likewise.
	* linespec.c: Likewise.
	* linux-tdep.c: Likewise.
	* minsyms.c: Likewise.
	* ppc-linux-nat.c: Likewise.
	* ppc-linux-tdep.c: Likewise.
	* procfs.c: Likewise.
	* regcache.c: Likewise.
	* remote.c: Likewise.
	* rs6000-tdep.c: Likewise.
	* s390-linux-nat.c: Likewise.
	* s390-tdep.c: Likewise.
	* solib-aix.c: Likewise.
	* solib-darwin.c: Likewise.
	* solib-dsbt.c: Likewise.
	* solib-spu.c: Likewise.
	* solib-svr4.c: Likewise.
	* solib-target.c: Likewise.
	* sparc-tdep.c: Likewise.
	* sparc64-tdep.c: Likewise.
	* spu-tdep.c: Likewise.
	* symfile.c: Likewise.
	* symtab.c: Likewise.
	* target-descriptions.c: Likewise.
	* target-memory.c: Likewise.
	* target.c: Likewise.
	* target.h: Likewise.
	* tracefile-tfile.c: Likewise.
	* tracepoint.c: Likewise.
	* valops.c: Likewise.
	* valprint.c: Likewise.
	* value.c: Likewise.
	* windows-tdep.c: Likewise.
	* mi/mi-main.c: Likewise.
2018-06-07 17:27:46 +01:00
Tom Tromey
c7110220be Change build_address_symbolic to return std::string
This changes two out parameters of build_address_symbolic to be
std::string, and updates the callers.  This allows removing some
cleanups.

This patch also moves the declaration of build_address_symbolic out of
defs.h.  I think that many things in defs.h should be elsewhere
instead.  In this case, I moved the declaration to valprint.h, becuase
there is no "printcmd.h" -- but perhaps it would be better to
introduce that instead.

Tested by the buildbot.

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

	* valprint.h (build_address_symbolic): Declare.
	* printcmd.c (print_address_symbolic): Update.
	(build_address_symbolic): Change "name" and "filename" to
	std::string.
	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
	Update.
	* defs.h (build_address_symbolic): Remove declaration.
2018-06-07 06:38:18 -06:00
Tamar Christina
2a9b2c1abe Fix AArch64 unintialized variable which can cause diagnostic failures.
This patch fixes an uninitialized memory issue that can under certain
circumstances turn an error into a warning because non_fatal was not initialised
in all cases.

Verified using valgrind.

gas/config/tc-aarch64.c

	PR binutils/21446
	* tc-aarch64.c (record_operand_error, record_operand_error_with_data):
	  Initialize non_fatal.
2018-06-07 11:54:11 +01:00
Alan Hayward
63bad7b636 Aarch64 SVE pseudo register support
Add the functionality for reading/writing pseudo registers.

On SVE the V registers are pseudo registers. This is supported
by adding AARCH64_SVE_V0_REGNUM.

	* aarch64-tdep.c (AARCH64_SVE_V0_REGNUM): Add define.
	(aarch64_vnv_type): Add function.
	(aarch64_pseudo_register_name): Add V regs for SVE.
	(aarch64_pseudo_register_type): Likewise.
	(aarch64_pseudo_register_reggroup_p): Likewise.
	(aarch64_pseudo_read_value_2): Use V0 offset for SVE
	(aarch64_pseudo_read_value): Add V regs for SVE.
	(aarch64_pseudo_write_2): Use V0 offset for SVE
	(aarch64_pseudo_write): Add V regs for SVE.
	* aarch64-tdep.h (struct gdbarch_tdep): Add vnv_type.
2018-06-07 10:31:41 +01:00
GDB Administrator
066b621238 Automatic date update in version.in 2018-06-07 00:00:50 +00:00
Alan Modra
fc6041a776 EXECUTABLE_SYMBOLS -> OTHER_SYMBOLS
EXECUTABLE_SYMBOLS is supposed to be true to its name, only defining
symbols for the executable.

	* emulparams/elf64bmip.sh (EXECUTABLE_SYMBOLS): Don't define.
	(OTHER_SYMBOLS): Define this instead.
	* emulparams/elf32bmipn32.sh (EXECUTABLE_SYMBOLS): Don't define.
	(OTHER_SYMBOLS): Define similarly to elf64bmip.sh.
	* emulparams/elf64hppa.sh (EXECUTABLE_SYMBOLS): Don't define.
	(OTHER_SYMBOLS): Define instead.
2018-06-07 09:10:15 +09:30
Alan Modra
527278f336 TIC6X __c6xabi_DSBT_BASE
Adding an undefined __c6xabi_DSBT_BASE via an EXTERN in the linker
script isn't ideal, as the symbol is not always needed.  This patch
adds the undefined symbol on encountering relocations where it is
implicitly referenced.

bfd/
	* elf32-tic6x.c (elf32_tic6x_check_relocs): Reference
	__c6xabi_DSBT_BASE explicitly for R_C6000_SBR_* relocs.
ld/
	* emulparams/elf32_tic6x_le.sh (EXECUTABLE_SYMBOLS): Don't define.
2018-06-07 09:07:32 +09:30
Sergio Durigan Junior
e5a77256e8 Guard declarations of 'sve_{vq,vl}_from_{vl,vq}' macros on Aarch64 (and unbreak build)
Commit 122394f147 ("Function for reading
the Aarch64 SVE vector length") has added macros to manipulate SVE
vector sizes based on Linux kernel sources, but did not guard them
with #ifndef's, which breaks the build when the system headers already
have these macros:

    CXX    aarch64-linux-nat.o
  In file included from ../../gdb/aarch64-tdep.h:25,
                   from ../../gdb/aarch64-linux-nat.c:30:
  ../../gdb/arch/aarch64.h:79: error: "sve_vq_from_vl" redefined [-Werror]
   #define sve_vq_from_vl(vl) ((vl) / 0x10)

  In file included from /usr/include/bits/sigcontext.h:30,
                   from /usr/include/signal.h:291,
                   from build-gnulib/import/signal.h:52,
                   from ../../gdb/linux-nat.h:23,
                   from ../../gdb/aarch64-linux-nat.c:26:
  /usr/include/asm/sigcontext.h:154: note: this is the location of the previous definition
   #define sve_vq_from_vl(vl) ((vl) / SVE_VQ_BYTES)

  In file included from ../../gdb/aarch64-tdep.h:25,
                   from ../../gdb/aarch64-linux-nat.c:30:
  ../../gdb/arch/aarch64.h:80: error: "sve_vl_from_vq" redefined [-Werror]
   #define sve_vl_from_vq(vq) ((vq) * 0x10)

  In file included from /usr/include/bits/sigcontext.h:30,
                   from /usr/include/signal.h:291,
                   from build-gnulib/import/signal.h:52,
                   from ../../gdb/linux-nat.h:23,
                   from ../../gdb/aarch64-linux-nat.c:26:
  /usr/include/asm/sigcontext.h:155: note: this is the location of the previous definition
   #define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES)

In order to fix this breakage, this commit guards the declaration of
the macros using #ifndef's.

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

	* arch/aarch64.h (sve_vg_from_vl): Guard with #ifndef.
	(sve_vl_from_vg): Likewise.
	(sve_vq_from_vl): Likewise.
	(sve_vl_from_vq): Likewise.
	(sve_vq_from_vg): Likewise.
	(sve_vg_from_vq): Likewise.
2018-06-06 17:35:01 -04:00
Sameera Deshpande
eb5c42e511 Update the AArch64 assembler to note that the Qualcomm Saphira cpu supports ARMv8.4
gas	* config/tc-aarch64.c (aarch64_cpus): Add support of ARMv8.4 in
	saphira.
2018-06-06 15:19:59 +01:00
Alan Modra
08f22593f0 armelf_fbsd and armelf_fuchsia dependencies
* Makefile.am (earmelf_fbsd.c): Correct dependencies.
	(earmelfb_fbsd.c, earmelfb_fuchsia.c): Likewise.
	* Makefile.in: Regenerate.
2018-06-06 21:31:41 +09:30
Alan Modra
ce72cd46ec Fix xtensa "clobbered by longjmp" warnings
.../opcodes/xtensa-dis.c: In function ‘print_insn_xtensa’:
.../opcodes/xtensa-dis.c:257:17: error: variable ‘fmt’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
   xtensa_format fmt;
                 ^~~
.../opcodes/xtensa-dis.c:262:26: error: variable ‘valid_insn’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
   int first, first_slot, valid_insn = 0;
                          ^~~~~~~~~~

	* xtensa-dis.c (print_insn_xtensa): Init fmt and valid_insn after
	setjmp.  Move init for some other vars later too.
2018-06-06 21:30:36 +09:30
GDB Administrator
773ff7907c Automatic date update in version.in 2018-06-06 00:00:53 +00:00
Tom Tromey
c61b06a19a Remove some text from --version output
I happened to notice recently that "gdb --version" says:

    GNU gdb (GDB) 8.0.50.20170911-git
    Copyright (C) 2017 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-pc-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word".

This is a bit on the wordy side, but also references interactive
commands, which I think doesn't really make sense for --version.

This patch removes some text from --version, while leaving it in the
"show version" output.  It also adds a newline between the URLs and
the "For help, ..." text, because I thought that was easier to read.
Finally, it indents one of the URLs, since that was simpler to read,
but not the other URL, because the current format is specified by the
GNU coding standards section on "--version".

Now the --version output looks like:

    GNU gdb (GDB) 8.1.50.20180511-git
    Copyright (C) 2018 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

Tested by the buildbot.

gdb/ChangeLog
2018-06-05  Tom Tromey  <tom@tromey.com>

	* cli/cli-cmds.c (show_version): Update.
	* top.c (print_gdb_version): Add "interactive" parameter.
	Update.
	* main.c (captured_main_1): Update.
	* top.h (print_gdb_version): Add "interactive" parameter and a
	comment.

gdb/testsuite/ChangeLog
2018-06-05  Tom Tromey  <tom@tromey.com>

	* gdb.base/default.exp: Update expected "show version" output.
2018-06-05 11:47:50 -06:00
David Malcolm
115f7325b5 Fix typo in common/enum-flags.h example
The DEF_ENUM_FLAGS_TYPE macro should be used with a trailing
semicolon, but the example in the comment lacks one.

gdb/ChangeLog:
2018-06-05  David Malcolm  <dmalcolm@redhat.com>

	* common/enum-flags.h: Add trailing semicolon to example in
	comment.
2018-06-05 18:22:25 +01:00
Tom Tromey
eb6af80922 Add "continue" response to pager
This adds a "continue" response to the pager.  If the user types "c"
in response to the pager prompt, pagination will be disabled for the
duration of one command -- but re-enabled afterward.  This is handy if
you type a command that produces a lot of output, and you don't want
to baby-sit it by typing "return" each time the prompt comes up.

Tested by the buildbot.

gdb/ChangeLog
2018-06-05  Tom Tromey	<tom@tromey.com>

	PR cli/12326:
	* NEWS: Add entry about pager.
	* utils.c (pagination_disabled_for_command): New global.
	(prompt_for_continue): Allow "c" response to prompt.
	(reinitialize_more_filter): Clear
	pagination_disabled_for_command.
	(fputs_maybe_filtered): Check pagination_disabled_for_command.

gdb/doc/ChangeLog
2018-06-05  Tom Tromey	<tom@tromey.com>

	PR cli/12326:
	* gdb.texinfo (Screen Size): Document "c" response to pagination
	prompt.

gdb/testsuite/ChangeLog
2018-06-05  Tom Tromey	<tom@tromey.com>

	PR cli/12326:
	* gdb.cp/static-print-quit.exp: Update.
	* lib/gdb.exp (pagination_prompt): Update.
	* gdb.base/page.exp: Use pagination_prompt.  Add new tests.
	* gdb.python/python.exp: Update.
2018-06-05 11:02:52 -06:00
Alan Modra
5c4ce239a3 Tidy bfdio to consistenly use containing archive
Archive element IO is performed on the file of the containing archive,
which leads to the BFD "where" field of archives and their elements
being out of sync with the real file position.  (We're talking
traditional archives here, not thin archives.)  The old bfd_seek code
recognized this by not attempting to optimize away seeks for
archives.  However, there was other code that could return bogus
results.  For example, cache.c limits the number of open files by
closing a file and remembering its state once the limit is reached.
If bfd_tell is called on an archive element when the containing
archive is closed, it will return an invalid file pointer.

It's possible to have a valid "where" field for archives by always
using and updating the containing archive BFD.  That's what this patch
does.  Note that cache.c used to find the containing archive BFD
anyway for the iostream, so we're not really doing extra work, just
transferring it up to the correct abstraction level.

The patch also gets rid of some hacks.  bfd_tell was called when
bfd_seek failed, in an attempt to correct "where".  That's got to be
papering over another problem, so that code has been removed.
bfd_read also had an "optimiziation" to return early when the number
of bytes was zero, and bfd_seek optimized calls that didn't move the
file pointer.  This was covering for a coff_slurp_line_table bug where
IO was attempted on a pe-dll BFD without an iovec.

	* bfd.c (struct bfd): Update comment on "where" usage.
	* bfdio.c (bfd_bwrite, bfd_stat): Use and update "iovec",
	"iostream", and "where" from containing archive file.  Return
	error on NULL iovec.
	(bfd_bread): Similarly, and return error attempted out of
	bounds archive element access.
	(bfd_tell, bfd_flush): Use and update "iovec", "iostream", and
	"where" from containing archive file.
	(bfd_seek): Likewise.  Return error on NULL iovec.  Don't
	attempt to optimize away seeks.  Don't paper over errors by
	calling bfd_tell.
	(bfd_get_mtime): Call bfd_stat rather than iovec->bstat.
	(bfd_get_size): Likewise.
	(bfd_mmap): Operate on and use iovec of containing archive
	file.  Return error on NULL iovec.
	* cache.c (bfd_cache_lookup_worker): Abort if working on
	archive element bfd.
	(cache_bread_1): Delete bfd parameter, add FILE* parameter.
	Don't ignore zero byte reads.
	(cache_bread): Look up FILE* in cache here.  Error on NULL
	lookup.
	(cache_bwrite): Rename "where" to "from".
	(cache_bmmap): Don't handle archive elements.
	* coffcode.h (coff_slurp_line_table): Exit early on zero
	lineno count.
	* bfd-in2.h: Regenerate.
2018-06-05 22:39:12 +09:30
Alan Modra
27b0767593 PR23254, ld.bfd mishandles file pointers while scanning archive
Best practice is to not mix lseek/read with fseek/fread on the same
underlying file descriptor, as not all stdio implementations will cope.
Since the plugin uses lseek/read while bfd uses fseek/fread this patch
reopens the file for exclusive use by the plugin rather than trying to
restore the file descriptor.  That allows the plugin to read the file
after plugin_call_claim_file too.

bfd/
	PR 23254
	* plugin.c (bfd_plugin_open_input): Allow for possibility of
	nested archives.  Open file again for plugin.
	(try_claim): Don't save and restore file position.  Close file
	if not claimed.
	* sysdep.h (O_BINARY): Define.
ld/
	PR 23254
	* plugin.c (plugin_call_claim_file): Revert 2016-07-19 patch.
	(plugin_object_p): Don't dup file descriptor.
2018-06-05 22:39:11 +09:30
Alan Modra
8347745522 Another s12z regen
* Makefile.in: Regenerate.
2018-06-05 22:39:11 +09:30
Flavio Ceolin
112ba8675e Add a test of the linker's "-z noexecstack" command line option.
ld	* testsuite/ld-elf/elf.exp Run new test.
	* testsuite/ld-elf/stack-noexec.rd New file: Expected readelf output.
2018-06-05 12:39:47 +01:00
Nick Clifton
84e219e23c Updated Malay and Esperanto translations for the gprof/ subdirectory.
2018-06-05  Nick Clifton  <nickc@redhat.com>

	* po/eo.po: Updated Esperanto translation.
	* po/ms.po: Updated Malay translation.
2018-06-05 12:26:44 +01:00
GDB Administrator
e6d079c2fb Automatic date update in version.in 2018-06-05 00:00:36 +00:00
Tom Tromey
54d343a240 Remove last Ada cleanups
This removes the last cleanups from the Ada code by changing
ada_lookup_symbol_list's out parameter to be a std::vector, and then
fixing up the fallout.

This is a relatively shallow change.  Deeper changes are possible, for
example (1) changing various other functions to accept a vector rather
than a pointer, or (2) changing ada_lookup_symbol_list to return the
vector and omitting the length entirely.

Tested by the buildbot, but I'll wait for Joel to test these as well.

gdb/ChangeLog
2018-06-04  Tom Tromey  <tom@tromey.com>

	* ada-lang.h (ada_lookup_symbol_list): Update.
	* ada-lang.c (resolve_subexp): Update.
	(symbols_are_identical_enums): Change type of syms.  Remove nsyms
	parameter.
	(remove_extra_symbols, remove_irrelevant_renamings): Likewise.
	(ada_lookup_symbol_list_worker, ada_lookup_symbol_list): Change
	results parameter to std::vector.
	(ada_iterate_over_symbols, ada_lookup_symbol, get_var_value):
	Update.
	* ada-exp.y (block_lookup): Update.
	(select_possible_type_sym): Change type of syms.  Remove nsyms
	parameter.
	(write_var_or_type, write_name_assoc): Update.
2018-06-04 15:33:28 -06:00
Joel Brobecker
178d6a6386 (windows) GDB/MI crash when using "-list-thread-groups --available"
On Windows, using the "-list-thread-groups --available" GDB/MI command
before an inferior is being debugged:

    % gdb -q -i=mi
    =thread-group-added,id="i1"
    =cmd-param-changed,param="auto-load safe-path",value="/"
    (gdb)
    -list-thread-groups --available
    Segmentation fault

Ooops!

The SEGV happens because the -list-thread-groups --available command
triggers a windows_nat_target::xfer_partial call for a TARGET_OBJECT_OSDATA
object.  Until a program is being debugged, the target_ops layer that
gets the call is the Windows "native" layer. Except for a couple of
specific objects (TARGET_OBJECT_MEMORY and TARGET_OBJECT_LIBRARIES),
this layer's xfer_partial method delegates the xfer of other objects
to the target beneath:

    default:
      return beneath->xfer_partial (object, annex,
                                    readbuf, writebuf, offset, len,
                                    xfered_len);

Unfortunately, there is no "beneath layer" in this case, so
beneath is NULL and dereferencing it leads to the SEGV.

This patch fixes the issue by checking beneath before trying
to delegate the request.

gdb/ChangeLog:

        * windows-nat.c (windows_nat_target::xfer_partial): Return
        TARGET_XFER_E_IO if we need to delegate to the target beneath
        but BENEATH is NULL.

gdb/testsuite/ChangeLog:

        * gdb.mi/list-thread-groups-no-inferior.exp: New testcase.
2018-06-04 16:07:33 -04:00
Max Filippov
4b8e28c793 xtensa: use property tables for correct disassembly
xtensa disassembler does not use information from the .xt.prop sections
to switch between code/data disassembly in text sections. This may
result in incorrect disassembly when data is interpreted as code and
disassembler loses synchronization with instruction stream. Use .xt.prop
section information to correctly interpret code and data and synchronize
with instruction stream.

2018-06-04  Max Filippov  <jcmvbkbc@gmail.com>
bfd/
	* elf32-xtensa.c (xtensa_read_table_entries): Make global.
	(compute_fill_extra_space): Drop declaration. Rename function to
	xtensa_compute_fill_extra_space.
	(compute_ebb_actions, remove_dead_literal): Update references to
	compute_fill_extra_space.

include/
	* elf/xtensa.h (xtensa_read_table_entries)
	(xtensa_compute_fill_extra_space): New declarations.

opcodes/
	* xtensa-dis.c (bfd.h, elf/xtensa.h): New includes.
	(dis_private): Add new fields for property section tracking.
	(xtensa_coalesce_insn_tables, xtensa_find_table_entry)
	(xtensa_instruction_fits): New functions.
	(fetch_data): Bump minimal fetch size to 4.
	(print_insn_xtensa): Make struct dis_private static.
	Load and prepare property table on section change.
	Don't disassemble literals. Don't disassemble instructions that
	cross property table boundaries.
2018-06-04 10:38:55 -07:00
Max Filippov
8255c61b8a xtensa: add separate property sections option
It is currently not possible to correctly match .xt.prop information
for sections with identical VMA. Allow creation of separate property
sections in the BFD. Add assembler option --separate-prop-tables to
allow creation of separate property sections.

2018-06-04  Volodymyr Arbatov  <arbatov@cadence.com>
bfd/

	* elf32-xtensa.c (elf32xtensa_separate_props): New global
	variable.
	(xtensa_add_names): New function.
	(xtensa_property_section_name): Add new parameter
	separate_sections, use it to choose property section name.
	(xtensa_get_separate_property_section): New function.
	(xtensa_get_property_section): Invoke
	xtensa_get_separate_property_section to get individual property
	section if it exists, common property section otherwise.
	(xtensa_make_property_section): Pass elf32xtensa_separate_props
	to xtensa_property_section_name.

gas/
	* config/tc-xtensa.c (elf32xtensa_separate_props): New
	declaration.
	(option_separate_props, option_no_separate_props): New
	enumeration constants.
	(md_longopts): Add separate-prop-tables option.
	(md_parse_option): Add cases for option_separate_props and
	option_no_separate_props.
	(md_show_usage): Add help for [no-]separate-prop-tables options.
2018-06-04 10:36:39 -07:00
H.J. Lu
95da985446 Use DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION to silence GCC 8.1
GCC 8.1 warns about destination size with -Wstringop-truncation:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85643

Use DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION to silence it.

bfd/

	PR binutils/23146
	* bfd-in.h: Include "diagnostics.h".
	* bfd-in2.h: Regenerated.
	* elf32-arm.c (elf32_arm_nabi_write_core_note): Use
	DIAGNOSTIC_PUSH, DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION and
	DIAGNOSTIC_POP to silence GCC 8.1 warnings with
	-Wstringop-truncation.
	* elf32-ppc.c (ppc_elf_write_core_note): Likewse.
	* elf32-s390.c (elf_s390_write_core_note): Likewse.
	* elf64-ppc.c (ppc64_elf_write_core_note): Likewse.
	* elf64-s390.c (elf_s390_write_core_note): Likewse.
	* elfxx-aarch64.c (_bfd_aarch64_elf_write_core_note): Likewse.

include/

	* diagnostics.h (DIAGNOSTIC_IGNORE_STRINGOP_TRUNCATION): Always
	define for GCC.
2018-06-04 10:01:46 -07:00
Alan Hayward
62b74cb8b0 Use ELF_SECTION_IN_SEGMENT to map segments
The macro ELF_SECTION_IN_SEGMENT should be used when calculating if
a section maps to a segment.

gdb/
	* elfread.c (elf_symfile_segments): Use ELF_SECTION_IN_SEGMENT.
2018-06-04 17:23:07 +01:00