sim: cr16/d10v: move storage out of header
authorMike Frysinger <vapier@gentoo.org>
Sat, 9 Jan 2021 08:10:52 +0000 (03:10 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sat, 9 Jan 2021 14:39:17 +0000 (09:39 -0500)
These ports declare their State variable in a header and then include
multiple times.  This causes linker errors with newer gcc due to the
change in -fno-common behavior.  Move the storage to a C file so we
only have one instance of it in the final program.

sim/cr16/ChangeLog
sim/cr16/cr16_sim.h
sim/cr16/interp.c
sim/d10v/ChangeLog
sim/d10v/d10v_sim.h
sim/d10v/interp.c

index 9e8a16d53005c7d98f78f5a39f8a3773389c1fdb..14edee23c29c76e0a92f2d83b13d2dd15e4ce7d3 100644 (file)
@@ -1,3 +1,8 @@
+2021-01-09  Mike Frysinger  <vapier@gentoo.org>
+
+       * cr16_sim.h (State): Change to an extern.
+       * interp.c (State): Define.
+
 2021-01-09  Mike Frysinger  <vapier@gentoo.org>
 
        * configure: Regenerate.
index 4d6f1b95077be192b37324357365ee357fb08e1b..8232f0743f7b9049e0aa9c1b9d4039ca69dd57bb 100644 (file)
@@ -243,7 +243,9 @@ struct _state
 
   enum _ins_type ins_type;
 
-} State;
+};
+
+extern struct _state State;
 
 
 extern uint32 OP[4];
index 0adb68a772255c3a42a669831e25e1c83c0a303a..cff7b8857189e34a49a4ccfa36e653d90b4b5a4c 100644 (file)
@@ -33,6 +33,8 @@
 #include "gdb/signals.h"
 #include "opcode/cr16.h"
 
+struct _state State;
+
 int cr16_debug;
 
 uint32 OP[4];
index b82ea095bc047a34c2e20fe5209c5d1c935414f9..13abbb8614773679a80f1fce7143c3c30f3705c9 100644 (file)
@@ -1,3 +1,8 @@
+2021-01-09  Mike Frysinger  <vapier@gentoo.org>
+
+       * d10v_sim.h (State): Change to an extern.
+       * interp.c (State): Define.
+
 2021-01-09  Mike Frysinger  <vapier@gentoo.org>
 
        * configure: Regenerate.
index 86243c9f70022177ef0c1de751ba206e795bce53..a3755bf3ccb9d47d9c6c029e5aed5c4e0948efd2 100644 (file)
@@ -270,7 +270,9 @@ struct _state
 
   enum _ins_type ins_type;
 
-} State;
+};
+
+extern struct _state State;
 
 
 extern uint16 OP[4];
index cb8c6cf61f5c800c64624d810450f09e004b7b3b..5c70b38d9d8fe13256defb3ebbf3d0177da4196c 100644 (file)
@@ -25,6 +25,8 @@
 
 enum _leftright { LEFT_FIRST, RIGHT_FIRST };
 
+struct _state State;
+
 int d10v_debug;
 
 /* Set this to true to get the previous segment layout. */