aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-10-21sim: Remove unused CXXFLAGS substitutionTsukasa OI1-1/+0
Not only that sim/configure.ac does not AC_SUBST CXXFLAGS, unless we need C++ compiler like CXX, substitution @CXXFLAGS@ is useless. Because of this, this commit removes this substitution.
2022-10-21Automatic date update in version.inGDB Administrator1-1/+1
2022-10-20x86: Check VEX/EVEX encoding before checking vector operandsH.J. Lu5-4/+8
Since commit 837e225ba1992f9745e5bbbd5e8443243a7f475f Author: Jan Beulich <jbeulich@suse.com> Date: Thu Oct 20 10:01:12 2022 +0200 x86: re-work AVX-VNNI support moved AVX-VNNI after AVX512-VNNI, vector Disp8 is applied even when VEX encoding is selected. Check VEX/EVEX encoding before checking vector operands to avoid vector Disp8 with VEX encoding. PR gas/29708 * config/tc-i386.c (match_template): Check VEX/EVEX encoding before checking vector operands. * testsuite/gas/i386/avx-vnni.d: Updated. * testsuite/gas/i386/x86-64-avx-vnni.d: Likewise. * testsuite/gas/i386/avx-vnni.s: Add a Disp32 test. * testsuite/gas/i386/x86-64-avx-vnni.s: Likewise.
2022-10-20gdb/python: break more dependencies between gdbpy_initialize_* functionsAndrew Burgess3-2/+36
In a later commit in this series I will propose removing all of the explicit gdbpy_initialize_* calls from python.c and replace these calls with a more generic mechanism. One of the side effects of this generic mechanism is that the order in which the various Python sub-systems within GDB are initialized is no longer guaranteed. On the whole I don't think this matters, most of the sub-systems are independent of each other, though testing did reveal a few places where we did have dependencies, though I don't think those dependencies were explicitly documented in comment anywhere. This commit is similar to the previous one, and fixes the second dependency issue that I found. In this case the finish_breakpoint_object_type uses the breakpoint_object_type as its tp_base, this means that breakpoint_object_type must have been initialized with a call to PyType_Ready before finish_breakpoint_object_type can be initialized. Previously we depended on the ordering of calls to gdbpy_initialize_breakpoints and gdbpy_initialize_finishbreakpoints in python.c. After this commit a new function gdbpy_breakpoint_init_breakpoint_type exists, this function ensures that breakpoint_object_type has been initialized, and can be called from any gdbpy_initialize_* function. I feel that this change makes the dependency explicit, which I think is a good thing. There should be no user visible changes after this commit.
2022-10-20gdb/python: break dependencies between gdbpy_initialize_* functionsAndrew Burgess3-14/+42
In a later commit in this series I will propose removing all of the explicit gdbpy_initialize_* calls from python.c and replace these calls with a more generic mechanism. One of the side effects of this generic mechanism is that the order in which the various Python sub-systems within GDB are initialized is no longer guaranteed. On the whole I don't think this matters, most of the sub-systems are independent of each other, though testing did reveal a few places where we did have dependencies, though I don't think those dependencies were explicitly documented in a comment anywhere. This commit removes the first dependency issue, with this and the next commit, all of the implicit inter-sub-system dependencies will be replaced by explicit dependencies, which will allow me to, I think, clean up how the sub-systems are initialized. The dependency is around the py_insn_type. This type is setup in gdbpy_initialize_instruction and used in gdbpy_initialize_record. Rather than depend on the calls to these two functions being in a particular order, in this commit I propose adding a new function py_insn_get_insn_type. This function will take care of setting up the py_insn_type type and calling PyType_Ready. This helper function can be called from gdbpy_initialize_record and gdbpy_initialize_instruction, and the py_insn_type will be initialized just once. To me this is better, the dependency is now really obvious, but also, we no longer care in which order gdbpy_initialize_record and gdbpy_initialize_instruction are called. There should be no user visible changes after this commit.
2022-10-20gdb: some int to bool conversion in breakpoint.cAndrew Burgess1-141/+135
Some int to bool conversion in breakpoint.c. I've only updated the function signatures of static functions, but I've updated some function local variables throughout the file. There should be no user visible changes after this commit. Approved-By: Simon Marchi <simon.marchi@efficios.com>
2022-10-20gdb: make use of scoped_restore in unduplicated_should_be_insertedAndrew Burgess1-7/+4
I noticed that we could make use of a scoped_restore in the function unduplicated_should_be_inserted. I've also converted the function return type from int to bool. This change shouldn't make any difference, as I don't think anything within should_be_inserted could throw an exception, but the change doesn't hurt, and will help keep us safe if anything ever changes in the future. Approved-By: Simon Marchi <simon.marchi@efficios.com>
2022-10-20gdb: used scoped_restore_frame in update_watchpointAndrew Burgess1-12/+5
I was doing some int to bool cleanup in update_watchpoint, and I noticed a manual version of scoped_restore_selected_frame. As always when these things are done manually, there is the chance that, in an error case, we might leave the wrong frame selected. This commit updates things to use scoped_restore_selected_frame, and also converts a local variable from int to bool. The only user visible change after this commit is in the case where update_watchpoint throws an error - we should now correctly restore the previously selected frame. Otherwise, this commit should be invisible to the user. Approved-By: Simon Marchi <simon.marchi@efficios.com>
2022-10-20gdb: make some bp_location arguments const in breakpoint.cAndrew Burgess1-14/+14
I spotted a few places where I could make some 'bp_location *' arguments constant in breakpoint.c. There should be no user visible changes after this commit. Approved-By: Simon Marchi <simon.marchi@efficios.com>
2022-10-20Reapply "Don't build readline/libreadline.a, when --with-system-readline is ↵Дилян Палаузов2-0/+12
supplied" Commit 228cf97dd3c8 ("Merge configure.ac from gcc project") undid the change originally done in commit 69961a84c9b ("Don't build readline/libreadline.a, when --with-system-readline is supplied"). Re-apply it. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=18632
2022-10-20x86: re-work AVX-VNNI supportJan Beulich11-7037/+7057
By putting the templates after their AVX512 counterparts, the AVX512 flavors will be picked by default. That way the need to always use {vex} ceases to exist once respective CPU features (AVX512-VNNI or AVX512VL as a whole) have been disabled. This way the need for the PseudoVexPrefix attribute also disappears.
2022-10-20[gdb/testsuite] Fix gdb.debuginfod/fetch_src_and_symbols.exp with check-read1Tom de Vries1-3/+6
With test-case gdb.debuginfod/fetch_src_and_symbols.exp and check-read1, I run into: ... (gdb) FAIL: gdb.debuginfod/fetch_src_and_symbols.exp: local_url: \ file fetch_src_and_symbols (got interactive prompt) ... The problem is that this output: ... Enable debuginfod for this session? (y or [n]) y^M ... is matched using regexp "Enable debuginfod?.*" with matches only the first two words of the output, after which an implicit clause in gdb_test_multiple triggers on the second part containing the interactive prompt. Fix this by included the interactive prompt in the regexp. Tested on x86_64-linux.
2022-10-20[gdb/testsuite] Fix gdb.mi/mi-disassemble.exp with check-read1Tom de Vries2-2/+2
With test-case gdb.mi/mi-disassemble.exp and check-read1 I run into: ... FAIL: gdb.mi/mi-disassemble.exp: disassemble /b main FAIL: gdb.mi/mi-disassemble.exp: get valueof "*((unsigned char *) 0x400549)" ... The problem for both FAILs is that the output is parsed using gdb_test_multiple, which has implicit clauses using $gdb_prompt, which can match before the explicit clauses using $mi_gdb_prompt. Fix this by passing -prompt "$mi_gdb_prompt$" to gdb_test_multiple. Tested on x86-64-linux.
2022-10-20Re: aarch64-pe support for LD, GAS and BFDAlan Modra2-1/+4
Fix dependencies for eaarch64pe.c. Generated files aren't handled fully automatically.
2022-10-20ld: Add minimal pdb generationMark Harmstone8-9/+930
2022-10-20ld: Add --pdb optionMark Harmstone7-19/+175
Second patch incorporates fixes for endian and UB issues in calc_hash, as per https://sourceware.org/pipermail/binutils/2022-October/123514.html.
2022-10-19Test stepping within a runtime loader / dynamic linkerKevin Buettner3-0/+227
See the remarks in rtld-step.exp for a description of what this test is about. This test case has been tested using gcc on the following x86-64 Linux distributions/releases: Fedora 28 Fedora 32 Fedora 33 Fedora 34 Fedora 35 Fedora 36 Fedora 37 rawhide (f38) RHEL 9.1 Ubuntu 22.04.1 LTS It's also been tested (and found to be working) with RUNTESTFLAGS="CC_FOR_TARGET=clang" on all of the above expect for Fedora 28. The (old) version of clang available on F28 did not accept the -static-pie option. I also tried to make this test work on FreeBSD 13.1. While I think I made significant progress, I was ultimately stymied by this message which occurs when attempting to run the main program which has been set to use the fake/pretend RTLD as the ELF interpreter: ELF interpreter /path/to/rtld-step-rtld not found, error 22 I have left one of the flags (-static) in place which I believe to be needed for FreeBSD (though since I never got it to work, I don't know for sure.) I've also left some declarations needed for FreeBSD in rtld-step-rtld.c. They're currently disabled via a #if 0; you'll need to enable them if you want to try to make it work on FreeBSD.
2022-10-19Allow debugging of runtime loader / dynamic linkerKevin Buettner1-1/+4
At present, GDB does not allow for the debugging of the runtime loader and/or dynamic linker. Much of the time, this makes sense. An application programmer doesn't normally want to see symbol resolution code when stepping into a function that hasn't been resolved yet. But someone who wishes to debug the runtime loader / dynamic linker might place a breakpoint in that code and then wish to debug it as normal. At the moment, this is not possible. Attempting to step will cause GDB to internally step (and not stop) until code unrelated to the dynamic linker is reached. This commit makes a minor change to infrun.c which allows the dynamic loader / linker to be debugged in the case where a step, next, etc. is initiated from within that code. While developing this fix, I tried some approaches which weren't quite right. The GDB testusite definitely contains tests which FAIL when it's done incorrectly. (At one point, I saw 17 regressions!) This commit has been tested on x86-64 linux with no regressions.
2022-10-20binutils: Remove unused substitution PROGRAMTsukasa OI2-4/+2
Unlike other substitution, this substitution of @PROGRAM@ was done in binutils/Makefile and it was intended for binutils/cxxfilt.man. @PROGRAM@ in binutils/cxxfilt.man is removed in the commit 0285c67df190 ("Automate generate on man pages") in 2001 and @PROGRAM@ is ineffective since then. Because PROGRAM substitution does nothing, removing this manual substitution should be completely safe. binutils/ChangeLog: * doc/local.mk: Remove unused substitution PROGRAM. * Makefile.in: Regenerate.
2022-10-20Automatic date update in version.inGDB Administrator1-1/+1
2022-10-20Obsolete beosAlan Modra1-1/+2
* config.bfd: Obsolete *-*-beos*. Simplify x86 beos match.
2022-10-20Regen ld/po/BLD-POTFILES.inAlan Modra1-0/+1
2022-10-19[gdb] Fix assert in handle_jit_eventTom de Vries1-1/+4
With the cc-with-tweaks.sh patch submitted here ( https://sourceware.org/pipermail/gdb-patches/2022-October/192586.html ) we run with: ... $ export STRIP_ARGS_STRIP_DEBUG=--strip-all $ make check RUNTESTFLAGS="gdb.base/jit-reader.exp \ --target_board cc-with-gnu-debuglink" ... into the following assert: ... (gdb) run ^M Starting program: jit-reader ^M gdb/jit.c:1247: internal-error: jit_event_handler: \ Assertion `jiter->jiter_data != nullptr' failed.^M ... Fix this by handling the jit_bp_sym.objfile->separate_debug_objfile_backlink != nullptr case in handle_jit_event. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29277
2022-10-19internal_error: remove need to pass __FILE__/__LINE__Pedro Alves152-752/+467
Currently, every internal_error call must be passed __FILE__/__LINE__ explicitly, like: internal_error (__FILE__, __LINE__, "foo %d", var); The need to pass in explicit __FILE__/__LINE__ is there probably because the function predates widespread and portable variadic macros availability. We can use variadic macros nowadays, and in fact, we already use them in several places, including the related gdb_assert_not_reached. So this patch renames the internal_error function to something else, and then reimplements internal_error as a variadic macro that expands __FILE__/__LINE__ itself. The result is that we now should call internal_error like so: internal_error ("foo %d", var); Likewise for internal_warning. The patch adjusts all calls sites. 99% of the adjustments were done with a perl/sed script. The non-mechanical changes are in gdbsupport/errors.h, gdbsupport/gdb_assert.h, and gdb/gdbarch.py. Approved-By: Simon Marchi <simon.marchi@efficios.com> Change-Id: Ia6f372c11550ca876829e8fd85048f4502bdcf06
2022-10-19Fix an illegal memory access when parsing an ELF file containing corrupt ↵Nick Clifton2-1/+9
symbol version information. PR 29699 * elf.c (_bfd_elf_slurp_version_tables): Fail if the sh_info field of the section header is zero.
2022-10-19sim/iq2000: silence pointer-sign warningsAndrew Burgess2-6/+6
When building the iq2000 simulator I see a few warnings like this: /tmp/build/sim/../../src/sim/iq2000/iq2000.c: In function ‘fetch_str’: /tmp/build/sim/../../src/sim/iq2000/iq2000.c:50:54: error: pointer targets in passing argument 3 of ‘sim_read’ differ in signedness [-Werror=pointer-sign] 50 | sim_read (CPU_STATE (current_cpu), CPU2DATA(addr), buf, nr); | ^~~ | | | char * I've silenced these warnings by casting buf to 'unsigned char *'. With this change I now see no warnings when compiling iq2000.c, so I've removed the line from Makefile.in that disables -Werror. Makefile.in was also disabling -Werror when compiling mloop.c, however, I'm not seeing any warnings when compiling that file, so I've removed the -Werror disable in that case too.
2022-10-19sim/erc32: avoid dereferencing type-punned pointer warningsAndrew Burgess2-6/+4
When building the erc32 simulator I get a few warnings like this: /tmp/build/sim/../../src/sim/erc32/exec.c:1377:21: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 1377 | sregs->fs[rd] = *((float32 *) & ddata[0]); | ~^~~~~~~~~~~~~~~~~~~~~~~ The type of '& ddata[0]' will be 'uint32_t *', which is what triggers the warning. This commit makes use of memcpy when performing the type-punning, which resolves the above warnings. With this change, I now see no warnings when compiling exec.c, which means that the line in Makefile.in that disables -Werror can be removed. There should be no change in behaviour after this commit.
2022-10-19sim/ppc: mark device_error function as ATTRIBUTE_NORETURNAndrew Burgess1-1/+1
The device_error function always ends up calling the error function, which is itself marked as ATTRIBUTE_NORETURN, so it makes sense that device_error should also be marked ATTRIBUTE_NORETURN. Doing this resolves a few warnings from hw_ide.c about possibly uninitialized variables - the variables are only uninitialized after passing through a call to device_error, which obviously means the variables are never really used uninitialized, the simulation will terminate with the device_error call.
2022-10-19sim/ppc: fix warnings related to printf format stringsAndrew Burgess4-30/+19
This commit is a follow on to: commit 182421c9d2eea8c4877d983a2124e591f0aca710 Date: Tue Oct 11 15:02:08 2022 +0100 sim/ppc: fixes for arguments to printf style functions where commit 182421c9d2ee addressed issues with printf format arguments that were causing the compiler to give an error, this commit addresses issues that caused the compiler to emit a warning. This commit is mostly either changing the format string to match the argument, or in some cases, excess, unused arguments are removed.
2022-10-19sim/cgen: mask uninitialized variable warning in cgen-run.cAndrew Burgess1-0/+5
I see an uninitialized variable warning (with gcc 9.3.1) from cgen-run.c, like this: /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c: In function ‘sim_resume’: /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:259:5: warning: ‘engine_fns$’ may be used uninitialized in this function [-Wmaybe-uninitialized] 259 | (* engine_fns[next_cpu_nr]) (cpu); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/build/sim/../../src/sim/cris/../common/cgen-run.c:232:14: note: ‘engine_fns$’ was declared here 232 | ENGINE_FN *engine_fns[MAX_NR_PROCESSORS]; | ^~~~~~~~~~ This is a false positive - we over allocate engine_fn, and then only initialize the nr_cpus entries which we will later go on to use. However, we can easily silence this warning by initializing the unused entries in engine_fns to NULL, this might also help if anyone ever looks at engine_fns in a debugger, it should now be obvious which entries are in use, and which are not. With this change the warning is gone. There should be no change in behaviour with this commit.
2022-10-19Fix addr2line test for ppc64 elfv1 and mingwAlan Modra1-27/+39
* testsuite/binutils-all/addr2line.exp: Tidy. For powerpc64 arrange to pass --synthetic to nm, and extract .main and .fn symbol address for addr2line test. Handle default executable extension on cygwin/mingw compilers.
2022-10-19Update MAINTAINERS file with details about accepting DCO signed contributions.Nick Clifton2-1/+34
* MAINTAINERS: Add section on patches, copyright and DCO.
2022-10-19gdb/testsuite: avoid temporary file in gdb/testsuite (unittest.exp)Andrew Burgess2-19/+137
I spotted that the gdb.gdb/unittest.exp script causes a temporary file inserters_extractors-2.txt to be created in build/gdb/testsuite/ instead of in build/gdb/testsuite/output/gdb.gdb/unittest/. This is because some of the 'maint selftest' tests create temporary files in GDB's current directory, specifically, the two source files: gdb/unittests/basic_string_view/inserters/wchar_t/2.cc gdb/unittests/basic_string_view/inserters/char/2.cc both create a temporary file called inserters_extractors-2.txt, though we only run the second of these as part of GDB's selftests. I initially proposed just using GDB's 'cd' command in unittest.exp to switch to the test output directory before running the selftests, however, Pedro pointed out that there was a risk here that, if GDB crashed during shutdown, the generated core file would be left in the test output directory rather than in the testsuite directory. As a result, our clever core file spotting logic would fail to spot the core file and alert the user. Instead, I propose this slightly more involved solution. I've added a new with_gdb_cwd directory proc, used like this: with_gdb_cwd $directory { # Tests here... } The new proc temporarily switches to $directory and then runs the tests within the block. After running the tests the previous current working directory is restored. Additionally, after switching back to the previous cwd, we check that GDB is still responsive. This means that if GDB crashed immediately prior to restoring the previous directory, and left the core file in the wrong place, then the responsiveness check will fail, and a FAIL will be emitted, this should be enough to alert the user that something has gone wrong. With this commit in place the unittest.exp script now leaves its temporary file in the test output directory.
2022-10-19gdb/testsuite: avoid creating files in gdb/testsuite directoryAndrew Burgess1-1/+1
I spotted that the test gdb.dwarf2/dw2-using-debug-str.exp was creating an output file called debug_str_section in the root build/gdb/testsuite directory instead of using the build/gdb/testsuite/output/gdb.dwarf2/dw2-using-debug-str/ directory. This appears to be caused by a missing '$' character. We setup a variable debug_str_section which contains a path within the output directory, but then when we build the objcopy command we use 'debug_str_section' without a '$' prefix, as a result, we create the debug_str_section file. This commit adds the missing '$', the file is now created in the output directory.
2022-10-19bfd: fix undefined references to aarch64_pe_le_vecAndrew Burgess2-1/+3
After commit: commit c60b3806799abf1d7f6cf5108a1b0e733a950b13 Date: Wed Oct 19 10:57:12 2022 +0200 aarch64-pe support for LD, GAS and BFD It appears that bfd/Makefile.in and bfd/configure were not regenerated correctly. The differences in the configure file are only whitespace, but in Makefile.in a critical reference to pe-aarch64.lo was missing.
2022-10-19aarch64-pe support for LD, GAS and BFDJedidiah Thompson37-85/+547
Allows aarch64-pe to be targeted natively, not having to use objcopy to convert it from ELF to PE. Based on initial work by Jedidiah Thompson Co-authored-by: Jedidiah Thompson <wej22007@outlook.com> Co-authored-by: Zac Walker <zac.walker@linaro.org>
2022-10-19Binutils: Adding new testcase for addr2line.rupesh potharla2-0/+67
* binutils/testsuite/config/default.exp: Set ADDR2LINE and ADDR2LINEFLAGS. * binutils/testsuite/binutils-all/addr2line.exp: New file.
2022-10-19[gdb/testsuite] Fix ERROR in gdb.python/py-breakpoint.expTom de Vries1-0/+2
With test-case gdb.python/py-breakpoint.exp I run into: ... (gdb) ERROR: tcl error sourcing gdb.python/py-breakpoint.exp. ERROR: can't read "skip_hw_watchpoint_tests_p": no such variable while executing "if {$skip_hw_watchpoint_tests_p} { gdb_test_no_output "set can-use-hw-watchpoints 0" "" }" ... Fix this by adding the missing "global skip_hw_watchpoint_tests_p" in two procs. Tested on x86_64-linux.
2022-10-19IBM zSystems: Issue error for *DBL relocs on misaligned symbolsAndreas Krebbel3-0/+35
Relocs like PC32DBL require a right shift of the symbol value. There is no situation where dropping symbol value bits with the right shift is a good thing. Hence we now issue an error to detect such problems.
2022-10-18gdb: check for groups with duplicate names in reggroups:addSimon Marchi1-2/+7
In the downstream ROCm GDB port, we would create multiple register groups with duplicate names. While it did not really hurt, it certainly wasn't the intent. And I don't think it ever makes sense to do so. To catch these, change the assert in reggroups::add to check for duplicate names. It's no longer necessary to check for duplicate reggroup pointers, because adding the same group twice would be caught by the duplicate name check. Change-Id: Id216a58acf91f1b314d3cba2d02de73656f8851d Approved-By: Tom Tromey <tom@tromey.com>
2022-10-19Automatic date update in version.inGDB Administrator1-1/+1
2022-10-18x86: Disable AVX-VNNI when disabling AVX2H.J. Lu2-3/+3
Since AVX-VNNI requires AVX2, disable AVX-VNNI when disabling AVX2. * i386-gen.c (cpu_flag_init): Add CpuAVX_VNNI to CPU_ANY_AVX2_FLAGS. * i386-init.h: Regenerate.
2022-10-18Remove dead code from py-finishbreakpoint.cTom Tromey1-6/+1
PR python/16324 points out that comparing a frame id to null_frame_id can never succeed, and proposes simply removing the dead code. That is what this patch does. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16324
2022-10-18Update tests to use skip_hw_watchpoint_tests to test for HW watchpoint support.Carl Love16-23/+143
The hardware watchpoint check has been updated in a couple of recent patches. This patch updates the hardware watchpoint test in the remaining gdb tests. The issue is the PowerPC processors support hardware watchpoints with the exception of Power 9. The hardware watchpoint support is disabled on Power 9. The test skip_hw_watchpoint_tests must be used to correctly determine if the PowerPC processor supports hardware watchpoints. This patch fixes 6 test failures in test gdb.threads/watchpoint-fork.exp. Test gdb.base/watch-vfork.exp runs with can-use-hw-watchpoints set to true and false. When the test is run with can-use-hw-watchpoints set to true, gdb just falls back to using software watchpoints. The patch reduces the number of expected passes by 2 since because it now only runs once with can-use-hw-watchpoints set to false. Test gdb.mi/mi-watch.exp runs the test with argument hw and sw. If the argument is hw and hardware watchpoints are not supported the test exits. The number of expected passes is cut in half with the patch as it now only runs the test using software breakpoints. Previously the pass to use hardware watchpoints was not skipped and the test actually ran using software watchpoints. The following tests run the same with and without the patch. The tests are supposed to execute the gdb command "set can-use-hw-watchpoints 0" if the processor does not support hardware bwatchpoints. However the command was not being executed and gdb was falling back to using software watchpoints since the Power 9 watchpoint resource check fails. With the patch, the tests now execute the command and the test runs using software watchpoints as it did previously. The tests are: gdb.base/commands.exp gdb.base/cond-eval-mode.exp gdb.base/display.exp gdb.base/gdb11531.exp gdb.base/recurse.exp gdb.base/value-double-free.exp gdb.base/watch-bitfields.exp gdb.base/watch-cond-infcall.exp gdb.base/watch-cond.exp gdb.base/watchpoint-solib.exp gdb.base/watchpoints.exp The following two tests are not supported on the Power 9 system used to test the changes. The patch does not change the tests results for these tests: gdb.python/py-breakpoint.exp gdb.mi/mi-watch-nonstop.exp
2022-10-18[gdb/testsuite] Handle header files with local-remote-host.expTom de Vries5-1/+21
With test-case gdb.base/included.exp and host board local-remote-host.exp with tentative fix for PR29697 I run into: ... included.c:18:10: fatal error: included.h: No such file or directory #include "included.h" ^~~~~~~~~~~~ compilation terminated. ... Fix this by adding the missing gdb_remote_download calls. Likewise in a few other test-cases. Tested on x86_64-linux.
2022-10-18[gdb/testsuite] Fix gdb.server/no-thread-db.exp with local-remote-host.expTom de Vries1-1/+2
With test-case gdb.server/no-thread-db.exp and host board local-remote-host.exp with a tentative fix for PR29697 I run into: ... (gdb) print foo^M Cannot find thread-local storage for Thread 29613.29613, executable file \ $HOME/no-thread-db:^M Remote target failed to process qGetTLSAddr request^M (gdb) FAIL: gdb.server/no-thread-db.exp: print foo ... The regexp in the test-case expects the full $binfile pathname, but we have instead $HOME/no-thread-db. Fix this by making the regexp less strict. Tested on x86_64-linux.
2022-10-18[gdb/testsuite] Fix gdb.base/return-nodebug.exp with local-remote-host.expTom de Vries3-6/+28
With host board local-remote-host.exp and test-case gdb.base/return-nodebug.exp, I run into: ... Executing on host: gcc -fno-stack-protector -fdiagnostics-color=never \ -DTYPE=signed\ char -c -g -o return-nodebug-signed-char0.o \ /home/vries/gdb_versions/devel/src/gdb/testsuite/gdb.base/return-nodebug.c \ (timeout = 300) builtin_spawn [open ...]^M gcc: error: char: No such file or directory ... Avoid the quoting problem by not using spaces in the define. Tested on x86_64-linux.
2022-10-18[gdb/testsuite] Fix gdb.server/file-transfer.exp with local-remote-host.expTom de Vries1-2/+6
When running test-case gdb.server/file-transfer.exp with host board local-remote-host.exp, I get: ... Executing on host: cmp -s $outputs/gdb.server/file-transfer/file-transfer \ down-server (timeout = 300) builtin_spawn [open ...]^M XYZ2ZYX FAIL: gdb.server/file-transfer.exp: compare intermediate binary file ... The remote host and remote target cases are handled here together here in proc test_file_transfer: ... if {![is_remote host] && ![is_remote target]} { set up_server [standard_output_file $up_server] set down_server [standard_output_file $down_server] } ... Fix this by handling them separately. Tested on x86_64-linux.
2022-10-18[gdb/testsuite] Update boards/READMETom de Vries1-1/+1
Update gdb/testsuite/boards/README to reflect recent commit c4c8c27263d ("[gdb/testsuite] Fix host board local-remote-host-notty.exp timeouts"), which means the board now uses a pseudo-tty, but with editing disabled.
2022-10-18gdb, solib-svr4: support namespaces in DSO iterationMarkus Metzger6-16/+159
When looking up names, GDB needs to stay within one linker namespace to find the correct instance in case the same name is provided in more than one namespace. Modify svr4_iterate_over_objfiles_in_search_order() to stay within the namespace of the current_objfile argument. If no current_objfile is provided (i.e. it is nullptr), iterate over objfiles in the initial namespace. For objfiles that do not have a corresponding so_list to provide the namespace, assume that the objfile was loaded into the initial namespace. This would cover the main executable objfile (which is indeed loaded into the initial namespace) as well as manually added symbol files. Expected fails: - gdb.base/non-lazy-array-index.exp: the expression parser may lookup global symbols, which may result in xfers to read auxv for determining the debug base as part of svr4_iterate_over_objfiles_in_search_order(). - gdb.server/non-lazy-array-index.exp: symbol lookup may access the target to read AUXV in order to determine the debug base for SVR4 linker namespaces. Known issues: - get_symbol_address() and get_msymbol_address() search objfiles for a 'better' match. This was introduced by 4b610737f02 Handle copy relocations to handle copy relocations but it now causes a wrong address to be read after symbol lookup actually cound the correct symbol. This can be seen, for example, with gdb.base/dlmopen.exp when compiled with clang. - gnu ifuncs are only looked up in the initial namespace. - lookup_minimal_symbol() and lookup_minimal_symbol_text() directly iterate over objfiles and are not aware of linker namespaces.