aboutsummaryrefslogtreecommitdiff
path: root/sim/cr16
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-01-09 03:10:52 -0500
committerMike Frysinger <vapier@gentoo.org>2021-01-09 09:39:17 -0500
commit7eb99e5e27eebaf4a4acd469ad0856c0b35d80b3 (patch)
tree4ae7fa2d590cec9e63da42f6fe9070f79092b4bf /sim/cr16
parentf074c07d8d4d36d2712117eace2e4db48d544291 (diff)
downloadgdb-7eb99e5e27eebaf4a4acd469ad0856c0b35d80b3.zip
gdb-7eb99e5e27eebaf4a4acd469ad0856c0b35d80b3.tar.gz
gdb-7eb99e5e27eebaf4a4acd469ad0856c0b35d80b3.tar.bz2
sim: cr16/d10v: move storage out of header
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.
Diffstat (limited to 'sim/cr16')
-rw-r--r--sim/cr16/ChangeLog5
-rw-r--r--sim/cr16/cr16_sim.h4
-rw-r--r--sim/cr16/interp.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/sim/cr16/ChangeLog b/sim/cr16/ChangeLog
index 9e8a16d..14edee2 100644
--- a/sim/cr16/ChangeLog
+++ b/sim/cr16/ChangeLog
@@ -1,5 +1,10 @@
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.
2021-01-09 Mike Frysinger <vapier@gentoo.org>
diff --git a/sim/cr16/cr16_sim.h b/sim/cr16/cr16_sim.h
index 4d6f1b9..8232f07 100644
--- a/sim/cr16/cr16_sim.h
+++ b/sim/cr16/cr16_sim.h
@@ -243,7 +243,9 @@ struct _state
enum _ins_type ins_type;
-} State;
+};
+
+extern struct _state State;
extern uint32 OP[4];
diff --git a/sim/cr16/interp.c b/sim/cr16/interp.c
index 0adb68a..cff7b88 100644
--- a/sim/cr16/interp.c
+++ b/sim/cr16/interp.c
@@ -33,6 +33,8 @@
#include "gdb/signals.h"
#include "opcode/cr16.h"
+struct _state State;
+
int cr16_debug;
uint32 OP[4];