From 914050bc5a6454316406bcf6f0174436d978d250 Mon Sep 17 00:00:00 2001
From: Jeffrey Yasskin
Date: Tue, 9 Feb 2010 23:03:44 +0000
Subject: [PATCH] Make --disable-libffi work on systems with libffi installed.
Also make no-ffi the default even on systems with libffi. This fixes
http://llvm.org/PR5018.
llvm-svn: 95712
---
llvm/autoconf/configure.ac | 16 ++++++++--------
llvm/configure | 28 ++++++++++++++--------------
llvm/docs/ReleaseNotes.html | 6 +++++-
3 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/llvm/autoconf/configure.ac b/llvm/autoconf/configure.ac
index a534866b2000..40f77d828e2a 100644
--- a/llvm/autoconf/configure.ac
+++ b/llvm/autoconf/configure.ac
@@ -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
diff --git a/llvm/configure b/llvm/configure
index da18a768a880..88050f310cac 100755
--- a/llvm/configure
+++ b/llvm/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;
-else
- enableval=yes
-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
+ 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
+ esac
+else
+ llvm_cv_enable_libffi=no
+fi
+
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 <>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
diff --git a/llvm/docs/ReleaseNotes.html b/llvm/docs/ReleaseNotes.html
index c960f555ee6f..2a096b44ae79 100644
--- a/llvm/docs/ReleaseNotes.html
+++ b/llvm/docs/ReleaseNotes.html
@@ -604,7 +604,11 @@ on LLVM 2.6, this section lists some "gotchas" that you may run into upgrading
from the previous release.
-- ...
+- The LLVM interpreter now defaults to not using libffi 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 libffi,
+configure with --enable-libffi.
+