From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2124) id 5FC1C3858407; Fri, 5 Aug 2022 10:07:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5FC1C3858407 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Nick Clifton To: bfd-cvs@sourceware.org, gdb-cvs@sourceware.org Subject: [binutils-gdb/binutils-2_39-branch] This is the 2.39 release X-Act-Checkin: binutils-gdb X-Git-Author: Nick Clifton X-Git-Refname: refs/heads/binutils-2_39-branch X-Git-Oldrev: 68566b8621b066d6fbf8fbbf2e267282667b9d76 X-Git-Newrev: 3f7314c5d5cb8ffc050cebf149b7c2e16ad5a2b9 Message-Id: <20220805100740.5FC1C3858407@sourceware.org> Date: Fri, 5 Aug 2022 10:07:40 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2022 10:07:40 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D3f7314c5d5cb= 8ffc050cebf149b7c2e16ad5a2b9 commit 3f7314c5d5cb8ffc050cebf149b7c2e16ad5a2b9 Author: Nick Clifton Date: Fri Aug 5 11:07:32 2022 +0100 This is the 2.39 release Diff: --- ChangeLog.git | 68733 ++++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 68733 insertions(+) diff --git a/ChangeLog.git b/ChangeLog.git new file mode 100644 index 00000000000..5d2aa151b7e --- /dev/null +++ b/ChangeLog.git @@ -0,0 +1,68733 @@ +2022-08-05 GDB Administrator + + Automatic date update in version.in + +2022-08-04 GDB Administrator + + Automatic date update in version.in + +2022-08-03 Ruud van der Pas + + gprofng: fix bug 29410 - Argument " 0." isn't numeric in numeric gt = (>) + gprofng/Changelog: + 2022-08-02 Ruud van der Pas + + PR gprofng/29410 + * gp-display-html/gp-display-html.in: Remove non-breaking spaces. + +2022-08-03 GDB Administrator + + Automatic date update in version.in + +2022-08-02 Matthew Malcomson + + ld: aarch64: Update test linker scripts relocs.ld and relocs-ilp32.ld + The updates are to ensure that the .data section exists. This means + that we always have a data section. That means that we don't create a + RWX segment and avoid the corresponding warning. + + We get this warning when testing aarch64-none-elf with -mcmodel=3Dtiny. + N.b. this changes quite a few testcases from fail to pass. + +2022-08-02 GDB Administrator + + Automatic date update in version.in + +2022-08-01 Alan Modra + + libctf: Avoid use of uninitialised variables + * ctf-link.c (ctf_link_add_ctf_internal): Don't free uninitialised + pointers. + + (cherry picked from commit 9ea6fffe1ebec9bd1929c708e044b765eabea258) + +2022-08-01 Alan Modra + + PR29348, BFD_VMA_FMT wrong + There is a problem with my commit 0e3c1eebb2, which replaced + bfd_uint64_t with uint64_t: Some hosts typedef int64_t to long long + even when long is the same size as long long. That confuses the code + choosing one of "l", "ll", or "I64" for BFD_VMA_FMT, and results in + warnings. + + Write a direct configure test for the printf int64_t style instead. + This removes the last use of BFD_HOST_64BIT_LONG, so delete that. + Note that the changes to configure.com are pure guesswork. + + PR 29348 + * bfd-in.h (BFD_HOST_64BIT_LONG): Don't define. + (BFD_VMA_FMT): Define using BFD_INT64_FMT when 64-bit. + (bfd_vma, bfd_signed_vma): Move comments to 64-bit typedefs. + * configure.ac (BFD_HOST_64BIT_LONG): Delete. + (BFD_INT64_FMT): New config test. + * configure.com: Update similarly. + * Makefile.in: Regenerate. + * bfd-in2.h: Regenerate. + * configure: Regenerate. + + (cherry picked from commit 1a5178fe284547ef2abd8ae66588c9999d61c524) + +2022-08-01 GDB Administrator + + Automatic date update in version.in + +2022-07-31 GDB Administrator + + Automatic date update in version.in + +2022-07-30 GDB Administrator + + Automatic date update in version.in + +2022-07-29 Nick Clifton + + Stop the linker from complaining about unrecognized DW_FORM_rnglistx and = DW_FORM_loclistx attribute formats. + PR 29424 + * dwarf2.c (read_attribute_value): Handle DW_FORM_rnglistx and + DW_FORM_loclistx. + +2022-07-29 Rainer Orth + + ld: Extend ac_default_ld_warn_rwx_segments to all SPARC targets [PR29411] + As discussed in PR ld/29411, the ld warning + + [...] has a LOAD segment with RWX permissions + + needs to be disabled on all SPARC targets, not just Solaris/SPARC: the + .plt section is required to be RWX by the 32-bit SPARC ELF psABI and the + 64-bit SPARC Compliance Definition 2.4.1. Given that ld only supports + SPARC ELF targets, this patch implements this. + + Tested on sparc64-unknown-linux-gnu and sparc-sun-solaris2.11. + + 2022-07-28 Rainer Orth + + ld: + PR ld/29411 + * configure.tgt (ac_default_ld_warn_rwx_segments): Extend to all + sparc targets. Expand comment. + +2022-07-29 GDB Administrator + + Automatic date update in version.in + +2022-07-28 GDB Administrator + + Automatic date update in version.in + +2022-07-27 GDB Administrator + + Automatic date update in version.in + +2022-07-27 Vladimir Mezentsev + + gprofng: check for the makeinfo version + gprofng/ChangeLog + 2022-07-25 Vladimir Mezentsev + + PR gprofng/29368 + * configure.ac: Check for the makeinfo version. + * configure: Rebuild. + +2022-07-26 Nick Clifton + + Stop the linker from complaining about RWX segments on sparc-solaris targ= ets. + PR 29411 + * configure.tgt (ac_default_ld_warn_rwx_segments): Disable for + sparc-solaris configurations. + +2022-07-26 Alan Modra + + PowerPC32 ld test fails with --enable-targets=3Dall + Three pppc32 ld tests fail when spu support is included in the linker + due to this snippet in ld/emulparams/elf32ppc.sh. + + if grep -q 'ld_elf32_spu_emulation' ldemul-list.h; then + DATA_START_SYMBOLS=3D"${RELOCATING+*crt1.o(.data .data.* .gnu.linkonce.= d.*) + PROVIDE (__spe_handle =3D .); + *(.data.spehandle) + . +=3D 4 * (DEFINED (__spe_handle) || . !=3D 0);}" + fi + + * testsuite/ld-powerpc/tlsexe32.r: Pass with .data section present. + * testsuite/ld-powerpc/tlsexe32no.r: Likewise. + * testsuite/ld-powerpc/tlsso32.r: Likewise. + + (cherry picked from commit c138af95731c630a78329fd86076992f82099957) + +2022-07-26 Nick Clifton + + Updated translations for various sub-directories + +2022-07-26 GDB Administrator + + Automatic date update in version.in + +2022-07-25 Ruud van der Pas + + gprofng: fix bug 29356 - Execution fails if gprofng is not included in PA= TH + gprofng/Changelog: + 2022-07-22 Ruud van der Pas + + PR gprofng/29356 + * gp-display-html/gp-display-html.in: fixed a problem to execute + gp-display-text in case gprofng is not included in the search + path. + +2022-07-25 Ruud van der Pas + + gprofng: fix bug 29392 - Unexpected line format in summary file + gprofng/Changelog: + 2022-07-22 Ruud van der Pas + + PR gprofng/29392 + * gp-display-html/gp-display-html.in: modified a regex, plus the + code to handle the results; renamed a variable to improve the + consistency in naming. + +2022-07-25 Ruud van der Pas + + gprofng: fix bug 29353 - Fix a lay-out issue in the html disassembly files + gprofng/Changelog: + 2022-07-22 Ruud van der Pas + + PR gprofng/29353 + * gp-display-html/gp-display-html.in: fixed a problem in the + generation of html for the disassembly where instructions + without arguments were not handled correctly. + +2022-07-25 Ruud van der Pas + + gprofng: fix bug 29352 - Fix the message Hexadecimal number > 0xffffffff = non-portable + gprofng/Changelog: + 2022-07-22 Ruud van der Pas + + PR gprofng/29352 + * gp-display-html/gp-display-html.in: the hex subroutine from + the bigint module is now used. + +2022-07-25 Ruud van der Pas + + gprofng: fix bug 29351 - Move dynamic loading of modules to a later stage + gprofng/Changelog: + 2022-07-22 Ruud van der Pas + + PR gprofng/29351 + * gp-display-html/gp-display-html.in: the dynamic loading of + modules occurred too early, resulting in the generation of the + man page to fail in case a module is missing; the loading part is + now done somewhat later in the execution to avoid this problem. + +2022-07-25 H.J. Lu + + x86: Disallow invalid relocations against protected symbols + Since glibc 2.36 will issue warnings for copy relocation against + protected symbols and non-canonical reference to canonical protected + functions, change the linker to always disallow such relocations. + + bfd/ + + * elf32-i386.c (elf_i386_scan_relocs): Remove check for + elf_has_indirect_extern_access. + * elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise. + (elf_x86_64_relocate_section): Remove check for + elf_has_no_copy_on_protected. + * elfxx-x86.c (elf_x86_allocate_dynrelocs): Check for building + executable instead of elf_has_no_copy_on_protected. + (_bfd_x86_elf_adjust_dynamic_symbol): Disallow copy relocation + against non-copyable protected symbol. + * elfxx-x86.h (SYMBOL_NO_COPYRELOC): Remove check for + elf_has_no_copy_on_protected. + + ld/ + + * testsuite/ld-i386/i386.exp: Expect linker error for PR ld/17709 + test. + * testsuite/ld-i386/pr17709.rd: Removed. + * testsuite/ld-i386/pr17709.err: New file. + * testsuite/ld-x86-64/pr17709.rd: Removed. + * testsuite/ld-x86-64/pr17709.err: New file. + * testsuite/ld-x86-64/pr28875-func.err: Updated. + * testsuite/ld-x86-64/x86-64.exp: Expect linker error for PR + ld/17709 test. Add tests for function pointer against protected + function. + + (cherry picked from commit f638657759f5b9b4eb31a1aa6b9fe6e6fb01f4a0) + +2022-07-25 Fangrui Song + + x86: Make protected symbols local for -shared + Call _bfd_elf_symbol_refs_local_p with local_protected=3D=3Dtrue. This h= as + 2 noticeable effects for -shared: + + * GOT-generating relocations referencing a protected data symbol no + longer lead to a GLOB_DAT (similar to a hidden symbol). + * Direct access relocations (e.g. R_X86_64_PC32) no longer has the + confusing diagnostic below. + + __attribute__((visibility("protected"))) void *foo() { + return (void *)foo; + } + + // gcc -fpic -shared -fuse-ld=3Dbfd + relocation R_X86_64_PC32 against protected symbol `foo' can not be us= ed when making a shared object + + The new behavior matches arm, aarch64 (commit + 83c325007c5599fa9b60b8d5f7b84842160e1d1b), and powerpc ports, and other + linkers: gold and ld.lld. + + Note: if some code tries to use direct access relocations to take the + address of foo, the pointer equality will break, but the error should be + reported on the executable link, not on the innocent shared object link. + glibc 2.36 will give a warning at relocation resolving time. + + With this change, `#define elf_backend_extern_protected_data 1` is no + longer effective. Just remove it. + + Remove the test "Run protected-func-1 without PIE" since -fno-pic + address taken operation in the executable doesn't work with protected + symbol in a shared object by default. Similarly, remove + protected-data-1a and protected-data-1b. protected-data-1b can be made + working by removing HAVE_LD_PIE_COPYRELOC from GCC + (https://sourceware.org/pipermail/gcc-patches/2022-June/596678.html). + + (cherry picked from commit d19a265487eda186b6977d9d15648cda9fad3298) + +2022-07-25 Alan Modra + + Re: PowerPC64 .branch_lt address + On seeing PR29369 my suspicion was naturally on a recent powerpc64 + change, commit 0ab80031430e. Without a reproducer, I spent time + wondering what could have gone wrong, and while I doubt this patch + would have fixed the PR, there are some improvements that can be made + to cater for user silliness. + + I also noticed that when -z relro -z now sections are created out of + order, with .got before .plt in the section headers but .got is laid + out at a higher address. That's due to the address expression for + .branch_lt referencing SIZEOF(.got) and so calling init_os (which + creates a bfd section) for .got before the .plt section is created. + Fix that by ignoring SIZEOF in exp_init_os. Unlike ADDR and LOADADDR + which need to reference section vma and lma respectively, SIZEOF can + and does cope with a missing bfd section by returning zero for its + size, which of course is correct. + + PR 29369 + * ldlang.c (exp_init_os): Don't create a bfd section for SIZEOF. + * emulparams/elf64ppc.sh (OTHER_RELRO_SECTIONS_2): Revise + .branch_lt address to take into account possible user sections + with alignment larger than 8 bytes. + + (cherry picked from commit 5d471bd907be60e9858b22cdf4fd10ddc0f6ee1a) + +2022-07-25 GDB Administrator + + Automatic date update in version.in + +2022-07-24 GDB Administrator + + Automatic date update in version.in + +2022-07-23 GDB Administrator + + Automatic date update in version.in + +2022-07-22 H.J. Lu + + i386: Don't allow GOTOFF relocation against IFUNC symbol for PIC + We can't use the PLT entry as the function address for PIC since the PIC + register may not be set up properly for indirect call. + + bfd/ + + PR ld/27998 + * elf32-i386.c (elf_i386_relocate_section): Don't allow GOTOFF + relocation against IFUNC symbol for PIC. + + ld/ + + PR ld/27998 + * testsuite/ld-i386/pr27998a.d: Replace -shared with -e bar. + * testsuite/ld-i386/pr27998b.d: Expect a linker error. + * testsuite/ld-ifunc/ifunc-2-i386-now.d: Updated. + * testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise. + * testsuite/ld-ifunc/ifunc-2-i386.s: Replace @GOTOFF with @GOT. + * testsuite/ld-ifunc/ifunc-2-local-i386.s: Likewise. + + (cherry picked from commit 8f29211c3f0a6335c17e0a90396c146facf6dba4) + +2022-07-22 GDB Administrator + + Automatic date update in version.in + +2022-07-21 Peter Bergner + + PowerPC: Create new MMA instruction masks and use them + The MMA instructions use XX3_MASK|3<<21 as an instruction mask, but that + misses the RC bit/bit 31, so if we disassemble a .long that represents an + MMA instruction except that it also has bit 31 set, we will erroneously + disassemble it to that MMA instruction. We create new masks defines that + contain bit 31 so that doesn't happen anymore. + + opcodes/ + * ppc-opc.c (XACC_MASK, XX3ACC_MASK): New defines. + (P_GER_MASK, xxmfacc, xxmtacc, xxsetaccz, xvi8ger4pp, xvi8ger4, + xvf16ger2pp, xvf16ger2, xvf32gerpp, xvf32ger, xvi4ger8pp, xvi4ger8, + xvi16ger2spp, xvi16ger2s, xvbf16ger2pp, xvbf16ger2, xvf64gerpp, + xvf64ger, xvi16ger2, xvf16ger2np, xvf32gernp, xvi8ger4spp, xvi16ger2pp, + xvbf16ger2np, xvf64gernp, xvf16ger2pn, xvf32gerpn, xvbf16ger2pn, + xvf64gerpn, xvf16ger2nn, xvf32gernn, xvbf16ger2nn, xvf64gernn: Use them. + + (cherry picked from commit 0a246853439422e12a0ccb9191be638aab3987eb) + +2022-07-21 Jan Beulich + + x86: replace wrong attributes on VCVTDQ2PH{X,Y} + A standalone (without SAE) StaticRounding attribute is meaningless, and + indeed all other similar insns have ATTSyntax there instead. I can only + assume this was some strange copy-and-paste mistake. + + (cherry picked from commit ea09fe92596fbb2a5da4595459bfe8b23789ec8d) + +2022-07-21 Jan Beulich + + x86/Intel: correct AVX512F scatter insn element sizes + I clearly screwed up in 6ff00b5e12e7 ("x86/Intel: correct permitted + operand sizes for AVX512 scatter/gather") giving all AVX512F scatter + insns Dword element size. Update testcases (also their gather parts), + utilizing that there previously were two identical lines each (for no + apparent reason). + + (cherry picked from commit 987e8a90fa6541d57b42fef95fae0a7da5a2c9bc) + +2022-07-21 Alan Modra + + PR29390, DW_CFA_AARCH64_negate_ra_state vs. DW_CFA_GNU_window_save + PR 29390 + binutils/ + * dwarf.c (is_aarch64, DW_CFA_GNU_window_save_name): New. + (display_debug_frames): Use them. + (init_dwarf_regnames_aarch64): Set is_aarch64. + (init_dwarf_regnames_by_elf_machine_code): Clear is_aarch64. + (init_dwarf_regnames_by_bfd_arch_and_mach): Likewise. + gas/ + * testsuite/gas/aarch64/pac_ab_key.d: Adjust expected output. + * testsuite/gas/aarch64/pac_negate_ra_state.d: Likewise. + + (cherry picked from commit e4e340a3ff2ccc825f4a40abf947cdf32b3fdbbf) + +2022-07-21 Alan Modra + + PR29337, readelf CU/TU mixup in .gdb_index + Commit 244e19c79111 changed a number of variables in display_gdb_index + to count entries rather than words. + + PR 29337 + * dwarf.c (display_gdb_index): Correct use of cu_list_elements. + + (cherry picked from commit e82295b23d0e52b0dadffb8c0d0b99462cd20fa8) + +2022-07-21 Alan Modra + + PowerPC64: fix build error on 32-bit hosts + elf64-ppc.c:11673:33: error: format =E2=80=98%lx=E2=80=99 expects argumen= t of type =E2=80=98long unsigned int=E2=80=99, but argument 3 has type =E2= =80=98bfd_vma=E2=80=99 {aka =E2=80=98long long unsigned int=E2=80=99} [-Wer= ror=3Dformat=3D] + 11673 | fprintf (stderr, "offset =3D %#lx:", stub_entry->stub_offset); + | ~~~^ ~~~~~~~~~~~~~~~~~~~~~~~ + | | | + | | bfd_vma {aka long = long unsigned int} + | long unsigned int + | %#llx + + * elf64-ppc.c (dump_stub): Use BFD_VMA_FMT. + + (cherry picked from commit 590207aa6ece509eabbc7a51aab87e5d9bcfc869) + +2022-07-21 GDB Administrator + + Automatic date update in version.in + +2022-07-20 GDB Administrator + + Automatic date update in version.in + +2022-07-19 H.J. Lu + + x86: Properly check invalid relocation against protected symbol + Only check invalid relocation against protected symbol defined in shared + object. + + bfd/ + + PR ld/29377 + * elf32-i386.c (elf_i386_scan_relocs): Only check invalid + relocation against protected symbol defined in shared object. + * elf64-x86-64.c (elf_x86_64_scan_relocs): Likewise. + + ld/ + + PR ld/29377 + * testsuite/ld-elf/linux-x86.exp: Run PR ld/29377 tests. + * testsuite/ld-elf/pr29377a.c: New file. + * testsuite/ld-elf/pr29377b.c: Likewise. + + (cherry picked from commit bd0736124c20950ac353f01e5029b7cb5d8a7010) + + ld: Pass -nostdlib to compiler with -r + + Pass -nostdlib to compiler with -r to avoid unnecessary .o file and + libraries. + + PR ld/29377 + * testsuite/ld-elf/linux-x86.exp: Pass -nostdlib with -r. + + (cherry picked from commit 76e4fa70e79ee959c0e11eaacd4cf863291b1ddb) + +2022-07-19 GDB Administrator + + Automatic date update in version.in + +2022-07-18 Vladimir Mezentsev + + gprofng: link libgprofng.so against -lpthread + gprofng/ChangeLog + 2022-07-15 Vladimir Mezentsev + + PR gprofng/29364 + * src/Makefile.am (libgprofng_la_LIBADD): Add -lpthread. + * src/Makefile.in: Rebuild. + +2022-07-18 Vladimir Mezentsev + + gprofng: fix regression in build and a race condition in autoreconf + gprofng/ChangeLog + 2022-07-14 Vladimir Mezentsev + + PR gprofng/29338 + * libcollector/configure.ac (AC_CONFIG_HEADERS): Fix a race condition. + * libcollector/configure: Rebuild. + * libcollector/Makefile.in: Rebuild. + * common/config.h.in: Rebuild. + * common/lib-config.h.in: Created by autoreconf. + +2022-07-18 Jan Beulich + + x86: correct VMOVSH attributes + Both forms were missing VexW0 (thus allowing Evex.W=3D1 to be encoded by + suitable means, which would cause #UD). The memory operand form further + was using the wrong Masking value, thus allowing zeroing-masking to be + encoded for the store form (which would again cause #UD). + + (cherry picked from commit 7e864bf71d55626dce94df26ebaf11f65b4d7b65) + +2022-07-18 GDB Administrator + + Automatic date update in version.in + +2022-07-17 GDB Administrator + + Automatic date update in version.in + +2022-07-16 GDB Administrator + + Automatic date update in version.in + +2022-07-15 GDB Administrator + + Automatic date update in version.in + +2022-07-14 GDB Administrator + + Automatic date update in version.in + +2022-07-13 GDB Administrator + + Automatic date update in version.in + +2022-07-12 Alan Modra + + PR29355, ld segfaults with -r/-q and custom-named section .rela* + The bug testcase uses an output section named .rel or .rela which has + input .data sections mapped to it. The input .data section has + relocations. When counting output relocations SHT_REL and SHT_RELA + section reloc_count is ignored, with the justification that reloc + sections themselves can't have relocations and some backends use + reloc_count in reloc sections. However, the test wrongly used the + output section type (which normally would match input section type). + Fix that. Note that it is arguably wrong for ld to leave the output + .rel/.rela section type as SHT_REL/SHT_RELA when non-empty non-reloc + sections are written to it, but I'm not going to change that since it + might be useful to hand-craft relocs in a data section that is then + written to a SHT_REL/SHT_RELA output section. + + PR 29355 + * elflink.c (bfd_elf_final_link): Use input section type rather + than output section type to determine whether to exclude using + reloc_count from that section. + + (cherry picked from commit 35c5dcc666082f0edf6dd559e46b98d0e7986a2e) + +2022-07-12 Alan Modra + + ppc gas: don't leak ppc_hash memory + * config/tc-ppc.c (insn_obstack): New. + (insn_calloc): New function. + (ppc_setup_opcodes): Use insn_obstack for ppc_hash. + + (cherry picked from commit a887be69963c40ced36e319e5fb14b3de4b6658b) + Without ppc_md_end since the infrastructure to call that late isn't + available on the branch, and without the multiply overflow check. + +2022-07-12 GDB Administrator + + Automatic date update in version.in + +2022-07-11 GDB Administrator + + Automatic date update in version.in + +2022-07-10 GDB Administrator + + Automatic date update in version.in + +2022-07-09 GDB Administrator + + Automatic date update in version.in + +2022-07-08 Andrew Burgess + + libopcodes/s390: add support for disassembler styling + This commit adds disassembler style to the libopcodes s390 + disassembler. This conversion was pretty straight forward, I just + converted the fprintf_func calls to fprintf_styled_func calls and + added an appropriate style. + + For testing the new styling I just assembled then disassembled the + source files in gas/testsuite/gas/s390 and manually checked that the + styling looked reasonable. + + If the user does not request styled output from objdump, then there + should be no change in the disassembler output after this commit. + +2022-07-08 Nick Clifton + + Update version number + + Add markers for 2.39 branch + +2022-07-08 GDB Administrator + + Automatic date update in version.in + +2022-07-07 Vladimir Mezentsev + + gprofng: fix regression in testing for not yet installed version + gprofng/ChangeLog + 2022-07-07 Vladimir Mezentsev + + * src/Settings.cc (Settings::read_rc): Read environment variable + GPROFNG_SYSCONFDIR. + * testsuite/lib/Makefile.skel: Export GPROFNG_SYSCONFDIR. + * testsuite/gprofng.display/display.exp: Shorten the list of tests. + +2022-07-07 Simon Marchi + + gdb: fix {rs6000_nat_target,aix_thread_target}::wait to not use inferior_= ptid + Trying to run a simple program (empty main) on AIX, I get: + + (gdb) run + Starting program: /scratch/simark/build/gdb/a.out + Child process unexpectedly missing: There are no child processes.. + ../../src/binutils-gdb/gdb/inferior.c:304: internal-error: find_infer= ior_pid: Assertion `pid !=3D 0' failed. + A problem internal to GDB has been detected, + further debugging may prove unreliable. + ----- Backtrace ----- + 0x10ef12a8 gdb_internal_backtrace_1() + ../../src/binutils-gdb/gdb/bt-utils.c:122 + 0x10ef1470 gdb_internal_backtrace() + ../../src/binutils-gdb/gdb/bt-utils.c:168 + 0x1004d368 internal_vproblem(internal_problem*, char const*, int, cha= r const*, char*) + ../../src/binutils-gdb/gdb/utils.c:396 + 0x1004d8a8 internal_verror(char const*, int, char const*, char*) + ../../src/binutils-gdb/gdb/utils.c:476 + 0x1004c424 internal_error(char const*, int, char const*, ...) + ../../src/binutils-gdb/gdbsupport/errors.cc:55 + 0x102ab344 find_inferior_pid(process_stratum_target*, int) + ../../src/binutils-gdb/gdb/inferior.c:304 + 0x102ab4a4 find_inferior_ptid(process_stratum_target*, ptid_t) + ../../src/binutils-gdb/gdb/inferior.c:318 + 0x1061bae8 find_thread_ptid(process_stratum_target*, ptid_t) + ../../src/binutils-gdb/gdb/thread.c:519 + 0x10319e98 handle_inferior_event(execution_control_state*) + ../../src/binutils-gdb/gdb/infrun.c:5532 + 0x10315544 fetch_inferior_event() + ../../src/binutils-gdb/gdb/infrun.c:4221 + 0x10952e34 inferior_event_handler(inferior_event_type) + ../../src/binutils-gdb/gdb/inf-loop.c:41 + 0x1032640c infrun_async_inferior_event_handler(void*) + ../../src/binutils-gdb/gdb/infrun.c:9548 + 0x10673188 check_async_event_handlers() + ../../src/binutils-gdb/gdb/async-event.c:335 + 0x1066fce4 gdb_do_one_event() + ../../src/binutils-gdb/gdbsupport/event-loop.cc:214 + 0x10001a94 start_event_loop() + ../../src/binutils-gdb/gdb/main.c:411 + 0x10001ca0 captured_command_loop() + ../../src/binutils-gdb/gdb/main.c:471 + 0x10003d74 captured_main(void*) + ../../src/binutils-gdb/gdb/main.c:1329 + 0x10003e48 gdb_main(captured_main_args*) + ../../src/binutils-gdb/gdb/main.c:1344 + 0x10000744 main + ../../src/binutils-gdb/gdb/gdb.c:32 + --------------------- + ../../src/binutils-gdb/gdb/inferior.c:304: internal-error: find_infer= ior_pid: Assertion `pid !=3D 0' failed. + A problem internal to GDB has been detected, + further debugging may prove unreliable. + Quit this debugging session? (y or n) + + This is due to some bit-rot in the AIX port, still relying on the entry + value of inferior_ptid in the wait methods. + + Problem #1 is in rs6000_nat_target::wait, here: + + /* Ignore terminated detached child processes. */ + if (!WIFSTOPPED (status) && pid !=3D inferior_ptid.pid ()) + pid =3D -1; + + At this point, waitpid has returned an "exited" status for some pid, so + pid is non-zero. Since inferior_ptid is set to null_ptid on entry, the + pid returned by wait is not equal to `inferior_ptid.pid ()`, so we reset + pid to -1 and go to waiting again. Since there are not more children to + wait for, waitpid then returns -1 so we get here: + + if (pid =3D=3D -1) + { + gdb_printf (gdb_stderr, + _("Child process unexpectedly missing: %s.\n"), + safe_strerror (save_errno)); + + /* Claim it exited with unknown signal. */ + ourstatus->set_signalled (GDB_SIGNAL_UNKNOWN); + return inferior_ptid; + } + + We therefore return a "signalled" status with a null_ptid (again, + inferior_ptid is null_ptid). This confuses infrun, because if the + target returns a "signalled" status, it should be coupled with a ptid + for an inferior that exists. + + So, the first step is to fix the snippets above to not use + inferior_ptid. In the first snippet, use find_inferior_pid to see if + we know the event process. If there is no inferior with that pid, we + assume it's a detached child process to we ignore the event. That + should be enough to fix the problem, because it should make it so we + won't go into the second snippet. But still, fix the second snippet to + return an "ignore" status. This is copied from inf_ptrace_target::wait, + which is where rs6000_nat_target::wait appears to be copied from in the + first place. + + These changes, are not sufficient, as the aix_thread_target, which sits + on top of rs6000_nat_target, also relies on inferior_ptid. + aix_thread_target::wait, by calling pd_update, assumes that + rs6000_nat_target has set inferior_ptid to the appropriate value (the + ptid of the event thread), but that's not the case. pd_update + returns inferior_ptid - null_ptid - and therefore + aix_thread_target::wait returns null_ptid too, and we still hit the + assert shown above. + + Fix this by changing pd_activate, pd_update, sync_threadlists and + get_signaled_thread to all avoid using inferior_ptid. Instead, they + accept as a parameter the pid of the process we are working on. + + With this patch, I am able to run the program to completion: + + (gdb) r + Starting program: /scratch/simark/build/gdb/a.out + [Inferior 1 (process 11010794) exited normally] + + As well as break on main: + + (gdb) b main + Breakpoint 1 at 0x1000036c + (gdb) r + Starting program: /scratch/simark/build/gdb/a.out + + Breakpoint 1, 0x1000036c in main () + (gdb) c + Continuing. + [Inferior 1 (process 26083688) exited normally] + + Change-Id: I7c2613bbefe487d75fa1a0c0994423471d961ee9 + +2022-07-07 Pedro Alves + + Fix pedantically invalid DWARF in gdb.trace/unavailable-dwarf-piece.exp + The DWARF spec says: + + Any debugging information entry representing the declaration of an obje= ct, + module, subprogram or type may have DW_AT_decl_file, DW_AT_decl_line and + DW_AT_decl_column attributes, each of whose value is an unsigned integer + ^^^^^^^^ + constant. + + Grepping around the DWARF-assembler-based testcases, I noticed that + gdb.trace/unavailable-dwarf-piece.exp emits decl_line with + DW_FORM_sdata, a signed integer form. This commit tweaks it to use + DW_FORM_udata instead. + + Unsurprisingly, this: + + $ make check \ + TESTS=3D"gdb.trace/unavailable-dwarf-piece.exp" \ + RUNTESTFLAGS=3D"--target_board=3Dnative-gdbserver" + + ... still passes cleanly for me after this change. + + I've noticed this because current llvm-dwarfdump crashed on an + ROCm-internal DWARF-assembler-based testcase that incorrectly used + signed forms for DW_AT_decl_file/DW_AT_decl_line. + + The older llvm-dwarfdump found on Ubuntu 20.04 (LLVM 10) reads the + line numbers with signed forms as "0" instead of crashing. Here's the + before/after fix for gdb.trace/unavailable-dwarf-piece.exp with that + llvm-dwarfdump version: + + $ diff -up before.txt after.txt + --- before.txt 2022-07-07 13:21:28.387690334 +0100 + +++ after.txt 2022-07-07 13:21:39.379801092 +0100 + @@ -18,7 +18,7 @@ + DW_AT_name ("s") + DW_AT_byte_size (3) + DW_AT_decl_file (0) + - DW_AT_decl_line (0) + + DW_AT_decl_line (1) + + 0x0000002f: DW_TAG_member + DW_AT_name ("a") + @@ -41,7 +41,7 @@ + DW_AT_name ("t") + DW_AT_byte_size (3) + DW_AT_decl_file (0) + - DW_AT_decl_line (0) + + DW_AT_decl_line (1) + + 0x00000054: DW_TAG_member + DW_AT_name ("a") + + Change-Id: I5c866946356da421ff944019d0eca2607b2b738f + +2022-07-07 Tiezhu Yang + + gdb: LoongArch: Fix typos in code comments + "it=E2=80=99s" should be "it's". + +2022-07-07 Maciej W. Rozycki + + GDB/testsuite: Add coverage for `print -elements' command + We currently have no coverage for the `print -elements ...' command (or + `p -elements ...' in the shortened form), so add a couple of test cases + mimicking ones using corresponding `set print elements ...' values. + +2022-07-07 Tiezhu Yang + + gdb: LoongArch: Implement the push_dummy_call gdbarch method + According to "Procedure Calling Convention" in "LoongArch ELF ABI + specification" [1], implement the push_dummy_call gdbarch method + as clear as possible. + + [1] https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-= EN.html#_procedure_calling_convention + +2022-07-07 Tsukasa OI + + RISC-V: Added Zfhmin and Zhinxmin. + This commit adds Zfhmin and Zhinxmin extensions (subsets of Zfh and + Zhinx extensions, respectively). In the process supporting Zfhmin and + Zhinxmin extension, this commit also changes how instructions are + categorized considering Zfhmin, Zhinx and Zhinxmin extensions. + + Detailed changes, + + * From INSN_CLASS_ZFH to INSN_CLASS_ZFHMIN: + + flh, fsh, fmv.x.h and fmv.h.x. + + * From INSN_CLASS_ZFH to INSN_CLASS_ZFH_OR_ZHINX: + + fmv.h. + + * From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFH_OR_ZHINX: + + fneg.h, fabs.h, fsgnj.h, fsgnjn.h, fsgnjx.h, + fadd.h, fsub.h, fmul.h, fdiv.h, fsqrt.h, fmin.h, fmax.h, + fmadd.h, fnmadd.h, fmsub.h, fnmsub.h, + fcvt.w.h, fcvt.wu.h, fcvt.h.w, fcvt.h.wu, + fcvt.l.h, fcvt.lu.h, fcvt.h.l, fcvt.h.lu, + feq.h, flt.h, fle.h, fgt.h, fge.h, + fclass.h. + + * From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFHMIN_OR_ZHINXMIN: + + fcvt.s.h and fcvt.h.s. + + * From INSN_CLASS_D_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_D: + + fcvt.d.h and fcvt.h.d. + + * From INSN_CLASS_Q_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_Q: + + fcvt.q.h and fcvt.h.q. + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_implicit_subsets): Change implicit + subsets. Zfh->Zicsr is not needed and Zfh->F is replaced with + Zfh->Zfhmin and Zfhmin->F. Zhinx->Zicsr is not needed and + Zhinx->Zfinx is replaced with Zhinx->Zhinxmin and + Zhinxmin->Zfinx. + (riscv_supported_std_z_ext): Added zfhmin and zhinxmin. + (riscv_multi_subset_supports): Rewrite handling for new + instruction classes. + (riscv_multi_subset_supports_ext): Updated. + (riscv_parse_check_conflicts): Change error message to include + zfh and zfhmin extensions. + + gas/ChangeLog: + + * testsuite/gas/riscv/zfhmin-d-insn-class-fail.s: New complex + error handling test. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.d: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-1.l: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.d: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-2.l: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.d: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-3.l: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.d: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-4.l: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.d: Likewise. + * testsuite/gas/riscv/zfhmin-d-insn-class-fail-5.l: Likewise. + * testsuite/gas/riscv/zhinx.d: Renamed from fp-zhinx-insns.d + and refactored. + * testsuite/gas/riscv/zhinx.s: Likewise. + + include/ChangeLog: + + * opcode/riscv.h (enum riscv_insn_class): Removed INSN_CLASS_ZFH, + INSN_CLASS_D_AND_ZFH_INX and INSN_CLASS_Q_AND_ZFH_INX. Added + INSN_CLASS_ZFHMIN, INSN_CLASS_ZFHMIN_OR_ZHINXMIN, + INSN_CLASS_ZFHMIN_AND_D and INSN_CLASS_ZFHMIN_AND_Q. + + opcodes/ChangeLog: + + * riscv-opc.c (riscv_opcodes): Change instruction classes for + Zfh and Zfhmin instructions. Fix `fcvt.h.lu' instruction + (two operand variant) mask. + +2022-07-07 Vladimir Mezentsev + + gprofng: adjust GPROFNG_VARIANT + GPROFNG_VARIANT depends on compiler options, not on $(host). + + gprofng/ChangeLog + 2022-07-06 Vladimir Mezentsev + + PR gprofng/29116 + * libcollector/configure.ac: Adjust GPROFNG_VARIANT. + * libcollector/configure: Rebuild. + +2022-07-07 Tsukasa OI + + RISC-V: Fix disassembling Zfinx with -M numeric + This commit fixes floating point operand register names from ABI ones + to dynamically set ones. + + gas/ChangeLog: + + * testsuite/gas/riscv/zfinx-dis-numeric.s: Test new behavior of + Zfinx extension and -M numeric disassembler option. + * testsuite/gas/riscv/zfinx-dis-numeric.d: Likewise. + + opcodes/ChangeLog: + + * riscv-dis.c (riscv_disassemble_insn): Use dynamically set GPR + names to disassemble Zfinx instructions. + +2022-07-07 Tsukasa OI + + RISC-V: Fix requirement handling on Zhinx+{D,Q} + This commit fixes how instructions are masked on Zhinx+Z{d,q}inx. + fcvt.h.d and fcvt.d.h require ((D&&Zfh)||(Zdinx&&Zhinx)) and + fcvt.h.q and fcvt.q.h require ((Q&&Zfh)||(Zqinx&&Zhinx)). + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_multi_subset_supports): Fix feature gate + on INSN_CLASS_{D,Q}_AND_ZFH_INX. + (riscv_multi_subset_supports_ext): Fix feature gate diagnostics + on INSN_CLASS_{D,Q}_AND_ZFH_INX. + + gas/ChangeLog: + + * testsuite/gas/riscv/fp-zhinx-insns.d: Add Zqinx to -march + for proper testing. + +2022-07-07 Alan Modra + + PR29320, 'struct obstack' declared inside parameter list + PR 29320 + * frags.h: Move declaration of struct obstack.. + * as.h: ..to here. + +2022-07-07 GDB Administrator + + Automatic date update in version.in + +2022-07-06 Ruud van der Pas + + gprofng: implement a functional gp-display-html + This patch enables the first support for the "gprofng display html" comma= nd. + This command works for C/C++ applications on x86_64. Using one or more gp= rofng + experiment directories as input, a new directory with html files is creat= ed. + Through the index.html file in this directory, the performance results ma= y be + viewed in a browser. + + gprofng/Changelog: + 2022-06-28 Ruud van der Pas + + * gp-display-html/gp-display-html.in: implement first support for x86_64= and C/C++ + +2022-07-06 H.J. Lu + + elf: Copy p_align of PT_GNU_STACK for stack alignment + commit 74e315dbfe5200c473b226e937935fb8ce391489 + Author: H.J. Lu + Date: Mon Dec 13 19:46:04 2021 -0800 + + elf: Set p_align to the minimum page size if possible + + may ignore p_align of PT_GNU_STACK when copying ELF program header if + the maximum page size is larger than p_align of PT_LOAD segments. Copy + p_align of PT_GNU_STACK since p_align of PT_GNU_STACK describes stack + alignment, not page size, + + PR binutils/29319 + * elf.c (copy_elf_program_header): Copy p_align of PT_GNU_STACK + for stack alignment. + +2022-07-06 Jan Beulich + + x86: make D attribute usable for XOP and FMA4 insns + This once again allows to reduce redundancy in (and size of) the opcode + table. + + Don't go as far as also making D work on the two 5-operand XOP insns: + This would significantly complicate the code, as there the first + (immediate) operand would need special treatment in several places. + + Note that the .s suffix isn't being enabled to have any effect, for + being deprecated. Whereas neither {load} nor {store} pseudo prefixes + make sense here, as the respective operands are inputs (loads) only + anyway, regardless of order. Hence there is (as before) no way for the + programmer to request the alternative encoding to be used for register- + only insns. + + Note further that it is always the first original template which is + retained (and altered), to make sure the same encoding as before is + used for register-only insns. This has the slightly odd (but pre- + existing) effect of XOP register-only insns having XOP.W clear, but FMA4 + ones having VEX.W set. + +2022-07-06 Jan Beulich + + x86: fold two switch() statements in match_template() + I don't see why two of them were introduced (very long ago) using + similar fall-through logic. + +2022-07-06 Jan Beulich + + x86: fix 3-operand insn reverse-matching + The middle operand would have gone entirely unchecked, allowing e.g. + + vmovss %xmm0, %esp, %xmm2 + + to assemble successfully, or e.g. + + vmovss %xmm0, $4, %xmm2 + + causing an internal error. Alongside dealing with this also drop a + related comment, which hasn't been applicable anymore since the + introduction of 3-operand patterns with D set (and which perhaps never + had been logical to be there, as reverse-matched insns don't make it + there in the first place). + +2022-07-06 Bhuvanendra Kumar N + + Descriptive DWARF operations dump support for DW_AT_rank + DW_AT_rank is a dwarf-5 feature. + +2022-07-06 Jan Beulich + + x86: introduce a state stack for .arch + When using just slightly non-trivial combinations of .arch, it can be + quite useful to be able to go back to prior state without needing to + re-invoke perhaps many earlier directives and without needing to invoke + perhaps many "negative" ones. Like some other architectures allow + saving (pushing) and restoring (popping) present/prior state. + + For now require the same .code to be in effect for ".arch pop" that + was in effect for the corresponding ".arch push". + + Also change the global "no_cond_jump_promotion" to be bool, to match the + new struct field. + +2022-07-06 Jan Beulich + + x86: generalize disabling of sub-architectures + I never really understood upon what basis ".arch .no*" options were made + available. Let's not have any "criteria" at all, and simply allow + disabling of all of them. Then we also have all data for a sub-arch in + a single place, as we now only need a single table. + +2022-07-06 Jan Beulich + + x86: permit "default" with .arch + So far there was no way to reset the architecture to that assembly would + start with in the absence of any overrides (command line or directives). + Note that for Intel MCU "default" is merely an alias of "iamcu". + + While there also zap a stray @item from the doc section, as noticed + when inspecting the generated output (which still has some quirks, but + those aren't easy to address without re-flowing almost the entire + section). + +2022-07-06 Jan Beulich + + x86: don't leak sub-architecture accumulated strings + While it may not be necessary in i386_target_format() (but then setting + the variable to NULL also wouldn't be necessary), at least in the other + cases strings may already have accumulated. + +2022-07-06 GDB Administrator + + Automatic date update in version.in + +2022-07-05 Tom de Vries + + [gdb/exp] Fix internal error when printing C++ pointer-to-member + When running the test-case included with this patch, we run into: + ... + (gdb) print ptm^M + $1 =3D gdb/gdbtypes.h:695: internal-error: loc_bitpos: \ + Assertion `m_loc_kind =3D=3D FIELD_LOC_KIND_BITPOS' failed.^M + ... + while printing a c++ pointer-to-member. + + Fix this by skipping static fields in cp_find_class_member, such that we = have: + ... + (gdb) print ptm^M + $1 =3D &A::i^M + ... + + Tested on x86_64-linux. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29294 + +2022-07-05 Tom Tromey + + Add gdb.Objfile.is_file attribute + Sometimes an objfile comes from memory and not from a file. It can be + useful to be able to check this from Python, so this patch adds a new + "is_file" attribute. + +2022-07-05 Tom Tromey + + Make 'import gdb.events' work + Pierre-Marie noticed that, while gdb.events is a Python module, it + can't be imported. This patch changes how this module is created, so + that it can be imported, while also ensuring that the module is always + visible, just as it was in the past. + + This new approach required one non-obvious change -- when running + gdb.base/warning.exp, where --data-directory is intentionally not + found, the event registries can now be nullptr. Consequently, this + patch probably also requires + + https://sourceware.org/pipermail/gdb-patches/2022-June/189796.html + + Note that this patch obsoletes + + https://sourceware.org/pipermail/gdb-patches/2022-June/189797.html + +2022-07-05 Xi Ruoyao + + gdb: LoongArch: add orig_a0 into register set + The basic support for LoongArch has been merged into the upstream Linux + kernel since 5.19-rc1 on June 5, 2022. This commit adds orig_a0 which + is added into struct user_pt_regs [1] to match the upstream kernel, and + then the upstream GDB will work with the upstream kernel. + + Note that orig_a0 was added into struct user_pt_regs in the development + cycle for merging LoongArch port into the upstream Linux kernel, so + earlier kernels (notably, the product kernel with version 4.19 used in + distros like UOS and Loongnix) don't have it. Inspect + arch/loongarch/include/uapi/asm/ptrace.h in the kernel tree to make sure. + To build upstream GDB for a kernel lacking orig_a0, it's necessary to + revert this commit locally. + + [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/t= ree/arch/loongarch/include/uapi/asm/ptrace.h#n24 + +2022-07-05 Bhuvanendra Kumar N + + Support for location and range lists for split-dwarf and dwarf-5. + Adding support for location and range lists for split-dwarf and dwarf-5. + Following issues are taken care. + 1. Display of the index values for DW_FORM_loclistx and DW_FORM_rnglistx. + 2. Display of .debug_loclists.dwo and .debug_rnglists.dwo sections. + + * dwarf.c(read_and_display_attr_value): Handle DW_FORM_loclistx + and DW_FORM_rnglistx for .dwo files. + (process_debug_info): Load .debug_loclists.dwo and + .debug_rnglists.dwo if exists. + (load_separate_debug_files): Load .debug_loclists and + .debug_rnglists if exists. + Include 2 entries in debug_displays table. + * dwarf.h (enum dwarf_section_display_enum): Include 2 entries. + +2022-07-05 Jan Beulich + + x86: introduce fake processor type to mark sub-arch entries in cpu_arch[] + This is in preparation of dropping the leading . from the strings. + + While there also move PROCESSOR_GENERIC{32,64} from the middle of AMD + entries to near the top. + +2022-07-05 Jan Beulich + + x86: macro-ize cpu_arch[] entries + Putting individual elements behind macros, besides (imo) improving + readability, will make subsequent (and likely also future) changes less + intrusive. + + Utilize this right away to pack the table a little more tightly, by + converting "skip" to bool and putting it earlier in a group of bitfields + together with "len". + +2022-07-05 Jan Beulich + + x86: de-duplicate sub-architecture strings accumulation + Introduce a helper function to replace 4 instances of similar code. Use + reconcat() to cover the previously explicit free(). + +2022-07-05 GDB Administrator + + Automatic date update in version.in + +2022-07-04 Nick Clifton + + Fix snafu in rust demangler recursion limit code + +2022-07-04 Alan Modra + + alloc gas seginfo on notes obstack + Lots of memory used in gas should go on this obstack. The patch also + frees all the gas obstacks on exit, which isn't a completely trivial + task. + + * subsegs.c (alloc_seginfo): New function. + (subseg_change, subseg_get): Use it. + (subsegs_end): New function. + * as.h (subsegs_end): Declare. + * output-file.c: Include subsegs.h + (stash_frchain_obs): New function. + (output_file_close): Save obstacks attached to output bfd before + closing. Call subsegs_end with the array of obstacks. + +2022-07-04 Alan Modra + + objcopy: bfd_alloc orelocation + This fixes an inconsequential objcopy memory leak. I'd normally + ignore reports of leaks like this one, that are merely one block or + fewer per section processed, since objcopy soon exits and frees all + memory. However I thought it worth providing support for allocating + memory on a bfd objalloc in objcopy and other utils. + + PR 29233 + * bucomm.c (bfd_xalloc): New function. + * bucomm.h (bfd_xalloc): Declare. + * objcopy.c (copy_relocations_in_section): Use it to allocate + array of reloc pointers. Rewrite code stripping relocs to do + without extra memory allocation. + +2022-07-04 Nick Clifton + + Synchronize libbierty sources with gcc. + +2022-07-04 Bhuvanendra Kumar N + + Modified changes for split-dwarf and dwarf-5. + * dwarf.c(process_debug_info): Include DW_TAG_skeleton_unit. + (display_debug_str_offsets): While dumping .debug_str_offsets.dwo, + pass proper str_offsets_base to fetch_indexed_string(). + (load_separate_debug_files): Skip DWO ID dump for dwarf-5. + +2022-07-04 Marcus Nilsson + + opcodes/avr: Implement style support in the disassembler + * disassemble.c: (disassemble_init_for_target): Set + created_styled_output for AVR based targets. + * avr-dis.c: (print_insn_avr): Use fprintf_styled_ftype + instead of fprintf_ftype throughout. + (avr_operand): Pass in and fill disassembler_style when + parsing operands. + +2022-07-04 Tom de Vries + + [gdb/symtab] Add get/set functions for per_cu->lang/unit_type + The dwarf2_per_cu_data fields lang and unit_type both have a dont-know + initial value (respectively language_unknown and (dwarf_unit_type)0), whi= ch + allows us to add certain checks, f.i. checking that that a field is not r= ead + before written. + + Add get/set member functions for the two fields as a convenient location = to + add such checks, make the fields private to enforce using the member + functions, and add the m_ prefix. + + Tested on x86_64-linux. + +2022-07-04 Jan Beulich + + gas/testsuite: properly exclude aout in all/weakref1u + Use the (wider) predicate rather than a triplet. This eliminates the sole + i386-msdos failure in the testsuite. + +2022-07-04 Jan Beulich + + x86: fold Disp32S and Disp32 + The only case where 64-bit code uses non-sign-extended (can also be + considered zero-extended) displacements is when an address size override + is in place for a memory operand (i.e. particularly excluding + displacements of direct branches, which - if at all - are controlled by + operand size, and then are still sign-extended, just from 16 bits). + Hence the distinction in templates is unnecessary, allowing code to be + simplified in a number of places. The only place where logic becomes + more complicated is when signed-ness of relocations is determined in + output_disp(). + + The other caveat is that Disp64 cannot be specified anymore in an insn + template at the same time as Disp32. Unlike for non-64-bit mode, + templates don't specify displacements for both possible addressing + modes; the necessary adjustment to the expected ones has already been + done in match_template() anyway (but of course the logic there needs + tweaking now). Hence the single template so far doing so is split. + +2022-07-04 Jan Beulich + + x86: restore masking of displacement kinds + Commit 7d5e4556a375 rendered the check near the end of what is now + i386_finalize_displacement() entirely dead for AT&T mode, since for + operands involving a displacement .unspecified will always be set. But + the logic there is bogus anyway - Intel syntax operand size specifiers + are of no interest there either. The only thing which matters in the + "displacement only" determination is .baseindex. + + Of course when masking displacement kinds we should not at the same time + also mask off other attributes. + + Furthermore the type mask returned by lex_got() also needs to be + adjusted: The only case where we want Disp32 (rather than Disp32S) is + when dealing with 32-bit addressing mode in 64-bit code. + +2022-07-04 Jan Beulich + + x86-64: improve handling of branches to absolute addresses + There are two related problems here: The use of "addr32" on a direct + branch would, besides causing a warning, result in operands to be + permitted which mistakenly are refused without "addr32". Plus at some + point not too long ago I'm afraid it may have been me who regressed the + relocation addends emitted for such branches. Correct both problems, + adding a testcase to guard against regressing this again. + +2022-07-04 Tsukasa OI + + RISC-V: Update Zihintpause extension version + Because ratified Zihintpause extension has a version number of 2.0 + (not 1.0), we should update the number. + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_supported_std_z_ext): Update version + number of Zihintpause extension. + +2022-07-04 GDB Administrator + + Automatic date update in version.in + +2022-07-03 GDB Administrator + + Automatic date update in version.in + +2022-07-02 Tom de Vries + + [gdb/symtab] Fix data race on per_cu->dwarf_version + When building gdb with -fsanitize=3Dthread and gcc 12, and running test-c= ase + gdb.dwarf2/dwz.exp, we run into a data race between thread T2 and the main + thread in the same write: + ... + Write of size 1 at 0x7b200000300c:^M + #0 cutu_reader::cutu_reader(dwarf2_per_cu_data*, dwarf2_per_objfile*,= \ + abbrev_table*, dwarf2_cu*, bool, abbrev_cache*) gdb/dwarf2/read.c:625= 2 \ + (gdb+0x82f3b3)^M + ... + which is here: + ... + this_cu->dwarf_version =3D cu->header.version; + ... + + Both writes are called from the parallel for in dwarf2_build_psymtabs_har= d, + this one directly: + ... + #1 process_psymtab_comp_unit gdb/dwarf2/read.c:6774 (gdb+0x8304d7)^M + #2 operator() gdb/dwarf2/read.c:7098 (gdb+0x8317be)^M + #3 operator() gdbsupport/parallel-for.h:163 (gdb+0x872380)^M + ... + and this via the PU import: + ... + #1 cooked_indexer::ensure_cu_exists(cutu_reader*, dwarf2_per_objfile*= , \ + sect_offset, bool, bool) gdb/dwarf2/read.c:17964 (gdb+0x85c43b)^M + #2 cooked_indexer::index_imported_unit(cutu_reader*, unsigned char co= nst*, \ + abbrev_info const*) gdb/dwarf2/read.c:18248 (gdb+0x85d8ff)^M + #3 cooked_indexer::index_dies(cutu_reader*, unsigned char const*, \ + cooked_index_entry const*, bool) gdb/dwarf2/read.c:18302 (gdb+0x85dcd= b)^M + #4 cooked_indexer::make_index(cutu_reader*) gdb/dwarf2/read.c:18443 \ + (gdb+0x85e68a)^M + #5 process_psymtab_comp_unit gdb/dwarf2/read.c:6812 (gdb+0x830879)^M + #6 operator() gdb/dwarf2/read.c:7098 (gdb+0x8317be)^M + #7 operator() gdbsupport/parallel-for.h:171 (gdb+0x8723e2)^M + ... + + Fix this by setting the field earlier, in read_comp_units_from_section. + + The write in cutu_reader::cutu_reader() is still needed, in case + read_comp_units_from_section is not used (run the test-case with say, tar= get + board cc-with-gdb-index). + + Make the write conditional, such that it doesn't trigger if the field is + already set by read_comp_units_from_section. Instead, verify that the + field already has the value that we're trying to set it to. + + Move this logic into into a member function set_version (in analogy to the + already present member function version) to make sure it's used consisten= ly, + and make the field private in order to enforce access through the member + functions, and rename it to m_dwarf_version. + + While we're at it, make sure that the version is set before read, to avoid + say returning true for "per_cu.version () < 5" if "per_cu.version () =3D= =3D 0". + + Tested on x86_64-linux. + +2022-07-02 Tom de Vries + + [gdb/testsuite] Fix gdb.base/early-init-file.exp with -fsanitize=3Dthread + When building gdb with -fsanitize=3Dthread, I run into: + ... + FAIL: gdb.base/early-init-file.exp: check startup version string has styl= e \ + version + ... + due to this: + ... + warning: Found custom handler for signal 7 (Bus error) preinstalled.^M + warning: Found custom handler for signal 8 (Floating point exception) \ + preinstalled.^M + warning: Found custom handler for signal 11 (Segmentation fault) \ + preinstalled.^M + Some signal dispositions inherited from the environment (SIG_DFL/SIG_IGN)= ^M + won't be propagated to spawned programs.^M + ... + appearing before the "GNU gdb (GDB) $version" line. + + This is similar to the problem fixed by commit f0bbba7886f + ("gdb.debuginfod/fetch_src_and_symbols.exp: fix when GDB is built with + AddressSanitizer"). + + In that commit, the problem was fixed by starting gdb with -quiet, but us= ing + that would mean the "GNU gdb (GDB) $version" line that we're trying to ch= eck + would disappear. + + Fix this instead by updating the regexp to allow the message. + + Tested on x86_64-linux. + +2022-07-02 GDB Administrator + + Automatic date update in version.in + +2022-07-01 Maciej W. Rozycki + + GDB/doc: Remove indentation from `print -elements' completion example + Remove indentation from the text of the manual after the example here: + + " Completion will in some cases guide you with a suggestion of what + kind of argument an option expects. For example: + + (gdb) print -elements + NUMBER unlimited + + Here, the option expects a number (e.g., '100'), not literal + 'NUMBER'. Such metasyntactical arguments are always presented in + uppercase." + + as this is a continuation of the same paragraph. + +2022-07-01 Maciej W. Rozycki + + GDB/doc: Remove extraneous spaces from completion examples + Completion results are usually different when the operation is applied + to a word that is or is not followed by a space. In some cases they are + equivalent, however a space would not be produced if completion was used + earlier on in the word processed. + + However in the manual we have completion examples given using a space + that actually prevents the example from working. E.g.: + + (gdb) info bre + + (nothing) and: + + (gdb) info bre + Display all 200 possibilities? (y or n) + + as it now goes on to propose the entire symbol table, while: + + (gdb) info bre + (gdb) info breakpoints + + does the right thing, but is not what is shown in the manual. + + In other cases an extraneous space is used that does not correspond to + the actual completion pattern shown, which gives an impression of + sloppiness. + + Remove extraneous spaces then from completion examples as appropriate. + +2022-07-01 Nick Clifton + + Add newline to the end of the rnglists displsy. + +2022-07-01 GDB Administrator + + Automatic date update in version.in + +2022-06-30 Maciej W. Rozycki + + GDB: Add `NUMBER' completion to `set' integer commands + Fix a completion consistency issue with `set' commands accepting integer + values and the special `unlimited' keyword: + + (gdb) complete print -elements + print -elements NUMBER + print -elements unlimited + (gdb) + + vs: + + (gdb) complete set print elements + set print elements unlimited + (gdb) + + (there is a space entered at the end of both commands, not shown here) + which also means if you strike with `set print elements ' input, + it will, annoyingly, complete to `set print elements unlimited' right + away rather than showing a choice between `NUMBER' and `unlimited'. + + Add `NUMBER' then as an available completion for such `set' commands: + + (gdb) complete set print elements + set print elements NUMBER + set print elements unlimited + (gdb) + + Adjust the testsuite accordingly. Also document the feature in the + Completion section of the manual in addition to the Command Options + section already there. + +2022-06-30 Bruno Larsen + + gdb/testsuite: Expand gdb.cp/mb-ctor.exp to test dynamic allocation + When testing GDB's ability to stop in constructors, gdb.cp/mb-ctor.exp + only tested objects allocated on the stack. This commit adds a couple of + dynamic allocations and tests if GDB can stop in it as well. + +2022-06-30 Nick Clifton + + Fix implementation of readelf's -wE and -wN options, + * dwarf.c (dwarf_select_sections_by_name): If the entry's value is + zero then clear the corresponding variable. + (dwarf_select_sections_by_letters): Likewise. + * testsuite/binutils-all/debuginfo.exp: Expect -WE and -wE + debuginfod tests to fail. + +2022-06-30 Tom de Vries + + [gdb] Block SIGTERM in worker threads + With gdb build with gcc-12 and -fsanitize=3Dthread, and test-case + gdb.base/gdb-sigterm.exp, I run into: + ... + WARNING: ThreadSanitizer: data race (pid=3D9722)^M + Write of size 4 at 0x00000325bc68 by thread T1:^M + #0 handle_sigterm(int) src/gdb/event-top.c:1211 (gdb+0x8ec01f)^M + ... + Previous read of size 4 at 0x00000325bc68 by main thread:^M + [failed to restore the stack]^M + ^M + Location is global 'sync_quit_force_run' of size 4 at \ + 0x00000325bc68 (gdb+0x325bc68)^M + ... + SUMMARY: ThreadSanitizer: data race gdb/event-top.c:1211 in \ + handle_sigterm(int)^M + ... + and 3 more data races involving handle_sigterm and locations: + - active_ext_lang + - quit_flag + - heap block of size 40 + (XNEW (async_signal_handler) in create_async_signal_handler) + + This was reported in PR29297. + + The testcase executes a "kill -TERM $gdb_pid", which generates a + process-directed signal. + + A process-directed signal can be delivered to any thread, and what we see + here is the fallout of the signal being delivered to a worker thread rath= er + than the main thread. + + Fix this by blocking SIGTERM in the worker threads. + + [ I have not been able to reproduce this after it occurred for the first = time, + so unfortunately I cannot confirm that the patch fixes the problem. ] + + Tested on x86_64-linux, with and without -fsanitize=3Dthread. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29297 + +2022-06-30 Andrew Burgess + + gdb/doc: fix column widths in MI compatibility table + In passing I noticed that the column headings for the table of MI + compatibility and breaking changes, were overlapping, at least when + the PDF is generated on my machine. + + I propose giving slightly more space to the two version number + columns, this prevents the headers overlapping for me. + +2022-06-30 GDB Administrator + + Automatic date update in version.in + +2022-06-29 Pedro Alves + + Fix GDBserver regression due to change to avoid reading shell registers + Simon reported that the recent change to make GDB and GDBserver avoid + reading shell registers caused a GDBserver regression, caught with + ASan while running gdb.server/non-existing-program.exp: + + $ /home/smarchi/build/binutils-gdb/gdb/testsuite/../../gdb/../gdbserver/= gdbserver stdio non-existing-program + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + =3D=3D127719=3D=3DERROR: AddressSanitizer: heap-use-after-free on addres= s 0x60f0000000e9 at pc 0x55bcbfa301f4 bp 0x7ffd238a7320 sp 0x7ffd238a7310 + WRITE of size 1 at 0x60f0000000e9 thread T0 + #0 0x55bcbfa301f3 in scoped_restore_tmpl::~scoped_restore_tmpl= () /home/smarchi/src/binutils-gdb/gdbserver/../gdbsupport/scoped_restore.h:= 86 + #1 0x55bcbfa2ffe9 in post_fork_inferior(int, char const*) /home/smar= chi/src/binutils-gdb/gdbserver/fork-child.cc:120 + #2 0x55bcbf9c9199 in linux_process_target::create_inferior(char cons= t*, std::__debug::vector > const&) /home/smarc= hi/src/binutils-gdb/gdbserver/linux-low.cc:991 + #3 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gd= bserver/server.cc:3941 + #4 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/s= erver.cc:4084 + #5 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.s= o.6+0x240b2) + #6 0x55bcbf8ef2bd in _start (/home/smarchi/build/binutils-gdb/gdbser= ver/gdbserver+0x1352bd) + + 0x60f0000000e9 is located 169 bytes inside of 176-byte region [0x60f0000= 00040,0x60f0000000f0) + freed by thread T0 here: + #0 0x7ff9d6c6f0c7 in operator delete(void*) ../../../../src/libsanit= izer/asan/asan_new_delete.cpp:160 + #1 0x55bcbf910d00 in remove_process(process_info*) /home/smarchi/src= /binutils-gdb/gdbserver/inferiors.cc:164 + #2 0x55bcbf9c4ac7 in linux_process_target::remove_linux_process(proc= ess_info*) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:454 + #3 0x55bcbf9cdaa6 in linux_process_target::mourn(process_info*) /hom= e/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:1599 + #4 0x55bcbf988dc4 in target_mourn_inferior(ptid_t) /home/smarchi/src= /binutils-gdb/gdbserver/target.cc:205 + #5 0x55bcbfa32020 in startup_inferior(process_stratum_target*, int, = int, target_waitstatus*, ptid_t*) /home/smarchi/src/binutils-gdb/gdbserver/= ../gdb/nat/fork-inferior.c:515 + #6 0x55bcbfa2fdeb in post_fork_inferior(int, char const*) /home/smar= chi/src/binutils-gdb/gdbserver/fork-child.cc:111 + #7 0x55bcbf9c9199 in linux_process_target::create_inferior(char cons= t*, std::__debug::vector > const&) /home/smarc= hi/src/binutils-gdb/gdbserver/linux-low.cc:991 + #8 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gd= bserver/server.cc:3941 + #9 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/s= erver.cc:4084 + #10 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.= so.6+0x240b2) + + previously allocated by thread T0 here: + #0 0x7ff9d6c6e5a7 in operator new(unsigned long) ../../../../src/lib= sanitizer/asan/asan_new_delete.cpp:99 + #1 0x55bcbf910ad0 in add_process(int, int) /home/smarchi/src/binutil= s-gdb/gdbserver/inferiors.cc:144 + #2 0x55bcbf9c477d in linux_process_target::add_linux_process_no_mem_= file(int, int) /home/smarchi/src/binutils-gdb/gdbserver/linux-low.cc:425 + #3 0x55bcbf9c8f4c in linux_process_target::create_inferior(char cons= t*, std::__debug::vector > const&) /home/smarc= hi/src/binutils-gdb/gdbserver/linux-low.cc:985 + #4 0x55bcbf954549 in captured_main /home/smarchi/src/binutils-gdb/gd= bserver/server.cc:3941 + #5 0x55bcbf9552f0 in main /home/smarchi/src/binutils-gdb/gdbserver/s= erver.cc:4084 + #6 0x7ff9d663b0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.s= o.6+0x240b2) + + Above we see that in the non-existing-program case, the process gets + deleted before the starting_up flag gets restored to false. + + This happens because startup_inferior calls target_mourn_inferior + before throwing an error, and in GDBserver, unlike in GDB, mourning + deletes the process. + + Fix this by not using a scoped_restore to manage the starting_up flag, + since we should only clear it when startup_inferior doesn't throw. + + Change-Id: I67325d6f81c64de4e89e20e4ec4556f57eac7f6c + +2022-06-29 Maciej W. Rozycki + + GDB/testsuite: Tighten `set print elements' error check + Match the whole error message expected to be given rather than omitting + the part about the "unlimited" keyword. There's no point in omitting + the missing part first, and second with an upcoming change the part in + parentheses will no longer be a fixed string, so doing a full match will + ensure the algorithm correctly builds the message expected here. Also + avoid any wildcard matches. + +2022-06-29 Maciej W. Rozycki + + GDB: Remove extraneous full stops from `set' command error messages + With errors given for bad commands such as `set annotate' or `set width' + we produce an extraneous full stop within parentheses: + + (gdb) set annotate + Argument required (integer to set it to.). + (gdb) set width + Argument required (integer to set it to, or "unlimited".). + (gdb) + + This is grammatically incorrect, so remove the full stop and adjust the + testsuite accordingly. + +2022-06-29 Andrew Burgess + + gdb/doc: improve description of --data-disassemble opcodes output + Extend the description of the MI command --data-disassemble. + Specifically, expand the description of the 'opcodes' field to explain + how the bytes are formatted. + +2022-06-29 Yvan Roux + + gdb/arm: Only stack S16..S31 when FPU registers are secure + The FPCCR.TS bit is used to identify if FPU registers are considered + non-secure or secure. If they are secure, then callee saved registers + (S16 to S31) are stacked on exception entry or otherwise skipped. + +2022-06-29 Andrew Burgess + + opcodes/aarch64: split off creation of comment text in disassembler + The function aarch64_print_operand (aarch64-opc.c) is responsible for + converting an instruction operand into the textual representation of + that operand. + + In some cases, a comment is included in the operand representation, + though this (currently) only happens for the last operand of the + instruction. + + In a future commit I would like to enable the new libopcodes styling + for AArch64, this will allow objdump and GDB[1] to syntax highlight + the disassembler output, however, having operands and comments + combined in a single string like this makes such styling harder. + + In this commit, I propose to extend aarch64_print_operand to take a + second buffer. Any comments for the instruction are written into this + extra buffer. The two callers of aarch64_print_operand are then + updated to pass an extra buffer, and print any resulting comment. + + In this commit no styling is added, that will come later. However, I + have adjusted the output slightly. Before this commit some comments + would be separated from the instruction operands with a tab character, + while in other cases the comment was separated with two single spaces. + + After this commit I use a single tab character in all cases. This + means a few test cases needed updated. If people would prefer me to + move everyone to use the two spaces, then just let me know. Or maybe + there was a good reason why we used a mix of styles, I could probably + figure out a way to maintain the old output exactly if that is + critical. + + Other than that, there should be no user visible changes after this + commit. + + [1] GDB patches have not been merged yet, but have been posted to the + GDB mailing list: + https://sourceware.org/pipermail/gdb-patches/2022-June/190142.html + +2022-06-29 Carl Love + Andrew Burgess + + gdb/testsuite: fix gdb.base/break-idempotent.exp on ppc + When running the gdb.base/break-idempotent.exp test on ppc, I was + seeing some test failures (or rather errors), that looked like this: + + (gdb) watch local + Hardware watchpoint 2: local + + has_hw_wp_support: Hardware watchpoint detected + ERROR: no fileid for gcc2-power8 + ERROR: Couldn't send delete breakpoints to GDB. + ERROR OCCURED: can't read "gdb_spawn_id": no such variable + while executing + "expect { + -i 1000 -timeout 100 + -re ".*A problem internal to GDB has been detected" { + fail "$message (GDB internal error)" + gdb_internal_erro..." + ("uplevel" body line 1) + invoked from within + + What happens is that in break-idempotent.exp we basically do this: + + if {[prepare_for_testing "failed to prepare" $binfile $srcfile $opts]= } { + continue + } + + # .... + + if {![skip_hw_watchpoint_tests]} { + test_break $always_inserted "watch" + } + + The problem with this is that skip_hw_watchpoint_tests, includes this: + + if { [istarget "i?86-*-*"] + || [istarget "x86_64-*-*"] + || [istarget "ia64-*-*"] + || [istarget "arm*-*-*"] + || [istarget "aarch64*-*-*"] + || ([istarget "powerpc*-*-linux*"] && [has_hw_wp_support]) + || [istarget "s390*-*-*"] } { + return 0 + } + + For powerpc only we call has_hw_wp_support. This is a caching proc + that runs a test within GDB to detect if we have hardware watchpoint + support or not. + + Unfortunately, to run this test we restart GDB, and when the test has + completed, we exit GDB. This means that in break-idempotent.exp, when + we call skip_hw_watchpoint_tests for the first time on powerpc, GDB + will unexpectedly be exited. When we later call delete_breakpoints we + see the errors I reported above. + + The fix is to call skip_hw_watchpoint_tests early, before we start GDB + as part of the break-idempotent.exp script, and store the result in a + variable, we can then check this variable in the script as needed. + + After this change break-idempotent.exp runs fine on powerpc. + +2022-06-29 Jan Beulich + + x86: drop stray NoRex64 from XBEGIN + Presumably this being there was a result of taking CALL as a reference + when adding the RTM insns. But with No_qSuf the attribute has no effect. + +2022-06-29 Vladimir Mezentsev + + gprofng: fix build when BUILD_MAN is false + gprofng/ChangeLog + 2022-06-28 Vladimir Mezentsev + + PR gprofng/29131 + * gp-display-html/Makefile.am: Set man_MANS only when BUILD_MAN is true. + * src/Makefile.am: Likewise. + * gp-display-html/Makefile.in: Rebuild. + * src/Makefile.in: Rebuild. + +2022-06-29 Vladimir Mezentsev + + gprofng: use $(sysconfdir) instead $(prefix)/etc + gprofng/ChangeLog + 2022-06-28 Vladimir Mezentsev + + PR gprofng/29191 + * src/Makefile.am: Use $(sysconfdir) instead $(prefix)/etc. + * src/Settings.cc: Likewise. + * src/Makefile.in: Rebuild. + +2022-06-29 Alan Modra + + Re: ld/x86: skip p_align-1 tests with unsuitable compiler + commit d0e0f9c87a3e results "ERROR: i586-linux-cc does not exist" if + cross-building an i586-linux target without a target compiler + installed. + + * testsuite/ld-elf/linux-x86.exp (compiler_honours_aligned): New. + Use it after first testing check_compiler_available. + +2022-06-29 GDB Administrator + + Automatic date update in version.in + +2022-06-28 Pedro Alves + + gdb+gdbserver/Linux: avoid reading registers while going through shell + For every stop, Linux GDB and GDBserver save the stopped thread's PC, + in lwp->stop_pc. This is done in save_stop_reason, in both + gdb/linux-nat.c and gdbserver/linux-low.cc. However, while we're + going through the shell after "run", in startup_inferior, we shouldn't + be reading registers, as we haven't yet determined the target's + architecture -- the shell's architecture may not even be the same as + the final inferior's. + + In gdb/linux-nat.c, lwp->stop_pc is only needed when the thread has + stopped for a breakpoint, and since when going through the shell, no + breakpoint is going to hit, we could simply teach save_stop_reason to + only record the stop pc when the thread stopped for a breakpoint. + + However, in gdbserver/linux-low.cc, lwp->stop_pc is used in more cases + than breakpoint hits (e.g., it's used in tracepoints & the + "while-stepping" feature). + + So to avoid GDB vs GDBserver divergence, we apply the same approach to + both implementations. + + We set a flag in the inferior (process in GDBserver) whenever it is + being nursed through the shell, and when that flag is set, + save_stop_reason bails out early. While going through the shell, + we'll only ever get process exits (normal or signalled), random + signals, and exec events, so nothing is lost. + + Change-Id: If0f01831514d3a74d17efd102875de7d2c6401ad + +2022-06-28 Tom de Vries + + [gdb/build] Fix gdb build with -fsanitize=3Dthread and gcc 7 + When building gdb with system gcc 7.5.0, I run into: + ... + gdb/ia64-tdep.c: In function =E2=80=98int is_float_or_hfa_type_recurse(ty= pe*, type**)=E2=80=99: + gdb/ia64-tdep.c:3362:1: error: control reaches end of non-void function \ + [-Werror=3Dreturn-type] + ... + + This is due to PR gcc/81275 - "-fsanitize=3Dthread produce incorrect + -Wreturn-type warning", which has been fixed in gcc-8. + + Work around this by moving the default return outside the switch. + + Tested on x86_64-linux. + +2022-06-28 Cl=C3=A9ment Chigot + + bfd: handle codepage when opening files on MinGW + Even if MS docs say that CP_UTF8 should always be used on newer + applications, forcing it might produce undefined filename if the + encoding isn't UTF-8. + MinGW seems to call ___lc_codepage_func() in order to retrieve the + current thread codepage. + + bfd/ChangeLog: + + * bfdio.c (_bfd_real_fopen): Retrieve codepage with + ___lc_codepage_func() on MinGW. + +2022-06-28 Cl=C3=A9ment Chigot + + windres: add quotes around preprocessor cmd if needed + This patch ensures that the gcc binary called by windres is quoted if + needed. Otherwise, errors can occur if the gcc is under a folder having + a name containing a space (eg "Program Files"). + + binutils/ + * resrc.c (DEFAULT_PREPROCESSOR): Split into... + (DEFAULT_PREPROCESSOR_CMD): that... + (DEFAULT_PREPROCESSOR_ARGS): and that. + (look_for_default): Add quotes around the command if needed. + (read_rc_file): Adapt to new defines. + +2022-06-28 Nick Clifton + + Fix the display of the idnex values for DW_FORM_loclistx and DW_FORM_rngl= istx. Correct the display of .debug.loclists sections. + PR 29267 + * dwarf.c (display_debug_rnglists): New function, broken out of.. + (display_debug_ranges): ... here. + (read_and_display_attr_value): Correct calculation of index + displayed for DW_FORM_loclistx and DW_FORM_rnglistx. + * testsuite/binutils-all/x86-64/pr26808.dump: Update expected + output. + +2022-06-28 Jan Beulich + + ld/x86: skip p_align-1 tests with unsuitable compiler + When the compiler doesn't properly arrange for foo's alignment, there's + no point even trying these tests. Report the situation as a single + "unsupported" test. + +2022-06-28 Alan Modra + + PowerPC64: align plt_branch stubs + plt_branch stubs are similar to plt_call stubs in that they branch + via bctr. Align them too. + + bfd/ + * elf64-ppc.c (ppc_size_one_stub): Align plt_branch stubs as for + plt_call stubs. + ld/ + * testsuite/ld-powerpc/elfv2exe.d: Adjust for plt_branch changes. + * testsuite/ld-powerpc/notoc.d: Likewise. + * testsuite/ld-powerpc/notoc.wf: Likewise. + * testsuite/ld-powerpc/notoc3.d: Likewise. + * testsuite/ld-powerpc/pr23937.d: Likewise. + +2022-06-28 Alan Modra + + PowerPC64: plt_stub_pad + * elf64-ppc.c (plt_stub_pad): Simplify parameters and untangle + from plt_stub_size. + (ppc_size_one_stub): Call plt_stub_size before plt_stub_pad to + provide size. Recalculate size if it might change. + +2022-06-28 Alan Modra + + PowerPC64: Tidy stub type changes + It made sense before I started using separate fields for main type and + sub type to add a difference in main type to the type (thus keeping + sub type unchanged). Not so much now. + + * elf64-ppc.c (ppc_merge_stub): Simplify stub type change. + (ppc_size_one_stub): Likewise. + +2022-06-28 Jiangshuai Li + + gdb:csky add pseudo regs for float and vector regs + In the existing CSKY architecture, there are at most 32 floating + and 16 vector registers. Float registers's count can be configured + as 16 or 32. In the future, the vector registers's count may be + extended to 32. + + The bit width of floating-point register is 64bits, and the bit + width of vector register is 128bit. + + Special points: in fr0~fr15 and vr0~vr15, each FRx is the lower + 64 bits of the corresponding VRx. + + Here, we will split each floating-point and vector register to + 32bits wide, add the corresponding pseudo registers, and finally + use them for the dwarf registers. + + There are 128 pseudo registers in total, s0~s127, including: + 1. s0 and s1 correspond to fr0, s4 and s5 correspond to fr1, and so on. + Every two separated pseudo registers correspond to a float register. + 2. s0, s1, s2 and s3 correspond to vr0; s4, s5, s6 and s7 correspond to v= r1, + and so on. Every four pseudo registers corresponds to a vector register. + + Therefore, in s64~s127, there are general registers that are not actually + used. This part is to prepare for the expansion of vector registers to 32 + + Therefore, in s64~s127, half of the registers are actually unused. This + part is to prepare for the expansion of the vector register to 32. + +2022-06-28 Pekka Sepp=C3=A4nen + + PR29293, elfnn-aarch64.c: def_protected member unintialized + PR 29293 + * elfnn-aarch64.c (elfNN_aarch64_link_hash_newfunc): Init def_protected. + +2022-06-28 Tsukasa OI + + RISC-V: Add 'Sstc' extension and its CSRs + This commit adds "stimecmp / vstimecmp" Extension (Sstc) and its CSRs. + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Sstc' + extension to valid 'S' extension list. + + gas/ChangeLog: + + * config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for + 'Sstc' extension. (riscv_csr_address): Add handling for new CSR + classes. + * testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs. + * testsuite/gas/riscv/csr-dw-regnums.d: Likewise. + * testsuite/gas/riscv/csr.s: Add new CSRs. + * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise. + * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise. + * testsuite/gas/riscv/csr-version-1p10.d: Likewise. + * testsuite/gas/riscv/csr-version-1p10.l: Likewise. + * testsuite/gas/riscv/csr-version-1p11.d: Likewise. + * testsuite/gas/riscv/csr-version-1p11.l: Likewise. + * testsuite/gas/riscv/csr-version-1p12.d: Likewise. + * testsuite/gas/riscv/csr-version-1p12.l: Likewise. + + include/ChangeLog: + + * opcode/riscv-opc.h (CSR_STIMECMP, CSR_STIMECMPH, + CSR_VSTIMECMP, CSR_VSTIMECMPH): New CSR macros. + +2022-06-28 Tsukasa OI + + RISC-V: Add 'Sscofpmf' extension with its CSRs + This commit adds Count Overflow and Mode-Based Filtering Extension + (Sscofpmf) and its CSRs. + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Sscofpmf' + extension to valid 'S' extension list. + + gas/ChangeLog: + + * config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for + 'Sscofpmf' extension. (riscv_csr_address): Add handling for new + CSR classes. + * testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs. + * testsuite/gas/riscv/csr-dw-regnums.d: Likewise. + * testsuite/gas/riscv/csr.s: Add new CSRs. + * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise. + * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise. + * testsuite/gas/riscv/csr-version-1p10.d: Likewise. + * testsuite/gas/riscv/csr-version-1p10.l: Likewise. + * testsuite/gas/riscv/csr-version-1p11.d: Likewise. + * testsuite/gas/riscv/csr-version-1p11.l: Likewise. + * testsuite/gas/riscv/csr-version-1p12.d: Likewise. + * testsuite/gas/riscv/csr-version-1p12.l: Likewise. + + include/ChangeLog: + + * opcode/riscv-opc.h (CSR_SCOUNTOVF, CSR_MHPMEVENT3H, + CSR_MHPMEVENT4H, CSR_MHPMEVENT5H, CSR_MHPMEVENT6H, + CSR_MHPMEVENT7H, CSR_MHPMEVENT8H, CSR_MHPMEVENT9H, + CSR_MHPMEVENT10H, CSR_MHPMEVENT11H, CSR_MHPMEVENT12H, + CSR_MHPMEVENT13H, CSR_MHPMEVENT14H, CSR_MHPMEVENT15H, + CSR_MHPMEVENT16H, CSR_MHPMEVENT17H, CSR_MHPMEVENT18H, + CSR_MHPMEVENT19H, CSR_MHPMEVENT20H, CSR_MHPMEVENT21H, + CSR_MHPMEVENT22H, CSR_MHPMEVENT23H, CSR_MHPMEVENT24H, + CSR_MHPMEVENT25H, CSR_MHPMEVENT26H, CSR_MHPMEVENT27H, + CSR_MHPMEVENT28H, CSR_MHPMEVENT29H, CSR_MHPMEVENT30H, + CSR_MHPMEVENT31H): New CSR macros. + +2022-06-28 Tsukasa OI + + RISC-V: Add 'Smstateen' extension and its CSRs + This commit adds State Enable Extension (Smstateen) and its CSRs. + + bfd/ChangeLog: + + * elfxx-riscv.c (riscv_supported_std_s_ext): Add 'Smstateen' + extension to valid 'S' extension list. + + gas/ChangeLog: + + * config/tc-riscv.c (enum riscv_csr_class): Add CSR classes for + 'Smstateen' extension. (riscv_csr_address): Add handling for + new CSR classes. + * testsuite/gas/riscv/csr-dw-regnums.s: Add new CSRs. + * testsuite/gas/riscv/csr-dw-regnums.d: Likewise. + * testsuite/gas/riscv/csr.s: Add new CSRs. + * testsuite/gas/riscv/csr-version-1p9p1.d: Likewise. + * testsuite/gas/riscv/csr-version-1p9p1.l: Likewise. + * testsuite/gas/riscv/csr-version-1p10.d: Likewise. + * testsuite/gas/riscv/csr-version-1p10.l: Likewise. + * testsuite/gas/riscv/csr-version-1p11.d: Likewise. + * testsuite/gas/riscv/csr-version-1p11.l: Likewise. + * testsuite/gas/riscv/csr-version-1p12.d: Likewise. + * testsuite/gas/riscv/csr-version-1p12.l: Likewise. + + include/ChangeLog: + + * opcode/riscv-opc.h (CSR_MSTATEEN0, CSR_MSTATEEN1, + CSR_MSTATEEN2, CSR_MSTATEEN3, CSR_SSTATEEN0, CSR_SSTATEEN1, + CSR_SSTATEEN2, CSR_SSTATEEN3, CSR_HSTATEEN0, CSR_HSTATEEN1, + CSR_HSTATEEN2, CSR_HSTATEEN3, CSR_MSTATEEN0H, CSR_MSTATEEN1H, + CSR_MSTATEEN2H, CSR_MSTATEEN3H, CSR_HSTATEEN0H, CSR_HSTATEEN1H, + CSR_HSTATEEN2H, CSR_HSTATEEN3H): New CSR macros. + +2022-06-28 Tsukasa OI + + RISC-V: Add new CSR feature gate handling (RV32,H) + To support feature gate like Smstateen && H, this commit adds certain + CSR feature gate handling. It also changes how RV32-only CSRs are + handled for cleanliness. + + gas/ChangeLog: + + * config/tc-riscv.c (riscv_csr_address): Add CSR feature gate + handling for H. Change handling on RV32. + +2022-06-28 Alan Modra + + Re: Disable execstack and rwx segments warnings for MIPS targets. + PR 29263 + * configure.ac: Fix typo. + * testsuite/ld-elf/elf.exp: Add mips to targets that need + --warn-execstack to pass first pr29072 test. + +2022-06-28 GDB Administrator + + Automatic date update in version.in + +2022-06-27 Bruno Larsen + + gdb/testsuite: update bug numbers from Gnats to bugzilla + Some tests link to outdated bug numbers when an XFAIL or a KFAIL happen. + + gdb.base/macscp.exp was referencing bug number 555, and the bug 7660 + mentions that it used to be 555 on the Gnats system and seems to relate + to the issue at hand. + + gdb.base/annota1.exp was referencing bug number 1270, and bug 8375 + mentions being number 1270 on Gnats, and mentions annota1 specifically, + so it seemed pretty obvious. + +2022-06-27 Tom de Vries + + [gdb/build] Fix build breaker with --enable-shared + When building gdb with --enable-shared, I run into: + ... + ld: build/zlib/libz.a(libz_a-inffast.o): relocation R_X86_64_32S against \ + `.rodata' can not be used when making a shared object; recompile with -= fPIC + ld: build/zlib/libz.a(libz_a-inflate.o): warning: relocation against \ + `inflateResetKeep' in read-only section `.text' + collect2: error: ld returned 1 exit status + make[3]: *** [libbfd.la] Error 1 + ... + + This is a regression since commit a08bdb159bb ("[gdb/build] Fix gdbserver + build with -fsanitize=3Dthread"). + + The problem is that a single case statement in configure is shared to han= dle + special requirements for both the host libiberty and host zlib, which has= the + effect that only one is handled. + + Fix this by handling libiberty and zlib each in its own case statement. + + Build on x86_64-linux, with and without --enable-shared. + + ChangeLog: + + 2022-06-27 Tom de Vries + + * configure.ac: Set extra_host_libiberty_configure_flags and + extra_host_zlib_configure_flags in separate case statements. + * configure: Regenerate. + +2022-06-27 Pedro Alves + + Make GDBserver abort on internal error in development mode + Currently, if GDBserver hits some internal assertion, it exits with + error status, instead of aborting. This makes it harder to debug + GDBserver, as you can't just debug a core file if GDBserver fails an + assertion. I've had to hack the code to make GDBserver abort to debug + something several times before. + + I believe the reason it exits instead of aborting, is to prevent + potentially littering the filesystem of smaller embedded targets with + core files. I think I recall Daniel Jacobowitz once saying that many + years ago, but I can't be sure. Anyhow, that seems reasonable to me. + + Since we nowadays have a distinction between development and release + modes, I propose to make GDBserver abort on internal error if in + development mode, while keeping the status quo when in release mode. + + Thus, after this patch, in development mode, you get: + + $ ../gdbserver/gdbserver + ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has = been detected. + captured_main: Assertion `0' failed. + Aborted (core dumped) + $ + + while in release mode, you'll continue to get: + + $ ../gdbserver/gdbserver + ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has = been detected. + captured_main: Assertion `0' failed. + $ echo $? + 1 + + I do not think that this requires a separate configure switch. + + A "--target_board=3Dnative-extended-gdbserver" run on Ubuntu 20.04 ends + up with: + + =3D=3D=3D gdb Summary =3D=3D=3D + + # of unexpected core files 29 + ... + + for me, of which 8 are GDBserver core dumps, 7 more than without this + patch. + + Change-Id: I6861e08ad71f65a0332c91ec95ca001d130b0e9d + +2022-06-27 Nick Clifton + + Replace a run-time assertion failure with a warning message when parsing = corrupt DWARF data. + PR 29289 + * dwarf.c (display_debug_names): Replace assert with a warning + message. + + Fix NULL pointer indirection when parsing corrupt DWARF data. + PR 29290 + * dwarf.c (read_and_display_attr_value): Check that debug_info_p + is set before dereferencing it. + + Have gold's File_read::do_read() function check the start parameter + PR 23765 + * fileread.cc (File_read::do_read): Check start parameter before + computing number of bytes to read. + +2022-06-27 Yvan Roux + + gdb/arm: Unwind Non-Secure callbacks from Secure + Without this changeset, the unwinding doesn't take into account + Non-Secure to Secure stack unwinding enablement status and + doesn't choose the proper SP to do the unwinding. + + This patch only unwinds the stack when Non-Secure to Secure + unwinding is enabled, previous SP is set w/r to the current mode + (Handler -> msp_s, Thread -> psp_s) and then the Secure stack is + unwound. Ensure thumb bit is set in PSR when needed. Also, drop + thumb bit from PC if set. + +2022-06-27 Nick Clifton + + Stop bogus warnings about DWARF indexed string offsets being too big. + * dwarf.c (fetch_indexed_string): Do not use length of first table + in string section as the length of every table in the section. + * testsuite/binutils-all/pr26112.r: Update expected output. + +2022-06-27 Tom de Vries + + [gdb/testsuite] Handle older python in gdb.python/py-send-packet.py + With python 3.4, I run into: + ... + Traceback (most recent call last):^M + File "", line 1, in ^M + File + "outputs/gdb.python/py-send-packet/py-send-packet.py", line 128, in \ + run_set_global_var_test^M + res =3D conn.send_packet(b"X%x,4:\x02\x02\x02\x02" % addr)^M + TypeError: Could not convert Python object: b'X%x,4:\x02\x02\x02\x02'.^M + Error while executing Python code.^M + ... + while with python 3.6 this works fine. + + The type of addr is , so the first thing to try is whe= ther + changing it into a string works: + ... + addr_str =3D "%x" % addr + res =3D conn.send_packet(b"X%s,4:\x02\x02\x02\x02" % addr_str) + ... + which gets us the more detailed: + ... + TypeError: unsupported operand type(s) for %: 'bytes' and 'str' + ... + + Fix this by avoiding the '%' operator in the byte literal, and use instea= d: + ... + def xpacket_header (addr): + return ("X%x,4:" % addr).encode('ascii') + ... + res =3D conn.send_packet(xpacket_header(addr) + b"\x02\x02\x02\x02") + ... + + Tested on x86_64-linux, with python 3.4 and 3.6, and a backported version= was + tested on the gdb-12-branch in combination with python 2.7. + +2022-06-27 Tom de Vries + + [gdb/testsuite] Fix gdb.reverse/i387-env-reverse.exp for -pie + When running test-case gdb.reverse/i387-env-reverse.exp for x86_64-linux = with + target board unix/-m32/-fPIE/-pie, we run into: + ... + (gdb) PASS: gdb.reverse/i387-env-reverse.exp: push st0 + info register eax^M + eax 0x56550000 1448411136^M + (gdb) FAIL: gdb.reverse/i387-env-reverse.exp: verify eax =3D=3D 0x8040000 + ... + + The problem is that the tested instruction (fstsw) only sets $ax, not $ea= x. + + Fix this by verifying $ax instead of $eax. + + Tested on x86_64-linux with target boards unix/-m32 and unix/-m32/-fPIE/-= pie. + +2022-06-27 Tom de Vries + + [gdb/testsuite] Enable some test-cases for x86_64 -m32 + When trying to run test-case gdb.reverse/i387-env-reverse.exp for x86_64-= linux + with target board unix/-m32, it's skipped. + + Fix this by using is_x86_like_target instead of istarget "i?86-*linux*". + + This exposes a number of duplicates, fix those by making the test names u= nique. + + Likewise in a couple of other test-cases. + + Tested on x86_64-linux with target boards unix/-m32. + +2022-06-27 Tom de Vries + + [gdb/testsuite] Workaround unnecessary .s file with gfortran 4.8 + After running test-case gdb.fortran/namelist.exp with gfortran 4.8.5, I'm= left + with: + ... + $ git sti + On branch master + Your branch is up to date with 'origin/master'. + + Untracked files: + (use "git add ..." to include in what will be committed) + gdb/testsuite/lib/compiler.s + + nothing added to commit but untracked files present (use "git add" to tra= ck) + ... + + We're running into PR gcc/60447, which was fixed in gcc 4.9.0. + + Workaround this by first copying the source file to the temp dir, such th= at + the .s file is left there instead: + ... + $ ls build/gdb/testsuite/temp// + compiler.c compiler.F90 compiler.s + ... + + Tested on x86_64-linux. + +2022-06-27 Tom de Vries + + [gdb/testsuite] Skip gdb.fortran/namelist.exp for gfortran 4.8 + The test-case gdb.fortran/namelist.exp uses a gfortran feature (emitting + DW_TAG_namelist in the debug info) that has been supported since gfortran= 4.9, + see PR gcc/37132. + + Skip the test for gfortran 4.8 and earlier. Do this using gcc_major_vers= ion, + and update it to be able to handle "gcc_major_version {gfortran-*} f90". + + Tested on x86_64-linux, with gfortran 4.8.5, 7.5.0, and 12.1.1. + +2022-06-27 Tom de Vries + + [gdb/symtab] Fix parsing of .debug_str_offsets header + When running test-case gdb.dwarf2/fission-mix.exp with target board dwarf= 64 + and gcc-12 (defaulting to DWARF5), I run into: + ... + (gdb) break func2^M + Offset from DW_FORM_GNU_str_index or DW_FORM_strx pointing outside of \ + .debug_str.dwo section in CU at offset 0x0 [in module fission-mix]^M + (gdb) FAIL: gdb.dwarf2/fission-mix.exp: break func2 + ... + + The .debug_str_offsets section has version 5, so as per the standard it h= as + it's own header, with initial length and version: + ... + Contents of the .debug_str_offsets.dwo section (loaded from fission-mix2.= dwo): + + Length: 0x1c + Version: 0x5 + Index Offset [String] + 0 0 build/gdb/testsuite + 1 33 GNU C17 + 2 8f src/gdb/testsuite/gdb.dwarf2/fission-mix-2.c + ... + + But when trying to read the string offset at index 0 in the table (which + is 0), we start reading at offset 8, which points in the header, at the l= ast + 4 bytes of the initial length (it's 12 bytes because of 64-bit dwarf), as= well + at the 2-byte version field and 2 bytes of padding, so we get: + ... + (gdb) p /x str_offset + $1 =3D 0x500000000 + ... + which indeed is an offset that doesn't fit in the .debug_str section. + + The offset 8 is based on reader->cu->header.addr_size: + ... + static const char * + read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_i= ndex) + { + ULONGEST str_offsets_base =3D reader->cu->header.version >=3D 5 + ? reader->cu->header.addr_size : 0; + ... + which doesn't in look in agreement with the standard. + + Note that this happens to give the right answer for 32-bit dwarf and + addr_size =3D=3D 8, because then we have header size =3D=3D + (initial length (4) + version (2) + padding (2)) =3D=3D 8. + + Conversely, for 32-bit dwarf and addr_size =3D=3D 4 (target board unix/-m= 32) + we run into a similar problem. It just happens to not trigger the warnin= g, + instead we get the wrong strings, like "func2" for DW_AT_producer and + "build/gdb/testsuite" for DW_AT_name of the DW_TAG_compile_unit DIE. + + Fix this by parsing the .debug_str_offsets header in read_dwo_str_index. + + Add a FIXME that we should not parse this for every call. + + Tested on x86_64-linux. + +2022-06-27 Tom de Vries + + [gdb/build] Fix gdbserver build with -fsanitize=3Dthread + [ Copied from gcc commit 153689603fd ("[gdb/build] Fix gdbserver build wi= th + -fsanitize=3Dthread"). ] + + When building gdbserver with -fsanitize=3Dthread (added to CFLAGS/CXXFLAG= S) we + run into: + ... + ld: ../libiberty/libiberty.a(safe-ctype.o): warning: relocation against \ + `__tsan_init' in read-only section `.text' + ld: ../libiberty/libiberty.a(safe-ctype.o): relocation R_X86_64_PC32 \ + against symbol `__tsan_init' can not be used when making a shared objec= t; \ + recompile with -fPIC + ld: final link failed: bad value + collect2: error: ld returned 1 exit status + make[1]: *** [libinproctrace.so] Error 1 + ... + which looks similar to what is described in commit 78e49486944 ("[gdb/bui= ld] + Fix gdbserver build with -fsanitize=3Daddress"). + + The gdbserver component builds a shared library libinproctrace.so, which = uses + libiberty and therefore requires the pic variant. The gdbserver Makefile= is + setup to use this variant, if available, but it's not there. + + Fix this by listing gdbserver in the toplevel configure alongside libcc1,= as a + component that needs the libiberty pic variant, setting: + ... + extra_host_libiberty_configure_flags=3D--enable-shared + ... + + Tested on x86_64-linux. + + ChangeLog: + + 2022-06-27 Tom de Vries + + * configure.ac: Build libiberty pic variant for gdbserver. + * configure: Regenerate. + +2022-06-27 Nick Clifton + + Disable execstack and rwx segments warnings for MIPS targets. + PR 29263 + * configure.ac: Move HPPA specific code from here... + * configure.tgt: ... to here. Add similar code for MIPS. + Move code for CRIS, MIPS and HPPA to block at start of file. + * configure: Regenerate. + +2022-06-27 Jan Beulich + + bfd: prune config.bfd's setting of targ_archs + The final "match all" case can take care of a few explicit entries: + Purge those. Also move s12z* into proper position (the table is + otherwise sorted, after all). + +2022-06-27 Jan Beulich + + drop XC16x bits + Commit 04f096fb9e25 ("Move the xc16x target to the obsolete list") moved + the architecture from the "obsolete but still available" to the + "obsolete / support removed" list in config.bfd, making the architecture + impossible to enable (except maybe via "enable everything" options"). + + Note that I didn't touch */po/*.po{,t} on the assumption that these + would be updated by some (half)automatic means. + +2022-06-27 Bhuvanendra Kumar N + + Fix location list offset address dump under DW_AT_location (dwarf-5) + For clang compiled objects w[...] [diff truncated at 100000 bytes]