Require libdl for dynamic linking at runtime
authorAndrew Waterman <waterman@eecs.berkeley.edu>
Fri, 24 Jan 2014 09:35:13 +0000 (01:35 -0800)
committerAndrew Waterman <waterman@eecs.berkeley.edu>
Fri, 24 Jan 2014 09:35:13 +0000 (01:35 -0800)
config.h.in
configure
riscv/riscv.ac

index 43d6cec8c54162fddc4ed12ced7766791c9abfe0..9272c1b928270ecb1498d252c06c35833038912d 100644 (file)
@@ -1,5 +1,8 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* Define to 1 if you have the `dl' library (-ldl). */
+#undef HAVE_LIBDL
+
 /* Define to 1 if you have the `fesvr' library (-lfesvr). */
 #undef HAVE_LIBFESVR
 
index 9e22f3ca776f9ae6e862c973c5e94e5db61550e4..77eef2fb4e00343a3f88c2ae3cab7d2e9271cae7 100755 (executable)
--- a/configure
+++ b/configure
@@ -4081,13 +4081,61 @@ if test "${with_fesvr+set}" = set; then :
 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="-lfesvr -pthread $LIBS"
+LIBS="-lpthread  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -4129,13 +4177,13 @@ else
 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 "$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="-lfesvr  $LIBS"
+LIBS="-ldl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -4145,35 +4193,35 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 #ifdef __cplusplus
 extern "C"
 #endif
-char libfesvr_is_present ();
+char dlopen ();
 int
 main ()
 {
-return libfesvr_is_present ();
+return dlopen ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_fesvr_libfesvr_is_present=yes
+  ac_cv_lib_dl_dlopen=yes
 else
-  ac_cv_lib_fesvr_libfesvr_is_present=no
+  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_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 :
+{ $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_LIBFESVR 1
+#define HAVE_LIBDL 1
 _ACEOF
 
-  LIBS="-lfesvr $LIBS"
+  LIBS="-ldl $LIBS"
 
 else
-  as_fn_error $? "libfesvr is required" "$LINENO" 5
+  as_fn_error $? "libdl is required" "$LINENO" 5
 fi
 
 
index a65039b34cb6edb165556695449cf93656ed2324..b0b22827619ad9543449af4da20f8986bd18016b 100644 (file)
@@ -11,6 +11,8 @@ AC_CHECK_LIB(fesvr, libfesvr_is_present, [], [AC_MSG_ERROR([libfesvr is required
 
 AC_CHECK_LIB(pthread, pthread_create, [], [AC_MSG_ERROR([libpthread is required])])
 
+AC_CHECK_LIB(dl, dlopen, [], [AC_MSG_ERROR([libdl is required])])
+
 AC_ARG_ENABLE([fpu], AS_HELP_STRING([--disable-fpu], [Disable floating-point]))
 AS_IF([test "x$enable_fpu" != "xno"], [
   AC_DEFINE([RISCV_ENABLE_FPU],,[Define if floating-point instructions are supported])