Disasm now translates xor x0,x0,x0 as a machine-generated bubble ("-").
[riscv-isa-sim.git] / configure
index 4f51f413042237167b6fab0a04818af049e1ba02..4a1bf3d334984b7e7e8c383d951d7d666204e108 100755 (executable)
--- a/configure
+++ b/configure
@@ -559,7 +559,7 @@ MAKEFLAGS=
 
 # Identity of this package.
 PACKAGE_NAME='RISC-V ISA Simulator'
-PACKAGE_TARNAME='riscv-isa-run'
+PACKAGE_TARNAME='spike'
 PACKAGE_VERSION='?'
 PACKAGE_STRING='RISC-V ISA Simulator ?'
 PACKAGE_BUGREPORT='Andrew Waterman'
@@ -570,7 +570,6 @@ ac_subst_vars='LTLIBOBJS
 LIBOBJS
 subprojects_enabled
 subprojects
-INCDIRS
 EGREP
 GREP
 CPP
@@ -647,10 +646,10 @@ ac_user_opts='
 enable_option_checking
 enable_stow
 enable_optional_subprojects
+with_fesvr
 enable_fpu
 enable_64bit
-enable_rvc
-enable_vec
+enable_commitlog
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1256,7 +1255,7 @@ Fine tuning of the installation directories:
   --infodir=DIR           info documentation [DATAROOTDIR/info]
   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
   --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/riscv-isa-run]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/spike]
   --htmldir=DIR           html documentation [DOCDIR]
   --dvidir=DIR            dvi documentation [DOCDIR]
   --pdfdir=DIR            pdf documentation [DOCDIR]
@@ -1286,8 +1285,13 @@ Optional Features:
                           Enable all optional subprojects
   --disable-fpu           Disable floating-point
   --disable-64bit         Disable 64-bit mode
-  --enable-rvc            Enable instruction compression
-  --disable-vec           Disable vector processor
+  --enable-commitlog      Enable commit log generation
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-fesvr            path to your fesvr installation if not in a standard
+                          location
 
 Some influential environment variables:
   CC          C compiler command
@@ -4000,9 +4004,9 @@ fi
 # Default compiler flags
 #-------------------------------------------------------------------------
 
-CFLAGS="-Wall -O2"
+CFLAGS="-Wall -O2 -Wno-unused"
 
-CXXFLAGS="-Wall -O2 -Wno-pmf-conversions"
+CXXFLAGS="-Wall -O2 -std=c++11"
 
 
 #-------------------------------------------------------------------------
@@ -4066,7 +4070,114 @@ $as_echo "$as_me: configuring default subproject : riscv" >&6;}
 
 $as_echo "#define RISCV_ENABLED /**/" >>confdefs.h
 
-      # Check whether --enable-fpu was given.
+
+# Check whether --with-fesvr was given.
+if test "${with_fesvr+set}" = set; then :
+  withval=$with_fesvr;
+    LDFLAGS="-L$withval/lib $LDFLAGS"
+    CFLAGS="-I$withval/include $CFLAGS"
+
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libfesvr_is_present in -lfesvr" >&5
+$as_echo_n "checking for libfesvr_is_present in -lfesvr... " >&6; }
+if ${ac_cv_lib_fesvr_libfesvr_is_present+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lfesvr -pthread $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char libfesvr_is_present ();
+int
+main ()
+{
+return libfesvr_is_present ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_fesvr_libfesvr_is_present=yes
+else
+  ac_cv_lib_fesvr_libfesvr_is_present=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fesvr_libfesvr_is_present" >&5
+$as_echo "$ac_cv_lib_fesvr_libfesvr_is_present" >&6; }
+if test "x$ac_cv_lib_fesvr_libfesvr_is_present" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBFESVR 1
+_ACEOF
+
+  LIBS="-lfesvr $LIBS"
+
+else
+  as_fn_error $? "libfesvr is required" "$LINENO" 5
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
+$as_echo_n "checking for pthread_create in -lpthread... " >&6; }
+if ${ac_cv_lib_pthread_pthread_create+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_create ();
+int
+main ()
+{
+return pthread_create ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_pthread_pthread_create=yes
+else
+  ac_cv_lib_pthread_pthread_create=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
+$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
+if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPTHREAD 1
+_ACEOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  as_fn_error $? "libpthread is required" "$LINENO" 5
+fi
+
+
+# Check whether --enable-fpu was given.
 if test "${enable_fpu+set}" = set; then :
   enableval=$enable_fpu;
 fi
@@ -4092,165 +4203,62 @@ $as_echo "#define RISCV_ENABLE_64BIT /**/" >>confdefs.h
 
 fi
 
-# Check whether --enable-rvc was given.
-if test "${enable_rvc+set}" = set; then :
-  enableval=$enable_rvc;
+# Check whether --enable-commitlog was given.
+if test "${enable_commitlog+set}" = set; then :
+  enableval=$enable_commitlog;
 fi
 
-if test "x$enable_rvc" = "xyes"; then :
+if test "x$enable_commitlog" = "xyes"; then :
 
 
-$as_echo "#define RISCV_ENABLE_RVC /**/" >>confdefs.h
+$as_echo "#define RISCV_ENABLE_COMMITLOG /**/" >>confdefs.h
 
 
 fi
 
-# Check whether --enable-vec was given.
-if test "${enable_vec+set}" = set; then :
-  enableval=$enable_vec;
-fi
 
-if test "x$enable_vec" != "xno"; then :
 
 
-$as_echo "#define RISCV_ENABLE_VEC /**/" >>confdefs.h
 
+    # Determine if this is a required or an optional subproject
 
-fi
 
-libopc=`dirname \`which riscv-gcc\``/../`$ac_config_guess`/riscv/lib/libopcodes.a
-as_ac_File=`$as_echo "ac_cv_file_$libopc" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $libopc" >&5
-$as_echo_n "checking for $libopc... " >&6; }
-if eval \${$as_ac_File+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  test "$cross_compiling" = yes &&
-  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "$libopc"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-eval ac_res=\$$as_ac_File
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
 
-cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$libopc" | $as_tr_cpp` 1
-_ACEOF
-have_libopcodes="yes"
-else
-  have_libopcodes="no"
-fi
+    # Determine if there is a group with the same name
 
 
-libbfd="/opt/local/lib/libbfd.dylib"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing bfd_init" >&5
-$as_echo_n "checking for library containing bfd_init... " >&6; }
-if ${ac_cv_search_bfd_init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char bfd_init ();
-int
-main ()
-{
-return bfd_init ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' bfd; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_bfd_init=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_bfd_init+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_bfd_init+:} false; then :
+    # Create variations of the subproject name suitable for use as a CPP
+    # enabled define, a shell enabled variable, and a shell function
 
-else
-  ac_cv_search_bfd_init=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_bfd_init" >&5
-$as_echo "$ac_cv_search_bfd_init" >&6; }
-ac_res=$ac_cv_search_bfd_init
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-else
 
-    as_ac_File=`$as_echo "ac_cv_file_$libbfd" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $libbfd" >&5
-$as_echo_n "checking for $libbfd... " >&6; }
-if eval \${$as_ac_File+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  test "$cross_compiling" = yes &&
-  as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
-if test -r "$libbfd"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-eval ac_res=\$$as_ac_File
-              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
 
-cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$libbfd" | $as_tr_cpp` 1
-_ACEOF
-libopc="$libopc $libbfd" incopc="/opt/local/include"
-else
-  have_libopcodes="no"
-fi
 
 
-fi
 
 
-if test "$have_libopcodes" = "no"; then :
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find opcodes library" >&5
-$as_echo "$as_me: WARNING: Could not find opcodes library" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Build will not include disassembly support" >&5
-$as_echo "$as_me: WARNING: Build will not include disassembly support" >&2;}
 
-else
 
-  LIBS="$libopc $LIBS"
-  INCDIRS="-I$incopc"
+    # Add subproject to our running list
+
+    subprojects="$subprojects hwacha"
+
+    # Process the subproject appropriately. If enabled add it to the
+    # $enabled_subprojects running shell variable, set a
+    # SUBPROJECT_ENABLED C define, and include the appropriate
+    # 'subproject.ac'.
 
-$as_echo "#define RISCV_HAVE_LIBOPCODES /**/" >>confdefs.h
 
+      { $as_echo "$as_me:${as_lineno-$LINENO}: configuring default subproject : hwacha" >&5
+$as_echo "$as_me: configuring default subproject : hwacha" >&6;}
+      ac_config_files="$ac_config_files hwacha.mk:hwacha/hwacha.mk.in"
 
-fi
+      enable_hwacha_sproj="yes"
+      subprojects_enabled="$subprojects_enabled hwacha"
+
+$as_echo "#define HWACHA_ENABLED /**/" >>confdefs.h
 
 
 
@@ -4325,7 +4333,7 @@ $as_echo "#define SOFTFLOAT_ENABLED /**/" >>confdefs.h
 
     # Add subproject to our running list
 
-    subprojects="$subprojects softfloat_riscv"
+    subprojects="$subprojects spike"
 
     # Process the subproject appropriately. If enabled add it to the
     # $enabled_subprojects running shell variable, set a
@@ -4333,14 +4341,61 @@ $as_echo "#define SOFTFLOAT_ENABLED /**/" >>confdefs.h
     # 'subproject.ac'.
 
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: configuring default subproject : softfloat_riscv" >&5
-$as_echo "$as_me: configuring default subproject : softfloat_riscv" >&6;}
-      ac_config_files="$ac_config_files softfloat_riscv.mk:softfloat_riscv/softfloat_riscv.mk.in"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: configuring default subproject : spike" >&5
+$as_echo "$as_me: configuring default subproject : spike" >&6;}
+      ac_config_files="$ac_config_files spike.mk:spike/spike.mk.in"
+
+      enable_spike_sproj="yes"
+      subprojects_enabled="$subprojects_enabled spike"
+
+$as_echo "#define SPIKE_ENABLED /**/" >>confdefs.h
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_dl_dlopen=yes
+else
+  ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBDL 1
+_ACEOF
 
-      enable_softfloat_riscv_sproj="yes"
-      subprojects_enabled="$subprojects_enabled softfloat_riscv"
+  LIBS="-ldl $LIBS"
 
-$as_echo "#define SOFTFLOAT_RISCV_ENABLED /**/" >>confdefs.h
+else
+  as_fn_error $? "libdl is required" "$LINENO" 5
+fi
 
 
 
@@ -5076,8 +5131,9 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "riscv.mk") CONFIG_FILES="$CONFIG_FILES riscv.mk:riscv/riscv.mk.in" ;;
+    "hwacha.mk") CONFIG_FILES="$CONFIG_FILES hwacha.mk:hwacha/hwacha.mk.in" ;;
     "softfloat.mk") CONFIG_FILES="$CONFIG_FILES softfloat.mk:softfloat/softfloat.mk.in" ;;
-    "softfloat_riscv.mk") CONFIG_FILES="$CONFIG_FILES softfloat_riscv.mk:softfloat_riscv/softfloat_riscv.mk.in" ;;
+    "spike.mk") CONFIG_FILES="$CONFIG_FILES spike.mk:spike/spike.mk.in" ;;
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;