summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* GDB: Add references to erased args in cli-decode.cMaciej W. Rozycki2023-01-181-11/+6
| | | | | | | | | | | Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct within cmd_list_element") and commit 702991711a91 ("gdb: Have setter and getter callbacks for settings") and update inline documentation accordingly for `add_set_or_show_cmd' and `add_setshow_cmd_full_erased', documenting the `args' parameter and removing references to `var', `set_setting_func' and `get_setting_func'. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* GDB: Add missing inline documentation for `add_setshow_cmd_full'Maciej W. Rozycki2023-01-181-0/+12
| | | | | | Complement commit 1d7fe7f01b93 ("gdb: Introduce setting construct within cmd_list_element") and add missing description for `add_setshow_cmd_full'.
* GDB: Correct inline documentation for `add_setshow_cmd_full_erased'Maciej W. Rozycki2023-01-181-1/+1
| | | | Use proper English in the description of SET_LIST and SHOW_LIST.
* GDB: Fix documentation for `theclass' parameters in cli-decode.cMaciej W. Rozycki2023-01-181-11/+11
| | | | | | | | Rename CLASS to THECLASS in the documentation for `theclass' parameters throughout cli-decode.c, complementing commit fe978cb071b4 ("C++ keyword cleanliness, mostly auto-generated"). Approved-By: Simon Marchi <simon.marchi@efficios.com>
* Fix 'make TAGS' in gdbserverTom Tromey2023-01-181-3/+4
| | | | | | | | | | | | PR build/29003 points out that "make TAGS" is broken in gdbserver. This patch fixes the problem that is pointed out there, plus another one I noticed while working on that -- namely that the "sed" computes the wrong names for some source files. Finally, a couple of obsolete variable references are removed. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29003
* Revert "X86: reverse-finish fix"Carl Love2023-01-1813-230/+106
| | | | | | This reverts commit b22548ddb30bfb167708e82d3bb932461c1b703a. This patch is being reverted since the patch series is causing regressions.
* Revert "PowerPC: fix for gdb.reverse/finish-precsave.exp and ↵Carl Love2023-01-184-160/+31
| | | | | | | | gdb.reverse/finish-reverse.exp" This reverts commit 92e07580db6a5572573d5177ca23933064158f89. Reverting patch as the patch series is causing regressions.
* gdb: care for dynamic objfiles in build_id_bfd_get ()Jan Vrany2023-01-182-0/+10
| | | | | | | | | Accessing gdb.Objfile.build_id caused GDB to crash when objfile is dynamic, that is created by JIT reader API. The issue was NULL-pointer dereferencing in build_id_bfd_get () because dynamic objfiles have no underlaying BFD structure. This commit fixes the problem by a NULL-check in build_id_bfd_get ().
* Speed up objcopy's note merging.Nick Clifton2023-01-182-7/+23
| | | | | PR 29993 * objcopy.c (merge_gnu_build_notes): Remember the last non-deleted note in order to speed up the scan for matching notes.
* sim: ppc: drop local psim linkMike Frysinger2023-01-172-34/+12
| | | | | | This has never been installed, and it's not clear anyone cares about it in the local build dir (when the main program is sim/ppc/run), so drop all the logic to simplify.
* Use subsystem to distinguish between pei-arm-little and pei-arm-wince-littleMark Harmstone2023-01-182-0/+17
| | | | | | | | | | Running objdump against a 32-bit ARM PE file currently needs disambiguation, as it gets picked up by both pei-arm-little and pei-arm-wince-little. This adds a check in pe_bfd_object_p so that the subsystem in the PE header is used to do the disambiguation for us, so that WinCE images get assigned to pei-arm-wince-little, and everything else to pei-arm-little.
* Revert "gprofng: PR29987 bfd/archive.c:1447: undefined reference to ↵Vladimir Mezentsev2023-01-177-4/+26
| | | | | | `filename_ncmp'" This reverts commit c2a5d74050ea9d7897b4122ef57c627d395683b3.
* Automatic date update in version.inGDB Administrator2023-01-181-1/+1
|
* Remove two unused fields from gdbarchTom Tromey2023-01-172-8/+0
| | | | | | When I converted gdbarch to use the registry, I forgot to remove the two fields that were used to implement the previous approach. This patch removes them. Tested by rebuilding.
* Use require in paramless.expTom Tromey2023-01-171-1/+1
| | | | | | | The new paramless.exp test was not converted to the new "require" approach. This patch fixes the problem.
* PowerPC: fix for gdb.reverse/finish-precsave.exp and ↵Carl Love2023-01-174-31/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gdb.reverse/finish-reverse.exp PR record/29927 - reverse-finish requires two reverse next instructions to reach previous source line PowerPC uses two entry points called the local entry point (LEP) and the global entry point (GEP). Normally the LEP is used when calling a function. However, if the table of contents (TOC) value in register 2 is not valid the GEP is called to setup the TOC before execution continues at the LEP. When executing in reverse, the function finish_backward sets the break point at the alternate entry point (GEP). However if the forward execution enters via the normal entry point (LEP), the reverse execution never sees the break point at the GEP of the function. Reverse execution continues until the next break point is encountered or the end of the recorded log is reached causing gdb to stop at the wrong place. This patch adds a new address to struct execution_control_state to hold the address of the alternate function start address, known as the GEP on PowerPC. The finish_backwards function is updated. If the stopping point is between the two entry points (the LEP and GEP on PowerPC), the stepping range is set to execute back to the alternate entry point (GEP on PowerPC). Otherwise, a breakpoint is inserted at the normal entry point (LEP on PowerPC). Function process_event_stop_test checks uses a stepping range to stop execution in the caller at the first instruction of the source code line. Note, on systems that only support one entry point, the address of the two entry points are the same. Test finish-reverse-next.exp is updated to include tests for the reverse-finish command when the function is entered via the normal entry point (i.e. the LEP) and the alternate entry point (i.e. the GEP). The patch has been tested on X86 and PowerPC with no regressions.
* X86: reverse-finish fixCarl Love2023-01-1713-106/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR record/29927 - reverse-finish requires two reverse next instructions to reach previous source line Currently on X86, when executing the finish command in reverse, gdb does a single step from the first instruction in the callee to get back to the caller. GDB stops on the last instruction in the source code line where the call was made. When stopped at the last instruction of the source code line, a reverse next or step command will stop at the first instruction of the same source code line thus requiring two step/next commands to reach the previous source code line. It should only require one step/next command to reach the previous source code line. By contrast, a reverse next or step command from the first line in a function stops at the first instruction in the source code line where the call was made. This patch fixes the reverse finish command so it will stop at the first instruction of the source line where the function call was made. The behavior on X86 for the reverse-finish command now matches doing a reverse-next from the beginning of the function. The proceed_to_finish flag in struct thread_control_state is no longer used. This patch removes the declaration, initialization and setting of the flag. This patch requires a number of regression tests to be updated. Test gdb.mi/mi-reverse.exp no longer needs to execute two steps to get to the previous line. The gdb output for tests gdb.reverse/until-precsave.exp and gdb.reverse/until-reverse.exp changed slightly. The expected result in tests gdb.reverse/amd64-failcall-reverse.exp and gdb.reverse/singlejmp-reverse.exp are updated to the correct expected result. This patch adds a new test gdb.reverse/finish-reverse-next.exp to test the reverse-finish command when returning from the entry point and from the body of the function. The step_until proceedure in test gdb.reverse/step-indirect-call-thunk.exp was moved to lib/gdb.exp and renamed cmd_until. The patch has been tested on X86 and PowerPC to verify no additional regression failures occured. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29927
* gdb/testsuite: expect SIGSEGV from top GDB spawn idSimon Marchi2023-01-172-2/+2
| | | | | | | | | | | | | | | | | | | When testing with the native-extended-gdbserver, I get: Thread 1 "xgdb" received signal SIGSEGV, Segmentation fault. 0x00007ffff6d828f2 in GC_find_limit_with_bound () from /usr/lib/x86_64-linux-gnu/libgc.so.1 (gdb) FAIL: gdb.gdb/selftest.exp: xgdb is at prompt This is because the -re that is supposed to match this SIGSEGV is after `-i $inferior_spawn_id`. On native, the top and bottom GDB are on the same spawn id, so it ends up working. But with a gdbserver board, that's not the case. Move the SIGSEGV -re before the `-i $inferior_spawn_id` line, such that it matches what the top GDB outputs. Do the same fix in gdb.gdb/python-helper.exp. Change-Id: I3291630e218a5a3a6a47805b999ddbc9b968c927 Approved-By: Tom Tromey <tom@tromey.com>
* Fix parameter-less template regression in new DWARF readerTom Tromey2023-01-175-22/+226
| | | | | | | | | | | | | | | | | PR c++/29896 points out a regression in the new DWARF reader. It does not properly handle a case like "break fn", where "fn" is a template function. This happens because the new index uses strncasecmp to compare. However, to make this work correctly, we need a custom function that ignores template parameters. This patch adds a custom comparison function and fixes the bug. A new test case is included. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29896
* Move hash_entry and eq_entry into cooked_index::do_finalizeTom Tromey2023-01-171-20/+14
| | | | | | | | | | I was briefly confused by the hash_entry and eq_entry functions in the cooked index. They are only needed in a single method, and that method already has a couple of local lambdas for a different hash table. So, it seemed cleaner to move these there as well.
* Don't erase empty indices in DWARF readerTom Tromey2023-01-171-10/+0
| | | | | | | | | The DWARF reader has some code to remove empty indices. However, I think this code has been obsolete since some earlier changes to parallel_for_each. This patch removes this code.
* Avoid submitting empty tasks in parallel_for_eachTom Tromey2023-01-172-0/+69
| | | | | | | | | | | | I found that parallel_for_each would submit empty tasks to the thread pool. For example, this can happen if the number of tasks is smaller than the number of available threads. In the DWARF reader, this resulted in the cooked index containing empty sub-indices. This patch arranges to instead shrink the result vector and process the trailing entries in the calling thread.
* gas: arm: Change warning message to not reference specific A-class ↵Stam Markianos-Wright2023-01-175-224/+224
| | | | | | | | | | | | | | | | | | | | | | | | | architecture revision We noticed that a warning message about the use of scalar fp16 instructions being UNPREDICTABLE when conditionalized in an IT block referenced the specific A-class architecture revision ARMv8.2-A. Many of these instructions are now also part of ARMv8.1-M, so the warning message had become misleading. Here we just change the message to not specify an architecture revision at all and update all testing accordingly. This was done with a simple find-n-replace within the binutils sources. No tests have regressed for the arm target. gas/ChangeLog: * config/tc-arm.c (do_scalar_fp16_v82_encode): Remove ARMv8.2-A from the warning message. (do_neon_movhf): Likewise * testsuite/gas/arm/armv8-2-fp16-scalar-bad.l: Likewise * testsuite/gas/arm/mve-vaddsub-it-bad.l: Likewise * testsuite/gas/arm/mve-vcvtne-it-bad.l: Likewise * testsuite/gas/arm/mve-vcvtne-it.d: Likewise
* gas: arm: Fix a further IT-predicated vcvt issue in the presense of MVE vcvtnStam Markianos-Wright2023-01-175-12/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we had experienced issues with assembling a "VCVTNE" instruction in the presence of the MVE architecture extension, because it could be interpreted both as: * The base instruction VCVT + NE for IT predication when inside an IT block. * The MVE instruction VCVTN + E in the Else of a VPT block. Given a C reproducer of: ``` int test_function(float value) { int ret_val = 10; if (value != 0.0) { ret_val = (int) value; } return ret_val; } ``` GCC generates a VCVTNE instruction based on the `truncsisf2_vfp` pattern, which will look like: `vcvtne.s32.f32 s-reg, s-reg` This still triggers an error due to being misidentified as "vcvtn+e" Similar errors were found with other type combinations and instruction patterns (these have all been added to the testing of this patch). This class of errors was previously worked around by: https://sourceware.org/pipermail/binutils/2020-August/112728.html which addressed this by looking at the operand types, however, that isn't adequate to cover all the extra cases that have been found. Instead, we add some special-casing logic earlier when the instructions are parsed that is conditional on whether we are in a VPT block or not, when the instruction is parsed. gas/ChangeLog: * config/tc-arm.c (opcode_lookup): Add special vcvtn handling. * testsuite/gas/arm/mve-vcvtne-it-bad.l: Add further testing. * testsuite/gas/arm/mve-vcvtne-it-bad.s: Likewise. * testsuite/gas/arm/mve-vcvtne-it.d: Likewise. * testsuite/gas/arm/mve-vcvtne-it.s: Likewise.
* Fix snafu in previous delta for elf32-csky.cNick Clifton2023-01-171-3/+2
|
* C-SKY: Fix machine flag.Xianmiao Qu2023-01-172-15/+14
| | | | * elf32-csky.c (elf32_csky_merge_attributes): Don't save and restore the ARCH attribute, it will actually clear the ARCH attribute. (csky_elf_merge_private_bfd_data): Store the machine flag correctly.
* Automatic date update in version.inGDB Administrator2023-01-171-1/+1
|
* libctf: update regexp to allow makeinfo to build documentEnze Li2023-01-162-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While trying to build gdb on latest openSUSE Tumbleweed, I noticed the following warning, checking for makeinfo... makeinfo --split-size=5000000 configure: WARNING: *** Makeinfo is too old. Info documentation will not be built. then I checked the version of makeinfo, it said, ====== $ makeinfo --version texi2any (GNU texinfo) 7.0.1 Copyright (C) 2022 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. ====== After digging a little bit, it became quite obvious that a dot is missing in regexp that makes it impossible to match versions higher than 7.0, and here's the solution: - | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9][0-9])' >/dev/null 2>&1; then + | egrep 'texinfo[^0-9]*(6\.[3-9]|[7-9]\.[0-9])' >/dev/null 2>&1; then However, Eli pointed out that the solution above has another problem: it will stop working when Texinfo 10.1 will be released. Meanwhile, he suggested to solve this problem permanently. That is, we don't care about the minor version for Texinfo > 6.9, we only care about the major version. In this way, the problem will be resolved permanently, thanks to Eli. libctf/ChangeLog: * configure: Regenerated. * configure.ac: Update regexp to match versions higher than 7.0.
* Correct ld-pe/aarch64.d test outputAlan Modra2023-01-161-12/+12
| | | | | | | "foo" is at 0x2010. This corrects the expected output for .long and .word referencing foo, showing a problem with relocation handling. * testsuite/ld-pe/aarch64.d: Correct expected output.
* Tidy gas/expr.c static stateAlan Modra2023-01-167-107/+123
| | | | | | | | | | | | * expr.c (seen, nr_seen): Make file scope. (expr_begin): Clear seen, nr_seen, and expr_symbol_lines. (expr_end): New function. * expr.h (expr_end): Declare. * output-file.c (output_file_close): Call expr_end. * config/tc-hppa.c (expr_end): Rename to expr_parse_end. * config/tc-mips.c: Likewise. * config/tc-riscv.c: Likewise. * config/tc-sparc.c: Likewise.
* Leftover hack from i960-coffAlan Modra2023-01-161-6/+2
| | | | | * reloc.c (bfd_perform_relocation, bfd_install_relocation): Remove i960-coff target hack.
* COFF CALC_ADDEND commentAlan Modra2023-01-161-0/+8
| | | | | | Old COFF (and AOUT) targets have unusual relocation addends. * coffcode.h (<Reading relocations>): Describe COFF addends.
* PR29991, MicroMIPS flag erased after align directivesAlan Modra2023-01-165-0/+35
| | | | | | | | | | PR 29991 * config/tc-mips.c (s_align): Call file_mips_check_options and mips_mark_labels. * testsuite/gas/mips/align-after-label.s, * testsuite/gas/mips/mips-align-after-label.d, * testsuite/gas/mips/micromips-align-after-label.d: New test. * testsuite/gas/mips/mips.exp: Run it.
* Update release making howtoNick Clifton2023-01-161-1/+1
|
* Updated translations for the gas and binutils sub-directoriesNick Clifton2023-01-164-5124/+5991
|
* sim: assume sys/stat.h always exists (via gnulib)Mike Frysinger2023-01-167-46/+4
| | | | | | | We have many uses of sys/stat.h that are unprotected by HAVE_SYS_STAT_H, so this is more formalizing the reality that we require this header. Since we switched to gnulib, it guarantees that a sys/stat.h exists for us to include, so we're doubly OK.
* sim: formally assume unistd.h always exists (via gnulib)Mike Frysinger2023-01-1631-67/+4
| | | | | | | We have many uses of unistd.h that are unprotected by HAVE_UNISTD_H, so this is more formalizing the reality that we require this header. Since we switched to gnulib, it guarantees that a unistd.h exists for us to include, so we're doubly OK.
* sim: build: stop probing system extensions (ourselves)Mike Frysinger2023-01-163-189/+3
| | | | | | | This logic was added in order to expose the strsignal prototype for nrun.c. Since then, we've migrated to gnulib as our portability layer, and it takes care of probing system extensions for us, so there's no need to duplicate the work.
* sim: modules.c: fix generation after recent refactorsMike Frysinger2023-01-1532-0/+155
| | | | | | | | | | | | | | Add explicit arch-specific modules.c rules to keep the build from generating an incorrect common/modules.c. Otherwise the pattern rules would cascade such that it'd look for $arch/modules.o which turned into common/modules.c which triggered the gen rule. My local testing of this code didn't catch this bug because of how Automake manages .Po (dependency files) in incremental builds -- it was adding extra rules that override the pattern rules which caused the build to generate correct modules.c files. But when building from a cold cache, the pattern rules would force common/modules.c to be used leading to crashes at runtime.
* Automatic date update in version.inGDB Administrator2023-01-161-1/+1
|
* sim: microblaze, mn10300: remove signal.h include in interp.cMark Wielaard2023-01-152-3/+0
| | | | | signal.h isn't needed in microblaze and mn10300 interp.c so don't include it.
* sim: m32r: fix typos in stamp dependsMike Frysinger2023-01-152-4/+4
| | | | | Copying & pasting the first rule missed updating the dep to the right stamp file.
* sim: igen: simplify build logic a littleMike Frysinger2023-01-155-354/+275
| | | | | | | Now that all ports (that use igen) build in the top-level and depend on igen, we can move the conditional logic out of configure. We also switch from noinst_LIBRARIES to EXTRA_LIBRARIES so that the library is only built when needed (i.e. the igen tool is used).
* sim: build: drop depdir subdir hackMike Frysinger2023-01-142-164/+0
| | | | | Now that all the ports compile some C files in their arch dirs, Automake guarantees creating the depdir for us, so we can drop our configure hack.
* sim: common: simplify modules.c depsMike Frysinger2023-01-142-9/+4
| | | | | | | Now that all ports (other than ppc) build in the top-level, we don't need to expand all the modules.c targets as a recursive dep. Each port depends on their respective file now, and the ppc port doesn't use it at all.
* sim: common: move modules.c to source trackingMike Frysinger2023-01-1432-195/+584
| | | | | | This makes sure the arch-specific modules.c wildcard is matched and not the common/%.c so that we compile it correctly. It also makes sure each subdir has depdir logic enabled.
* sim: common: move libcommon.a dep to ppc codeMike Frysinger2023-01-143-30/+34
| | | | | Rather than force this to be built ahead of time for all targets, move the dep to the ppc code since it's the only user of it now.
* sim: build: drop most recursive build depsMike Frysinger2023-01-1416-173/+153
| | | | | | Now that we build these objects in the top dir & generate modules.c there, we don't need to generate them all first -- we can let the normal dependency graph take care of building things in parallel.
* sim: common: move libcommon.a objects to sourcesMike Frysinger2023-01-1433-251/+275
| | | | | | | | | This simplifies the build logic and avoids an Automake bug where the common_libcommon_a_OBJECTS variable isn't set in the arch libsim.a DEPENDENCIES for targets that, alphabetically, come before "common". We aren't affected by that bug with the current code, but as we move things out of SIM_ALL_RECURSIVE_DEPS and rely on finer dependencies, we will trip over it.
* sim: igen: simplify build depMike Frysinger2023-01-142-156/+151
| | | | | | Now that all ports (other than ppc) build in the top-level, we don't need to mark the igen tool as a recursive dep. Each port depends on the tool if it actually uses it, and ppc doesn't use it at all.