restore EH on x86-vx7r2

Message ID ora6pbgqsz.fsf@lxoliva.fsfla.org
State New
Headers show
Series
  • restore EH on x86-vx7r2
Related show

Commit Message

Alexandre Oliva May 4, 2021, 2:45 a.m.
x86-vx7r2 needs svr4_dbx_register_map, but the default in i386/i386.h
was dbx_register_map, partially swapping ebp and esp in unwind info.

i386/vxworks.h had a correct overrider, but it was conditional for
vxworks < 7.  This patch reenables the overrider unconditionally.

Tested on x86_64-linux-gnu with a cross to x86-vx7r2.  Ok to install?


for  gcc/ChangeLog

	* config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
	unconditional.
---
 gcc/config/i386/vxworks.h |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)



-- 
Alexandre Oliva, happy hacker                https://FSFLA.org/blogs/lxo/
   Free Software Activist                       GNU Toolchain Engineer
Disinformation flourishes because many people care deeply about injustice
but very few check the facts.  Ask me about <https://stallmansupport.org>

Comments

Olivier Hainque May 4, 2021, 7:23 a.m. | #1
> On 4 May 2021, at 04:45, Alexandre Oliva <oliva@adacore.com> wrote:

> 

> 

> x86-vx7r2 needs svr4_dbx_register_map, but the default in i386/i386.h

> was dbx_register_map, partially swapping ebp and esp in unwind info.

> 

> i386/vxworks.h had a correct overrider, but it was conditional for

> vxworks < 7.  This patch reenables the overrider unconditionally.

> 

> Tested on x86_64-linux-gnu with a cross to x86-vx7r2.  Ok to install?


Yes, good for me, thanks!

> for  gcc/ChangeLog

> 

> 	* config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it

> 	unconditional.

Patch

diff --git a/gcc/config/i386/vxworks.h b/gcc/config/i386/vxworks.h
index b3ca224fa1071..ebda7d9d26a34 100644
--- a/gcc/config/i386/vxworks.h
+++ b/gcc/config/i386/vxworks.h
@@ -37,13 +37,6 @@  along with GCC; see the file COPYING3.  If not see
 #define TARGET_SUBTARGET_DEFAULT \
 	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
 
-/* Provide our target specific DBX_REGISTER_NUMBER.  VxWorks relies on
-   the SVR4 numbering.  */
-
-#undef DBX_REGISTER_NUMBER
-#define DBX_REGISTER_NUMBER(n) \
-  (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
-
 #undef PTRDIFF_TYPE
 #define PTRDIFF_TYPE (TARGET_LP64 ? "long int" : "int")
 
@@ -61,6 +54,13 @@  along with GCC; see the file COPYING3.  If not see
 
 #endif
 
+/* Provide our target specific DBX_REGISTER_NUMBER.  VxWorks relies on
+   the SVR4 numbering.  */
+
+#undef DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(n) \
+  (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
+
 /* CPU macro definitions, ordered to account for VxWorks 7 not
    supporting CPUs older than PENTIUM4 since SR0650.  */