+++ /dev/null
-Fix compile on older systems with gcc 4.4.x.
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gdb-7.10.1.orig//sim/common/sim-base.h gdb-7.10.1/sim/common/sim-base.h
---- gdb-7.10.1.orig//sim/common/sim-base.h 2015-05-13 13:03:56.000000000 -0500
-+++ gdb-7.10.1/sim/common/sim-base.h 2016-07-08 07:44:17.000000000 -0500
-@@ -72,8 +72,6 @@
- #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1)
- #endif
-
--/* TODO: Probably should just delete SIM_CPU. */
--typedef struct _sim_cpu SIM_CPU;
- typedef struct _sim_cpu sim_cpu;
-
- #include "sim-module.h"
--- /dev/null
+From 4d913bb73965fdb9c756e8d5916a829b60aa3a44 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 4 Aug 2016 23:44:24 +0200
+Subject: [PATCH] Revert "sim: unify SIM_CPU definition"
+
+This reverts commit 20bca71d82598a015de0991196e45f0b5f7ead81.
+
+This change causes a redefinition of SIM_CPU on the Blackfin
+architecture, as it is defined in both the common sim/common/sim-base.h
+and the architecture specific sim/bfin/sim-main.h.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ sim/arm/sim-main.h | 3 +++
+ sim/avr/sim-main.h | 2 ++
+ sim/bfin/sim-main.h | 2 --
+ sim/common/sim-base.h | 2 --
+ sim/cr16/sim-main.h | 2 ++
+ sim/cris/sim-main.h | 5 +++++
+ sim/d10v/sim-main.h | 2 ++
+ sim/frv/sim-main.h | 10 ++++++++++
+ sim/ft32/sim-main.h | 2 ++
+ sim/h8300/sim-main.h | 3 +++
+ sim/iq2000/sim-main.h | 5 +++++
+ sim/lm32/sim-main.h | 5 +++++
+ sim/m32r/sim-main.h | 5 +++++
+ sim/m68hc11/sim-main.h | 3 +++
+ sim/mcore/sim-main.h | 2 ++
+ sim/microblaze/sim-main.h | 3 +++
+ sim/mips/sim-main.h | 3 +++
+ sim/mn10300/sim-main.h | 2 ++
+ sim/moxie/sim-main.h | 3 +++
+ sim/msp430/sim-main.h | 3 +++
+ sim/sh/sim-main.h | 3 +++
+ sim/sh64/sim-main.h | 5 +++++
+ sim/v850/sim-main.h | 3 +++
+ 23 files changed, 74 insertions(+), 4 deletions(-)
+
+diff --git a/sim/arm/sim-main.h b/sim/arm/sim-main.h
+index 9a37b98..ae622bd 100644
+--- a/sim/arm/sim-main.h
++++ b/sim/arm/sim-main.h
+@@ -20,6 +20,9 @@
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/avr/sim-main.h b/sim/avr/sim-main.h
+index e0cac22..52904e3 100644
+--- a/sim/avr/sim-main.h
++++ b/sim/avr/sim-main.h
+@@ -23,6 +23,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ extern unsigned int pc;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ struct _sim_cpu {
+diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h
+index 806fe15..53e1774 100644
+--- a/sim/bfin/sim-main.h
++++ b/sim/bfin/sim-main.h
+@@ -24,8 +24,6 @@
+ #include "sim-basics.h"
+ #include "sim-signal.h"
+
+-/* TODO: Delete this. Need to convert bu32/etc... to common sim types
+- and unwind the bfin-sim.h/machs.h include below first though. */
+ typedef struct _sim_cpu SIM_CPU;
+
+ #include "bfin-sim.h"
+diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h
+index 21f61f4..e90e07c 100644
+--- a/sim/common/sim-base.h
++++ b/sim/common/sim-base.h
+@@ -72,8 +72,6 @@ typedef address_word sim_cia;
+ #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1)
+ #endif
+
+-/* TODO: Probably should just delete SIM_CPU. */
+-typedef struct _sim_cpu SIM_CPU;
+ typedef struct _sim_cpu sim_cpu;
+
+ #include "sim-module.h"
+diff --git a/sim/cr16/sim-main.h b/sim/cr16/sim-main.h
+index a63b93e..1a80229 100644
+--- a/sim/cr16/sim-main.h
++++ b/sim/cr16/sim-main.h
+@@ -24,6 +24,8 @@
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h
+index 4dc04a2..fec0039 100644
+--- a/sim/cris/sim-main.h
++++ b/sim/cris/sim-main.h
+@@ -24,6 +24,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++#define USING_SIM_BASE_H
++
++struct _sim_cpu;
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/d10v/sim-main.h b/sim/d10v/sim-main.h
+index 0b87811..a7d59dd 100644
+--- a/sim/d10v/sim-main.h
++++ b/sim/d10v/sim-main.h
+@@ -24,6 +24,8 @@
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h
+index d5a67cb..fd12c4f 100644
+--- a/sim/frv/sim-main.h
++++ b/sim/frv/sim-main.h
+@@ -19,6 +19,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ /* Main header for the frv. */
+
++#define USING_SIM_BASE_H /* FIXME: quick hack */
++
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
++/* Set the mask of unsupported traces. */
++#define WITH_TRACE \
++ (~(TRACE_alu | TRACE_decode | TRACE_memory | TRACE_model | TRACE_fpu \
++ | TRACE_branch | TRACE_debug))
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/ft32/sim-main.h b/sim/ft32/sim-main.h
+index b27a690..a270a5d 100644
+--- a/sim/ft32/sim-main.h
++++ b/sim/ft32/sim-main.h
+@@ -25,6 +25,8 @@
+ #include "sim-base.h"
+ #include "bfd.h"
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "ft32-sim.h"
+
+ struct _sim_cpu {
+diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h
+index 6dbc1ac..e95c4d9 100644
+--- a/sim/h8300/sim-main.h
++++ b/sim/h8300/sim-main.h
+@@ -87,6 +87,9 @@ enum h8_typecodes {
+ };
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ /* Structure used to describe addressing */
+diff --git a/sim/iq2000/sim-main.h b/sim/iq2000/sim-main.h
+index 992520a..ce3baba 100644
+--- a/sim/iq2000/sim-main.h
++++ b/sim/iq2000/sim-main.h
+@@ -4,6 +4,11 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++#define USING_SIM_BASE_H /* FIXME: quick hack */
++
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h
+index 4894e8d..210bb8b 100644
+--- a/sim/lm32/sim-main.h
++++ b/sim/lm32/sim-main.h
+@@ -23,6 +23,11 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++#define USING_SIM_BASE_H /* FIXME: quick hack */
++
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h
+index cd39e98..74bb513 100644
+--- a/sim/m32r/sim-main.h
++++ b/sim/m32r/sim-main.h
+@@ -3,6 +3,11 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++#define USING_SIM_BASE_H /* FIXME: quick hack */
++
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
+index d1fc582..4f41db9 100644
+--- a/sim/m68hc11/sim-main.h
++++ b/sim/m68hc11/sim-main.h
+@@ -25,6 +25,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define SIM_HANDLES_LMA 1
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-signal.h"
+ #include "sim-base.h"
+
+diff --git a/sim/mcore/sim-main.h b/sim/mcore/sim-main.h
+index be50ec1..25698c1 100644
+--- a/sim/mcore/sim-main.h
++++ b/sim/mcore/sim-main.h
+@@ -24,6 +24,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h
+index 6781374..6b7b776 100644
+--- a/sim/microblaze/sim-main.h
++++ b/sim/microblaze/sim-main.h
+@@ -20,6 +20,9 @@
+
+ #include "microblaze.h"
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ /* The machine state.
+diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h
+index 8d698ad..9729804 100644
+--- a/sim/mips/sim-main.h
++++ b/sim/mips/sim-main.h
+@@ -29,6 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ mips_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR))
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/mn10300/sim-main.h b/sim/mn10300/sim-main.h
+index 847506e..2ddbfb9 100644
+--- a/sim/mn10300/sim-main.h
++++ b/sim/mn10300/sim-main.h
+@@ -42,6 +42,8 @@
+ #include "itable.h"
+ #include "idecode.h"
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #define WITH_WATCHPOINTS 1
+
+ #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
+diff --git a/sim/moxie/sim-main.h b/sim/moxie/sim-main.h
+index b1a64fc..c60437e 100644
+--- a/sim/moxie/sim-main.h
++++ b/sim/moxie/sim-main.h
+@@ -21,6 +21,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/msp430/sim-main.h b/sim/msp430/sim-main.h
+index 19c8cca..37bb42d 100644
+--- a/sim/msp430/sim-main.h
++++ b/sim/msp430/sim-main.h
+@@ -23,6 +23,9 @@
+
+ #include "sim-basics.h"
+ #include "sim-signal.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "msp430-sim.h"
+ #include "sim-base.h"
+
+diff --git a/sim/sh/sim-main.h b/sim/sh/sim-main.h
+index e67df28..e2e17d7 100644
+--- a/sim/sh/sim-main.h
++++ b/sim/sh/sim-main.h
+@@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ typedef struct
+diff --git a/sim/sh64/sim-main.h b/sim/sh64/sim-main.h
+index 7b24ab0..8fb595e 100644
+--- a/sim/sh64/sim-main.h
++++ b/sim/sh64/sim-main.h
+@@ -3,6 +3,11 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++#define USING_SIM_BASE_H /* FIXME: quick hack */
++
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/v850/sim-main.h b/sim/v850/sim-main.h
+index 5127d28..16cbd97 100644
+--- a/sim/v850/sim-main.h
++++ b/sim/v850/sim-main.h
+@@ -16,6 +16,9 @@
+ #include "sim-basics.h"
+ #include "sim-signal.h"
+ #include "sim-fpu.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ #include "simops.h"
+--
+2.7.4
+
--- /dev/null
+From 77080d5f7fd47dd567f22807d336bc9111f93d7b Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Thu, 4 Aug 2016 23:44:24 +0200
+Subject: [PATCH] Revert "sim: unify SIM_CPU definition"
+
+This reverts commit 20bca71d82598a015de0991196e45f0b5f7ead81.
+
+This change causes a redefinition of SIM_CPU on the Blackfin
+architecture, as it is defined in both the common sim/common/sim-base.h
+and the architecture specific sim/bfin/sim-main.h.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ sim/arm/sim-main.h | 3 +++
+ sim/avr/sim-main.h | 2 ++
+ sim/bfin/sim-main.h | 2 --
+ sim/common/sim-base.h | 2 --
+ sim/cr16/sim-main.h | 2 ++
+ sim/cris/sim-main.h | 3 +++
+ sim/d10v/sim-main.h | 2 ++
+ sim/frv/sim-main.h | 3 +++
+ sim/ft32/sim-main.h | 2 ++
+ sim/h8300/sim-main.h | 3 +++
+ sim/iq2000/sim-main.h | 3 +++
+ sim/lm32/sim-main.h | 3 +++
+ sim/m32r/sim-main.h | 3 +++
+ sim/m68hc11/sim-main.h | 3 +++
+ sim/mcore/sim-main.h | 2 ++
+ sim/microblaze/sim-main.h | 3 +++
+ sim/mips/sim-main.h | 3 +++
+ sim/mn10300/sim-main.h | 2 ++
+ sim/moxie/sim-main.h | 3 +++
+ sim/msp430/sim-main.h | 3 +++
+ sim/sh/sim-main.h | 3 +++
+ sim/sh64/sim-main.h | 3 +++
+ sim/v850/sim-main.h | 3 +++
+ 23 files changed, 57 insertions(+), 4 deletions(-)
+
+diff --git a/sim/arm/sim-main.h b/sim/arm/sim-main.h
+index 3620810..f644122 100644
+--- a/sim/arm/sim-main.h
++++ b/sim/arm/sim-main.h
+@@ -20,6 +20,9 @@
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/avr/sim-main.h b/sim/avr/sim-main.h
+index 47155e3..cd41045 100644
+--- a/sim/avr/sim-main.h
++++ b/sim/avr/sim-main.h
+@@ -21,6 +21,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ #include "sim-basics.h"
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ struct _sim_cpu {
+diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h
+index 51fb87e..cf1ed57 100644
+--- a/sim/bfin/sim-main.h
++++ b/sim/bfin/sim-main.h
+@@ -24,8 +24,6 @@
+ #include "sim-basics.h"
+ #include "sim-signal.h"
+
+-/* TODO: Delete this. Need to convert bu32/etc... to common sim types
+- and unwind the bfin-sim.h/machs.h include below first though. */
+ typedef struct _sim_cpu SIM_CPU;
+
+ #include "bfin-sim.h"
+diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h
+index 350b352..1b849f4 100644
+--- a/sim/common/sim-base.h
++++ b/sim/common/sim-base.h
+@@ -72,8 +72,6 @@ typedef address_word sim_cia;
+ #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1)
+ #endif
+
+-/* TODO: Probably should just delete SIM_CPU. */
+-typedef struct _sim_cpu SIM_CPU;
+ typedef struct _sim_cpu sim_cpu;
+
+ #include "sim-module.h"
+diff --git a/sim/cr16/sim-main.h b/sim/cr16/sim-main.h
+index 208f917..78e3996 100644
+--- a/sim/cr16/sim-main.h
++++ b/sim/cr16/sim-main.h
+@@ -24,6 +24,8 @@
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h
+index 8aab970..0ff907f 100644
+--- a/sim/cris/sim-main.h
++++ b/sim/cris/sim-main.h
+@@ -29,6 +29,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ one of -scache/-pbb. */
+ #define WITH_SCACHE_PBB 1
+
++struct _sim_cpu;
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/d10v/sim-main.h b/sim/d10v/sim-main.h
+index 76f06d8..fd5bd51 100644
+--- a/sim/d10v/sim-main.h
++++ b/sim/d10v/sim-main.h
+@@ -24,6 +24,8 @@
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h
+index f95c1cc..701e208 100644
+--- a/sim/frv/sim-main.h
++++ b/sim/frv/sim-main.h
+@@ -19,6 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ /* Main header for the frv. */
+
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/ft32/sim-main.h b/sim/ft32/sim-main.h
+index a15b247..eef0201 100644
+--- a/sim/ft32/sim-main.h
++++ b/sim/ft32/sim-main.h
+@@ -25,6 +25,8 @@
+ #include "sim-base.h"
+ #include "bfd.h"
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "ft32-sim.h"
+
+ struct _sim_cpu {
+diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h
+index 6dbc1ac..e95c4d9 100644
+--- a/sim/h8300/sim-main.h
++++ b/sim/h8300/sim-main.h
+@@ -87,6 +87,9 @@ enum h8_typecodes {
+ };
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ /* Structure used to describe addressing */
+diff --git a/sim/iq2000/sim-main.h b/sim/iq2000/sim-main.h
+index 829f9bb..a770dc5 100644
+--- a/sim/iq2000/sim-main.h
++++ b/sim/iq2000/sim-main.h
+@@ -4,6 +4,9 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h
+index 20e2b71..eeffde3 100644
+--- a/sim/lm32/sim-main.h
++++ b/sim/lm32/sim-main.h
+@@ -25,6 +25,9 @@
+
+ #define WITH_SCACHE_PBB 1
+
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/m32r/sim-main.h b/sim/m32r/sim-main.h
+index 5b24ce8..39f7ecc 100644
+--- a/sim/m32r/sim-main.h
++++ b/sim/m32r/sim-main.h
+@@ -8,6 +8,9 @@
+ one of -scache/-pbb. */
+ #define WITH_SCACHE_PBB 1
+
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "symcat.h"
+ #include "sim-basics.h"
+ #include "cgen-types.h"
+diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
+index b940df7..0aa096f 100644
+--- a/sim/m68hc11/sim-main.h
++++ b/sim/m68hc11/sim-main.h
+@@ -21,6 +21,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define _SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-signal.h"
+ #include "sim-base.h"
+
+diff --git a/sim/mcore/sim-main.h b/sim/mcore/sim-main.h
+index fce26e8..fa7ee9f 100644
+--- a/sim/mcore/sim-main.h
++++ b/sim/mcore/sim-main.h
+@@ -24,6 +24,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ typedef long int word;
+ typedef unsigned long int uword;
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h
+index 3a7b088..9e6bf01 100644
+--- a/sim/microblaze/sim-main.h
++++ b/sim/microblaze/sim-main.h
+@@ -20,6 +20,9 @@
+
+ #include "microblaze.h"
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ /* The machine state.
+diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h
+index 0ea1234..eedbfc9 100644
+--- a/sim/mips/sim-main.h
++++ b/sim/mips/sim-main.h
+@@ -27,6 +27,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ mips_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR))
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/mn10300/sim-main.h b/sim/mn10300/sim-main.h
+index 7171c03..3a917e7 100644
+--- a/sim/mn10300/sim-main.h
++++ b/sim/mn10300/sim-main.h
+@@ -38,6 +38,8 @@
+ #include "itable.h"
+ #include "idecode.h"
+
++typedef struct _sim_cpu SIM_CPU;
++
+ #define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
+ mn10300_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), (TRANSFER), (ERROR))
+
+diff --git a/sim/moxie/sim-main.h b/sim/moxie/sim-main.h
+index 7091f21..b6b5ca3 100644
+--- a/sim/moxie/sim-main.h
++++ b/sim/moxie/sim-main.h
+@@ -21,6 +21,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+ #include "bfd.h"
+
+diff --git a/sim/msp430/sim-main.h b/sim/msp430/sim-main.h
+index 4a2ab22..c7cdc5e 100644
+--- a/sim/msp430/sim-main.h
++++ b/sim/msp430/sim-main.h
+@@ -23,6 +23,9 @@
+
+ #include "sim-basics.h"
+ #include "sim-signal.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "msp430-sim.h"
+ #include "sim-base.h"
+
+diff --git a/sim/sh/sim-main.h b/sim/sh/sim-main.h
+index 4af7b03..6ab42a6 100644
+--- a/sim/sh/sim-main.h
++++ b/sim/sh/sim-main.h
+@@ -20,6 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+ #define SIM_MAIN_H
+
+ #include "sim-basics.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ typedef struct
+diff --git a/sim/sh64/sim-main.h b/sim/sh64/sim-main.h
+index da8f516..5fd7095 100644
+--- a/sim/sh64/sim-main.h
++++ b/sim/sh64/sim-main.h
+@@ -3,6 +3,9 @@
+ #ifndef SIM_MAIN_H
+ #define SIM_MAIN_H
+
++struct _sim_cpu; /* FIXME: should be in sim-basics.h */
++typedef struct _sim_cpu SIM_CPU;
++
+ /* sim-basics.h includes config.h but cgen-types.h must be included before
+ sim-basics.h and cgen-types.h needs config.h. */
+ #include "config.h"
+diff --git a/sim/v850/sim-main.h b/sim/v850/sim-main.h
+index e7276a6..1a45f97 100644
+--- a/sim/v850/sim-main.h
++++ b/sim/v850/sim-main.h
+@@ -9,6 +9,9 @@
+ #include "sim-basics.h"
+ #include "sim-signal.h"
+ #include "sim-fpu.h"
++
++typedef struct _sim_cpu SIM_CPU;
++
+ #include "sim-base.h"
+
+ #include "simops.h"
+--
+2.7.4
+
+++ /dev/null
-Fix compile on older systems with gcc 4.4.x
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-
-diff -Nur gdb-7.11.1.orig//sim/common/sim-base.h gdb-7.11.1/sim/common/sim-base.h
---- gdb-7.11.1.orig//sim/common/sim-base.h 2016-02-09 21:19:39.000000000 -0600
-+++ gdb-7.11.1/sim/common/sim-base.h 2016-07-08 08:02:09.000000000 -0500
-@@ -72,8 +72,6 @@
- #define INVALID_INSTRUCTION_ADDRESS ((address_word)0 - 1)
- #endif
-
--/* TODO: Probably should just delete SIM_CPU. */
--typedef struct _sim_cpu SIM_CPU;
- typedef struct _sim_cpu sim_cpu;
-
- #include "sim-module.h"