aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-09-14regen pofilesAlan Modra1-0/+1
2022-09-14bfd: Stop using -Wstack-usage=262144 when built with ClangTsukasa OI8-2/+130
Some components of GNU Binutils will pass "-Wstack-usage=262144" when "GCC >= 5.0" is detected. However, Clang does not support "-Wstack-usage", despite that related configuration part in bfd/warning.m4 handles the latest Clang (15.0.0 as of this writing) as "GCC >= 5.0". The option "-Wstack-usage" was ignored when the first version of Clang is released but even this "ignoring" behavior is removed before Clang 4.0.0. So, if we give Clang "-Wstack-usage=262144", it generates a warning, making the build failure. This commit checks "__clang__" macro to prevent adding the option if the compiler is identified as Clang. bfd/ChangeLog: * warning.m4: Stop appending "-Wstack-usage=262144" option when compiled with Clang. * configure: Regenerate. binutils/ChangeLog: * configure: Regenerate. gas/ChangeLog: * configure: Regenerate. gold/ChangeLog: * configure: Regenerate. gprof/ChangeLog: * configure: Regenerate. ld/ChangeLog: * configure: Regenerate. opcodes/ChangeLog: * configure: Regenerate.
2022-09-14Modify ld-ctf test files to suit ARMAlan Modra12-24/+24
The "@" char starts a comment on ARM. * testsuite/ld-ctf/diag-ctf-version-0.s: Replace @progbits with %progbits. * testsuite/ld-ctf/diag-ctf-version-2-unsupported-feature.s: Likewise. * testsuite/ld-ctf/diag-ctf-version-f.s: Likewise. * testsuite/ld-ctf/diag-cttname-invalid.s: Likewise. * testsuite/ld-ctf/diag-cttname-null.s: Likewise. * testsuite/ld-ctf/diag-cuname.s: Likewise. * testsuite/ld-ctf/diag-decompression-failure.s: Likewise. * testsuite/ld-ctf/diag-parlabel.s: Likewise. * testsuite/ld-ctf/diag-parname.s: Likewise. * testsuite/ld-ctf/diag-strlen-invalid.s: Likewise. * testsuite/ld-ctf/diag-unsupported-flag.s: Likewise. * testsuite/ld-ctf/diag-wrong-magic-number.s: Likewise.
2022-09-14asan: som_set_reloc_info heap buffer overflowAlan Modra1-2/+7
Also a bugfix. The first time the section was read, the contents didn't supply an addend. * som.c (som_set_reloc_info): Sanity check offset. Do process contents after reading. Tidy section->contents after freeing.
2022-09-14ubsan: som_is_space null dereferenceAlan Modra1-1/+3
On objcopy of fuzzed file. * som.c (som_write_fixups): Exit loop if space sections all processed.
2022-09-14msan: vms-alpha use-of-uninitialized-value in dst_retrieve_locationAlan Modra1-0/+2
* vms-alpha.c (dst_define_location): Init any unused entries.
2022-09-14ubsan: arm-dis.c index out of boundsAlan Modra1-1/+1
We are way off in the weeds with this one, and will be printing <UNPREDICTABLE> for S > 10. * arm-dis.c (print_insn_cde): Wrap 'T' value.
2022-09-14PR29540, R_PPC64_NONE in .rela.dyn when linking Linux vdsoAlan Modra2-24/+24
PR 29540 * elf64-ppc.c (allocate_dynrelocs): Don't alloc space for relocs against discarded sections. (ppc64_elf_size_dynamic_sections): Use standard test for discarded sections. * elf32-ppc.c (allocate_dynrelocs): Don't alloc space for relocs against discarded sections. (ppc_elf_size_dynamic_sections): Use standard test for discarded sections.
2022-09-14Automatic date update in version.inGDB Administrator1-1/+1
2022-09-13objdump: '-S' should trigger search for separate debuginfo.Aaron Merey2-2/+10
Add with_source_code to the command line options that trigger might_need_separate_debug_info and dump_any_debugging. This helps 'objdump -S' download missing files via debuginfod without the need for specifying extra command line options like '-L'.
2022-09-13gdb/testsuite: Update gdb.base/so-impl-ld.expBruno Larsen2-13/+5
gdb.base/so-impl-ld.exp was setup assuming that the compiler would add epilogue information and that GDB would stop in the } line. This would make clang tests fail like so: step^M solib_main (arg=10000) at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/solib1.c:7^M 7|__ return arg*arg;|__|___/* HERE */^M (gdb) PASS: gdb.base/so-impl-ld.exp: step into solib call next^M main () at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/so-impl-ld.c:22^M 22|_ return 0;^M (gdb) FAIL: gdb.base/so-impl-ld.exp: step in solib call next^M 0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6^M (gdb) FAIL: gdb.base/so-impl-ld.exp: step out of solib call This patch changes it so solib_main has 2 lines where GDB can stop regardless of compiler choices, and updates the exp file to generically deal with unknown number of steps until leaving that function.
2022-09-13gdb/testsuite: introduce gdb_step_untilBruno Larsen1-0/+30
Currently, GDB's testsuite uses a set amount of step commands to exit functions. This is a problem if a compiler emits different epilogue information from gcc, or emits no epilogue information at all. It was most noticeable if Clang was used to test GDB. To fix this unreliability, this commit introduces a new proc that will step the inferior until it is stopped at a line that matches the given regexp, or until it steps too many times - defined as an optional argument. If the line is found, it shows up as a single PASS in the test, and if the line is not found, a single FAIL is emitted. This patch only introduces this proc, but does not add it to any existing tests, these will be introduced in the following commit.
2022-09-13explicitly test for stderr in gdb.base/dprintf.expBruno Larsen1-0/+10
Not all compilers add stderr debug information when compiling a program. Clang, for instance, prefers to add nothing from standard libraries and let an external debug package have this information. Because of this, gdb.base/dprintf.exp was failing when GDB attempted to use dprintf as a call to fprintf(stderrr, ...), like this: (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call continue Continuing. kickoff 1234 also to stderr 1234 'stderr' has unknown type; cast it to its declared type (gdb) FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout) To avoid this false positive, we explicitly test to see if the compiler has added information about stderr at all, and abort testing dprintf as an fprintf call if it is unavailable.
2022-09-13Add pdb archive formatMark Harmstone7-2/+826
Resubmitted with changes in https://sourceware.org/pipermail/binutils/2022-September/122791.html made.
2022-09-13gdb/csky rm csky_print_registers_infoJiangshuai Li1-25/+0
The reason for implementing this interface is that we want to print GPR, PC, EPC, PSR and EPSR when the "info register" command is executed. A prev patch has added PC, EPC, PSR and EPSR to reggroup general_group, the purpose has been achieved, so this function is no longer required.
2022-09-13gdb/csky rm csky_memory_insert/remove_breakpointJiangshuai Li1-201/+0
Software breakpoints are inserted or removed by the gdb stub via remote protocol, these two functions are no longer needed.
2022-09-13gdb/csky add unwinder for long branch casesJiangshuai Li2-5/+60
There are two sequences of instructions for long branch: 1. jmpi [pc+4] //insn code: 0xeac00001 .long addr 2. lrw t1, [pc+8] //insn code: 0xea8d0002 jmp t1 //insn code: 0x7834 nop //insn code: 0x6c03 .long addr
2022-09-13gdbserver/csky add csky gdbserver supportJiangshuai Li7-0/+556
Add new files: gdb/arch/csky.c gdb/arch/csky.h gdb/features/cskyv2-linux.c gdbserver/linux-csky-low.cc 1. In gdb/arch/csky.c file, add function "csky_create_target_description()" for csky_target::low_arch_setup(). later, it can be used for csky native gdb. 2. In gdb/features/cskyv2-linux.c file, create target_tdesc for csky, include gprs, pc, hi, lo, float, vector and float control registers. 3. In gdbserver/linux-csky-low.cc file, using PTRACE_GET/SET_RGESET to get/set registers. The main data structures in asm/ptrace.h are: struct pt_regs { unsigned long tls; unsigned long lr; unsigned long pc; unsigned long sr; unsigned long usp; /* * a0, a1, a2, a3: * r0, r1, r2, r3 */ unsigned long orig_a0; unsigned long a0; unsigned long a1; unsigned long a2; unsigned long a3; /* * r4 ~ r13 */ unsigned long regs[10]; /* r16 ~ r30 */ unsigned long exregs[15]; unsigned long rhi; unsigned long rlo; unsigned long dcsr; }; struct user_fp { unsigned long vr[96]; unsigned long fcr; unsigned long fesr; unsigned long fid; unsigned long reserved; };
2022-09-13Automatic date update in version.inGDB Administrator1-1/+1
2022-09-12Use checked_static_cast in more placesTom Tromey7-22/+14
I went through all the uses of dynamic_cast<> in gdb, looking for ones that could be replaced with checked_static_cast. This patch is the result. Regression tested on x86-64 Fedora 34.
2022-09-12ppc: Document the -mfuture and -Mfuture options and make them usablePeter Bergner6-2/+12
The -mfuture and -Mfuture options which are used for adding potential new ISA instructions were not documented. They also lacked a bitmask so new instructions could not be enabled by those options. Fixed. binutils/ * doc/binutils.texi: Document -Mfuture. gas/ * config/tc-ppc.c: Document -mfuture * doc/c-ppc.texi: Likewise. include/ * opcode/ppc.h (PPC_OPCODE_FUTURE): Define. opcodes/ * ppc-dis.c (ppc_opts) <future>: Use it. * ppc-opc.c (FUTURE): Define.
2022-09-12add xfails to gdb.base/complex-parts.exp when testing with clangBruno Larsen1-0/+5
clang doesn't add encoding to the name of complex variables, only says that the type name is complex, making the relevant tests fail. This patch adds the xfails to the tests that expect the variable name to include it.
2022-09-12Fix gdb.base/call-ar-st to work with ClangBruno Larsen1-1/+12
When running gdb.base/call-ar-st.exp against Clang, we see one FAIL, like so: print_all_arrays (array_i=<main.integer_array>, array_c=<main.char_array> "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa ZaZaZaZaZaZaZaZaZaZaZaZa", array_f=<main.float_array>, array_d=<main.double_array>) at ../../../src/gdb/testsuite/gdb.base/call-ar-st.c:274 274 print_int_array(array_i); /* -step1- */ (gdb) FAIL: gdb.base/call-ar-st.exp: step inside print_all_arrays With GCC we instead see: print_all_arrays (array_i=<integer_array>, array_c=<char_array> "ZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZa", array_f=<float_array>, array_d=<double_array>) at /home/pedro/gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.base/call-ar-st.c:274 274 print_int_array(array_i); /* -step1- */ (gdb) PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays The difference is that with Clang we get: array_i=<main.integer_array>, ... instead of array_i = <integer_array>, ... These symbols are local static variables, and "main" is the name of the function they are defined in. GCC instead appends a sequence number to the linkage name: $ nm -A call-ar-st.gcc | grep integer_ call-ar-st/call-ar-st:00000000000061a0 b integer_array.3968 $ nm -A call-ar-st.clang | grep integer_ call-ar-st:00000000004061a0 b main.integer_array This commit changes the testcase to accept both outputs, as they are functionally identical. Co-Authored-By: Pedro Alves <pedro@palves.net> Change-Id: Iaf2ccdb9d5996e0268ed12f595a6e04b368bfcb4
2022-09-12fix gdb.base/access-mem-running.exp for clang testingBruno Larsen1-1/+1
Clang was optimizing global_var away because it was not being used anywhere. this commit fixes that by adding the attribute used it.
2022-09-12update gdb.base/info-program.exp to not fail with clangBruno Larsen1-3/+3
The test specifically mentions that it doesn't care where the program stops, however it was still testing for a specific location. The clang compiler emits different line information for epilogue, so GDB reports a different stopping location, depending on the used compiler. With this patch the test works even with clang.
2022-09-12gdb/testsuite: change gdb.base/nodebug.exp to not fail with clangBruno Larsen1-2/+10
Clang organizes the variables differently to gcc in the original version of this code, leading to the following differences when testing p (int*) &dataglobal + 1 gcc: $16 = (int *) 0x404034 <datalocal> clang: $16 = (int *) 0x404034 <dataglobal8> However, since the important part of this test doesn't seem to be which symbol is linked, but rather if GDB is correctly increasing the address. This test was changed to actually measure address changes, instead of assuming the ordering and naming of symbols. Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
2022-09-12ld: pe: Apply review suggestions on the existing exports/imports arraysMartin Storsjö3-86/+83
Use a separate explicit max_exports/imports field, instead of deducing it from the number of allocated elements. Use a named constant for the incremental growth of the array. Use bool instead of int for boolean values. Remove an unnecessary if statement/scope in the def_file_free function. Add more verbose comments about parameters, and about insertion into an array of structs. Generally use unsigned integers for all array indices and sizes. The num_exports/imports fields are kept as is as signed integers, since changing them to unsigned would require a disproportionate amount of changes ti pe-dll.c to avoid comparisons between signed and unsigned. Simply use xrealloc instead of a check and xmalloc/xrealloc; xrealloc can take NULL as the first parameter (and does a similar check internally). (This wasn't requested in review though, but noticed while working on the code.)
2022-09-12ld: pe: Improve performance of object file exclude symbol directivesMartin Storsjö3-35/+99
Store the list of excluded symbols in a sorted list, speeding up checking for duplicates when inserting new entries. This is done in the same way as is done for exports and imports (while the previous implementation was done with a linked list, based on the implementation for aligncomm). When linking object files with excluded symbols, there can potentially be very large numbers of excluded symbols (just like builds with exports can have a large number of exported symbols). This improves the link performance somewhat, when linking with large numbers of excluded symbols. The later actual use of the excluded symbols within pe-dll.c handles them via an unordered linked list still, though.
2022-09-12[gdb] Fix abort in selftest run_on_main_thread with ^CTom de Vries1-2/+6
When running selftest run_on_main_thread and pressing ^C, we can run into: ... Running selftest run_on_main_thread. terminate called without an active exception Fatal signal: Aborted ... The selftest function looks like this: ... static void run_tests () { std::thread thread; done = false; { gdb::block_signals blocker; thread = std::thread (set_done); } while (!done && gdb_do_one_event () >= 0) ; /* Actually the test will just hang, but we want to test something. */ SELF_CHECK (done); thread.join (); } ... The error message we see is due to the destructor of thread being called while thread is joinable. This is supposed to be taken care of by thread.join (), but the ^C prevents that one from being called, while the destructor is still called. Fix this by ensuring thread.join () is called (if indeed required) before the destructor using SCOPE_EXIT. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29549
2022-09-12[gdb/symtab] Support .gdb_index section with TUs in .debug_infoTom de Vries3-2/+75
The .gdb_index variant of commit d878bb39e41 ("[gdb/symtab] Support .debug_names section with TUs in .debug_info"). Tested on x86_64-linux.
2022-09-12[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp for ppc64leTom de Vries2-10/+5
In commit cd919f5533c ("[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp"), I made gdb.dwarf2/dw2-dir-file-name.exp independent of prologue analyzers, using this change: ... - gdb_breakpoint $func + gdb_breakpoint *$func ... That however caused a regression on ppc64le. For PowerPC, as described in the ELFv2 ABI, a function can have a global and local entry point. Setting a breakpoint on *$func effectively creates a breakpoint for the global entry point, so if the function is entered through the local entry point, the breakpoint doesn't trigger. Fix this by reverting commit cd919f5533c, and setting the breakpoint on ${func}_label instead. Tested on x86_64-linux and ppc64le-linux.
2022-09-12[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp with clangTom de Vries2-23/+62
When running test-case gdb.dwarf2/dw2-dir-file-name.exp with clang, we run into: ... (gdb) break *compdir_missing__ldir_missing__file_basename^M Breakpoint 2 at 0x400580^M (gdb) continue^M Continuing.^M ^M Breakpoint 2, 0x0000000000400580 in \ compdir_missing.ldir_missing.file_basename ()^M (gdb) FAIL: gdb.dwarf2/dw2-dir-file-name.exp: \ compdir_missing__ldir_missing__file_basename: continue to breakpoint: \ compdir_missing__ldir_missing__file_basename ... The problem is that the test-case uses labels outside functions, which is know to cause problem with clang, as documented in the comment for proc function_range. Fix this by using get_func_info instead. Tested on x86_64-linux, with both gcc 7.5.0 and clang 13.0.0.
2022-09-12x86: avoid i386_dis_printf()'s staging area for a fair part of outputJan Beulich1-20/+24
While PR binutils/29483 has now been addressed differently, this originally proposed change still has its merits: Avoiding vsnprintf() for typically far more than half of the overall output results in a 2-3% performance gain in my testing (with debug builds of objdump, libbfd, and libopcodes). With that part of output no longer using staging_area[], the array also doesn't need to be quite as large anymore (the largest presently used size is 27, from "64-bit address is disabled"). While limiting the scope of "res" it became apparent that - no caller cares about the function's return value, - the comment about the return value was wrong, - a particular positive return value would have been meaningless to the caller. Therefore convert the function to return "void" at the same time.
2022-09-12RISC-V: PR28509, the default visibility symbol cannot be referenced by ↵Nelson Chu13-57/+126
R_RISCV_JAL. When generating the shared object, the default visibility symbols may bind externally, which means they will be exported to the dynamic symbol table, and are preemptible by default. These symbols cannot be referenced by the non-pic R_RISCV_JAL and R_RISCV_RVC_JUMP. However, consider that linker may relax the R_RISCV_CALL relocations to R_RISCV_JAL or R_RISCV_RVC_JUMP, if these relocations are relocated to the plt entries, then we won't report error for them. Perhaps we also need the similar checks for the R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations. After applying this patch, and revert the following glibc patch, riscv: Fix incorrect jal with HIDDEN_JUMPTARGET https://sourceware.org/git/?p=glibc.git;a=commit;h=68389203832ab39dd0dbaabbc4059e7fff51c29b I get the expected errors as follows, ld: relocation R_RISCV_RVC_JUMP against `__sigsetjmp' which may bind externally can not be used when making a shared object; recompile with -fPIC ld: relocation R_RISCV_JAL against `exit' which may bind externally can not be used when making a shared object; recompile with -fPIC Besides, we also have similar changes for libgcc, RISC-V: jal cannot refer to a default visibility symbol for shared object https://github.com/gcc-mirror/gcc/commit/45116f342057b7facecd3d05c2091ce3a77eda59 bfd/ pr 28509 * elfnn-riscv.c (riscv_elf_relocate_section): Report errors when makeing a shard object, and the referenced symbols of R_RISCV_JAL relocations are default visibility. Besides, we should handle most of the cases here, so don't need the unresolvable check later for R_RISCV_JAL and R_RISCV_RVC_JUMP. ld/ pr 28509 * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated. * testsuite/ld-riscv-elf/lib-nopic-01a.s: Removed. * testsuite/ld-riscv-elf/lib-nopic-01b.d: Likewise. * testsuite/ld-riscv-elf/lib-nopic-01b.s: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-01.d: New testcase. * testsuite/ld-riscv-elf/shared-lib-nopic-01.s: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-02.d: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-02.s: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-03.d: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-03.s: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-04.d: Likewise. * testsuite/ld-riscv-elf/shared-lib-nopic-04.s: Likewise.
2022-09-12Automatic date update in version.inGDB Administrator1-1/+1
2022-09-11[gdb/symtab] Fix handling of DW_TAG_unspecified_typeTom de Vries5-4/+123
Currently, the test-case contained in this patch fails: ... (gdb) p (int) foo ()^M Invalid cast.^M (gdb) FAIL: gdb.dwarf2/dw2-unspecified-type.exp: p (int) foo () ... because DW_TAG_unspecified_type is translated as void. There's some code in read_unspecified_type that marks the type as stub, but that's only active for ada: ... if (cu->lang () == language_ada) type->set_is_stub (true); ... Fix this by: - marking the type as a stub for all languages, and - handling the stub return type case in call_function_by_hand_dummy. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29558
2022-09-11Automatic date update in version.inGDB Administrator1-1/+1
2022-09-10Re: PR29466, APP/NO_APP with linefileAlan Modra1-1/+1
It looks like I copied the SIZE init across from binutils/testsuite/config/default.exp without some necessary editing. * testsuite/config/default.exp (SIZE): Adjust relative path.
2022-09-10Automatic date update in version.inGDB Administrator1-1/+1
2022-09-09Support debuginfo files with empty group sections.Nick Clifton4-4/+29
PR 29532 bfd * elf.c (setup_group): Do not return false if there is no group information available. bionutils* objcopy.c (setup_section): Leave group sections intact when creating separate debuginfo files.
2022-09-09RISC-V: Fix vector CSR requirementsTsukasa OI5-57/+57
Vector CSRs are also required on smaller vector subsets. Not only that the most of vector CSRs are general purpose (and must be accessible for every vector subsets), current minimum vector subset 'Zve32x' requires fixed point arithmetic, making remaining non-general purpose (fixed point arithmetic only) CSRs mandatory for such subsets. So, those CSRs must be accessible from 'Zve32x', not just from 'V'. This commit fixes this issue which caused CSR accessibility warnings. gas/ChangeLog: * config/tc-riscv.c (riscv_csr_address): Change vector CSR requirement from 'V' to 'Zve32x'. * testsuite/gas/riscv/csr-version-1p9p1.l: Change vector CSR requirement from 'V' to 'Zve32x'. * testsuite/gas/riscv/csr-version-1p10.l: Likewise. * testsuite/gas/riscv/csr-version-1p11.l: Likewise. * testsuite/gas/riscv/csr-version-1p12.l: Likewise.
2022-09-09Automatic date update in version.inGDB Administrator1-1/+1
2022-09-08Fix hardware watchpoint check in test gdb.base/watchpoint-reuse-slot.expCarl Love1-1/+11
This test generates 48 failures on Power 9 when testing with HW watchpoints enabled. Note HW watchpoint support is disabled on Power 9 due to a HW bug. The skip_hw_watchpoint_tests proc must be used to correctly determine if the processor supports HW watchpoints. This patch replaces the [target_info exists gdb,no_hardware_watchpoints] with the skip_hw_watchpoint_tests check. This patch was tested on Power 9, Power 10 and X86-64 with no regressions.
2022-09-08Gas generated incorrect debug info (top-level DW_TAG_unspecified_type DIE)Nick Clifton6-30/+50
PR 29559 * dwarf2dbg.c (out_debug_info): Place DW_TAG_unspecified_type at the end of the list of children, not at the start of the CU information. * testsuite/gas/elf/dwarf-3-func.d: Update expected output. * testsuite/gas/elf/dwarf-5-func-global.d: Likewise. * testsuite/gas/elf/dwarf-5-func-local.d: Likewise. * testsuite/gas/elf/dwarf-5-func.d: Likewise.
2022-09-08gdbsupport: Fix config.status dependencyTsukasa OI3-2/+3
Commit 171fba11ab27 ("Make GDBserver abort on internal error in development mode") created a new substitution CONFIG_STATUS_DEPENDENCIES but this is used by Makefile.in (which is not regenerated by that commit). After regenerating it, it is found that CONFIG_STATUS_DEPENDENCIES value is not valid, making gdbsupport fail to build. Since the CONFIG_STATUS_DEPENDENCIES value is used in the Makefile, macro substitution must have a Makefile format but commit 171fba11ab27 used shell format "$srcdir/../bfd/development.sh". This commit fixes this issue by substituting "$srcdir" (shell format) to "$(srcdir)" (Makefile format). It preserves the dependency as Pedro intended and fixes the build problem. It also regenerates corresponding files with the maintainer mode. gdbsupport/ChangeLog: * configure.ac: Fix config.status dependency. * Makefile.in: Regenerate. * configure: Regenerate.
2022-09-08Maintainer mode: wrong gettext version?Nick Clifton2-2/+8
* README-maintainer-mode: Update minimum version of gettext required.
2022-09-08i686-w64-mingw32-objdump -WL returns incorrect file pathsNick Clifton2-0/+13
PR 29523 * dwarf.c (display_debug_lines_decoded): Correctly handle DWARF-5 directory and filename tables.
2022-09-08Automatic date update in version.inGDB Administrator1-1/+1
2022-09-07[gdb/testsuite] xfail gdb.ada/O2_float_param.exp for aarch64 and gcc 7.5.0Tom de Vries1-1/+23
On aarch64-linux, with gcc 7.5.0, we run into: ... (gdb) frame^M #0 callee.increment (val=99.0, val@entry=9.18340949e-41, msg=...) at \ callee.adb:21^M 21 if Val > 200.0 then^M (gdb) FAIL: gdb.ada/O2_float_param.exp: scenario=all: frame ... The problem is a GCC bug, filed as "PR98148 - [AArch64] Wrong location expression for function entry values" ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98148 ). Xfail the test for aarch64 and gcc 7. Tested on x86_64-linux and aarch64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29418
2022-09-07[gdb/testsuite] Fix gdb.ada/access_tagged_param.exp for aarch64Tom de Vries3-3/+3
On aarch64-linux, I run into: ... Breakpoint 2, pck.inspect (obj=0x430eb0 \ <system.pool_global.global_pool_object>, <objL>=0) at pck.adb:17^M 17 procedure Inspect (Obj: access Top_T'Class) is^M (gdb) FAIL: gdb.ada/access_tagged_param.exp: continue ... while on x86_64-linux, I see: ... Breakpoint 2, pck.inspect (obj=0x62b2a0, <objL>=2) at pck.adb:19^M 19 null;^M (gdb) PASS: gdb.ada/access_tagged_param.exp: continue ... Note the different line numbers, 17 vs 19. The difference comes from the gdbarch_skip_prologue implementation. The amd64_skip_prologue implementation doesn't use gcc line numbers, and falls back to the architecture-specific prologue analyzer, which correctly skips past the prologue, to address 0x4022f7: ... 00000000004022ec <pck__inspect>: 4022ec: 55 push %rbp 4022ed: 48 89 e5 mov %rsp,%rbp 4022f0: 48 89 7d f8 mov %rdi,-0x8(%rbp) 4022f4: 89 75 f4 mov %esi,-0xc(%rbp) 4022f7: 90 nop 4022f8: 90 nop 4022f9: 5d pop %rbp 4022fa: c3 ret ... The aarch64_skip_prologue implementation does use gcc line numbers, which are: ... File name Line number Starting address View Stmt pck.adb 17 0x402580 x pck.adb 17 0x402580 1 x pck.adb 19 0x40258c x pck.adb 20 0x402590 x ... and which are represented like this internally in gdb: ... INDEX LINE ADDRESS IS-STMT PROLOGUE-END 0 17 0x0000000000402580 Y 1 17 0x0000000000402580 Y 2 19 0x000000000040258c Y 3 20 0x0000000000402590 Y 4 END 0x00000000004025a0 Y ... The second entry is interpreted as end-of-prologue, so 0x402580 is used, while the actual end of the prologue is at 0x40258c: ... 0000000000402580 <pck__inspect>: 402580: d10043ff sub sp, sp, #0x10 402584: f90007e0 str x0, [sp, #8] 402588: b90007e1 str w1, [sp, #4] 40258c: d503201f nop 402590: d503201f nop 402594: 910043ff add sp, sp, #0x10 402598: d65f03c0 ret 40259c: d503201f nop ... Note that the architecture-specific prologue analyzer would have gotten this right: ... (gdb) p /x aarch64_analyze_prologue (gdbarch, pc, pc + 128, 0) $2 = 0x40258c ... Fix the FAIL by making the test-case more robust against problems in prologue skipping, by setting the breakpoint on line 19 instead. Likewise in a few similar test-cases. Tested on x86_64-linux and aarch64-linux.