From 4bb20a6244b7091a9a7a2ae35dfbd7e8db27550a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 20 Mar 2024 04:13:18 -0700 Subject: gdbserver: Clear X86_XSTATE_MPX bits in xcr0 on x32 Since MPX isn't available for x32, we should clear X86_XSTATE_MPX bits on x32. PR server/31511 * linux-x86-low.cc (x86_linux_read_description): Clear X86_XSTATE_MPX bits in xcr0 on x32. Reviewed-by: Felix Willgerodt --- gdbserver/linux-x86-low.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gdbserver') diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc index 3af0a00..933d1fb 100644 --- a/gdbserver/linux-x86-low.cc +++ b/gdbserver/linux-x86-low.cc @@ -938,6 +938,10 @@ x86_linux_read_description (void) xcr0 = xstateregs[(I386_LINUX_XSAVE_XCR0_OFFSET / sizeof (uint64_t))]; + /* No MPX on x32. */ + if (machine == EM_X86_64 && !is_elf64) + xcr0 &= ~X86_XSTATE_MPX; + xsave_len = x86_xsave_length (); /* Use PTRACE_GETREGSET if it is available. */ -- cgit v1.1