From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2124) id 875053858C50; Sat, 14 Jan 2023 13:42:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 875053858C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1673703761; bh=ZDa0xXu37eDiiwtPe9Vd9Bhg0igwEz8wdanWFQARgJw=; h=From:To:Subject:Date:From; b=pkEcUrP0UkFSutIWtwbvLqWUVGYYV9oHG71lnuNWVIAAF7/TYlJJbCCp8KmnMLEvU XC839R58vAXThhTwKMRq+dfyQ9lg+a736vVjz9T5hjTNz8qdCJcSTENU/W6b28eTDY zUTViu1xrFirPPyk7Ks+X7JGXbrikTQlvZEmi4/Y= 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_40-branch] Set development and experimental to false. Update version number to 2.40. Add release markers. Re X-Act-Checkin: binutils-gdb X-Git-Author: Nick Clifton X-Git-Refname: refs/heads/binutils-2_40-branch X-Git-Oldrev: 44767ca811eba588e3a92e0a59bc3d843f90a200 X-Git-Newrev: c203a2e3a814782ea3a83a6eb60c3a58e6725eba Message-Id: <20230114134241.875053858C50@sourceware.org> Date: Sat, 14 Jan 2023 13:42:41 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3Dc203a2e3a814= 782ea3a83a6eb60c3a58e6725eba commit c203a2e3a814782ea3a83a6eb60c3a58e6725eba Author: Nick Clifton Date: Sat Jan 14 13:42:32 2023 +0000 Set development and experimental to false. Update version number to 2.= 40. Add release markers. Regenerate files Diff: --- ChangeLog.git | 102236 ++++++++++++++++++++++++++++++++++= ++++ bfd/ChangeLog | 4 + bfd/configure | 20 +- bfd/development.sh | 4 +- bfd/po/bfd.pot | 38 +- bfd/version.m4 | 2 +- binutils/ChangeLog | 4 + binutils/configure | 20 +- binutils/po/binutils.pot | 6 +- gas/ChangeLog | 4 + gas/configure | 20 +- gas/doc/.dirstamp | 0 gas/po/gas.pot | 64 +- gold/ChangeLog | 4 + gold/po/gold.pot | 4 +- gprof/ChangeLog | 4 + gprof/configure | 20 +- gprof/po/gprof.pot | 2 +- gprofng/configure | 20 +- gprofng/doc/version.texi | 8 +- gprofng/libcollector/configure | 20 +- ld/ChangeLog | 4 + ld/configure | 20 +- ld/po/ld.pot | 867 +- opcodes/ChangeLog | 4 + opcodes/configure | 20 +- opcodes/po/opcodes.pot | 2 +- 27 files changed, 102845 insertions(+), 576 deletions(-) diff --git a/ChangeLog.git b/ChangeLog.git new file mode 100644 index 00000000000..28cfcc13313 --- /dev/null +++ b/ChangeLog.git @@ -0,0 +1,102236 @@ +2023-01-14 GDB Administrator + + Automatic date update in version.in + +2023-01-13 Nick Clifton + + Updated Romainian translation for the bfd sub-directory + +2023-01-13 GDB Administrator + + Automatic date update in version.in + +2023-01-12 Hans-Peter Nilsson + + ARM: Fix ld bloat introduced between binutils-2.38 and 2.39 + Since commit 9833b7757d24, "PR28824, relro security issues", + ELF_MAXPAGESIZE matters much more, with regards to layout of + the linked file. That commit fixed an actual bug, but also + exposes a problem for targets were that value is too high. + + For example, for ARM(32, a.k.a. "Aarch32") specifically + bfd_arch_arm, it's set to 64 KiB, making all Linux(/GNU) + targets pay an extra amount of up to 60 KiB of bloat in + DSO:s and executables. This matters when there are many + such files, and where storage is expensive. + + It's *mostly* bloat when using a Linux kernel, as ARM(32) is + a good example of an target where ELF_MAXPAGESIZE is set to + an extreme value for an obscure corner-case. The ARM + (32-bit) kernel has 4 KiB pages, has had that value forever, + and can't be configured to any other value. The use-case is + IIUC "Aarch32" emulation on an "Aarch64" (arm64) kernel, but + not just that, but a setup where the Linux page-size is + configured to something other than the *default* 4 KiB. Not + sure there actually any such systems in use, again with + both Aarch32 compatibility support and a non-4KiB pagesize, + with all the warnings in the kernel config and requiring the + "EXPERT" level set on. + + So, let's do like x86-64 in a2267dbfc9e1 "x86-64: Use only + one default max-page-size" and set ELF_MAXPAGESIZE to 4096. + + bfd: + * elf32-arm.c (ELF_MAXPAGESIZE): Always set to 0x1000. + (cherry picked from commit 1a26a53a0dee39106ba58fcb15496c5f13074652) + +2023-01-12 Hans-Peter Nilsson + + ld/testsuite: Adjust for ELF_MAXPAGESIZE 0x1000 + Many tests reflect a setting of ELF_MAXPAGESIZE to 64 KiB. + With ELF_MAXPAGESIZE changed to 4 KiB, layout is sometimes + different and symbols end up in other places. Avoid churn + and regexpification of old test patterns by passing the + max-page-size setting active at the time. + + ld/testsuite: + + * testsuite/ld-arm/arm-elf.exp, + testsuite/ld-arm/non-contiguous-arm2.d, + testsuite/ld-arm/non-contiguous-arm3.d, + testsuite/ld-arm/non-contiguous-arm5.d, + testsuite/ld-arm/non-contiguous-arm6.d, + testsuite/ld-arm/thumb-plt-got.d, testsuite/ld-arm/thumb-plt.d: + Pass -z max-page-size=3D0x10000 explicitly to test that rely on + that value in output-matching patterns. + (cherry picked from commit b305015577bb92d3041e55a72ca8cd43f7c05748) + +2023-01-12 Nick Alcock + + libctf: ctf-link outdated input check faulty + This check has a pair of faults which, combined, can lead to memory + corruption. Firstly, it assumes that the values of the ctf_link_inputs + hash are ctf_dict_t's: they are not, they are ctf_link_input_t's, a much + shorter structure. So the flags check which is the core of this is + faulty (but happens, by chance, to give the right output on most + architectures, since usually we happen to get a 0 here, so the test that + checks this usually passes). Worse, the warning that is emitted when + the test fails is added to the wrong dict -- it's added to the input + dict, whose warning list is never consumed, rendering the whole check + useless. But the dict it adds to is still the wrong type, so we end up + overwriting something deep in memory (or, much more likely, + dereferencing a garbage pointer and crashing). + + Fixing both reveals another problem: the link input is an *archive* + consisting of multiple members, so we have to consider whether to check + all of them for the outdated-func-info thing we are checking here. + However, no compiler exists that emits a mixture of members with this + flag on and members with it off, and the linker always reserializes (and + upgrades) such things when it sees them: so all members in a given + archive must have the same value of the flag, so we only need to check + one member per input archive. + + libctf/ + PR libctf/29983 + * ctf-link.c (ctf_link_warn_outdated_inputs): Get the types of + members of ctf_link_inputs right, fixing a possible spurious + tesst failure / wild pointer deref / overwrite. Emit the + warning message into the right dict. + +2023-01-12 Nick Clifton + + Ensure that libbacktrace/allocfail.sh is not deleted when creating releas= e tarballs. + * Makefile.am (CLEANFILES): Import patch from upstream to prevent + allocafail.sh from being removed when running 'make clean'. + +2023-01-12 GDB Administrator + + Automatic date update in version.in + +2023-01-11 Nick Clifton + + Fix a potential illegal memory access in the BFD library when parsing a c= orrupt DWARF file. + PR 29988 + * dwarf2.c (read_indexed_address): Fix check for an out of range + offset. + +2023-01-11 Jan Beulich + + gas/RISC-V: adjust assembler for opcode table re-ordering + PR gas/29940 + + With the single-operand JAL entry now sitting ahead of the two-operand + one, the parsing of a two-operand insn would first try to parse an 'a'- + style operand, resulting in the insertion of bogus (and otherwise + unused) undefined symbols in the symbol table, having register names. + Since 'a' is used as 1st operand only with J and JAL, and since JAL is + the only insn _also_ allowing for a register as 1st operand (and then + there being a 2nd one), special case this parsing aspect right there. + + Reviewed-by: Palmer Dabbelt + +2023-01-11 GDB Administrator + + Automatic date update in version.in + +2023-01-10 Stefan Schulze Frielinghaus + + IBM zSystems: Fix offset relative to static TLS + For local exec TLS relocations of the form foo@NTPOFF+x the addend was + ignored. + + bfd/ChangeLog: + + * elf32-s390.c (elf_s390_relocate_section): Honor addend for + R_390_TLS_LE32. + * elf64-s390.c (elf_s390_relocate_section): Honor addend for + R_390_TLS_LE64. + + ld/ChangeLog: + + * testsuite/ld-s390/reloctlsle-1.d: New test. + * testsuite/ld-s390/reloctlsle-1.s: New test. + + (cherry picked from commit aefebe82dc89711384b85329daa48d04c1d3a45b) + +2023-01-10 GDB Administrator + + Automatic date update in version.in + +2023-01-09 Indu Bhagat + + sframe: fix the defined SFRAME_FRE_TYPE_*_LIMIT constants + An earlier commit 3f107464 defined the SFRAME_FRE_TYPE_*_LIMIT + constants. These constants are used (by gas and libsframe) to pick an + SFrame FRE type based on the function size. Those constants, however, + were buggy, causing the generated SFrame sections to be bloated as + SFRAME_FRE_TYPE_ADDR2/SFRAME_FRE_TYPE_ADDR4 got chosen more often than + necessary. + + gas/ + * sframe-opt.c (sframe_estimate_size_before_relax): Use + typecast. + (sframe_convert_frag): Likewise. + + libsframe/ + * sframe.c (sframe_calc_fre_type): Use a more appropriate type + for argument. Adjust the check for SFRAME_FRE_TYPE_ADDR4_LIMIT + to keep it warning-free but meaningful. + + include/ + * sframe-api.h (sframe_calc_fre_type): Use a more appropriate + type for the argument. + * sframe.h (SFRAME_FRE_TYPE_ADDR1_LIMIT): Correct the constant. + (SFRAME_FRE_TYPE_ADDR2_LIMIT): Likewise. + (SFRAME_FRE_TYPE_ADDR4_LIMIT): Likewise. + + (cherry picked from commit 725a19bfd142c845bf76ae28f6289972fd1cf5db) + +2023-01-09 Indu Bhagat + + libsframe: adjust an incorrect check in flip_sframe + When sframe_encoder_write needs to flip the buffer containing the SFrame + section before writing, it is not necessary that the SFrame FDES are in + the order of their sfde_func_start_fre_off. On the contrary, SFrame + FDEs will be sorted in the order of their start address. So, remove + this incorrect assumption which is basically assuming that the last + sfde_func_start_fre_off seen will help determine the end of the flipped + buffer. + + The function now keeps track of the bytes_flipped and then compares it wi= th + the expected value. Also, added two more checks at appropriate places: + - check that the SFrame FDE read is within bounds + - check that the SFrame FRE read is within bounds + + libsframe/ + + * sframe.c (flip_sframe): Adjust an incorrect check. + Add other checks to ensure reads are within the buffer size. + + (cherry picked from commit cd9aea32cffd8089f6f63f4eb86d4dccfc0b3850) + +2023-01-09 Christophe Lyon + + Skip ld/pr23169 test on arm. + The test is already skipped on several targets (including AArch64) + because it's invalid. + + * testsuite/ld-ifunc/ifunc.exp: Skip pr23169 on arm. + +2023-01-09 Christophe Lyon + + Fix PR18841 ifunc relocation ordering + In order to get the ifunc relocs properly sorted the correct class + needs to be returned. The code mimics what has been done for AArch64. + + Fixes: + FAIL: Run pr18841 with libpr18841b.so + FAIL: Run pr18841 with libpr18841c.so + FAIL: Run pr18841 with libpr18841bn.so (-z now) + FAIL: Run pr18841 with libpr18841cn.so (-z now) + + bfd/ + PR ld/18841 + * elf32-arm.c (elf32_arm_reloc_type_class): Return + reloc_class_ifunc for ifunc symbols. + + ld/testsuite/ + * ld-arm/ifunc-12.rd: Update relocations order. + * ld-arm/ifunc-3.rd: Likewise. + * ld-arm/ifunc-4.rd: Likewise. + +2023-01-09 Nick Clifton + + Updated transaltions for the gprof and binutils sub-directories + +2023-01-09 GDB Administrator + + Automatic date update in version.in + +2023-01-08 Alan Modra + + PR29972, inconsistent format specification in singular form + PR 29972 + * readelf.c (process_dynamic_section): Correct format string. + + (cherry picked from commit 02da71ee20ec71f7b3be85cf2266e09c124983bf) + +2023-01-08 GDB Administrator + + Automatic date update in version.in + +2023-01-07 GDB Administrator + + Automatic date update in version.in + +2023-01-06 Jan Beulich + + ld: yet another PDB build fix (or workaround) + Older bash looks to improperly deal with backslashes in here-documents, + leaving them in place on the escaped double quotes inside the parameter + expansion. Convert to a model without using such a construct, by simply + splitting the here-documents into three ones. + +2023-01-06 Nick Clifton + + Updated Bulgarian and Russian translations for LD and BFD respectively + +2023-01-06 GDB Administrator + + Automatic date update in version.in + +2023-01-05 Nick Clifton + + Avoid unaligned pointer reads in PEP idata section + + Updated Bulgarian and Russian translations for the gprof subdirectory + +2023-01-05 GDB Administrator + + Automatic date update in version.in + +2023-01-04 Alan Modra + + Merge config/picflag.m4 from gcc + + Update some more copyright year ranges + These files disappear in commit 3002e78a7d3d but are still on the branch. + + Update year range in gprofng copyright notices + This adds 'Innovative Computing Labs' as an external author to + update-copyright.py, to cover the copyright notice in + gprofng/common/opteron_pcbe.c, and uses that plus another external + author 'Oracle and' to update gprofng copyright dates. I'm not going + to commit 'Oracle and' as an accepted author, but that covers the + string "Copyright (c) 2006, 2012, Oracle and/or its affiliates. All + rights reserved." found in gprofng/testsuite/gprofng.display/jsynprog + files. + + Update year range in copyright notice of binutils files + The newer update-copyright.py fixes file encoding too, removing cr/lf + on binutils/bfdtest2.c and ld/testsuite/ld-cygwin/exe-export.exp, and + embedded cr in binutils/testsuite/binutils-all/ar.exp string match. + +2023-01-04 Alan Modra + + Update etc/update-copyright.py + This picks up some improvements from gcc/contrib. exceptions must + derive from BaseException, port to python3, retain original file mode, + fix name of script in examples. + + Adds libsframe to list of default dirs. I would have added gprofng + too but there are some files claiming copyright by authors other than + the Free Software Foundation. + +2023-01-04 Andreas K. Huettel + + Fix AArch64 linker testsuite failures triggered by differences in build e= nvironments. + PR 29843 + * testsuite/ld-aarch64/bti-plt-5.d: Relax regxps slightly to allow + for differences in build environments. + * testsuite/ld-aarch64/tls-relax-gdesc-le-now.d: Likewise. + +2023-01-04 Mark Harmstone + + Avoid unaligned pointer reads in PEP .idata section + This is something I discovered when working on aarch64, though it's + relevant to x86_64 too. + + The PE32+ imports are located in the .idata section, which starts off + with a 20-byte structure for each DLL, containing offsets into the rest + of the section. This is the Import Directory Table in + https://learn.microsoft.com/en-us/windows/win32/debug/pe-format, which + is a concatenation of the .idata$2 sections. This is then followed by an + 20 zero bytes generated by the linker script, which calls this .idata$3. + + After this comes the .idata$4 entries for each function, which the + loader overwrites with the function pointers. Because there's no padding + between .idata$3 and .idata$4, this means that if there's an even number + of DLLs, the function pointers won't be aligned on an 8-byte boundary. + + Misaligned reads are slower on x86_64, but this is more important on + aarch64, as the e.g. `ldr x0, [x0, :lo12:__imp__func]` the compiler + might generate requires __imp__func (the .idata$4 entry) to be aligned + to 8 bytes. Without this you get IMAGE_REL_ARM64_PAGEOFFSET_12L overflow + errors. + +2023-01-04 GDB Administrator + + Automatic date update in version.in + +2023-01-03 Nick Clifton + + Updated translations for various languages and sub-directories + +2023-01-03 GDB Administrator + + Automatic date update in version.in + +2023-01-02 GDB Administrator + + Automatic date update in version.in + +2022-12-31 Nick Clifton + + Update version number and regenerate files + + Add markers for 2.40 branch + + sync libiberty sources with gcc mainline + +2022-12-31 Tom de Vries + + [gdb/cli] Add maintenance ignore-probes + There's a command "disable probes", but SystemTap probes, for instance + libc:longjmp cannot be disabled: + ... + $ gdb -q -batch a.out -ex start -ex "disable probes libc ^longjmp$" + ... + Probe libc:longjmp cannot be disabled. + Probe libc:longjmp cannot be disabled. + Probe libc:longjmp cannot be disabled. + ... + + Add a command "maintenance ignore-probes" that ignores probes during + get_probes, such that we can easily pretend to use a libc without the + libc:longjmp probe: + ... + (gdb) maint ignore-probes -verbose libc ^longjmp$ + ignore-probes filter has been set to: + PROVIDER: 'libc' + PROBE_NAME: '^longjmp$' + OBJNAME: '' + (gdb) start ^M + ... + Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M + Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M + Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M + ... + + The "Ignoring ..." messages can be suppressed by not using -verbose. + + Note that as with "disable probes", running simply "maint ignore-probes" + ignores all probes. + + The ignore-probes filter can be reset by using: + ... + (gdb) maint ignore-probes -reset + ignore-probes filter has been reset + ... + + For now, the command is only supported for SystemTap probes. + + PR cli/27159 + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D27159 + +2022-12-31 Mark Harmstone + + ld/testsuite: Don't add index to sizes in pdb.exp + + ld: Handle LF_VFTABLE types in PDBs + +2022-12-31 Mark Harmstone + + ld: Handle extended-length data structures in PDB types + A few fixes to minor issues I've discovered in my PDB patches. + + * If sizes or offsets are greater than 0x8000, they get encoded as + extended values in the same way as for enum values - e.g. a LF_ULONG + .short followed by a .long. + + * I've managed to coax MSVC to produce another type, LF_VFTABLE, which + is seen when dealing with COM. I don't think LLVM emits this. Note that + we can't just implement everything in Microsoft's header files, as most + of it is obsolete. + + * Fixes a stupid bug in the test program, where I was adding an index to + a size. The index was hard-coded to 0, so this didn't cause any actual + issues. + +2022-12-31 Nick Clifton + + Updated Romanian translation for the binutils sub-directory + +2022-12-31 Tom de Vries + + [gdb/python] Fix gdb.python/py-finish-breakpoint2.exp for -m32 + [ Partial resubmission of an earlier submission by Andrew ( + https://sourceware.org/pipermail/gdb-patches/2012-September/096347.html )= , so + listing him as co-author. ] + + With x86_64-linux and target board unix/-m32, we have: + ... + (gdb) continue^M + Continuing.^M + Exception #10^M + ^M + Breakpoint 3, throw_exception_1 (e=3D10) at py-finish-breakpoint2.cc:23^M + 23 throw new int (e);^M + (gdb) FAIL: gdb.python/py-finish-breakpoint2.exp: \ + check FinishBreakpoint in catch() + ... + + The following scenario happens: + - set breakpoint in throw_exception_1, a function that throws an exception + - continue + - hit breakpoint, with call stack main.c:38 -> throw_exception_1 + - set a finish breakpoint + - continue + - hit the breakpoint again, with call stack main.c:48 -> throw_exception + -> throw_exception_1 + + Due to the exception, the function call did not properly terminate, and t= he + finish breakpoint didn't trigger. This is expected behaviour. + + However, the intention is that gdb detects this situation at the next stop + and calls the out_of_scope callback, which would result here in this test= -case + in a rather confusing "exception did not finish" message. So the problem= is + that this message doesn't show up, in other words, the out_of_scope callb= ack + is not called. + + [ Note that the fact that the situation is detected only at the next stop + (wherever that happens to be) could be improved upon, and the earlier + submission did that by setting a longjmp breakpoint. But I'm considering= this + problem out-of-scope for this patch. ] + + Note that the message does show up later, at thread exit: + ... + [Inferior 1 (process 20046) exited with code 0236]^M + exception did not finish ...^M + ... + + The decision on whether to call the out_of_scope call back is taken in + bpfinishpy_detect_out_scope_cb, and the interesting bit is here: + ... + if (b->pspace =3D=3D current_inferior ()->pspace + && (!target_has_registers () + || frame_find_by_id (b->frame_id) =3D=3D NULL)) + bpfinishpy_out_of_scope (finish_bp); + ... + + In the case of the thread exit, the callback triggers because + target_has_registers () =3D=3D 0. + + So why doesn't the callback trigger in the case of the breakpoint? + + Well, the b->frame_id is the frame_id of the frame of main (the frame + in which the finish breakpoint is supposed to trigger), so AFAIU + frame_find_by_id (b->frame_id) =3D=3D NULL will only be true once we've + left main, at which point I guess we don't stop till thread exit. + + Fix this by saving the frame in which the finish breakpoint was created, = and + using frame_find_by_id () =3D=3D NULL on that frame instead, such that we= have: + ... + (gdb) continue^M + Continuing.^M + Exception #10^M + ^M + Breakpoint 3, throw_exception_1 (e=3D10) at py-finish-breakpoint2.cc:23^M + 23 throw new int (e);^M + exception did not finish ...^M + (gdb) FAIL: gdb.python/py-finish-breakpoint2.exp: \ + check FinishBreakpoint in catch() + ... + + Still, the test-case is failing because it's setup to match the behaviour= that + we get on x86_64-linux with target board unix/-m64: + ... + (gdb) continue^M + Continuing.^M + Exception #10^M + stopped at ExceptionFinishBreakpoint^M + (gdb) PASS: gdb.python/py-finish-breakpoint2.exp: \ + check FinishBreakpoint in catch() + ... + + So what happens here? Again, due to the exception, the function call did= not + properly terminate, but the finish breakpoint still triggers. This is so= mewhat + unexpected. This happens because it just so happens to be that the frame + return address at which the breakpoint is set, is also the first instruct= ion + after the exception has been handled. This is a know problem, filed as + PR29909, so KFAIL it, and modify the test-case to expect the out_of_scope + callback. + + Also add a breakpoint after setting the finish breakpoint but before thro= wing + the exception, to check that we don't call the out_of_scope callback too = early. + + Tested on x86_64-linux, with target boards unix/-m32. + + Co-Authored-By: Andrew Burgess + PR python/27247 + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D27247 + +2022-12-31 Tom de Vries + + [gdb/testsuite] Fix gdb.base/print-symbol-loading.exp on ubuntu 22.04.1 + On ubuntu 22.04.1 x86_64, I run into: + ... + (gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: \ + set print symbol-loading off + sharedlibrary .*^M + Symbols already loaded for /lib/x86_64-linux-gnu/libc.so.6^M + Symbols already loaded for /lib/x86_64-linux-gnu/libpthread.so.0^M + (gdb) FAIL: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib + ... + + The test-case expects the libc.so line, but not the libpthread.so line. + + However, we have: + ... + $ ldd /lib/x86_64-linux-gnu/libc.so.6 + linux-vdso.so.1 (0x00007ffd7f7e7000) + libgtk3-nocsd.so.0 =3D> /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x0000= 7f4468c00000) + /lib64/ld-linux-x86-64.so.2 (0x00007f4469193000) + libdl.so.2 =3D> /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4468f3e000) + libpthread.so.0 =3D> /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4468= f39000) + ... + so it's not unexpected that libpthread.so is loaded if libc.so is loaded. + + Fix this by accepting the libpthread.so line. + + Tested on x86_64-linux. + + PR testsuite/29919 + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29919 + +2022-12-31 Tom de Vries + + [gdb/testsuite] Replace deprecated pthread_yield in gdb.threads/watchpoin= t-fork.exp + On Ubuntu 22.04.1 x86_64, with glibc 2.35 I run into: + ... + watchpoint-fork-mt.c: In function 'start':^M + watchpoint-fork-mt.c:67:7: warning: 'pthread_yield' is deprecated: \ + pthread_yield is deprecated, use sched_yield instead \ + [-Wdeprecated-declarations]^M + 67 | i =3D pthread_yield ();^M + | ^^M + ... + + Fix this as suggested, by using sched_yield instead. + + Tested on x86_64-linux. + +2022-12-31 Tom de Vries + + [gdb/testsuite] Fix gdb.base/corefile.exp with glibc 2.35 + On Ubuntu 22.04.1 x86_64 (with glibc 2.35), I run into: + ... + (gdb) PASS: gdb.base/corefile.exp: $_exitcode is void + bt^M + #0 __pthread_kill_implementation (...) at ./nptl/pthread_kill.c:44^M + #1 __pthread_kill_internal (...) at ./nptl/pthread_kill.c:78^M + #2 __GI___pthread_kill (...) at ./nptl/pthread_kill.c:89^M + #3 0x00007f4985e1a476 in __GI_raise (...) at ../sysdeps/posix/raise.c:2= 6^M + #4 0x00007f4985e007f3 in __GI_abort () at ./stdlib/abort.c:79^M + #5 0x0000556b4ea4b504 in func2 () at gdb.base/coremaker.c:153^M + #6 0x0000556b4ea4b516 in func1 () at gdb.base/coremaker.c:159^M + #7 0x0000556b4ea4b578 in main (...) at gdb.base/coremaker.c:171^M + (gdb) PASS: gdb.base/corefile.exp: backtrace + up^M + #1 __pthread_kill_internal (...) at ./nptl/pthread_kill.c:78^M + 78 in ./nptl/pthread_kill.c^M + (gdb) FAIL: gdb.base/corefile.exp: up + ... + + The problem is that the regexp used here: + ... + gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up" + ... + does not fit the __pthread_kill_internal line which lacks the instruction + address due to inlining. + + Fix this by making the regexp less strict. + + Tested on x86_64-linux. + +2022-12-31 GDB Administrator + + Automatic date update in version.in + +2022-12-30 Tom de Vries + + [gdb/testsuite] Fix gdb.threads/dlopen-libpthread.exp for upstream glibc + On ubuntu 22.04.1 x86_64, I run into: + ... + (gdb) info probes all rtld rtld_map_complete^M + No probes matched.^M + (gdb) XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld= _map_complete + UNTESTED: gdb.threads/dlopen-libpthread.exp: no matching probes + ... + This has been filed as PR testsuite/17016. + + The problem is that the name rtld_map_complete is used, which was only + available in Fedora 17, and upstream the name map_complete was used. + + In the email thread discussing a proposed patch ( + https://sourceware.org/legacy-ml/gdb-patches/2014-09/msg00712.html ) it w= as + suggested to make the test-case handle both names. + + So, handle both names: map_complete and rtld_map_complete. + + This exposes the following FAIL: + ... + (gdb) info sharedlibrary^M + From To Syms Read Shared Object Library^M + $hex $hex Yes /lib64/ld-linux-x86-64.so.2^M + $hex $hex Yes (*) /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0^M + $hex $hex Yes /lib/x86_64-linux-gnu/libc.so.6^M + $hex $hex Yes /lib/x86_64-linux-gnu/libdl.so.2^M + $hex $hex Yes /lib/x86_64-linux-gnu/libpthread.so.0^M + (*): Shared library is missing debugging information.^M + (gdb) FAIL: gdb.threads/dlopen-libpthread.exp: libpthread.so not found + ... + due to using a glibc (v2.35) that has libpthread integrated into libc. + + Fix this by changing the FAIL into UNSUPPORTED. + + Tested on x86_64-linux. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D17016 + +2022-12-30 Tom de Vries + + [gdb/testsuite] Fix gdb.reverse/step-indirect-call-thunk.exp with -fcf-pr= otection + On Ubuntu 22.04.1 x86_64, I run into: + ... + gdb.reverse/step-indirect-call-thunk.c: In function 'inc':^M + gdb.reverse/step-indirect-call-thunk.c:22:1: error: '-mindirect-branch' a= nd \ + '-fcf-protection' are not compatible^M + 22 | { /* inc.1 */^M + | ^^M + ... + + Fix this by forcing -fcf-protection=3Dnone, if supported. + + Tested on x86_64-linux. + +2022-12-30 Tom de Vries + + [gdb/testsuite] Fix gdb.cp/step-and-next-inline.exp with -fcf-protection + On Ubuntu 22.04.1 x86_64, I run into: + ... + (gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: not in inline 1 + next^M + 51 if (t !=3D NULL^M + (gdb) FAIL: gdb.cp/step-and-next-inline.exp: no_header: next step 1 + ... + + This is due to -fcf-protection, which adds the endbr64 at the start of ge= t_alias_set: + ... + 0000000000001180 <_Z13get_alias_setP4tree>: + 1180: f3 0f 1e fa endbr64 + 1184: 48 85 ff test %rdi,%rdi + ... + so the extra insn gets an is-stmt line number entry: + ... + INDEX LINE ADDRESS IS-STMT PROLOGUE-END + ... + 11 50 0x0000000000001180 Y + 12 50 0x0000000000001180 + 13 51 0x0000000000001184 Y + 14 54 0x0000000000001184 + ... + and when stepping into get_alias_set we step to line 50: + ... + (gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: in main + step^M + get_alias_set (t=3Dt@entry=3D0x555555558018 ) at step-and-next-inline= .cc:50^M + 50 {^M + ... + + In contrast, with -fcf-protection=3Dnone, we get: + ... + 0000000000001170 <_Z13get_alias_setP4tree>: + 1170: 48 85 ff test %rdi,%rdi + ... + and: + ... + INDEX LINE ADDRESS IS-STMT PROLOGUE-END + ... + 11 50 0x0000000000001170 Y + 12 51 0x0000000000001170 Y + 13 54 0x0000000000001170 + ... + so when stepping into get_alias_set we step to line 51: + ... + (gdb) PASS: gdb.cp/step-and-next-inline.exp: no_header: in main + step^M + get_alias_set (t=3Dt@entry=3D0x555555558018 ) at step-and-next-inline= .cc:51^M + 51 if (t !=3D NULL^M + ... + + Fix this by rewriting the gdb_test issuing the step command to check which + line the step lands on, and issuing an extra next if needed. + + Tested on x86_64-linux, both with and without -fcf-protection=3Dnone. + + PR testsuite/29920 + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29920 + +2022-12-30 Tom de Vries + + [gdb/symtab] Make comp_unit_head.length private + Make comp_unit_head.length private, to enforce using accessor functions. + + Replace accessor function get_length with get_length_with_initial and + get_length_without_initial, to make it explicit which variant we're using. + + Tested on x86_64-linux. + + PR symtab/29343 + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29343 + +2022-12-30 Alan Modra + + PR29948, heap-buffer-overflow in display_debug_lines_decoded + This fixes a couple of places in display_debug_lines_decoded that were + off by one in checking DWARF5 .debug_line directory indices. It also + displays the DWARF5 entry 0 for the program current directory rather + than "." as is done for pre-DWARF5. I decided against displaying + DW_AT_comp_dir for pre-DWARF5 since I figure it is better for readelf + to minimally interpret debug info. + + binutils/ + PR 29948 + * dwarf.c (display_debug_lines_decoded): Display the given + directory entry 0 for DWARF5. Properly check directory index + against number of entries in the table. Revert to using + unsigned int for n_directories and associated variables. + Correct warning messages. + gas/ + * testsuite/gas/elf/dwarf-5-loc0.d: Update. + +2022-12-30 GDB Administrator + + Automatic date update in version.in + +2022-12-29 Tsukasa OI + + RISC-V: Simplify riscv_csr_address logic on state enable extensions + This commit makes CSR class handling for 'Smstateen' and 'Ssstateen' + extensions simpler using fall-throughs (as used in CSR_CLASS_I{,_32}). + + gas/ChangeLog: + + * config/tc-riscv.c (riscv_csr_address): Simplify the logic for + 'Smstateen' and 'Ssstateen' extensions. + +2022-12-29 GDB Administrator + + Automatic date update in version.in + +2022-12-28 Tom Tromey + + Use $decimal in timestamp.exp + This patch fixes a review comment by Tom de Vries. He pointed out + that the new timestamp.exp should use the $decimal convenience regexp. + +2022-12-28 Tom Tromey + + Fix "set debug timestamp" + PR cli/29945 points out that "set debug timestamp 1" stopped working + -- this is a regression due to commit b8043d27 ("Remove a ui-related + memory leak"). + + This patch fixes the bug and adds a regression test. + + I think this should probably be backported to the gdb 13 branch. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29945 + +2022-12-28 GDB Administrator + + Automatic date update in version.in + +2022-12-27 H.J. Lu + + x86-64: Allocate input section memory if needed + When --no-keep-memory is used, the input section memory may not be cached. + Allocate input section memory for -z pack-relative-relocs if needed. + + bfd/ + + PR ld/29939 + * elfxx-x86.c (elf_x86_size_or_finish_relative_reloc): Allocate + input section memory if needed. + + ld/ + + PR ld/29939 + * testsuite/ld-elf/dt-relr-2i.d: New test. + +2022-12-27 Christoph M=C3=BCllner + + RISC-V: Fix T-Head Fmv vendor extension encoding + A recent change in the XTheadFmv spec fixed an encoding bug in the + document. This patch changes the code to follow this bugfix. + + Spec patch can be found here: + https://github.com/T-head-Semi/thead-extension-spec/pull/11 + +2022-12-27 Tom Tromey + + Handle SIGSEGV in gdb selftests + The gdb.gdb self-tests were timing out for me, which turned out to be + PR testsuite/29325. Looking into it, the problem is that the version + of the Boehm GC that is used by Guile on my machine causes a SEGV + during stack probing. This unexpected stop confuses the tests and + causes repeated timeouts. + + This patch adapts the two failing tests. This makes them work for me, + and reduces the running time of gdb.gdb from 20 minutes to about 11 + seconds. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29325 + +2022-12-27 Mike Frysinger + + sim: build: clean up unused codegen logic + Now that all igen ports are in the top-level makefile, we don't need + this logic in any subdirs anymore, so clean it up. + + sim: mips: hoist "multi" igen rules up to common builds + Since these are the last mips igen rules, we can clean up a number of + bits in the local Makefile.in. + + sim: mips: hoist "m16" igen rules up to common builds + + sim: mips: hoist "single" igen rules up to common builds + + sim: mips: rename "igen" generation mode to "single" + The naming in here has grown organically and is confusing to follow. + Originally there was only one set of rules for generating code from + the igen sources, so calling it "tmp-igen" and such made sense. But + when other multigen modes were added ("m16" & "multi") which also + used igen, it's not clear what's common igen and what's specific to + this generation mode. So rename the set of rules from "igen" to + "single" so it's easier to follow. + + sim: mips: hoist itable igen rules up to common builds + Since this rule is pretty simple, hoist it up to the common build. + +2022-12-27 Mike Frysinger + + sim: mips: unify itable generation (a bit) + The m16 & multi targets generate itable once even when all the other + modules are generated multiple times. The default igen target will + generate itable with everything else out of convenience. This means + flags are passed which don't affect the generated itable there. + + We can unify the itable generation by making sure the right -F/-M + filter variables are passed down. Since there's already a dedicated + rule & variable in the multi build mode, generalize that and switch + the m16 & igen builds over too. + + I spent a lot of time staring at this code, building for diff mips + targets, and exploring all the shell code paths. I think this is + safe, but only time (and users) will really tell. + +2022-12-27 Mike Frysinger + + sim: mips: rename multi_flags to igen_itable_flags + This variable is only used to generate the itable files. In preparation + for merging the itable logic among all ports, rename "multi_flags" to a + more appropriate "igen_itable_flags" variable. There should be no real + chagnes here otherwise. + + sim: mips: drop unused micromips igen logic + This code appears to be unused since it was first merged. When + micromips was enabled, it was via the "MULTI" config, not the + "MICROMIPS" config, and the multi configs have sep vars. Since + nothing sets SIM_MIPS_GEN=3DMICROMIPS in the config, all of this + should be unreachable, so punt it to simplify. Further, the + SIM_MIPS_MICROMIPS16_FLAGS & SIM_MIPS_MICROMIPS_FLAGS settings + rely on sim_mips_micromips{,16}_{filter,machine} variables that + are never set in the configure script. + +2022-12-27 GDB Administrator + + Automatic date update in version.in + +2022-12-26 Tom Tromey + + Add initializers to comp_unit_head + PR symtab/29343 points out that it would be beneficial if + comp_unit_head had a constructor and used initializers. This patch + implements this. I'm unsure if this is sufficient to close the bug, + but at least it's a step. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D29343 + +2022-12-26 Alan Modra + + bfd/dwarf2.c: allow use of DWARF5 directory entry 0 + I think the test for table->files[file].dir being non-zero is wrong + for DWARF5 where index zero is allowed and is the current directory of + the compilation. Most times this will be covered by the use of + table->comp_dir (from DW_AT_comp_dir) in concat_filename but the point + of putting the current dir in .debug_line was so the section could + stand alone without .debug_info. + + Also, there is no need to check for table->dirs non-NULL, the + table->num_dirs test is sufficient. + + * dwarf2.c (concat_filename): Correct and simplify tests of + directory index. + +2022-12-26 Flavio Cruz + + Add support for x86_64-*-gnu-* targets to build x86_64 gnumach/hurd + +2022-12-26 GDB Administrator + + Automatic date update in version.in + +2022-12-25 Mike Frysinger + + sim: build: drop support for subdir distclean + All ports that need to clean things up at distclean time have moved + to the top-level build, so we can drop support for this hook. + + sim: mips: move distclean settings to common build + This was missed when mips/configure was merged into the top-level. + +2022-12-25 Indu Bhagat + + libsframe: write out SFrame FRE start address correctly + The following test was failing on ppc64 and s390x: + "FAIL: encode-1: Encode buffer match" + + The offending stub was how we memcpy the FRE start address to the buffer + (on-disk format). When the host is big-endian, the address of the + source buffer for the memcpy needs to point to the uint8_t/uint16_t sized + value of the FRE start addr, not uint32_t sized value; we intend to copy + out only the fre_start_addr_sz number of bytes. + + ChangeLog: + + * libsframe/sframe.c (sframe_encoder_write_fre_start_addr): New + function. + (sframe_encoder_write_fre): Use it instead of memcpy. + +2022-12-25 Mike Frysinger + + sim: smp: plumb igen flag down to all users + While mips has respected sim_igen_smp at configure time (which was + always empty since it defaulted smp to off), no other igen port did. + Move this to a makefile variable and plumb it through the common + IGEN_RUN variable instead so everyone gets it by default. We also + clean up some redundant -N0 setting with multirun mips. + + sim: smp: make option available again + At some point we want this to work, but it's not easy to test if + the configure option isn't available. Restore it, but keep the + default off. + + sim: cpu: change default init to handle all cpus + All the runtimes were only initializing a single CPU. When SMP is + enabled, things quickly crash as none of the other CPU structs are + setup. Change the default from 0 to the compile time value. + + sim: msp430: add basic SMP cpu init + There's no need to assert there's only 1 CPU when setting them all + up here is trivial. + + sim: m32r: fix iterator typo when setting up cpus + This code loops over available cpus with "c", but then looks up the + cpu with "i". Fix the typo so the code works correctly with smp. + + sim: v850: fix SMP compile + The igen tool sets up the SD & CPU defines for code fragments to use, + but v850 was expecting "sd". Change all the igen related code to use + SD so it actually compiles, and fix a few places to use "CPU" instead + of hardcoding cpu0. + + sim: or1k: fix iterator typo when setting up cpus + This code loops over available cpus with "c", but then looks up the + cpu with "i". Fix the typo so the code works correctly with smp. + + sim: mn10300: fix SMP compile + The igen tool sets up the SD define for code fragments to use, but + mn10300 was expecting "sd". Change all the igen related code to use + SD so it actually compiles. + + sim: cpu: fix SMP msg prefix helper + This code fails to compile when SMP is enabled due to some obvious + errors. Fix those and change the logic to avoid CPP to prevent any + future rot from creeping back in. + + sim: mips: clean up a bit after mips/configure removal + Now that there is no subdir configure script, we can clean up some + logic that was spread between the files. + + sim: mips: move igen settings to top-level configure + This is the last bit of logic that exists in the mips configure + script, so move it to the top-level configure to kill it off. + We still have to move the Makefile.in igen logic to local.mk, + but this is a required first step for that. + + sim: mips: namespace igen configure vars + To prepare moving this logic to the top-level configure, the vars + need to be namespaced. Do that here to make it easier to review. + Basically sim_xxx -> SIM_MIPS_XXX when a var is exported from the + configure script to the Makefile, and sim_xxx -> sim_mips_xxx when + the var is internal in the configure script. + + sim: mips: add igen recursive dep + Make sure the igen tool exists before trying to compile the mips + subdir. This happens to work when mips has a subconfigure, but + hits a race condition when that is removed. + + sim: mips: drop unused ENGINE_ISSUE_POSTFIX_HOOK + Nothing defines this, and it isn't called in all the engine runtimes, + so drop it entirely to avoid confusion. + + sim: igen: drop move-if-changed usage + Now that igen itself has this logic, drop these custom build rules + to greatly simplify. + + sim: igen: support in-place updates ourself + Every file that igen outputs is then processed with the move-if-changed + shell script. This creates a lot of boilerplate in the build and not an + insignificant amount of build-time overhead. Move the simple "is the file + changed" logic into igen itself. + + sim: igen: constify itable data structures + These are const data arrays of strings and numbers. We don't want + or need them to be writable, so mark them all const. + +2022-12-25 GDB Administrator + + Automatic date update in version.in + +2022-12-24 Andrew Burgess + + gdb/testsuite: fix buffer overflow in gdb.base/signed-builtin-types.exp + In commit: + + commit 9f50fe0835850645bd8ea9bb1efe1fe6c48dfb12 + Date: Wed Dec 7 15:55:25 2022 +0000 + + gdb/testsuite: new test for recent dwarf reader issue + + A new test (gdb.base/signed-builtin-types.exp) was added that made use + of 'info sources' to figure out if the debug information for a + particular object file had been fully expanded or not. Unfortunately + some lines of the 'info sources' output can be very long, this was + observed on some systems where the debug information for the + dynamic-linker was installed, in this case, the list of source files + associated with the dynamic linker was so long it would cause expect's + internal buffer to overflow. + + This commit switches from using 'info sources' to 'maint print + objfile', the output from the latter command is more compact, but + also, can be restricted to a single named object file. + + With this change in place I am no longer seeing buffer overflow errors + from expect when running gdb.base/signed-builtin-types.exp. + +2022-12-24 Mike Frysinger + + sim: or1k: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to the existing or1k-sim.h. + Unfortunately, we can't yet drop the or1k-sim.h include from sim-main.h + as many of the generated CGEN files refer only to sim-main.h. We'll + have to improve the CGEN interface before we can make more progress, + but this is at least a minor improvement. + +2022-12-24 GDB Administrator + + Automatic date update in version.in + +2022-12-23 Tom Tromey + + Use bool for dwarf2_has_info + This changes dwarf2_has_info to return bool. + +2022-12-23 Indu Bhagat + + libsframe: testsuite: fix memory leaks in testcases + ChangeLog: + + * libsframe/testsuite/libsframe.decode/be-flipping.c: Free + SFrame buffer. + * libsframe/testsuite/libsframe.decode/frecnt-1.c: Likewise. + * libsframe/testsuite/libsframe.decode/frecnt-2.c: Likewise. + +2022-12-23 Indu Bhagat + + libsframe: fix a memory leak in sframe_decode + sframe_decode () needs to malloc a temporary buffer of the same size as + the input buffer (containing the SFrame section bytes) when endian + flipping is needed. The decoder keeps the endian flipped contents in + this buffer for its usage. This code is necessary when the target + endianneess is not the same as host endianness. + + The malloc'd buffer needs to be kept track of, so that it can freed up in + sframe_decoder_free () later. + + ChangeLog: + + * libsframe/sframe-impl.h (struct sframe_decoder_ctx): Add new + member to keep track of the internally malloc'd buffer. + * libsframe/sframe.c (sframe_decoder_free): Free it up. + (sframe_decode): Update the reference to the buffer. + +2022-12-23 Simon Marchi + + gdb/testsuite: remove MPFR detection in gdb.base/float128.exp + I see this fail since commit 991180627851 ("Use toplevel configure for + GMP and MPFR for gdb"): + + FAIL: gdb.base/float128.exp: show configuration + + The test fails to find --with-mpfr or --without-mpfr in the "show + configuration" output. Since MPFR has become mandatory, we can just + remove that check and simplify the test to assume MPFR support is there. + + Change-Id: I4f3458470db0029705b390dfefed3a66dfc0633a + Approved-By: Tom de Vries + +2022-12-23 Mike Frysinger + + sim: m32r: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to the existing m32r-sim.h. + Unfortunately, we can't yet drop the m32r-sim.h include from sim-main.h + as many of the generated CGEN files refer only to sim-main.h. We'll + have to improve the CGEN interface before we can make more progress, + but this is at least a minor improvement. + + sim: bfin: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the bfin.h include and move the remaining + bfin-specific settings into it. + + sim: m68hc11: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: sh: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: mcore: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: h8300: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: pru: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the pru.h include and move the remaining + pru-specific settings into it. + +2022-12-23 Mike Frysinger + + sim: mn10300: standardize the arch-specific settings a little + Rename mn10300_sim.h to mn10300-sim.h to match other ports, and move most + of the arch-specific content out of sim-main.h to it. This isn't a big + win though as we still have to include the header in sim-main.h due to the + igen interface: it hardcodes including sim-main.h in its files. So until + we can fix that, we have to keep bleeding these settings into the common + codes. + + Also take the opportunity to purge a lot of unused headers from these. + The local modules should already include the right headers, so there's + no need to force everyone to pull them in. A lot of this is a hold over + from the pre-igen days of this port. + +2022-12-23 Mike Frysinger + + sim: microblaze: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: example-synacor: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + sim: moxie: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + +2022-12-23 Mike Frysinger + + sim: riscv: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + We can also move the machs.h include out since the model logic was all + generalized from compile-time to runtime last year. + +2022-12-23 Mike Frysinger + + sim: v850: standardize the arch-specific settings a little + Rename v850_sim.h to v850-sim.h to match other ports, and move most + of the arch-specific content out of sim-main.h to it. This isn't a + big win though as we still have to include the header in sim-main.h + due to the igen interface: it hardcodes including sim-main.h in its + files. So until we can fix that, we have to keep bleeding these + settings into the common codes. + +2022-12-23 Mike Frysinger + + sim: msp430: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the msp430-sim.h include and move it to + the few files that actually need it. + + While we're here, drop redundant includes from sim-main.h: + * sim-config.h & sim-types.h included by sim-basics.h already + * sim-engine.h included by sim-base.h already + And move sim-options.h to the one file that needs it. + +2022-12-23 Mike Frysinger + + sim: ft32: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the ft32-sim.h include and move it to + the few files that actually need it. + +2022-12-23 Mike Frysinger + + sim: d10v: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the d10v_sim.h include and move it to + the few files that actually need it. + + Also rename the file to standardize it a bit better with other ports. + +2022-12-23 Mike Frysinger + + sim: cr16: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so drop the cr16_sim.h include and move it to + the few files that actually need it. + + Also rename the file to standardize it a bit better with other ports. + +2022-12-23 Mike Frysinger + + sim: arm: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + The BIT override would be better in the place where it's redefined, so + move it to armdefs.h instead. + +2022-12-23 Mike Frysinger + + sim: aarch64: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + + While we're here, drop redundant includes from sim-main.h: + * sim-types.h is included by sim-base.h already + * sim-base.h is included twice + * sim-io.h is included by sim-base.h already + +2022-12-23 Mike Frysinger + + sim: avr: move arch-specific settings to internal header + There's no need for these settings to be in sim-main.h which is shared + with common/ sim code, so move it all out to a new header which only + this port will include. + +2022-12-23 Nick Clifton + + Fix illegal memory access parsing corrupt DWARF information. + PR 29936 + * dwarf2.c (concat_filename): Fix check for a directory index off + the end of the directory table. + +2022-12-23 Eli Zaretskii + + Fix MinGW build using mingw.org's MinGW + This allows to build GDB even though the default value of + _WIN32_WINNT is lower than the one needed to expose some + new APIs used here, and leave the test for their actual + support to run time. + * gdb/nat/windows-nat.c (EXTENDED_STARTUPINFO_PRESENT): Define if + not defined. + (create_process_wrapper): Use 'gdb_lpproc_thread_attribute_list' + instead of 'PPROC_THREAD_ATTRIBUTE_LIST' (which might not be defined + at compile time). This fixes compilation error using mingw.org's + MinGW. + +2022-12-23 Mark Harmstone + + ld: Write linker symbols in PDB + + ld: Copy other symbols into PDB file + + ld: Write globals stream in PDB + + ld: Parse LF_UDT_SRC_LINE records when creating PDB file + + ld: Write types into IPI stream of PDB + + ld: Write types into TPI stream of PDB + + ld: Write DEBUG_S_LINES entries in PDB file + + ld: Fix segfault in populate_publics_stream + + ld: Write DEBUG_S_FILECHKSMS entries in PDBs + + ld: Generate PDB string table + +2022-12-23 Alan Modra + + pdb build fixes + Enable compilation of ld/pdb.c just for x86, as is done for bfd/pdb.c. + This reduces the size of ld and is necessary with the following + patches that call a COFF-only bfd function from ld/pdb.c. Without it + we'd break every non-COFF target build. + +2022-12-23 Mike Frysinger + + sim: lm32/m32r: drop redundant opcode/cgen.h include + The xxx-desc.h header file already includes this, and it's how the + other cgen ports are getting it, so drop it from these two. + + sim: ppc: drop unused types from sim-main.h + The common sim headers should define these for us already, so there's + no need for the ppc header to set them up. + + sim: cgen: move symcat.h include to where it's used + Move this out of the global sim-main.h and to the few files that + actually use functions from it. Only the cgen ports were pulling + this, so this makes cgen & non-cgen behave more the same. + + sim: cgen: move cgen-types.h include to cgen-defs.h + The cgen-types.h header sets up types that are needed by cgen-defs.h, + so move the include out of sim-main.h and to that header. It might + be needed in other specific modules, but for now let's kick it out of + sim-main.h to make some progress. Things still build with just this. + +2022-12-23 Mike Frysinger + + Revert "sim: mn10300: drop unused sim-main.c" + This reverts commit 681a422b855e4b20086554b170dae051361f00c7. + + I missed that this was included via common/sim-inline.c. I thought + I had grepped the top of the tree, but I must have only done mn10300. + + Add a comment to make it clear where/how this file is used. + +2022-12-23 Mike Frysinger + + sim: mn10300: drop unused sim-main.c + Nothing compiles or references this, so punt it. + + sim: endian: move bfd.h from header to source + The bfd APIs are used only by sim-n-endian.h which is only included by + sim-endian.c, so move the bfd.h include there and out of sim-endian.h + which is included by many other modules. + +2022-12-23 Mike Frysinger + + sim: move bfd.h include out of sim-main.h + Not all arches include this in sim-main.h, and the ones that do don't + actually use bfd defines in the sim-main.h header. Prune it to make + sim-main.h simpler so we can kill it off entirely in the future. + + We add the include to the files that utilize e.g. bfd_vma though. + +2022-12-23 Mike Frysinger + + sim: mcore: replace custom "word" type with int32_t + This is a 32-bit architecture with 32-bit registers, so replace the + custom "word" long int typedef with an explicit int32_t. This is + a correctness fix since long will be 64-bits on most 64-bit hosts. + + sim: moxie: replace custom "word" type with int32_t + This is a 32-bit architecture with 32-bit registers, so replace the + custom "word" int typedef with an explicit int32_t. Practically + speaking, this produces the same code, but it should hopefully make + it easier to merge common code in the future. + + sim: cr16/d10v/mcore/moxie: clean up unused word & uword types + Nothing actually uses these, so punt them. Some of the ports are + using local "word" types, but we'll clean those up in a follow up. + + sim: mips: trim redundant igen settings + These variables are setting the same value as the defaults. Trim + this redundant logic to make it easier to see the real differences + so we can try to keep unifying cases. + + sim: mips: merge mips64* with existing multi-run build + Change the default (unhandled) mips64* targets to use the existing + mips64 multi-run build. It already handles the formats, we just + have to list the mips8000 bfd for it. + + sim: mips: merge mips64vr5000 with existing multi-run build + The existing mips64vr-* multi-run build already handles mips5000 + targets, so reuse that for mips64vr5* targets too. This moves + more logic from build-time to runtime so we can have a single + binary that supports many targets. + +2022-12-23 Nelson Chu + + RISC-V: Relax the order checking for the architecture string + * riscv-toolchain-conventions, + PR, https://github.com/riscv-non-isa/riscv-toolchain-conventions/pull/14 + Issue, https://github.com/riscv-non-isa/riscv-toolchain-conventions/issue= s/11 + + * Refer to the commit afc41ffb, + RISC-V: Reorder the prefixed extensions which are out of order. + + In the past we only allow to reorder the prefixed extensions. But accord= ing + to the PR 14 in the riscv-toolchain-convention, we can also relax the ord= er + checking to allow the whole extensions be written out of orders, including + the single standard extensions and the prefixed multi-letter extensions. + Just that we still need to follow the following rules as usual, + + 1. prefixed extensions need to be seperated with `_'. + 2. prefixed extensions need complete . version if set. + + Please see the details in the march-ok-reorder gas testcase. + + Passed the riscv-gnu-toolchain regressions. + + bfd/ + * elfxx-riscv.c (enum riscv_prefix_ext_class): Changed RV_ISA_CLASS_U= NKNOWN + to RV_ISA_CLASS_SINGLE, since everything that does not belong to the + multi-keyword will possible be a single extension for the current par= ser. + (parse_config): Likewise. + (riscv_get_prefix_class): Likewise. + (riscv_compare_subsets): Likewise. + (riscv_parse_std_ext): Removed, and merged with riscv_parse_prefixed_= ext + into riscv_parse_extensions. + (riscv_parse_prefixed_ext): Likewise. + (riscv_parse_subset): Only need to call riscv_parse_extensions to par= se + both single standard and prefixed extensions. + gas/ + * testsuite/gas/riscv/march-fail-order-std.d: Removed since the relax= ed + order checking. + * testsuite/gas/riscv/march-fail-order-std.l: Likewise. + * testsuite/gas/riscv/march-fail-order-x-std.d: Likewise. + * testsuite/gas/riscv/march-fail-order-z-std.d: Likewise. + * testsuite/gas/riscv/march-fail-order-zx-std.l: Likewise. + * testsuite/gas/riscv/march-fail-unknown-std.l: Updated. + * testsuite/gas/riscv/march-ok-reorder.d: New testcase. + +2022-12-23 Mike Frysinger + + sim: drop unused SIM_ADDR type [PR sim/7504] + Now that sim APIs either use 64-bit addresses all the time, or more + appropriate target-specific types, drop this now-unused 32-bit-only + address type. + + Bug: https://sourceware.org/PR7504 + +2022-12-23 Mike Frysinger + + sim: mips: switch from SIM_ADDR to address_word + The latter type matches the address size configured for this sim. + + Also take the opportunity to simplify printf logic by leveraging + PRI* macros. + +2022-12-23 Mike Frysinger + + sim: v850: switch from SIM_ADDR to address_word + The latter type matches the address size configured for this sim. + +2022-12-23 Mike Frysinger + + sim: switch sim_{read,write} APIs to 64-bit all the time [PR sim/7504] + We've been using SIM_ADDR which has always been 32-bit. This means + the upper 32-bit address range in 64-bit sims is inaccessible. Use + 64-bit addresses all the time since we want the APIs to be stable + regardless of the active arch backend (which can be 32 or 64-bit). + + The length is also 64-bit because it's completely feasible to have + a program that is larger than 4 GiB in size/image/runtime. Forcing + the caller to manually chunk those accesses up into 4 GiB at a time + doesn't seem useful to anyone. + + Bug: https://sourceware.org/PR7504 + +2022-12-23 Mike Frysinger + + sim: use bfd_vma when reading start addr from bfd info + Since SIM_ADDR is always 32-bit, it might truncate the address with + 64-bit ELFs. Since we load that addr from the bfd, use the bfd_vma + type which matches the bfd_get_start_address API. + + sim: m32r: include sim-hw.h for sim_hw_parse + +2022-12-23 Alan Modra + + COFF build-id writes uninitialised data to file + 1) The first write in write_build_id wrote rubbish past the struct + external_IMAGE_DEBUG_DIRECTORY, which was later overwritten with + correct data. No user visible problem there, except that tools like + valgrind complain. + 2) The size for the pdb name was incorrectly calculated. + + * emultempl/pe.em (write_build_id): Write the debug directory, + not the entire section contents. + (setup_build_id): Add size for the base name of pdb_name, not + the full path. + * emultempl/pep.em: Likewise. + * testsuite/ld-pe/pdb2-section-contrib.d: Update. + +2022-12-23 Mike Frysinger + + sim: mips: merge mips64vr4300 with existing multi-run build + The existing mips64vr-* multi-run build already handles mips4300 + targets, so reuse that for mips64vr43* targets too. This moves + more logic from build-time to runtime so we can have a single + binary that supports many targets. + +2022-12-23 GDB Administrator + + Automatic date update in version.in + +2022-12-22 Indu Bhagat + + sframe: doc: update documentation for pauth key in SFrame FDE + ChangeLog: + + * libsframe/doc/sframe-spec.texi + +2022-12-22 Indu Bhagat + + gas: sframe: testsuite: add testcase for .cfi_b_key_frame + This is actually a composite test that checks SFrame unwind information + generation for both the .cfi_negate_ra_state and .cfi_b_key_frame + directives on aarch64. + + ChangeLog: + + * testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d: + New test. + * testsuite/gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.s: + Likewise. + * testsuite/gas/cfi-sframe/cfi-sframe.exp: Run new test. + +2022-12-22 Indu Bhagat + + objdump/readelf: sframe: emit marker for SFrame FDE with B key + ChangeLog: + + * libsframe/sframe-dump.c (is_sframe_abi_arch_aarch64): New + definition. + (dump_sframe_func_with_fres): Emit a string if B key is used. + +2022-12-22 Indu Bhagat + + gas: sframe: add support for .cfi_b_key_frame + Gather the information from the DWARF FDE on whether frame's return + addresses are signed using the B key or A key. Reflect the information in + the SFrame counterpart data structure, the SFrame FDE. + + ChangeLog: + + * gas/gen-sframe.c (get_dw_fde_pauth_b_key_p): New definition. + (sframe_v1_set_func_info): Add new argument for pauth_key. + (sframe_set_func_info): Likewise. + (output_sframe_funcdesc): Likewise. + * gas/gen-sframe.h (struct sframe_version_ops): Add new argument + to the function pointer declaration. + * gas/sframe-opt.c (sframe_convert_frag): Handle pauth_key. + +2022-12-22 Indu Bhagat + + sframe.h: add support for .cfi_b_key_frame + ARM 8.3 provides five separate keys that can be used to authenticate + pointers. There are two key for executable (instruction) pointers. The + enum pointer_auth_key in gas/config/tc-aarch64.h currently holds two keys: + enum pointer_auth_key { + AARCH64_PAUTH_KEY_A, + AARCH64_PAUTH_KEY_B + }; + + Analogous to the above, in SFrame format V1, a bit is reserved in the SFr= ame + FDE to indicate which key is used for signing the frame's return addresse= s: + - SFRAME_AARCH64_PAUTH_KEY_A has a value of 0 + - SFRAME_AARCH64_PAUTH_KEY_B has a value of 1 + + Note that the information in this bit will always be used along with the + mangled_ra_p bit, the latter indicates whether the return addresses are + mangled/contain PAC auth bits. + + include/ChangeLog: + + * sframe.h (SFRAME_AARCH64_PAUTH_KEY_A): New definition. + (SFRAME_AARCH64_PAUTH_KEY_B): Likewise. + (SFRAME_V1_FUNC_INFO): Adjust to accommodate pauth_key. + (SFRAME_V1_FUNC_PAUTH_KEY): New macro. + (SFRAME_V1_FUNC_INFO_UPDATE_PAUTH_KEY): Likewise. + +2022-12-22 Jan Beulich + + gas: re-arrange listing output for .irp and alike + It is kind of odd to have the expansions of such constructs ahead of + their definition in listings with macro expansion enabled. Adjust this + by pulling ahead the output of the definition lines, taking care to + avoid producing a listing line for (non-existing) line 0 when the source + is stdin. + + Note that with the code movement the conditional operator isn't + necessary anymore - list->line now match up. + +2022-12-22 Jan Beulich + + x86: correct/improve TSX controls + TSXLDTRK takes RTM as a prereq. Additionally introduce an umbrella "tsx" + extension option covering both RTM and HLE, paralleling the "abm" one we + already have. + +2022-12-22 Jan Beulich + + x86: add dependencies on SVME + SEV-ES is an extension to SVME. SNP in turn is an extension to SEV-ES, + and yet in turn RMPQUERY is a SNP extension. + + Note that cpu_arch[] has no SNP entry, so CPU_ANY_SNP_FLAGS remains + unused (just like CPU_SNP_FLAGS already is). + +2022-12-22 Jan Beulich + + x86: add dependencies on VMX + Both EPT and VMFUNC are extensions to VMX. + +2022-12-22 Jan Beulich + + x86: correct XSAVE* dependencies + Like various other features AMX-TILE takes XSAVE as a prereq. + + XSAVES, unconditionally using compacted format, in turn effectively + takes XSAVEC as a prereq (an SDM clarification to this effect is in the + works). + +2022-12-22 Jan Beulich + + x86: correct dependencies of a few AVX512 sub-features + Like AVX512-FP16, several other extensions require wider than 16-bit + mask registers. As a result they take AVX512BW as a prereq, not (just) + AVX512F. Which in turn points out wrong expectations in the noavx512-1 + testcase. + + x86: rework noavx512-1 testcase + So far the set of ".noavx512*" has been accumulating, which isn't ideal. + In particular this hides issues with dependencies between features. + Switch back to the default ISA before disabling a particular subset. + Furthermore limit redundancy by wrapping the repeated block of insns in + an .irp. + + x86: add dependencies on AVX2 + Like AVX-VNNI both VAES and VPCLMUL take AVX2 as a prereq, for operating + on up to 256-bit packed integer vectors. + + x86: correct SSE dependencies + SSE itself takes FXSR as a prereq. Like AES, PCLMUL, and SHA both GFNI + and KL take SSE2 as a prereq, for operating on packed integers. And + while correcting KL also record it as a prereq to WIDEKL. + +2022-12-22 Jan Beulich + + x86: correct what gets disabled by certain ".arch .no*" + Features with prereqs as well as features with dependents cannot re-use + CPU_*_MASK for the 3rd argument of SUBARCH() - they need to use + CPU_ANY_*_MASK in order to avoid disabling too many (when there are + prereqs) and/or too few (when there are dependents) features. + + Generally any CPU_ANY_*_MASK which exist should not remain unused. + Exceptions are + - FISTTP which has no corresponding entry in cpu_arch[], + - IAMCU which is a base architecture and hence uses ARCH(), not + SUBARCH() (only extensions can be disabled, but unlike for Cpu*86 it + would be a little more clumsy to suppress generating of the #define). + +2022-12-22 Jan Beulich + + x86: re-work ISA extension dependency handling + Getting both forward and reverse ISA dependencies right / consistent has + been a permanent source of mistakes. Reduce what needs specifying + manually to just the direct forward dependencies. Transitive forward + dependencies as well as reverse ones are now derived and hence cannot go + out of sync anymore (at least in the vast majority of cases; there are a + few special cases to still take care of manually). In the course of this + several CPU_ANY_*_FLAGS disappear, requiring adjustment to the + assembler's cpu_arch[]. + + Note that to retain the correct reverse dependency of AVX512F wrt + AVX512-VP2INTERSECT, the latter has the previously missing AVX512F + prereq added. + + Note further that to avoid adding the following undue prereqs: + * ATHLON, K8, and AMDFAM10 gain CMOV and FXSR, + * IAMCU gains 387, + auxiliary table entries (including a colon-separated modifier) are + introduced in addition to the ones representing from converting the old + table. + + To maintain forward-only dependencies between AVX (XOP) and SSE* (SSE4a) + (i.e. "nosse" not disabling AVX), reverse dependency tracking is + artifically suppressed. + + As a side effect disabling of SSE or SSE2 will now also disable AES, + PCLMUL, and SHA (respective elements were missing from + CPU_ANY_SSE2_FLAGS). + +2022-12-22 Mike Frysinger + + sim: mips: match target on cpu settings + We don't need to enforce larger target settings when the only thing + the sim should care about is the CPU target. So reduce most of the + target matches to only check the CPU. + + sim: mips: move fpu bitsize defines to top-level configure + This drops support for the --enable-sim-float configure option, + but it's not clear anyone ever actually used that. Eventually + we'll want this to be a runtime option anyways. + + sim: mips: move bitsize defines to top-level configure + Since the msb value is always defined as the wordsize-1, stop + hardcoding that value directly, and use a CPP value instead. + + sim: mips: move subtarget defines to top-level configure + We want to kill off mips/configure entirely. Move this small part + out now to get started. + + sim: mips: always resolve active bfd mach dynamically + Don't assume that the default bfd that we configured for is the one + that is always active when running a program. We already have access + to the real runtime value, so use it directly. This simplifies the + code quite a bit, and will make it easier to support multiple mach's + in a single binary. + + sim: hw-config.h: move generation to top-level + In order to compile arch objects from the top-level, we need to + generate the hw-config.h header, so move that logic up to the top + level first. + + sim: build: hoist lists of hw devices up + We need these in the top-level to generate libsim.a, but also in the + subdirs to generate hw-config.h. Move it to the local.mk, and pass + it down when running recursive make. This avoids duplication, and + makes it available to both. We can simplify this once we move the + various steps up to the top-level too. + + sim: build: hoist lists of common objects up + In order to create libsim.a in the common dir, we need the list of + objects for each target. To avoid duplicating the list with the + recursive make in each port, pass it down as a variable. This is + a temporary hack until the top-level creates libsim.a for ports. + +2022-12-22 GDB Administrator + + Automatic date update in version.in + +2022-12-21 Alan Modra + + PR29925, Memory leak in find_abstract_instance + The testcase in the PR had a variable with both DW_AT_decl_file and + DW_AT_specification, where the DW_AT_specification also specified + DW_AT_decl_file. This leads to a memory leak as the file name is + malloced and duplicates are not expected. + + I've also changed find_abstract_instance to not use a temp for "name", + because that can result in a change in behaviour from the usual last + of duplicate attributes wins. + + PR 29925 + * dwarf2.c (find_abstract_instance): Delete "name" variable. + Free *filename_ptr before assigning new file name. + (scan_unit_for_symbols): Similarly free func->file and + var->file before assigning. + +2022-12-21 Andrew Pinski + + Fix compiling of top.c + When I moved my last patch forward, somehow I missed removing + the #endif for the HAVE_LIBMPFR case. + + Committed as obvious after a quick build. + + gdb/ChangeLog: + * top.c: Remove the extra #endif which was missed. + +2022-12-21 Andrew Pinski + + Use toplevel configure for GMP and MPFR for gdb + This patch uses the toplevel configure parts for GMP/MPFR for + gdb. The only thing is that gdb now requires MPFR for building. + Before it was a recommended but not required library. + Also this allows building of GMP and MPFR with the toplevel + directory just like how it is done for GCC. + We now error out in the toplevel configure of the version + of GMP and MPFR that is wrong. + + OK after GDB 13 branches? Build gdb 3 ways: + with GMP and MPFR in the toplevel (static library used at that point for = both) + With only MPFR in the toplevel (GMP distro library used and MPFR built fr= om source) + With neither GMP and MPFR in the toplevel (distro libraries used) + + Changes from v1: + * Updated gdb/README and gdb/doc/gdb.texinfo. + * Regenerated using unmodified autoconf-2.69 + + Thanks, + Andrew Pinski + + ChangeLog: + * Makefile.def: Add configure-gdb dependencies + on all-gmp and all-mpfr. + * configure.ac: Split out MPC checking from MPFR. + Require GMP and MPFR if the gdb directory exist. + * Makefile.in: Regenerate. + * configure: Regenerate. + + gdb/ChangeLog: + + PR bug/28500 + * configure.ac: Remove AC_LIB_HAVE_LINKFLAGS + for gmp and mpfr. + Use GMPLIBS and GMPINC which is provided by the + toplevel configure. + * Makefile.in (LIBGMP, LIBMPFR): Remove. + (GMPLIBS, GMPINC): Add definition. + (INTERNAL_CFLAGS_BASE): Add GMPINC. + (CLIBS): Exchange LIBMPFR and LIBGMP + for GMPLIBS. + * target-float.c: Make the code conditional on + HAVE_LIBMPFR unconditional. + * top.c: Remove code checking HAVE_LIBMPFR. + * configure: Regenerate. + * config.in: Regenerate. + * README: Update GMP/MPFR section of the config + options. + * doc/gdb.texinfo: Likewise. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D28500 + +2022-12-21 Bruno Larsen + + gdb/c++: validate 'using' directives based on the current line + When asking GDB to print a variable from an imported namespace, we only + want to see variables imported in lines that the inferior has already + gone through, as is being tested last in gdb.cp/nsusing.exp. However + with the proposed change to gdb.cp/nsusing.exp, we get the following + failures: + + (gdb) PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop + print x + $9 =3D 911 + (gdb) FAIL: gdb.cp/nsusing.exp: print x, before using statement + next + 15 y +=3D x; + (gdb) PASS: gdb.cp/nsusing.exp: using namespace M + print x + $10 =3D 911 + (gdb) PASS: gdb.cp/nsusing.exp: print x, only using M + + Showing that the feature wasn't functioning properly, it just so + happened that gcc ordered the namespaces in a convenient way. + This happens because GDB doesn't take into account the line where the + "using namespace" directive is written. So long as it shows up in the + current scope, we assume it is valid. + + To fix this, add a new member to struct using_direct, that stores the + line where the directive was written, and a new function that informs if + the using directive is valid already. + + Unfortunately, due to a GCC bug, the failure still shows up. Compilers + that set the declaration line of the using directive correctly (such as + Clang) do not show such a bug, so the test includes an XFAIL for gcc + code. + + Finally, because the final test of gdb.cp/nsusing.exp has turned into + multiple that all would need XFAILs for older GCCs (<=3D 4.3), and that + GCC is very old, if it is detected, the test just exits early. + + Approved-by: Tom Tromey + +2022-12-21 Nick Clifton + + Updated Romanian translation for the BFD sub-directory. + + Fix an attempt to allocate an unreasonably large amount of memory when pa= rsing a corrupt ELF file. + PR 29924 + * objdump.c (load_specific_debug_section): Check for excessively + large sections. + + Keep the .drectve section when performing a relocateable link. + PR 29900 + * scripttempl/pe.sc: Keep the .drectve section when performing a + relocateable link. + * scripttempl/pep.sc: Likewise. + +2022-12-21 Jan Beulich + + x86: rename CheckRegSize to CheckOperandSize + While originally indeed used for register size checking only, the + attribute has been used for memory operand size checking as well already + for quite a while, with more such uses recently having been added. + + gprofng/testsuite: restrict testing to native configurations + The binaries involved in testing gprofng are native ones, and hence a + cross build of binutils won't really test intended functionality. Since + this testing takes quite a bit of time (typically more than running all + of binutils, gas, and ld testsuites together), restrict the testing to + native configurations only. + +2022-12-21 Alan Modra + + enable-non-contiguous-regions warnings + The warning about discarded sections in elf_link_input_bfd doesn't + belong there since the code is dealing with symbols. Multiple symbols + in a discarded section will result in multiple identical warnings + about the section. Move the warning to a new function in ldlang.c. + + The patch also tidies the warning quoting of section and file names, + consistently using `%pA' and `%pB'. I'm no stickler for one style of + section and file name quoting, but they ought to be consistent within + a warning, eg. see the first one fixed in ldlang.c, and when a warning + is emitted for multiple targets they all ought to use exactly the same + format string to reduce translation work. elf64-ppc.c loses the + build_one_stub errors since we won't get there before hitting the + fatal errors in size_one_stub. + + bfd/ + * elflink.c (elf_link_input_bfd): Don't warn here about + discarded sections. + * elf32-arm.c (arm_build_one_stub): Use consistent style in + --enable-non-contiguous-regions error. + * elf32-csky.c (csky_build_one_stub): Likewise. + * elf32-hppa.c (hppa_build_one_stub): Likewise. + * elf32-m68hc11.c (m68hc11_elf_build_one_stub): Likewise. + * elf32-m68hc12.c (m68hc12_elf_build_one_stub): Likewise. + * elf32-metag.c (metag_build_one_stub): Likewise. + * elf32-nios2.c (nios2_build_one_stub): Likewise. + * elfnn-aarch64.c (aarch64_build_one_stub): Likewise. + * xcofflink.c (xcoff_build_one_stub): Likewise. + * elf64-ppc.c (ppc_size_one_stub): Likewise. + (ppc_build_one_stub): Delete dead code. + ld/ + * ldlang.c (lang_add_section): Use consistent style in + --enable-non-contiguous-regions warnings. + (size_input_section): Likewise. + (warn_non_contiguous_discards): New function. + (lang_process): Call it. + * testsuite/ld-arm/non-contiguous-arm.d: Update. + * testsuite/ld-arm/non-contiguous-arm4.d: Update. + * testsuite/ld-arm/non-contiguous-arm7.d: Add + --enable-non-contiguous-regions-warnings. + * testsuite/ld-arm/non-contiguous-arm7.err: New. + * testsuite/ld-powerpc/non-contiguous-powerpc.d: Update. + * testsuite/ld-powerpc/non-contiguous-powerpc64.d: Update. + +2022-12-21 Alan Modra + + PR29922, SHT_NOBITS section avoids section size sanity check + PR 29922 + * dwarf2.c (find_debug_info): Ignore sections without + SEC_HAS_CONTENTS. + +2022-12-21 Mike Frysinger + + sim: fully merge sim_cpu_base into sim_cpu + Now that all ports have migrated to the new framework, drop support + for the old sim_cpu_base layout. There's a lot of noise here, so + it's been split into a dedicated commit. + + sim: enable common sim_cpu usage everywhere + All ports should be migrated now. Drop the SIM_HAVE_COMMON_SIM_CPU + knob and require it be used everywhere now. + + sim: or1k: invert sim_cpu storage + The cpu.h change is in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: m32r: invert sim_cpu storage + The cpu*.h changes are in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: lm32: invert sim_cpu storage + The cpu.h change is in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: iq2000: invert sim_cpu storage + The cpu.h change is in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: frv: invert sim_cpu storage + The cpu.h change is in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: cris: invert sim_cpu storage + The cpu*.h changes are in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: bpf: invert sim_cpu storage + The cpu.h change is in generated cgen code, but that has been sent + upstream too, so the next regen should include it automatically. + + sim: cgen: prep for inverting sim_cpu storage + Some common cgen code changes to allow cgen ports to invert their + sim_cpu storage one-by-one. + + sim: riscv: invert sim_cpu storage + + sim: pru: invert sim_cpu storage + + sim: example-synacor: invert sim_cpu storage + + sim: h8300: invert sim_cpu storage + + sim: m68hc11: invert sim_cpu storage + + sim: mips: invert sim_cpu storage + + sim: v850: invert sim_cpu storage + + sim: mcore: invert sim_cpu storage + + sim: aarch64: invert sim_cpu storage + + sim: microblaze: invert sim_cpu storage + + sim: avr: invert sim_cpu storage + + sim: moxie: invert sim_cpu storage + + sim: msp430: invert sim_cpu storage + + sim: ft32: invert sim_cpu storage + + sim: bfin: invert sim_cpu storage + +2022-12-21 Mike Frysinger + + sim: sim_cpu: invert sim_cpu storage + Currently all ports have to declare sim_cpu themselves in their + sim-main.h and then embed the common sim_cpu_base in it. This + dynamic makes it impossible to share common object code among + multiple ports because the core data structure is always different. + + Let's invert this relationship: common code declares sim_cpu, and + the port uses the new arch_data field for its per-cpu state. + + This is the first in a series of changes: it adds a define to select + between the old & new layouts, then converts all the ports that don't + need custom state over to the new layout. This includes mn10300 that, + while it defines custom fields in its cpu struct, never uses them. + +2022-12-21 Mike Frysinger + + sim: move register headers into sim/ namespace [PR sim/29869] + These headers define the register numbers for each port to implement + the sim_fetch_register & sim_store_register interfaces. While gdb + uses these, the APIs are part of the sim, not gdb. Move the headers + out of the gdb/ include namespace and into sim/ instead. + + sim: ppc: drop old dgen.c generator + The spreg.[ch] files live in the source tree now and are created + with the dgen.py script, so we don't need this old tool anymore. + +2022-12-21 Mike Frysinger + + sim: ppc: move spreg.[ch] files to the source tree + Simplify the build by moving the generation of these files from + build-time (via dgen.c that we have to compile & execute on the + build system) to maintainer/release mode (via spreg-gen.py that + we only ever execute when the spreg table actually changes). It + speeds up the build process and makes it easier for us to reason + about & review changes to the code generator. + + The tool is renamed from "dgen" because it's hardcoded to only + generated spreg files. It isn't a generalized tool for creating + lookup tables. + +2022-12-21 GDB Administrator + + Automatic date update in version.in + +2022-12-20 Hannes Domani + + Fix install-strip target + The libtool patch broke install-strip of gdb: + + /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/share/gdb/python/gdb + transformed_name=3D`t=3D's,y,y,'; \ + echo gdb | sed -e "$t"` ; \ + if test "x$transformed_name" =3D x; then \ + transformed_name=3Dgdb ; \ + else \ + true ; \ + fi ; \ + /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/bin ; \ + /bin/sh ./libtool --mode=3Dinstall STRIPPROG=3D'strip' /bin/sh /s= rc/gdb/gdb.git/install-sh -c -s \ + gdb \ + /src/gdb/inst/bin/$transformed_name ; \ + /bin/sh ../../gdb/../mkinstalldirs /src/gdb/inst/include/gdb ; \ + /usr/bin/install -c -m 644 jit-reader.h /src/gdb/inst/include/gdb= /jit-reader.h + libtool: install: `/src/gdb/inst/bin/gdb' is not a directory + libtool: install: Try `libtool --help --mode=3Dinstall' for more informat= ion. + + Since INSTALL_PROGRAM_ENV is no longer at the beginning of the command, t= he + gdb executable is not installed with install-strip. + +2022-12-20 Torbj=C3=B6rn SVENSSON + + bfd: Discard symbol regardless of warning flag + The discard of symbols should be performed whether the warning for + the discard is enabled or not. + Without this patch, ld would segfault in bfd_section_removed_from_list, + called in the if-statement right after this block, as the argument + isec->output_section can be NULL. + + Co-Authored-By: Yvan ROUX + +2022-12-20 Alan Modra + + PR29915, bfdio.c does not compile with mingw.org's MinGW + PR 29915 + * configure.ac: Add AC_CHECK_DECLS test ___lc_codepage_func. + * configure: Regenerate. + * config.in: Regenerate. + * bfdio.c (___lc_codepage_func): Move declaration to.. + (_bfd_real_fopen): ..here, and use !HAVE_DECL____LC_CODEPAGE_FUNC. + + Re: x86: remove i386-opc.c + Regen opcodes/po/POTFILES.in + +2022-12-20 Mike Frysinger + + sim: ppc: change spreg switch table generation to compile-time + Simplify the generator by always outputting the switch tables, and + leave the choice of whether to use them to the compiler via a -D + flag. + +2022-12-20 Mike Frysinger + + sim: dv-core: add hw_detach_address method [PR sim/25211] + The core device has an attach address method as the root of the tree + which calls out to the sim API. But it doesn't have a corresponding + detach method which means we just crash if anything tries to detach + itself from the core. In practice, the m68hc11 is the only model + that actually tries to detach itself on the fly, so no one noticed + earlier. + + With this in place, we can delete the existing detach code from the + m68hc11 model since it defaults to "passthru" callback which will in + turn call the dv-core detach, and they have the same behavior -- call + the sim core API to detach from the address space. + + Bug: https://sourceware.org/PR25211 + +2022-12-20 Vladimir Mezentsev + + gprofng: PR29646 Various warnings + gprofng/ChangeLog + 2022-12-19 Vladimir Mezentsev + + PR gprofng/29646 + * common/core_pcbe.c: Fix missingReturn warning. + * libcollector/iolib.c: Fix -Waddress warnings. + * src/Settings.cc: Likewise. + * src/checks.cc: Likewise. + * libcollector/linetrace.c: Likewise. + * libcollector/iotrace.c: Fix va_end_missing error. + * libcollector/libcol_util.c: Fix uninitvar warning. + * src/Command.cc: Fix arrayIndexOutOfBounds error. + * src/Function.cc: Fix uninitStructMember warning. + * src/ipc.cc: Fix -Wwrite-strings warnings. + +2022-12-20 GDB Administrator + + Automatic date update in version.in + +2022-12-19 Tom Tromey + + Avoid compiler warning in dwarf-do-refresh + The Emacs 28 compiler warns about dwarf-mode.el: + + Warning (comp): dwarf-mode.el:180:32: Warning: Unused lexical argument `i= gnore' + + This is easily fixed by prepending "_" to the parameter's name. + + binutils/ChangeLog + 2022-12-19 Tom Tromey + + * dwarf-mode.el (dwarf-do-refresh): Avoid compiler warning. + +2022-12-19 Tom Tromey + + Use bool in bpstat + This changes bpstat to use 'bool' rather than 'char', and updates the + uses. + + Use bool constants for value_print_options + This changes the uses of value_print_options to use 'true' and 'false' + rather than integers. + + Remove quick_symbol_functions::relocated + quick_symbol_functions::relocated is only needed for psymtabs, and + there it is only needed for Rust. However, because we've switched the + DWARF reader away from psymtabs, this means there's no longer a need + for this method at all. + +2022-12-19 Tom Tromey + + Remove MI version 1 + MI version 1 is long since obsolete. Several years ago, I filed + PR mi/23170 for this. I think it's finally time to remove this. + Any users of MI 1 can and should upgrade to a newer version. + + Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=3D23170 + +2022-12-19 Tom Tromey + + Remove vestiges of MI version 0 + I found a few vestiges of MI version 0 in the test suite. This patch + removes them. + +2022-12-19 Alan Modra + + Tidy PR29893 and PR29908 fix + PR 29893 + PR 29908 + * dwarf.c (display_debug_addr): Combine dwarf5 unit_length checks. + Delete dead code. + +2022-12-19 Jan Vrany + + gdb: fix command lookup in execute_command () + Commit b5661ff2 ("gdb: fix possible use-after-free when + executing commands") used lookup_cmd_exact () to lookup + command again after its execution to avoid possible + use-after-free error. + + However this change broke test gdb.base/define.exp which + defines a post-hook for subcommand ("target testsuite"). + In this case, lookup_cmd_exact () returned NULL because + there's no command 'testsuite' in top-level commands. + + This commit fixes this case by looking up the command again + using the original command line via lookup_cmd (). + + Approved-By: Simon Marchi + +2022-12-19 Nick Clifton + + Fix potential illegal memory accesses when parsing corrupt DWARF data. + PR 29914 + * dwarf.c (fetch_indexed_value): Fail if the section is not big + enough to contain a header size field. + (display_debug_addr): Fail if the computed address size is too big + or too small. + + New Romainian translation for the GOLD subdirectory. + +2022-12-19 Jan Beulich + + gprofng/testsuite: skip Java test without JDK + There's no point in even trying the Java test when gprofng was built + without Java support, and when the building of the constituents of the + testcase also would fail. On such systems this converts the respective + tests from "unresolved" to "unsupported", making the overall testsuite + run no longer report failure just because of this. + + gprofng/testsuite: eliminate bogus casts + Casting pointers to unsigned int is generally problematic and hence + compilers tend to warn about such. While here they're used only in + fprintf(), it still seems better to omit such casts, even if only to + avoid setting bad precedents. + + gprofng/testsuite: correct line continuation in endcases.c + A backslash used to indicate line continuation (in a macro definition + here) is not supposed to be followed by blanks or other white space; the + end-of-line indicator is to follow immediately. + + gprofng/testsuite: correct names for signal handling tests + The signal handling tests spend most of their time in the signal + handlers, and hence for profile output to match anything in program + output, the respective name fields need to hold the handler function + names. This converts both respective tests from "unresolved" to actually + succeeding. + + gprofng/testsuite: adjust linking of synprog + In order for so_syn.so and so_syx.so to be able to access the main + program's "testtime" variable, that variable needs exposing in the + dynamic symbol table. Since this is a test program only, do it the brute + force way and simply expose all global symbols. + + Arm: break gas dependency on libopcodes + gas doesn't use anything from libopcodes (anymore?) - suppress linking + in that library. + + x86: omit Cpu prefixes from opcode table + These enumerators can be used in only one specific field, and hence the + Cpu prefix isn't needed ther for disambiguation / name space separation. + +2022-12-19 GDB Administrator + + Automatic date update in version.in + +2022-12-18 Alan Modra + + Comment bfd_get_section_limit_octets and bfd_get_section_alloc_size + * bfd.c (bfd_get_section_limit_octets): Add comment. + (bfd_get_section_alloc_size): Likewise. + * libbfd.c (_bfd_generic_get_section_contents): Use + bfd_get_section_limit_octets. + * section.c (bfd_get_section_contents): Likewise. + * bfd-in2.h: Regenerate. + +2022-12-18 Alan Modra + + ld bootstrap test in build dir with path containing symlinks + This allows the bootstrap test to run if you have a symlink somewhere + in the build path directory. $ld depends on $base_dir which is set + via tcl [pwd], collapsing the symlink like /usr/bin/pwd, while $objdir + contains the symlink. + + * testsuite/ld-bootstrap/bootstrap.exp: Normalize paths when + checking for ld build directory. + +2022-12-18 Joel Brobecker + + Update gdb/NEWS after GDB 13 branch creation. + This commit a new section for the next release branch, and renames + the section of the current branch, now that it has been cut. + +2022-12-18 Joel Brobecker + + Bump version to 14.0.50.DATE-git. + Now that the GDB 13 branch has been created, + this commit bumps the version number in gdb/version.in to + 14.0.50.DATE-git + + For the record, the GDB 13 branch was created + from commit 71c90666e601c511a5f495827ca9ba545e4cb463. + + Also, as a result of the version bump, the following changes + have been made in gdb/testsuite: + + * gdb.base/default.exp: Change $_gdb_major to 14. + +2022-12-18 GDB Administrator + + Automatic date update in version.in + +2022-12-17 Alan Modra + + bfd_get_relocated_section_contents allow NULL data buffer + This patch removes the bfd_malloc in default_indirect_link_order and + bfd_simple_get_relocated_section_contents, pushing the allocation down + to bfd_get_relocated_section_contents. The idea is to make use of the + allocation done with sanity checking in bfd_get_full_section_contents, + which is called by bfd_generic_get_relocated_section_contents. + + Doing this exposed a bug in bfd_get_full_section_contents. With + relaxation it is possible that an input section rawsize is different + to the section size. In that case we want to use the larger of + rawsize (the on-disk size for input sections) and size. + + * reloc.c (bfd_generic_get_relocated_section_contents), + * reloc16.c (bfd_coff_reloc16_get_relocated_section_contents), + * coff-alpha.c (alpha_ecoff_get_relocated_section_contents), + * coff-sh.c (sh_coff_get_relocated_section_contents), + * elf-m10200.c (mn10200_elf_get_relocated_section_contents), + * elf-m10300.c (mn10300_elf_get_relocated_section_contents), + * elf32-avr.c (elf32_avr_get_relocated_section_contents), + * elf32-cr16.c (elf32_cr16_get_relocated_section_contents), + * elf32-crx.c (elf32_crx_get_relocated_section_contents), + * elf32-h8300.c (elf32_h8_get_relocated_section_contents), + * elf32-nds32.c (nds32_elf_get_relocated_section_contents), + * elf32-sh.c (sh_elf_get_relocated_section_contents), + * elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): + Handle NULL data buffer. + * bfd.c (bfd_get_section_alloc_size): New function. + * bfd-in2.h: Regenerate. + * compress.c (bfd_get_full_section_contents): Correct section + malloc size. + * linker.c (default_indirect_link_order): Don't malloc memory + here before calling bfd_get_relocated_section_contents. + * simple.c (bfd_simple_get_relocated_section_contents): Likewise. + +2022-12-17 Alan Modra + + asan: elf.c:12621:18: applying zero offset to null pointer + That's this line in elf_parse_notes: + while (p < buf + size) + + * elf.c (_bfd_elf_make_section_from_shdr): Don't call + elf_parse_notes when sh_size is zero. + +2022-12-17 Alan Modra + + Re: The problem with warning in elf_object_p + Commit 5aa0f10c424e added a per_xvec_warn array to provide [...] [diff truncated at 100000 bytes]