diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog
index 694cd5d..88bd15c 100644
--- a/include/gdb/ChangeLog
+++ b/include/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2015-05-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* remote-sim.h (struct host_callback_struct): Define.
+
 2015-01-31  Doug Evans  <xdje42@gmail.com>
 
 	* section-scripts.h: Remove "future extension" comment.
diff --git a/include/gdb/remote-sim.h b/include/gdb/remote-sim.h
index 3dca380..bd8ddc0 100644
--- a/include/gdb/remote-sim.h
+++ b/include/gdb/remote-sim.h
@@ -60,9 +60,10 @@ typedef enum {
 } SIM_RC;
 
 
-/* The bfd struct, as an opaque type.  */
+/* Some structs, as opaque types.  */
 
 struct bfd;
+struct host_callback_struct;
 
 
 /* Main simulator entry points.  */
diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog
index ee5f81c..4e2077d 100644
--- a/sim/bfin/ChangeLog
+++ b/sim/bfin/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in: Delete includes.
+	[HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* bfin-sim.c (decode_dsp32alu_0): Change v to bu32.
diff --git a/sim/bfin/tconfig.in b/sim/bfin/tconfig.in
index 130707a..d28fd8d 100644
--- a/sim/bfin/tconfig.in
+++ b/sim/bfin/tconfig.in
@@ -7,18 +7,6 @@
    Common sim core by default sets hw_system_cpu to NULL for WITH_HW.  */
 #define WITH_DEVICES 1
 
-/* FIXME: This is unnecessarily necessary: */
-#include "ansidecl.h"
-#include "gdb/callback.h"
-#include "gdb/remote-sim.h"
-#include "sim-module.h"
-
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 /* ??? Temporary hack until model support unified.  */
 #define SIM_HAVE_MODEL
 
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index cd51d62..08d3b93 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,3 +1,11 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* dv-socker.h (dv_sockser_install): Declare.
+	* sim-module.c: Include config.h.
+	[HAVE_DV_SOCKSER]: Include dv-sockser.h.
+	(modules) [HAVE_DV_SOCKSER]: Add dv_sockser_install.
+	* sim-module.h: Include gdb/remote-sim.h.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Make-common.in (BUILT_SRC_FROM_COMMON): Delete.
diff --git a/sim/common/dv-sockser.h b/sim/common/dv-sockser.h
index 8ad9981..cc4fd74 100644
--- a/sim/common/dv-sockser.h
+++ b/sim/common/dv-sockser.h
@@ -30,4 +30,6 @@ int dv_sockser_write (SIM_DESC, unsigned char);
 int dv_sockser_write_buffer (SIM_DESC, const unsigned char *, unsigned);
 int dv_sockser_read (SIM_DESC);
 
+SIM_RC dv_sockser_install (SIM_DESC);
+
 #endif /* DV_SOCKSER_H */
diff --git a/sim/common/sim-module.c b/sim/common/sim-module.c
index 2f7ac5f..fd9b587 100644
--- a/sim/common/sim-module.c
+++ b/sim/common/sim-module.c
@@ -19,6 +19,7 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include "config.h"
 #include "sim-main.h"
 #include "sim-io.h"
 #include "sim-options.h"
@@ -28,6 +29,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #include "sim-hw.h"
 #endif
 
+#ifdef HAVE_DV_SOCKSER
+/* TODO: Shouldn't have device models here.  */
+#include "dv-sockser.h"
+#endif
+
 #include "libiberty.h"
 
 /* List of all modules.  */
@@ -60,6 +66,10 @@ static MODULE_INSTALL_FN * const modules[] = {
 #if WITH_HW
   sim_hw_install,
 #endif
+#ifdef HAVE_DV_SOCKSER
+  /* TODO: Shouldn't have device models here.  */
+  dv_sockser_install,
+#endif
   /* Configured in [simulator specific] additional modules.  */
 #ifdef MODULE_LIST
   MODULE_LIST
diff --git a/sim/common/sim-module.h b/sim/common/sim-module.h
index 9979ec0..53b8306 100644
--- a/sim/common/sim-module.h
+++ b/sim/common/sim-module.h
@@ -30,6 +30,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
    TODO: Add facilities for saving/restoring state to/from a file.  */
 
+#include "gdb/remote-sim.h"
 
 /* Various function types.  */
 
diff --git a/sim/cris/ChangeLog b/sim/cris/ChangeLog
index e1f3f9e..9432e32 100644
--- a/sim/cris/ChangeLog
+++ b/sim/cris/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in: Delete most includes.
+	[HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/cris/tconfig.in b/sim/cris/tconfig.in
index 7749993..8f82ac7 100644
--- a/sim/cris/tconfig.in
+++ b/sim/cris/tconfig.in
@@ -20,11 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef CRIS_TCONFIG_H
 #define CRIS_TCONFIG_H
 
-#include "ansidecl.h"
-#include "gdb/callback.h"
-#include "gdb/remote-sim.h"
-#include "sim-module.h"
-
 /* There's basically a a big ??? FIXME: CHECK THIS on everything in this
    file.  I just copied it from m32r, pruned some stuff and added
    HAVE_MODEL because it seemed useful.  */
@@ -35,15 +30,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 1
 
+#include "sim-module.h"
 extern MODULE_INSTALL_FN cris_option_install;
-
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-extern MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install, cris_option_install,
-#else
 #define MODULE_LIST cris_option_install,
-#endif
 
 #define SIM_HAVE_MODEL
 
diff --git a/sim/frv/ChangeLog b/sim/frv/ChangeLog
index d54bb94..d178047 100644
--- a/sim/frv/ChangeLog
+++ b/sim/frv/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in [HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/frv/tconfig.in b/sim/frv/tconfig.in
index a53ad23..b31043c 100644
--- a/sim/frv/tconfig.in
+++ b/sim/frv/tconfig.in
@@ -13,12 +13,6 @@
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 1
 
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 #if 0
 /* Enable watchpoints.  */
 #define WITH_WATCHPOINTS 1
diff --git a/sim/iq2000/ChangeLog b/sim/iq2000/ChangeLog
index 58a8605..b682fac 100644
--- a/sim/iq2000/ChangeLog
+++ b/sim/iq2000/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in [HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/iq2000/tconfig.in b/sim/iq2000/tconfig.in
index 5ab608c..0081bb43 100644
--- a/sim/iq2000/tconfig.in
+++ b/sim/iq2000/tconfig.in
@@ -13,12 +13,6 @@
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 0
 
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 #if 0
 /* Enable watchpoints.  */
 #define WITH_WATCHPOINTS 1
diff --git a/sim/lm32/ChangeLog b/sim/lm32/ChangeLog
index 8567e61..954cd83 100644
--- a/sim/lm32/ChangeLog
+++ b/sim/lm32/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* Makefile.in (SIM_OBJS): Add @SIM_DV_SOCKSER_O@.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/lm32/Makefile.in b/sim/lm32/Makefile.in
index 60420a1..61e4137 100644
--- a/sim/lm32/Makefile.in
+++ b/sim/lm32/Makefile.in
@@ -12,6 +12,7 @@ SIM_OBJS = \
 	sim-model.o \
 	sim-reg.o \
 	sim-signal.o \
+	@SIM_DV_SOCKSER_O@ \
         cgen-utils.o cgen-trace.o cgen-scache.o \
         cgen-run.o sim-reason.o sim-engine.o sim-stop.o \
         sim-if.o arch.o \
diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog
index 98f3a8c..ee4d689 100644
--- a/sim/m32r/ChangeLog
+++ b/sim/m32r/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in [HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/m32r/tconfig.in b/sim/m32r/tconfig.in
index 1d159bc..a5c55d5 100644
--- a/sim/m32r/tconfig.in
+++ b/sim/m32r/tconfig.in
@@ -16,12 +16,6 @@
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 1
 
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 #if 0
 /* Enable watchpoints.  */
 #define WITH_WATCHPOINTS 1
diff --git a/sim/mips/ChangeLog b/sim/mips/ChangeLog
index 72fbdd2..2be47e0 100644
--- a/sim/mips/ChangeLog
+++ b/sim/mips/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in: Delete includes.
+	[HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/mips/tconfig.in b/sim/mips/tconfig.in
index a68a5fb..95e66b4 100644
--- a/sim/mips/tconfig.in
+++ b/sim/mips/tconfig.in
@@ -3,19 +3,6 @@
 /* See sim-hload.c.  We properly handle LMA.  */
 #ifdef TARGET_TX3904
 #define SIM_HANDLES_LMA 1
-
-/* FIXME: This is unnecessarily necessary: */
-#include "ansidecl.h"
-#include "gdb/callback.h"
-#include "gdb/remote-sim.h"
-#include "sim-module.h"
-
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 #else
 #define SIM_HANDLES_LMA 0
 #endif
diff --git a/sim/mn10300/ChangeLog b/sim/mn10300/ChangeLog
index b4d84aa..aa9f5f1 100644
--- a/sim/mn10300/ChangeLog
+++ b/sim/mn10300/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in: Delete file.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/mn10300/tconfig.in b/sim/mn10300/tconfig.in
deleted file mode 100644
index 1d1237b..0000000
--- a/sim/mn10300/tconfig.in
+++ /dev/null
@@ -1,29 +0,0 @@
-/* mn10300 target configuration file.  */
-
-/* FIXME: This is unnecessarily necessary: */
-#include "ansidecl.h"
-#include "gdb/callback.h"
-#include "gdb/remote-sim.h"
-#include "sim-module.h"
-
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
-/* Define this if the simulator supports profiling.
-   See the mips simulator for an example.
-   This enables the `-p foo' and `-s bar' options.
-   The target is required to provide sim_set_profile{,_size}.  */
-/* #define SIM_HAVE_PROFILE */
-
-/* Define this if the simulator uses an instruction cache.
-   See the h8/300 simulator for an example.
-   This enables the `-c size' option to set the size of the cache.
-   The target is required to provide sim_set_simcache_size.  */
-/* #define SIM_HAVE_SIMCACHE */
-
-/* Define this if the target cpu is bi-endian
-   and the simulator supports it.  */
-/* #define SIM_HAVE_BIENDIAN */
diff --git a/sim/sh64/ChangeLog b/sim/sh64/ChangeLog
index 43eee86..20da758 100644
--- a/sim/sh64/ChangeLog
+++ b/sim/sh64/ChangeLog
@@ -1,3 +1,7 @@
+2015-03-15  Mike Frysinger  <vapier@gentoo.org>
+
+	* tconfig.in [HAVE_DV_SOCKSER]: Delete.
+
 2015-03-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* Makefile.in (SIM_RUN_OBJS): Delete.
diff --git a/sim/sh64/tconfig.in b/sim/sh64/tconfig.in
index bab3f1c..9d64be9 100644
--- a/sim/sh64/tconfig.in
+++ b/sim/sh64/tconfig.in
@@ -13,12 +13,6 @@
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 0
 
-/* FIXME: Revisit.  */
-#ifdef HAVE_DV_SOCKSER
-MODULE_INSTALL_FN dv_sockser_install;
-#define MODULE_LIST dv_sockser_install,
-#endif
-
 #if 0
 /* Enable watchpoints.  */
 #define WITH_WATCHPOINTS 1
