On Wed, 15 Mar 2023 at 09:51, Luis Machado <luis.mach...@arm.com> wrote: > On 3/13/23 11:44, Luis Machado wrote: > > On 3/13/23 11:22, Peter Maydell via Gdb wrote: > >> Luis and I came up with two options: > >> > >> (1) leave QEMU outputting the pauth xml as-is, and tell people > >> whose gdb 12 crashes that they should upgrade to a newer gdb > >> > >> (2) make QEMU output the pauth info under a different XML namespace, > >> and tell people who need backtraces when pauth is enabled > >> that they should upgrade to a newer gdb > >> > >> Neither of these feel great, but on balance I guess 2 is better? > >> > >> Luis: I think that rather than doing (2) with a QEMU namespace, > >> we should define a gdb namespace for this. That makes it clear > >> that this is still a gdb-upstream-sanctioned way of exposing > >> the pauth registers. > > > > That should be fine as well, and would work to side-step the gdb 12 bug so > > it doesn't crash. > > > > We could name the feature "org.gnu.gdb.aarch64.pauth_v2" or somesuch, and > > slowly stop using the original > > "org.gnu.gdb.aarch64.pauth" feature. I can document the requirements for a > > compliant pauth_v2. > > > > FYI, I've pushed a better documentation for the arm/aarch64 xml > > descriptions here: > > > > https://sourceware.org/git?p=binutils-gdb.git;a=commit;h=d7001b29e9f256dfc60acb481d9df8f91f2ee623 > > https://sourceware.org/git?p=binutils-gdb.git;a=commit;h=e0994165d1b8469dfc27b09b62ac74862d535812
> Just an update on this. I had a chat with Richard Henderson yesterday, and it > might actually be easier and more convenient to backport > fixes to older gdb versions (at least gdb-12 and gdb-11, but gdb-10 and gdb-9 > are also affected). This will ensure those won't crash when > they connect to a qemu that advertises the pauth feature. > > It also means we won't need qemu-side changes. My understanding is that we're > close to the 8.0.0 release, and the code is already in place. Having run into this problem in another couple of situations, one of which involved gdb 10, I think I'm increasingly favouring option 2 here. The affected gdbs seem to be quite widely deployed, and the bug results in crashes even for users who didn't really care about pauth. So I'd rather we didn't release a QEMU 8.0 which crashes these affected deployed gdbs. So: (a) if on the gdb side you can define (within the next week) a suitable new XML name you want QEMU to expose, we can commit a change to switch to that before we do the 8.0 release (b) if that's too tight a timescale, we can commit a patch which just stops QEMU from exposing the pauth.xml, and we can come up with a better solution after 8.0 releases In fact, I think I'm going to submit a patch to do (b) for now and we can follow up with a patch for (a) if we want. thanks -- PMM