1. May 11, 2021
    • Sergey Belyashov's avatar
      Report illegal Z80 load instructions. · cfe7a191
      Sergey Belyashov authored
      	PR 27823
      	* config/tc-z80.c (emit_ld_r_m): Report an illegal load
      	instruction.
      	* testsuite/gas/z80/ill_ops.s: New test source file.
      	* testsuite/gas/z80/ill_ops.d: New test driver.
      	* testsuite/gas/z80/ill_ops.l: New test error output.
      cfe7a191
    • Alan Modra's avatar
      PR27845, readelf heap-buffer-overflow · f2f9554b
      Alan Modra authored
      	PR 27845
      	* dwarf.c (process_abbrev_set): Replace start and end parameters
      	with section, abbrev_base, abbrev_size, abbrev_offset.  Update
      	all callers.  Sanity check parameters correctly and emit warnings
      	here rather than..
      	(process_debug_info): ..here.
      f2f9554b
    • GDB Administrator's avatar
      Automatic date update in version.in · 2005aa02
      GDB Administrator authored
      2005aa02
    • Lancelot SIX's avatar
      [PR gdb/27614] gdb-add-index fails on symlinks. · db1f6cd6
      Lancelot SIX authored
      PR 27614 shows that gdb-add-index fails to generate the index when its
      argument is a symlink.
      
      The following one liner illustrates the reported problem:
      
              $ echo 'int main(){}'|gcc -g -x c -;ln -s a.out symlink;gdb-add-index symlink
              gdb-add-index: No index was created for symlink
              gdb-add-index: [Was there no debuginfo? Was there already an index?]
              $ ls -l
              -rwxr-xr-x 1 25712 Mar 19 23:05 a.out*
              -rw------- 1  8277 Mar 19 23:05 a.out.gdb-index
              lrwxrwxrwx 1     5 Mar 19 23:05 symlink -> a.out*
      
      GDB generates the .gdb-index file with a name that matches the name of
      the actual program (a.out.gdb-index here), not the symlink that
      references it.  The remaining of the script is looking for a file named
      after the provided argument (would be 'symlink.gdb-index' in our
      example).
      
      gdb/ChangeLog:
      
      	PR gdb/27614
      	* contrib/gdb-add-index.sh: Fix when called with a symlink as an
      	argument.
      
      gdb/testsuite/ChangeLog:
      
      	PR gdb/27614
      	* gdb.dwarf2/gdb-add-index-symlink.exp: New test.
      db1f6cd6
    • H.J. Lu's avatar
      Remove strayed fprintf in commit 23182ac0 · b397aef4
      H.J. Lu authored
      	PR binutils/27839
      	* simple.c (bfd_simple_get_relocated_section_contents): Remove
      	strayed fprintf.
      b397aef4
    • Andrew Burgess's avatar
      gdb/testsuite: don't use source tree as temporary HOME directory · 9344937b
      Andrew Burgess authored
      In this commit:
      
        commit 1845e254
        Date:   Wed May 5 16:50:17 2021 +0100
      
            gdb/guile: perform tilde expansion when sourcing guile scripts
      
      A test was added that tries to source a guile script from the users
      HOME directory.  In order to achieve this the test (temporarily)
      modifies $HOME to point into the binutils-gdb source tree.
      
      The problem with this is that sourcing a guile script can cause the
      guile script to be byte compiled and written into a .cache/ directory,
      which is stored .... in the $HOME directory.
      
      The result was that the test added in the above commit would cause a
      .cache/ directory to be added into the binutils-gdb source tree.
      
      In this commit the test is updated to create a new directory in the
      build tree, the file we want to source is copied over, and $HOME is
      set to point at the location in the build tree.  Now when the test is
      run the .cache/ directory is created in the build tree, leaving the
      source tree untouched.
      
      gdb/testsuite/ChangeLog:
      
      	* gdb.guile/guile.exp: Don't use the source directory as a
      	temporary HOME directory.
      9344937b
    • Simon Marchi's avatar
      gdb/testsuite: use proc parameters in gdb.arch/amd64-osabi.exp · 0709cf68
      Simon Marchi authored
      This test has a little oversight: the test procedure doesn't actually
      use its parameters, the commands and expected patterns are hard-coded,
      so we always test with i386:x86-64, instead of with the three arches.
      Fix that.
      
      gdb/testsuite/ChangeLog:
      
      	* gdb.arch/amd64-osabi.exp (test_osabi_none): Use the
      	parameters.
      
      Change-Id: Iee2c32963d09e502ae791d5df2b6c04a1f49a57a
      0709cf68
    • Simon Marchi's avatar
      gdb, gdbserver: make status_to_str display the signal name · 31aceaef
      Simon Marchi authored
      I was looking at some "set debug lin-lwp" logs, and saw that a thread
      received the "Child exited" signal.  It took me a moment to realize that
      this was SIGCHLD.  I then thought that it would be nice for
      status_to_str to show the signal name (SIGCHLD) in addition to the
      description "Child exited", since people are much more used to referring
      to signals using their names.
      
      Fortunately, libiberty contains a handy function to get the signal name
      from the signal number, strsigno, use that.
      
      The output of "set debug lin-lwp" now looks like:
      
          [linux-nat] linux_nat_wait_1: waitpid 1209631 received SIGTRAP - Trace/breakpoint trap (stopped)
      
      gdb/ChangeLog:
      
      	* nat/linux-waitpid.c (status_to_str): Show signal name.
      
      Change-Id: I8ad9b1e744dd64461fd87b08d5c29f9ef97c4691
      31aceaef
  2. May 10, 2021
    • Nick Clifton's avatar
      Fix an indirection via uninitialised memory when parsing a corrupt input file. · 23182ac0
      Nick Clifton authored
      	PR 27839
      	* simple.c (simple_dummy_add_to_set): New function.
      	(simple_dummy_constructor): New function.
      	(simple_dummy_multiple_common): New function.
      	(bfd_simple_get_relocated_section_contents): Zero out the
      	callbacks structure, and then set the add_to_set, constructor and
      	multiple_common fields.
      23182ac0
    • Dimitar Dimitrov's avatar
      Enable linker garbage collection for the PRU target. · 5b45e89f
      Dimitar Dimitrov authored
      bfd	* elf32-pru.c (elf_backend_can_gc_sections): Define as 1.
      
      ld	* testsuite/ld-elf/group8a.d: Remove pru from XFAIL list.
      	* testsuite/ld-elf/group8b.d: Ditto.
      	* testsuite/ld-elf/group9a.d: Ditto.
      	* testsuite/ld-elf/group9b.d: Ditto.
      	* testsuite/ld-elf/pr12851.d: Ditto.
      	* testsuite/ld-elf/pr22677.d: Ditto.
      	* testsuite/lib/ld-lib.exp (check_gc_sections_available): Remove
      	pru from list.
      5b45e89f
    • Dimitar Dimitrov's avatar
      PRU: Add alignment for resource table, and allow sizes of memory regions to be... · 261980de
      Dimitar Dimitrov authored
      PRU: Add alignment for resource table, and allow sizes of memory regions to be set from the command line.
      
      ld	* scripttempl/pru.sc (.resource_table): Add ALIGN directive.
      	Use symbols for memory sizes.
      261980de
    • Sergey Belyashov's avatar
      Add support for 8-bit and 24-bit shifts in the z80 assembler. · e4b1ab20
      Sergey Belyashov authored
      	PR 27415
      	* config/tc-z80.c (emit_data_val): Add support for 8-bit and
      	24-bit shifts.
      	* testsuite/gas/z80/z80_reloc.a: Update tests.
      	* testsuite/gas/z80/z80_reloc.d: Update expected disassembly.
      e4b1ab20
    • Thomas Wolff's avatar
      Restore old behaviour of windres so that options containing spaces are not... · 749c7002
      Thomas Wolff authored
      Restore old behaviour of windres so that options containing spaces are not enclosed in double quotes.
      
      	PR 4356
      	PR 26865
      	PR 27594
      	* windres.c (quot): Revert previous delta.  Do not use double
      	quotes when spaces are detected in options.
      	* doc/binutils.texi (windres): Remove suggestion that the
      	--preprocessor option can take arguments.
      749c7002
    • Andrew Burgess's avatar
      gdb/doc: reword a sentence · 802021d4
      Andrew Burgess authored
      Change this:
      
        The available watchpoint types represented by constants are defined
        in the gdb module:
      
      to this:
      
        The available watchpoint types are represented by constants defined
        in the gdb module:
      
      The new version matches a similar line a few lines up the document
      which reads:
      
        The available types are represented by constants defined in the gdb
        module:
      
      gdb/doc/ChangeLog:
      
      	* guile.texinfo (Breakpoints In Guile): Reword sentence.
      	* python.texinfo (Breakpoints In Python): Reword sentence.
      802021d4
    • Alan Modra's avatar
      Avoid possible pointer wrap · 2d4b4986
      Alan Modra authored
      PTR supplied to these macros can be read from user input, END is an
      end of buffer pointer.  It's safer to do arithmetic on END than on PTR.
      
      	* dwarf.c (SAFE_BYTE_GET): Check bounds by subtracting amount from
      	END rather than adding amount to PTR.
      	(SAFE_SIGNED_BYTE_GET, SAFE_BYTE_GET64): Likewise.
      2d4b4986
    • GDB Administrator's avatar
      Automatic date update in version.in · 400f0c9b
      GDB Administrator authored
      400f0c9b
  3. May 09, 2021
    • Andrew Burgess's avatar
      gdb/doc: document 'set debug py-unwind' · 9dffa1aa
      Andrew Burgess authored
      When the 'set debug py-unwind' flag was added, it was never documented
      in the manual.  This commit adds some text for this command to the
      manual.
      
      gdb/doc/ChangeLog:
      
      	* python.texinfo (Python Commands): Document 'set debug
      	py-unwind' and 'show debug py-unwind'.
      9dffa1aa
    • Andrew Burgess's avatar
      gdb/py: add some debugging to py-breakpoint.c · 75140e3b
      Andrew Burgess authored
      Adds some new debugging to python/py-breakpoint.c.
      
      gdb/ChangeLog:
      
      	* python/py-breakpoint.c (pybp_debug): New static global.
      	(show_pybp_debug): New function.
      	(pybp_debug_printf): Define.
      	(PYBP_SCOPED_DEBUG_ENTER_EXIT): Define.
      	(gdbpy_breakpoint_created): Add some debugging.
      	(gdbpy_breakpoint_deleted): Likewise.
      	(gdbpy_breakpoint_modified): Likewise.
      	(_initialize_py_breakpoint): New function.
      
      gdb/doc/ChangeLog:
      
      	* python.texinfo (Python Commands): Document 'set debug
      	py-breakpoint' and 'show debug py-breakpoint'.
      75140e3b
    • Andrew Burgess's avatar
      gdb/py: convert debug logging in py-unwind to use new scheme · 1ef40c13
      Andrew Burgess authored
      Converts the debug print out in python/py-unwind.c to use the new
      debug printing scheme.  I have also modified what is printed in a few
      places, for example, rather than printing frame pointers, I now print
      the frame level, this matches what we do in the general 'set debug
      frame' tracing, and is usually more helpful (I think).
      
      I also added a couple of ENTER/EXIT scope printers.
      
      gdb/ChangeLog:
      
      	* python/py-unwind.c (pyuw_debug): Convert to bool.
      	(show_pyuw_debug): New function.
      	(pyuw_debug_printf): Define.
      	(PYUW_SCOPED_DEBUG_ENTER_EXIT): Define.
      	(pyuw_this_id): Convert to new debug print macros.
      	(pyuw_prev_register): Likewise.
      	(pyuw_sniffer): Likewise.
      	(pyuw_dealloc_cache): Likewise.
      	(_initialize_py_unwind): Update now pyuw_debug is a bool, and add
      	show function when registering.
      1ef40c13
    • Andrew Burgess's avatar
      gdb: replace fprint_frame_id · 927c4e35
      Andrew Burgess authored
      Replace fprint_frame_id with a member function frame_id::to_string
      that returns a std::string.  Convert all of the previous users of
      fprint_frame_id to use the new member function.  This means that
      instead of writing things like this:
      
        fprintf_unfiltered (file, " id=");
        fprint_frame_id (file, s->id.id);
      
      We can write this:
      
        fprintf_unfiltered (file, " id=%s", s->id.id.to_string ().c_str ());
      
      There should be no user visible changes after this commit.
      
      gdb/ChangeLog:
      
      	* dummy-frame.c (fprint_dummy_frames): Convert use of
      	fprint_frame_id to use frame_id::to_string.
      	* frame.c (fprint_field): Delete.
      	(fprint_frame_id): Moved to...
      	(frame_id::to_string): ...this, rewritten to return a string.
      	(fprint_frame): Convert use of fprint_frame_id to use
      	frame_id::to_string.
      	(compute_frame_id): Likewise.
      	(frame_id_p): Likewise.
      	(frame_id_eq): Likewise.
      	(frame_id_inner): Likewise.
      	* frame.h (struct frame_id) <to_string>: New member function.
      	(fprint_frame_id): Delete declaration.
      	* guile/scm-frame.c (frscm_print_frame_smob): Convert use of
      	fprint_frame_id to use frame_id::to_string.
      	* python/py-frame.c (frame_object_to_frame_info): Likewise.
      	* python/py-unwind.c (unwind_infopy_str): Likewise.
      	(pyuw_this_id): Likewise.
      927c4e35
    • Alan Modra's avatar
      Use htab_eq_string in libctf · 4821e618
      Alan Modra authored
      	* ctf-impl.h (ctf_dynset_eq_string): Don't declare.
      	* ctf-hash.c (ctf_dynset_eq_string): Delete function.
      	* ctf-dedup.c (make_set_element): Use htab_eq_string.
      	(ctf_dedup_atoms_init, ADD_CITER, ctf_dedup_init): Likewise.
      	(ctf_dedup_conflictify_unshared): Likewise.
      	(ctf_dedup_walk_output_mapping): Likewise.
      4821e618
    • Alan Modra's avatar
      Use htab_eq_string in binutils · b05a0fc7
      Alan Modra authored
      A quick check says this is the only place in all of bfd, opcodes,
      binutils, gas, ld, gprof that duplicates the new libiberty
      htab_eq_string.
      
      	* objcopy.c (eq_string): Delete.
      	(create_symbol_htab): Use htab_eq_string.
      b05a0fc7
    • Simon Marchi's avatar
      gdbsupport: re-generate configure & friends · b6703327
      Simon Marchi authored
      I get these changes when re-generating the autoconf stuff in gdbsupport,
      fallouts from 4655f850 ("Don't run personality syscall at configure
      time; don't check it at all").
      
      gdbsupport/ChangeLog:
      
      	* Makefile.in: Re-generate.
      	* config.in: Re-generate.
      	* configure: Re-generate.
      
      Change-Id: Ie1876ee58d6f4f1cf25fa14900eecf4c85a744c1
      b6703327
    • Simon Marchi's avatar
      gdb, gdbserver: make status_to_str return std::string · 8d06918f
      Simon Marchi authored
      Instead of using a static buffer.  This is safer, and we don't really
      mind about any extra dynamic allocation here, since it's only used for
      debug purposes.
      
      gdb/ChangeLog:
      
      	* nat/linux-waitpid.c (status_to_str): Return std::string.
      	* nat/linux-waitpid.h (status_to_str): Likewise.
      	* linux-nat.c (linux_nat_post_attach_wait): Adjust.
      	(linux_nat_target::attach): Adjust.
      	(linux_handle_extended_wait): Adjust.
      	(wait_lwp): Adjust.
      	(stop_wait_callback): Adjust.
      	(linux_nat_filter_event): Adjust.
      	(linux_nat_wait_1): Adjust.
      	* nat/linux-waitpid.c (status_to_str): Adjust.
      	* nat/linux-waitpid.h (status_to_str): Adjust.
      
      gdbserver/ChangeLog:
      
      	* linux-low.cc (linux_process_target::wait_for_event_filtered):
      	Adjust to status_to_str returning std::string.
      
      Change-Id: Ia8aead70270438a5690f243e6faafff6c38ff757
      8d06918f
    • Simon Marchi's avatar
      gdb: add missing space in infrun_debug_printf · 550e9289
      Simon Marchi authored
      gdb/ChangeLog:
      
      	* infrun.h (infrun_debug_printf): Add missing space.
      
      Change-Id: I476096a098451ff2019ab38caa41ebfef0e04a1c
      550e9289
    • GDB Administrator's avatar
      Automatic date update in version.in · 9ef1d5f4
      GDB Administrator authored
      9ef1d5f4
    • Mike Frysinger's avatar
      sim: h8300: clean up various warnings · bb608f81
      Mike Frysinger authored
      A random grab bag of minor fixes to enable -Werror for this port.
      
      Disable h8_set_macS for now as it's unused.
      Initialize trace & intMask before using them.
      Mark local set_h8300h function static.
      bb608f81
    • Mike Frysinger's avatar
      sim: touch modules target · b50a658a
      Mike Frysinger authored
      If there are no updates to the file, touch the result so we don't
      keep trying to regenerate it.
      b50a658a
    • Mike Frysinger's avatar
      sim: cgen: tweak trace format · 532497fe
      Mike Frysinger authored
      Fixes build warnings when the address size isn't an integer.
      532497fe
    • Mike Frysinger's avatar
      sim: cgen: namespace mode_names a bit · 12279229
      Mike Frysinger authored
      These are exported in the library linkage, so add a cgen_ prefix.
      12279229
    • Mike Frysinger's avatar
      sim: cgen: tweak cgen_rtx_error to fix warnings · 6ae9091a
      Mike Frysinger authored
      The function was missing a prototype, and passing a constant string
      as the format string instead of going through a %s format.
      6ae9091a
    • Mike Frysinger's avatar
      sim: cgen: tweak initializers to avoid warnings · aac7ce3c
      Mike Frysinger authored
      Use {} instead of {0} to avoid warnings:
      
      common/cgen-utils.c:59:1: warning: missing braces around initializer [-Wmissing-braces]
         59 | {
            | ^
         60 |   {
         61 |     VIRTUAL_INSN_X_INVALID, "--invalid--", NULL, 0, { V, { 0 } }
            |                                                            {{}}
      
      Generated code should be the same.
      aac7ce3c
    • Mike Frysinger's avatar
      binutils: update release docs process · 354c317e
      Mike Frysinger authored
      Now that we generate multiple html & pdf forms, update the release
      process to show how they get updated.
      354c317e
    • Mike Frysinger's avatar
      support generating multi-html pages in parallel · cf758b39
      Mike Frysinger authored
      Use the pattern from other projects where we generate the html pages
      in a dir named the same as the project.  So now we have:
      gas/doc/gas.html - single html page
      gas/doc/gas/ - multiple html pages
      
      This works for projects that have a doc/ subdir already, but gprof &
      ld require a little tweaking since they generate their docs in their
      respective toplevels.
      cf758b39
  4. May 08, 2021
    • Mike Frysinger's avatar
      generate single html manual page by default · 2faf902d
      Mike Frysinger authored
      This better matches other GNU projects like autoconf/automake where
      the html manual is the single page form.  We'll support the multi-page
      form in a follow up change.
      2faf902d
    • Mike Frysinger's avatar
      sim: add html & pdf stubs · 0d0878d7
      Mike Frysinger authored
      We stub out the info targets already since we don't provide any.
      0d0878d7
    • Tom Tromey's avatar
      sim: use htab_eq_string · 65a9835b
      Tom Tromey authored
      This changes the sim to use htab_eq_string from libiberty.
      
      sim/common/ChangeLog
      2021-05-08  Tom Tromey  <tom@tromey.com>
      
      	* sim-options.c (compare_strings): Remove.
      	(dup_arg_p): Use htab_eq_string.
      65a9835b
    • Pedro Alves's avatar
      Don't run personality syscall at configure time; don't check it at all · 4655f850
      Pedro Alves authored
      Currently, in order to tell whether support for disabling address
      space randomization on Linux is available, GDB checks if the
      personality syscall works, at configure time.  I.e., it does a run
      test, instead of a compile/link test:
      
        AC_RUN_IFELSE([PERSONALITY_TEST],
      		[have_personality=true],
      		[have_personality=false],
      
      This is a bit bogus, because the machine the build is done on may not
      (and is when you consider distro gdbs) be the machine that eventually
      runs gdb.  It would be better if this were a compile/link test
      instead, and then at runtime, GDB coped with the personality syscall
      failing.  Actually, GDB already copes.
      
      One environment where this is problematic is building GDB in a Docker
      container -- by default, Docker runs the container with seccomp, with
      a profile that disables the personality syscall.  You can tell Docker
      to use a less restricted seccomp profile, but I think we should just
      fix it in GDB.
      
      "man 2 personality" says:
      
             This system call first appeared in Linux 1.1.20 (and thus first
             in a stable kernel release with Linux 1.2.0); library support
             was added in glibc 2.3.
      
      ...
      
             ADDR_NO_RANDOMIZE (since Linux 2.6.12)
                    With this flag set, disable address-space-layout randomization.
      
      glibc 2.3 was released in 2002.
      Linux 2.6.12 was released in 2005.
      
      The original patch that added the configure checks was submitted in
      2008.  The first version of the patch that was submitted to the list
      called personality from common code:
      
       https://sourceware.org/pipermail/gdb-patches/2008-June/058204.html
      
      and then was moved to Linux-specific code:
      
       https://sourceware.org/pipermail/gdb-patches/2008-June/058209.html
      
      Since HAVE_PERSONALITY is only checked in Linux code, and
      ADDR_NO_RANDOMIZE exists for over 15 years, I propose just completely
      removing the configure checks.
      
      If for some odd reason, some remotely modern system still needs a
      configure check, then we can revert this commit but drop the
      AC_RUN_IFELSE in favor of always doing the AC_LINK_IFELSE
      cross-compile fallback.
      
      gdb/ChangeLog:
      
      	* linux-nat.c (linux_nat_target::supports_disable_randomization):
      	Remove references to HAVE_PERSONALITY.
      	* nat/linux-personality.c: Remove references to HAVE_PERSONALITY.
      	(maybe_disable_address_space_randomization)
      	(~maybe_disable_address_space_randomizatio): Remove references to
      	HAVE_PERSONALITY.
      	* config.in, configure: Regenerate.
      
      gdbserver/ChangeLog:
      
      	* linux-low.cc:
      	(linux_process_target::supports_disable_randomization): Remove
      	reference to HAVE_PERSONALITY.
      	* config.in, configure: Regenerate.
      
      gdbsupport/ChangeLog:
      
      	* common.m4 (personality test): Remove.
      4655f850
    • Pedro Alves's avatar
      Don't include sys/personality.h in linux-low.cc anymore · e2ea3a38
      Pedro Alves authored
      Lancelot pointed out that since the refactor at:
      
        https://sourceware.org/pipermail/gdb-patches/2015-January/120503.html
      
      the sys/personality.h include is not needed in linux-low.cc anymore,
      as it does not call personality directly itself anymore.
      
      gdbserver/ChangeLog:
      
      	* linux-low.cc: Don't include sys/personality.h or define
      	ADDR_NO_RANDOMIZE.
      e2ea3a38
    • Mike Frysinger's avatar
      sim: m68hc11: fix up cycle buffer printing · 8a16cc4b
      Mike Frysinger authored
      Make sure the local static buffer is large enough, and simplify the
      sprintf for merging the fields all into one.  This fixes compiler
      warnings from buf possibly being overflowed.
      8a16cc4b