+2015-12-24  Mike Frysinger  <vapier@gentoo.org>
+
+       * sim-module.c (MODULE_LIST): Delete.
+
 2015-12-24  Mike Frysinger  <vapier@gentoo.org>
 
        * sim-options.c (OPTION_H8300H, OPTION_H8300S, OPTION_H8300SX):
 
 #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
 #endif
   0
 };
 
+2015-12-24  Mike Frysinger  <vapier@gentoo.org>
+
+       * sim-if.c (cris_option_install): Delete.
+       (sim_open): Call sim_add_option_table.
+       * tconfig.h: Delete sim-module.h include.
+       (MODULE_INSTALL_FN, MODULE_LIST): Delete.
+
 2015-11-15  Mike Frysinger  <vapier@gentoo.org>
 
        * Makefile.in (SIM_OBJS): Delete sim-reason.o, sim-reg.o, and
 
   { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL, NULL }
 };
 \f
-/* Add the CRIS-specific option list to the simulator.  */
-
-SIM_RC
-cris_option_install (SIM_DESC sd)
-{
-  SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-  if (sim_add_option_table (sd, NULL, cris_options) != SIM_RC_OK)
-    return SIM_RC_FAIL;
-  return SIM_RC_OK;
-}
-
 /* Handle CRIS-specific options.  */
 
 static SIM_RC
       return 0;
     }
 
+  /* Add the CRIS-specific option list to the simulator.  */
+  if (sim_add_option_table (sd, NULL, cris_options) != SIM_RC_OK)
+    {
+      free_state (sd);
+      return 0;
+    }
+
   /* getopt will print the error message so we just have to exit if this fails.
      FIXME: Hmmm...  in the case of gdb we need getopt to call
      print_filtered.  */
 
 /* For MSPR support.  FIXME: revisit.  */
 #define WITH_DEVICES 1
 
-#include "sim-module.h"
-extern MODULE_INSTALL_FN cris_option_install;
-#define MODULE_LIST cris_option_install,
-
 #define SIM_HAVE_MODEL
 
 /* This is a global setting.  Different cpu families can't mix-n-match -scache