and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 18 May, 2015 2 commits
  2. 15 May, 2015 17 commits
    • H.J. Lu's avatar
    • H.J. Lu's avatar
      Change pointers from char * to unsigned char * · fd8008d8
      H.J. Lu authored
      GCC 4.2 complaints:
      
      cc1: warnings being treated as errors
      binutils/readelf.c:12057: warning: dereferencing type-punned pointer will break strict-aliasing rules
      
      This patch silences this GCC warning.
      
      	* readelf.c (dump_section_as_strings): Change pointers from
      	char * to unsigned char *.
      fd8008d8
    • H.J. Lu's avatar
      8edd4941
    • H.J. Lu's avatar
    • H.J. Lu's avatar
      Remove binutils-mshared.patch · d679232f
      H.J. Lu authored
      d679232f
    • H.J. Lu's avatar
      Support AMD64/Intel ISAs in assembler/disassembler · 5db04b09
      H.J. Lu authored
      AMD64 spec and Intel64 spec differ in direct unconditional branches in
      64-bit mode.  AMD64 supports direct unconditional branches with 16-bit
      offset via the data size prefix, which truncates RIP to 16 bits, while
      the data size prefix is ignored by Intel64.
      
      This patch adds -mamd64/-mintel64 option to x86-64 assembler and
      -Mamd64/-Mintel64 option to x86-64 disassembler.  The most permissive
      ISA, which is AMD64, is the default.
      
      GDB can add an option, similar to
      
      (gdb) help set disassembly-flavor
      Set the disassembly flavor.
      The valid values are "att" and "intel", and the default value is "att".
      
      to select which ISA to disassemble.
      
      binutils/
      
      	PR binutis/18386
      	* doc/binutils.texi: Document -Mamd64 and -Mintel64.
      
      gas/
      
      	PR binutis/18386
      	* config/tc-i386.c (OPTION_MAMD64): New.
      	(OPTION_MINTEL64): Likewise.
      	(md_longopts): Add -mamd64 and -mintel64.
      	(md_parse_option): Handle OPTION_MAMD64 and OPTION_MINTEL64.
      	(md_show_usage): Add -mamd64 and -mintel64.
      	* doc/c-i386.texi: Document -mamd64 and -mintel64.
      
      gas/testsuite/
      
      	PR binutis/18386
      	* gas/i386/i386.exp: Run x86-64-branch-2 and x86-64-branch-3.
      	* gas/i386/x86-64-branch.d: Also pass -Mintel64 to objdump.
      	* gas/i386/ilp32/x86-64-branch.d: Likewise.
      	* gas/i386/x86-64-branch-2.d: New file.
      	* gas/i386/x86-64-branch-2.s: Likewise.
      	* gas/i386/x86-64-branch-3.l: Likewise.
      	* gas/i386/x86-64-branch-3.s: Likewise.
      
      ld/testsuite/
      
      	PR binutis/18386
      	* ld-x86-64/tlsgdesc.dd: Also pass -Mintel64 to objdump.
      	* ld-x86-64/tlspic.dd: Likewise.
      	* ld-x86-64/x86-64.exp (x86_64tests): Also pass -Mintel64 to
      	objdump for tlspic.dd and tlsgdesc.dd.
      
      opcodes/
      
      	PR binutis/18386
      	* i386-dis.c: Add comments for '@'.
      	(x86_64_table): Use '@' on call/jmp for X86_64_E8/X86_64_E9.
      	(enum x86_64_isa): New.
      	(isa64): Likewise.
      	(print_i386_disassembler_options): Add amd64 and intel64.
      	(print_insn): Handle amd64 and intel64.
      	(putop): Handle '@'.
      	(OP_J): Don't ignore the operand size prefix for AMD64 in 64-bit.
      	* i386-gen.c (cpu_flags): Add CpuAMD64 and CpuIntel64.
      	* i386-opc.h (AMD64): New.
      	(CpuIntel64): Likewise.
      	(i386_cpu_flags): Add cpuamd64 and cpuintel64.
      	* i386-opc.tbl: Add direct call/jmp with Disp16|Disp32 for AMD64.
      	Mark direct call/jmp without Disp16|Disp32 as Intel64.
      	* i386-init.h: Regenerated.
      	* i386-tbl.h: Likewise.
      5db04b09
    • Nick Clifton's avatar
      Add --decompress option to readelf to decompress sections before they are dumped. · 0e602686
      Nick Clifton authored
      bin	* readelf.c (options): Add "decompress".
      	(usage): Mention -z/--decompress.
      	(parse_args): Handle -z.
      	(uncompress_section_contents): Move to earlier in the file.
      	(dump_section_as_strings): If requested, decompress the section
      	before dumping.
      	(dump_section_as_bytes): Likewise.
      	* doc/binutils.texi: Document the new option.
      
      tests	* binutils-all/z.s: New test.  Checks the --decompress option to
      	readelf.
      	* binutils-all/readelf.exp: Run the test.
      	* binutils-all/readelf.z: Expected output from readelf.
      0e602686
    • Pedro Alves's avatar
      Fix gdb.mi/mi-nsmoribund.exp timeouts · 4e63d0ac
      Pedro Alves authored
      The PPC64 buildbot has been showing timeouts in mi-nsmoribund.exp,
      like this:
      
       (...)
       -thread-info
       FAIL: gdb.mi/mi-nsmoribund.exp: thread state: all running except the breakpoint thread (timeout)
      
      ... and I can reproduce this on gcc110 (PPC64) on the gcc compile
      farm.
      
      That is, the test sends "-thread-info" to GDB, but GDB never replies
      back.
      
      The problem is that these machines are too fast for gdb.  :-)
      
      That test has a few threads running the same tight loop, and
      constantly hitting a thread-specific breakpoint that needs to be
      stepped over.  If threads trip on breakpoints fast enough that
      linux-nat.c's event pipe associated with SIGCHLD is constantly being
      written to, even if the stdin file descriptor also has an event to
      handle, gdb never gets to it. because linux-nat.c's pipe comes first
      in the set of descriptors served by the poll/select code in the event
      loop.
      
      Fix this by having the event loop serve file event sources in
      round-robin-like fashion, similarly to how its done in
      gdb_do_one_event.
      
      Unfortunately, the poll and the select variants each need their own
      fixing.
      
      Tested on x86_64 Fedora 20 (poll and select variants), and PPC64
      Fedora 18.  Fixes the timeout in the PPC64 machine in the compile farm
      that times out without this, and I won't be surprised if it fixes
      other random timeouts in other tests.
      
      (gdbserver's copy of the event-loop doesn't need this (yet), as it
      still pushes all ready events to an event queue.  That is, it hasn't
      had 70b66289 merged yet.  We should really merge both event-loop.c
      copies into a single shared file, but that's for another day.)
      
      gdb/ChangeLog:
      2015-05-15  Pedro Alves  <palves@redhat.com>
      	    Simon Marchi  <simon.marchi@ericsson.com>
      
      	* event-loop.c (gdb_notifier) <next_file_handler,
      	next_poll_fds_index>: New fields.
      	(get_next_file_handler_to_handle_and_advance): New function.
      	(delete_file_handler): If deleting the next file handler to
      	handle, advance to the next file handler.
      	(gdb_wait_for_event): Bail early if no event fired.  Poll file
      	handlers in round-robin fashion.
      4e63d0ac
    • Pedro Alves's avatar
      More C++ build fixing · 452003ef
      Pedro Alves authored
      Fixes:
      
      In file included from ../../../binutils-gdb/gdb/gdbserver/server.h:61:0,
                       from ../../../binutils-gdb/gdb/gdbserver/server.c:19:
      ../../../binutils-gdb/gdb/gdbserver/target.h:442:50: error: second operand to the conditional operator is of type 'void', but the third operand is neither a throw-expression nor of type 'void'
          (*the_target->handle_new_gdb_connection) () : 0)
                                                        ^
      
      Reported by Yuanhui Zhang.
      
      gdb/gdbserver/ChangeLog:
      2015-05-15  Pedro Alves  <palves@redhat.com>
      
      	* target.h (target_handle_new_gdb_connection): Rewrite using if
      	wrapped in do/while.
      452003ef
    • Pedro Alves's avatar
      Avoid using 'private' C++ keyword as symbol · 52e48b36
      Pedro Alves authored
      gdb/ChangeLog:
      2015-05-15  Pedro Alves  <palves@redhat.com>
      
      	* linux-tdep.c (linux_find_memory_regions_full): Rename local
      	'private' to 'priv'.
      52e48b36
    • Pedro Alves's avatar
      Include header for enum target_stop_reason · 2465e12e
      Pedro Alves authored
      Building in C++ mode errors with:
      
       ~~~
       g++ -fpermissive (...) /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.c
       In file included from /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.h:23:0,
      		  from /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/x86-linux.c:21:
       /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/linux-nat.h:74:13: error: use of enum ‘target_stop_reason’ without previous declaration
        extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
      	      ^
       /home/pedro/gdb/mygit/src/gdb/gdbserver/../nat/linux-nat.h:74:70: error: invalid type in declaration before ‘;’ token
        extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
      								       ^
       ~~~
      
      gdb/ChangeLog:
      2015-05-15  Pedro Alves  <palves@redhat.com>
      
      	* nat/linux-nat.h: Include "target/waitstatus.h".
      2465e12e
    • Yuanhui Zhang's avatar
      Fix a couple C++ build issues · 13fa0398
      Yuanhui Zhang authored
      Building mingw GDB with --enable-build-with-cxx shows:
      
      ../../binutils-gdb/gdb/python/py-unwind.c:500:45: error: cannot convert 'cached_frame_info::reg_info*' to 'pyuw_prev_register(frame_info*, void**, int)::reg_info*' in initialization
         struct reg_info *reg_info = cached_frame->reg;
                                                   ^
      ../../binutils-gdb/gdb/python/py-unwind.c:501:60: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
         struct reg_info *reg_info_end = reg_info + cached_frame->reg_count;
                                                                  ^
      ../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
         struct reg_info *reg_info = cached_frame->reg;
                ^
      ../../binutils-gdb/gdb/python/py-unwind.c:505:37: error: cannot increment a pointer to incomplete type 'pyuw_prev_register(frame_info*, void**, int)::reg_info'
         for (; reg_info < reg_info_end; ++reg_info)
                                           ^
      ../../binutils-gdb/gdb/python/py-unwind.c:507:29: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
             if (regnum == reg_info->number)
                                   ^
      ../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
         struct reg_info *reg_info = cached_frame->reg;
                ^
      ../../binutils-gdb/gdb/python/py-unwind.c:508:68: error: invalid use of incomplete type 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
               return frame_unwind_got_bytes (this_frame, regnum, reg_info->data);
                                                                          ^
      ../../binutils-gdb/gdb/python/py-unwind.c:500:10: error: forward declaration of 'struct pyuw_prev_register(frame_info*, void**, int)::reg_info'
         struct reg_info *reg_info = cached_frame->reg;
                ^
      ../../binutils-gdb/gdb/python/py-unwind.c: In function 'int pyuw_sniffer(const frame_unwind*, frame_info*, void**)':
      ../../binutils-gdb/gdb/python/py-unwind.c:574:70: warning: invalid conversion from 'void*' to 'cached_frame_info*' [-fpermissive]
                                   reg_count * sizeof (cached_frame->reg[0]));
                                                                            ^
      ../../binutils-gdb/gdb/python/py-unwind.c: In function 'void pyuw_on_new_gdbarch(gdbarch*)':
      ../../binutils-gdb/gdb/python/py-unwind.c:636:47: warning: invalid conversion from 'void*' to 'pyuw_gdbarch_data_type*' [-fpermissive]
             gdbarch_data (newarch, pyuw_gdbarch_data);
                                                     ^
      ../../binutils-gdb/gdb/python/py-unwind.c:647:29: warning: invalid conversion from 'void*' to 'const frame_data*' [-fpermissive]
             unwinder->unwind_data = (void *) newarch;
                                   ^
      ../../binutils-gdb/gdb/python/py-unwind.c: At global scope:
      ../../binutils-gdb/gdb/python/py-unwind.c:699:21: error: redefinition of 'PyTypeObject pending_frame_object_type'
       static PyTypeObject pending_frame_object_type =
                           ^
      ../../binutils-gdb/gdb/python/py-unwind.c:96:21: error: 'PyTypeObject pending_frame_object_type' previously declared here
       static PyTypeObject pending_frame_object_type
                           ^
      ../../binutils-gdb/gdb/python/py-unwind.c:749:21: error: redefinition of 'PyTypeObject unwind_info_object_type'
       static PyTypeObject unwind_info_object_type =
                           ^
      ../../binutils-gdb/gdb/python/py-unwind.c:99:21: error: 'PyTypeObject unwind_info_object_type' previously declared here
       static PyTypeObject unwind_info_object_type
                           ^
      
      The first kind of error is caused by the embedded struct definition,
      so move it out of the parent struct.
      
      The second kind of error is caused by forward declaring a static
      global variable, which works in C, but not in C++ (or C with
      -fno-common).  Make it using extern instead, like done in other
      similar cases.
      
      gdb/ChangeLog:
      2015-05-15  Yuanhui Zhang  <asmwarrior@gmail.com>
      
      	* python/py-unwind.c (struct reg_info): Move out of ...
      	(struct cached_frame_info): ... this scope.
      	(pending_frame_object_type, unwind_info_object_type): Make extern.
      13fa0398
    • Joel Brobecker's avatar
      [Ada] problem printing negative integer values in packed arrays. · 9cd4d857
      Joel Brobecker authored
      Consider the following declarations:
      
         type Signed_Small is new Integer range - (2 ** 5) .. (2 ** 5 - 1);
         type Signed_Simple_Array is array (1 .. 4) of Signed_Small;
         pragma Pack (Signed_Simple_Array);
         SSA : Signed_Simple_Array := (-1, 2, -3, 4);
      
      GDB currently print its value incorrectly for the elements that
      are negative:
      
          (gdb) print ssa
          $1 = (65535, 2, 1048573, 4)
          (gdb) print ssa(1)
          $2 = 65535
          (gdb) print ssa(2)
          $3 = 2
          (gdb) print ssa(3)
          $4 = 1048573
          (gdb) print ssa(4)
          $5 = 4
      
      What happens is that the sign-extension is not working because
      we're trying to do left shift with a negative count. In
      ada_value_primitive_packed_val, we have a loop which populates
      the extra bits of the target (unpacked) value, after extraction
      of the data from the original (packed) value:
      
              while (ntarg > 0)
                {
                  accum |= sign << accumSize;
                  unpacked[targ] = accum & ~(~0L << HOST_CHAR_BIT);
      !!! ->      accumSize -= HOST_CHAR_BIT;
                  accum >>= HOST_CHAR_BIT;
                  ntarg -= 1;
                  targ += delta;
                }
      
      At each iteration, accumSize gets decremented by HOST_CHAR_BIT,
      which can easily cause it to become negative, particularly on
      little endian targets, where accumSize is at most HOST_CHAR_BIT - 1.
      This causes us to perform a left-shift operation with a negative
      accumSize at the next loop iteration, which is undefined, and
      acutally does not produce the effect we wanted (value left untouched)
      when the code is compiled with GCC.
      
      This patch fixes the issue by simply setting accumSize to zero
      if negative.
      
      gdb/ChangeLog:
      
              * ada-lang.c (ada_value_primitive_packed_val): Make sure
              accumSize is never negative.
      
      gdb/testsuite/ChangeLog:
      
              * gdb.ada/pckd_neg: New testcase.
      9cd4d857
    • H.J. Lu's avatar
      Add -mshared option to x86 ELF assembler · 8dcea932
      H.J. Lu authored
      This patch adds -mshared option to x86 ELF assembler.  By default,
      assembler will optimize out non-PLT relocations against defined non-weak
      global branch targets with default visibility.  The -mshared option tells
      the assembler to generate code which may go into a shared library
      where all non-weak global branch targets with default visibility can
      be preempted.  The resulting code is slightly bigger.  This option
      only affects the handling of branch instructions.
      
      This Linux kernel patch is needed to create a working x86 Linux kernel if
      it hasn't been applied:
      
      diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
      index ae6588b..b91a00c 100644
      --- a/arch/x86/kernel/head_64.S
      +++ b/arch/x86/kernel/head_64.S
      @@ -339,8 +339,8 @@ early_idt_handlers:
       	i = i + 1
       	.endr
      
      -/* This is global to keep gas from relaxing the jumps */
      -ENTRY(early_idt_handler)
      +/* This is weak to keep gas from relaxing the jumps */
      +WEAK(early_idt_handler)
       	cld
      
       	cmpl $2,(%rsp)		# X86_TRAP_NMI
      --
      
      gas/
      
      	* config/tc-i386.c (shared): New.
      	(OPTION_MSHARED): Likewise.
      	(elf_symbol_resolved_in_segment_p): Add relocation argument.
      	Check PLT relocations and shared.
      	(md_estimate_size_before_relax): Pass fragP->fr_var to
      	elf_symbol_resolved_in_segment_p.
      	(md_longopts): Add -mshared.
      	(md_show_usage): Likewise.
      	(md_parse_option): Handle OPTION_MSHARED.
      	* doc/c-i386.texi: Document -mshared.
      
      gas/testsuite/
      
      	* gas/i386/i386.exp: Don't run pcrel for ELF targets.  Run
      	pcrel-elf, relax-4 and x86-64-relax-3 for ELF targets.
      	* gas/i386/pcrel-elf.d: New file.
      	* gas/i386/relax-4.d: Likewise.
      	* gas/i386/x86-64-relax-3.d: Likewise.
      	* gas/i386/relax-3.d: Pass -mshared to assembler.  Updated.
      	* gas/i386/x86-64-relax-2.d: Likewise.
      	* gas/i386/relax-3.s: Add test for PLT relocation.
      8dcea932
    • Nick Clifton's avatar
      Fix PR18374 by making readelf and objdump ignore end-of-list markers in the... · d1c4b12b
      Nick Clifton authored
      Fix PR18374 by making readelf and objdump ignore end-of-list markers in the .debug_loc section if there are relocations against them.
      
      	PR binutils/18374
      bin	* dwarf.h (struct dwarf_section): Add reloc_info and num_relocs
      	fields.
      	(struct dwarf_section_display): Change bitfield to boolean.
      	(reloc_at): Add prototype.
      	* dwarf.c (display_loc_list): Ignore list terminators if there are
      	relocs against them.
      	(display_debug_loc): Issue a warning if there are relocs against
      	the .debug_loc section.
      	(display_displays): Initialise reloc_info and num_relocs fields.
      	* objdump.c (load_specific_debug_section): Initialise reloc_info
      	and num_relocs fields.
      	(reloc_at): New function.
      	* readelf.c (is_32bit_abs_reloc): Add IA64's R_IA64_DIS32LSB
      	reloc.
      	(reloc_at): New function.
      	(apply_relocations): Add relocs_return and num_relocs_return
      	parameters.  Fill them in with the loaded relocs if non-NULL.
      	(dump_section_as_bytes): Update call to apply_relocations.
      	(load_specific_debug_section): Initialise reloc_info and
      	num_relocs fields.
      
      tests	* binutils-all/pr18374.s: New test file.
      	* binutils-all/readelf.exp: Assemble and run the new test.
      	* binutils-all/readelf.pr18374: Expected output from readelf.
      d1c4b12b
    • Peter Bergner's avatar
      Fix some PPC assembler errors. · 4bc0608a
      Peter Bergner authored
      Remove the wait instructions for server processors, since they were never
      implemented.  Also add the extra operands added to the tlbie and slbia
      instructions with ISA 2.06 and ISA 2.05 respectively.
      
      binutils/
      	* MAINTAINERS: Add myself as PPC maintainer.
      
      opcodes/
              * ppc-opc.c (IH) New define.
              (powerpc_opcodes) <wait>: Do not enable for POWER7.
              <tlbie>: Add RS operand for POWER7.
              <slbia>: Add IH operand for POWER6.
      
      gas/testsuite/
              * gas/ppc/power4.d: Add a slbia test.
              * gas/ppc/power4.s: Likewise.
              * gas/ppc/power6.d: Add slbia and tlbie tests.
              * gas/ppc/power6.s: Likewise.
              * gas/ppc/power7.d: Remove wait tests. Add a tlbie test.
              * gas/ppc/power7.s: Likewise.
      4bc0608a
    • GDB Administrator's avatar
      Automatic date update in version.in · 49a84e13
      GDB Administrator authored
      49a84e13
  3. 14 May, 2015 8 commits
    • H.J. Lu's avatar
      Don't add the zlib header to SHF_COMPRESSED section · dab394de
      H.J. Lu authored
      In a SHF_COMPRESSED compressed section, the raw compressed data should
      begin immediately after the compression header.  This patch removes the
      extra zlib header from the SHF_COMPRESSED section.
      
      bfd/
      
      	* bfd.c (bfd_update_compression_header): Also write the zlib
      	header if the SHF_COMPRESSED bit cleared..
      	(bfd_check_compression_header): Return the uncompressed size.
      	* compress.c (decompress_contents): Don't skip the zlib header.
      	(bfd_compress_section_contents): Properly handle ELFCOMPRESS_ZLIB,
      	which doesn't have the zlib header.
      	(bfd_init_section_decompress_status): Likewise.
      	(bfd_get_full_section_contents): Updated.
      	(bfd_is_section_compressed): Likewise.
      	(bfd_is_section_compressed_with_header): Return the uncompressed
      	size.
      	* elf.c (_bfd_elf_make_section_from_shdr): Updated.
      	* bfd-in2.h: Regenerated.
      
      binutils/
      
      	* readelf.c (uncompress_section_contents): Add a parameter for
      	uncompressed size.  Don't check the zlib header.
      	(load_specific_debug_section): Updated.
      
      binutils/testsuite/
      
      	* binutils-all/compress.exp: Replace "$OBJDUMP -s -j .debug_info"
      	with "$OBJDUMP -W".
      	* binutils-all/libdw2-compressedgabi.out: Updated.
      
      gas/
      
      2015-05-14  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* write.c (compress_debug): Don't write the zlib header, which
      	is handled by bfd_update_compression_header.
      dab394de
    • Don Breazeal's avatar
      Fix build gdbserver build errors on arm, mips, aarch64. · 61a7418c
      Don Breazeal authored
      Fix build errors introduced by
      https://sourceware.org/ml/gdb-patches/2015-05/msg00281.html, which
      didn't account for the change of the name of the struct process_info
      field 'private' to 'priv' made in
      https://sourceware.org/ml/gdb-patches/2015-02/msg00829.html.
      
      gdb/gdbserver/ChangeLog:
      
      	* linux-aarch64-low.c (aarch64_linux_new_fork): Change reference
      	to process_info.private to process_info.priv.
      	* linux-arm-low.c (arm_new_fork): Likewise.
      	* linux-mips-low.c (mips_linux_new_fork): Likewise.
      61a7418c
    • Joel Brobecker's avatar
      Fix gdbserver build failure on arm-android. · 1041a03c
      Joel Brobecker authored
      The following patch...
      
      | proc-service, extern "C"
      |
      | libthread_db.so calls symbols in the client (GDB), through the
      | proc-service interface.  These routines must have extern "C" linkage
      | so their symbol names are not mangled when GDB is built as a C++
      | program.  On the GDBserver side, we were missing fallback declarations for
      | all these symbols.
      |
      | gdb/ChangeLog:
      |
      |     * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
      |
      | gdb/gdbserver/ChangeLog:
      | 2015-02-27  Pedro Alves  <palves@redhat.com>
      |
      |     * gdb_proc_service.h: Wrap with EXTERN_C_PUSH/EXTERN_C_POP.
      |     [!HAVE_PROC_SERVICE_H] (struct ps_prochandle): Forward declare.
      |     [!HAVE_PROC_SERVICE_H] (ps_pdread, ps_pdwrite, ps_ptread)
      |     ps_ptwrite, ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
      |     (ps_lsetfpregs, ps_getpid)
      |     (ps_get_thread_area, ps_pglobal_lookup, ps_pstop, ps_pcontinue)
      |     (ps_lstop, ps_lcontinue, ps_lgetxregsize, ps_lgetxregs)
      |     (ps_lsetxregs, ps_plog): Declare.
      
      ... added a number of declarations which do not compile when cross-
      compiling GDBserver on arm-android. The problem comes from type
      prfpregset_t not being declared:
      
          /[...]/gdbserver/gdb_proc_service.h:98:47:
          error: unknown type name 'prfpregset_t'
      
      After searching through the includes of the install we have,
      I could not find that type being declared anywhere. So I did
      the same as for prgregset_t, and created the typedef if the
      type isn't declared.
      
      gdb/gdbserver/ChangeLog:
      
              * configure.ac: Add prfpregset_t BFD_HAVE_SYS_PROCFS_TYPE check.
              * configure, config.in: Regenerate.
              * gdb_proc_service.h [HAVE_PRFPREGSET_T] (prfpregset_t):
              Declare typedef.
      1041a03c
    • Patrick Palka's avatar
      Remove buggy xterm workaround in tui_dispatch_ctrl_char() · e3555239
      Patrick Palka authored
      The function tui_dispatch_ctrl_char() has an old workaround (from 1999)
      for buggy terminals and/or ncurses library that don't return page
      up/down keys as single characters.  Because the workaround is so old, I
      think the bug it is targetting is no longer relevant anymore.
      
      But more importantly, the workaround is itself buggy: it 1) performs a
      blocking call to wgetch() and 2) if the key returned by wgetch() does
      not make up a relevant key sequence it throws away the input instead of
      pushing it back via ungetch().  And indeed the workaround breaks Alt-key
      sequences under TERM=xterm because of bug #2.
      
      So this patch removes the buggy workaround and tidies up the function
      accordingly.
      
      I personally tested this change on a recent xterm (with TERM=xterm) in
      Fedora 20 and had no problems with having ncurses properly interpret
      page up/down keys.  And Alt-key sequences now work when TERM=xterm too.
      
      gdb/ChangeLog:
      
      	* tui/tui-command.c: Remove include of <ctype.h>.
      	(tui_dispatch_ctrl_char): Remove workaround for xterm terminals.
      e3555239
    • Jiong Wang's avatar
      [AArch64] Remove BFD overflow check restrictions · fdc3b1b1
      Jiong Wang authored
      bfd/
        * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Remove overflow
        check restriction.
      fdc3b1b1
    • Nick Clifton's avatar
      Update description of the ASSERT linker script command to note its interation... · fd1c4238
      Nick Clifton authored
      Update description of the ASSERT linker script command to note its interation with PROVIDEd symbols.
      
      	* ld.texinfo (ASSERT): Describe the interaction with PROVIDEd
      	symbols.
      fd1c4238
    • Max Filippov's avatar
      xtensa: fix localized symbol refcounting with --gc-sections · e6c9a083
      Max Filippov authored
      elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
      made local, that results in link failure with the following message:
      
        BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
        3372 in elf_xtensa_finish_dynamic_sections
      
      elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
      relocation type. Relocation types are not changed when symbol becomes
      local, but its PLT references are added to GOT references and
      plt.refcount is set to 0. Such symbol cannot be unreferences in the
      elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
      relocations section size not match number of GOT relocations.
      
      Fix it by treating PLT reference as GOT reference when plt.refcount is
      not positive.
      
      2015-05-14  Max Filippov  <jcmvbkbc@gmail.com>
      bfd/
      	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
      	as GOT reference when plt.refcount is not positive.
      e6c9a083
    • GDB Administrator's avatar
      Automatic date update in version.in · d121800b
      GDB Administrator authored
      d121800b
  4. 13 May, 2015 13 commits
    • Martin Galvan's avatar
      dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine. · 08a76f8a
      Martin Galvan authored
      gdb/ChangeLog:
      
      	* dwarf2read.c (die_needs_namespace): Return 1 for
      	DW_TAG_inlined_subroutine.
      08a76f8a
    • Doug Evans's avatar
      revert previous patch, author not set · 93b2e21d
      Doug Evans authored
      93b2e21d
    • Doug Evans's avatar
      dwarf2read.c (die_needs_namespace): Return 1 for DW_TAG_inlined_subroutine. · da0580a6
      Doug Evans authored
      gdb/ChangeLog:
      
      	* dwarf2read.c (die_needs_namespace): Return 1 for
      	DW_TAG_inlined_subroutine.
      da0580a6
    • H.J. Lu's avatar
    • Jan Kratochvil's avatar
      Make regcache_cpy_no_passthrough static · bd49952b
      Jan Kratochvil authored
      regcache_cpy_no_passthrough is no longer used for a standalone call.
      
      gdb/ChangeLog
      2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
      
      	* regcache.c (regcache_cpy_no_passthrough): New declaration.
      	(regcache_cpy_no_passthrough): Make it static, add function comment.
      	* regcache.h (regcache_dup, regcache_cpy): Reduce/update their comment.
      	(regcache_cpy_no_passthrough): Remove declaration.
      bd49952b
    • Jan Kratochvil's avatar
      Remove stop_registers · 46c03469
      Jan Kratochvil authored
      Now stop_registers are no longer used and it can be removed.
      
      I am not much sure what 'proceed_to_finish' really means now so I make a wild
      guess while updating comments about it.
      
      gdb/ChangeLog
      2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
      
      	* gdbthread.h (struct thread_control_state): Update comment for
      	proceed_to_finish.
      	* infcall.c (run_inferior_call): Update comment about
      	proceed_to_finish.
      	* infcmd.c (get_return_value): Update comment about stop_registers.
      	(finish_forward): Update comment about proceed_to_finish.
      	* infrun.c (stop_registers): Remove.
      	(clear_proceed_status, normal_stop): Remove stop_registers handling.
      	* infrun.h (stop_registers): Remove.
      46c03469
    • Jan Kratochvil's avatar
      infcall: stop_registers -> register_dummy_frame_dtor · 8a6c4031
      Jan Kratochvil authored
      With dummy_frame destructors GDB no longer has to use global stop_registers.
      dummy_frame's registers can be now stored associated with their specific
      dummy_frame.
      
      gdb/ChangeLog
      2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
      
      	* infcall.c (struct dummy_frame_context_saver)
      	(dummy_frame_context_saver_data_free, dummy_frame_context_saver_dtor)
      	(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
      	(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
      	New.
      	(call_function_by_hand_dummy): Move discard_cleanups of
      	inf_status_cleanup before dummy_frame_push.  Call
      	dummy_frame_context_saver_setup and prepare context_saver_cleanup.
      	Use dummy_frame_context_saver_get_regs instead of stop_registers.
      	* infcall.h (struct dummy_frame_context_saver)
      	(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
      	(dummy_frame_context_saver_get_regs, dummy_frame_context_saver_setup):
      	New declarations.
      	* infcmd.c: Include infcall.h.
      	(get_return_value): Add parameter ctx_saver, use it instead of
      	stop_registers.
      	(print_return_value): Add parameter ctx_saver, pass it.
      	(struct finish_command_continuation_args): Add field ctx_saver.
      	(finish_command_continuation): Update print_return_value caller.
      	(finish_command_continuation_free_arg): Free also ctx_saver.
      	(finish_forward): Call dummy_frame_context_saver_setup.
      	* inferior.h (struct dummy_frame_context_saver): New declaration.
      	(get_return_value): Add parameter ctx_saver.
      	* python/py-finishbreakpoint.c (bpfinishpy_pre_stop_hook): Update
      	get_return_value caller.
      8a6c4031
    • Jan Kratochvil's avatar
      register_dummy_frame_dtor: Permit multiple dtors · 10989690
      Jan Kratochvil authored
      Later patch needs two independent destructors for the same dummy_frame.
      Therefore the registrar has been extended to an arbitrary number of
      destructors.
      
      gdb/ChangeLog
      2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
      
      	* dummy-frame.c (struct dummy_frame_dtor_list): New.
      	(struct dummy_frame): Replace dtor and dtor_data by dtor_list.
      	(remove_dummy_frame): Process dtor_list.
      	(pop_dummy_frame): Process dtor_list.
      	(register_dummy_frame_dtor): Maintain dtor_list.
      	(find_dummy_frame_dtor): Handle dtor_list.
      	* dummy-frame.h (register_dummy_frame_dtor, find_dummy_frame_dtor):
      	Update comments.
      10989690
    • Jan Kratochvil's avatar
      Call dummy_frame_dtor_ftype also from remove_dummy_frame · 5e970501
      Jan Kratochvil authored
      There was now a leak-like bug that if dummy_frame "disappeared" by
      remove_dummy_frame then its destructor was not called.  For example in the case
      of 'compile code' dummy frames the injected objfile would never get freed after
      some inferior longjmp out of the injected code.
      
      gdb/ChangeLog
      2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
      
      	* compile/compile-object-run.c (do_module_cleanup): Add parameter
      	registers_valid.
      	(compile_object_run): Update do_module_cleanup caller.
      	* dummy-frame.c: Include infcall.h.
      	(struct dummy_frame): Update dtor comment.
      	(remove_dummy_frame): Call dtor.
      	(pop_dummy_frame): Update dtor caller.
      	* dummy-frame.h (dummy_frame_dtor_ftype): Add parameter
      	registers_valid.
      5e970501
    • Joel Brobecker's avatar
      Document the GDB 7.9.1 release in gdb/ChangeLog · 1c4eb778
      Joel Brobecker authored
      gdb/ChangeLog:
      
      	GDB 7.9.1 released.
      1c4eb778
    • Joel Brobecker's avatar
      gdb/NEWS: Move "Xmethods can now specify a result type" to GDB 7.9.1 section. · f5f85ab9
      Joel Brobecker authored
      As this change was ported to GDB 7.9.1, the NEWS entry is moved to
      a newly-created "Changes in GDB 7.9.1" section, matching the NEWS
      file which is going to be distributed with the GDB 7.9.1 release.
      
      gdb/ChangeLog:
      
              * NEWS: Create "Changes in GDB 7.9.1" section.  Move news about
              Xmethods now being able to specify a result type to that new
              section.
      f5f85ab9
    • John David Anglin's avatar
      Disable the configuration of GDB for HPUX targets. · 5569a85f
      John David Anglin authored
      	* configure.ac: Disable configuration of GDB for HPUX targets.
      	* configure: Regenerate.
      5569a85f
    • Max Filippov's avatar
      xtensa: fix gas trampolines regression · dc58915f
      Max Filippov authored
      Extra condition 'abs (addr - trampaddr) < J_RANGE / 2' for trampoline
      selection results in regressions: when relaxable jump is little longer
      than J_RANGE so that single trampoline makes two new jumps, one longer
      than J_RANGE / 2 and one shorter, correct trampoline cannot be found.
      
      Drop that condition.
      
      2015-05-13  Max Filippov  <jcmvbkbc@gmail.com>
      gas/
      	* config/tc-xtensa.c (xtensa_relax_frag): Allow trampoline to be
      	closer than J_RANGE / 2 to jump frag.
      
      gas/testsuite/
      	* gas/xtensa/trampoline.s: Add regression testcase.
      dc58915f