Make --disable-libffi work on systems with libffi installed. Also
authorJeffrey Yasskin <jyasskin@google.com>
Tue, 9 Feb 2010 23:03:44 +0000 (23:03 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Tue, 9 Feb 2010 23:03:44 +0000 (23:03 +0000)
make no-ffi the default even on systems with libffi.  This fixes
http://llvm.org/PR5018.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95712 91177308-0d34-0410-b5e6-96231b3b80d8

autoconf/configure.ac
configure
docs/ReleaseNotes.html

index a534866b2000a37d51855fce1eacd3def9bd2d1d..40f77d828e2add6ae9bab3d436c9ad93ec622173 100644 (file)
@@ -727,13 +727,13 @@ fi
 
 dnl --enable-libffi : check whether the user wants to turn off libffi:
 AC_ARG_ENABLE(libffi,AS_HELP_STRING(
-  --enable-libffi,[Check for the presence of libffi (default is YES)]),,
-  enableval=yes)
-case "$enableval" in
-  yes) llvm_cv_enable_libffi="yes" ;;
-  no)  llvm_cv_enable_libffi="no"  ;;
-  *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;;
-esac
+  --enable-libffi,[Check for the presence of libffi (default is NO)]),
+  [case "$enableval" in
+    yes) llvm_cv_enable_libffi="yes" ;;
+    no)  llvm_cv_enable_libffi="no"  ;;
+    *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;;
+  esac],
+  llvm_cv_enable_libffi=no)
 
 dnl Only Windows needs dynamic libCompilerDriver to support plugins.
 if test "$llvm_cv_os_type" = "Win32" ; then
@@ -1021,7 +1021,7 @@ dnl libffi is optional; used to call external functions from the interpreter
 if test "$llvm_cv_enable_libffi" = "yes" ; then
   AC_SEARCH_LIBS(ffi_call,ffi,AC_DEFINE([HAVE_FFI_CALL],[1],
                  [Define if libffi is available on this platform.]),
-                 AC_MSG_WARN([libffi not found - disabling external calls from interpreter]))
+                 AC_MSG_ERROR([libffi not found - configure without --enable-libffi to compile without it]))
 fi
 
 dnl mallinfo is optional; the code can compile (minus features) without it
index da18a768a880effb57e98c296a0de4717d18dda5..88050f310cacc3ad4642728d7d03f5278d2e869c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1410,7 +1410,7 @@ Optional Features:
                           %a (default is YES)
   --enable-bindings       Build specific language bindings:
                           all,auto,none,{binding-name} (default=auto)
-  --enable-libffi         Check for the presence of libffi (default is YES)
+  --enable-libffi         Check for the presence of libffi (default is NO)
   --enable-llvmc-dynamic  Link LLVMC dynamically (default is NO, unless on
                           Win32)
   --enable-llvmc-dynamic-plugins
@@ -5203,18 +5203,17 @@ fi
 
 # Check whether --enable-libffi was given.
 if test "${enable_libffi+set}" = set; then
-  enableval=$enable_libffi;
+  enableval=$enable_libffi; case "$enableval" in
+    yes) llvm_cv_enable_libffi="yes" ;;
+    no)  llvm_cv_enable_libffi="no"  ;;
+    *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&5
+echo "$as_me: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&2;}
+   { (exit 1); exit 1; }; } ;;
+  esac
 else
-  enableval=yes
+  llvm_cv_enable_libffi=no
 fi
 
-case "$enableval" in
-  yes) llvm_cv_enable_libffi="yes" ;;
-  no)  llvm_cv_enable_libffi="no"  ;;
-  *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&5
-echo "$as_me: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
 
 if test "$llvm_cv_os_type" = "Win32" ; then
    llvmc_dynamic="yes"
@@ -11036,7 +11035,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 11039 "configure"
+#line 11038 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13371,8 +13370,9 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 else
-  { echo "$as_me:$LINENO: WARNING: libffi not found - disabling external calls from interpreter" >&5
-echo "$as_me: WARNING: libffi not found - disabling external calls from interpreter" >&2;}
+  { { echo "$as_me:$LINENO: error: libffi not found - configure without --enable-libffi to compile without it" >&5
+echo "$as_me: error: libffi not found - configure without --enable-libffi to compile without it" >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
 fi
index c960f555ee6fec9ed5bb969fefac55841448dd22..2a096b44ae79daff3ed2e0edce2abde2f0d5e99c 100644 (file)
@@ -604,7 +604,11 @@ on LLVM 2.6, this section lists some "gotchas" that you may run into upgrading
 from the previous release.</p>
 
 <ul>
-<li>...</li>
+<li>The LLVM interpreter now defaults to <em>not</em> using <tt>libffi</tt> even
+if you have it installed.  This makes it more likely that an LLVM built on one
+system will work when copied to a similar system.  To use <tt>libffi</tt>,
+configure with <tt>--enable-libffi</tt>.
+</li>
 </ul>