This commit is contained in:
Anthony Green
2009-12-25 21:52:28 -05:00
parent 1d04af52e3
commit 39c8792ece
30 changed files with 17754 additions and 219 deletions

View File

@@ -17,7 +17,7 @@ Index: libffi/ChangeLog.libffi
2009-10-11 Matthias Klose <doko@ubuntu.com>
* man/ffi_call.3: Fix #include in examples.
@@ -213,20 +224,20 @@
@@ -219,20 +230,20 @@
2008-12-22 Timothy Wall <twall@users.sf.net>
* testsuite/libffi.call/closure_fn0.c,

View File

@@ -1,7 +1,7 @@
Index: plibffi/ChangeLog.libffi
Index: libffi/ChangeLog.libffi
===================================================================
--- plibffi.orig/ChangeLog.libffi
+++ plibffi/ChangeLog.libffi
--- libffi.orig/ChangeLog.libffi
+++ libffi/ChangeLog.libffi
@@ -1,3 +1,19 @@
+2009-10-23 Frank Everdij <f.p.x.everdij@tudelft.nl>
+
@@ -19,13 +19,13 @@ Index: plibffi/ChangeLog.libffi
+ * src/mips/n32.S: Put '#ifdef linux' around '.abicalls' and '.eh_frame'
+ since they are Linux/GNU Assembler specific.
+
2009-10-27 Abdulaziz Ghuloum <aghuloum@gmail.com>
2009-12-25 Andreas Tobler <a.tobler@schweiz.org>
* configure.ac (FFI_MMAP_EXEC_WRIT): Define for snow
Index: plibffi/include/ffi.h.in
* fficonfig.h.in: Rebuilt again.
Index: libffi/include/ffi.h.in
===================================================================
--- plibffi.orig/include/ffi.h.in
+++ plibffi/include/ffi.h.in
--- libffi.orig/include/ffi.h.in
+++ libffi/include/ffi.h.in
@@ -256,7 +256,11 @@ typedef struct {
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
@@ -38,10 +38,10 @@ Index: plibffi/include/ffi.h.in
void *ffi_closure_alloc (size_t size, void **code);
void ffi_closure_free (void *);
Index: plibffi/include/ffi_common.h
Index: libffi/include/ffi_common.h
===================================================================
--- plibffi.orig/include/ffi_common.h
+++ plibffi/include/ffi_common.h
--- libffi.orig/include/ffi_common.h
+++ libffi/include/ffi_common.h
@@ -84,15 +84,21 @@ typedef struct
} extended_cif;
@@ -65,10 +65,10 @@ Index: plibffi/include/ffi_common.h
#else
typedef unsigned int UINT8 __attribute__((__mode__(__QI__)));
typedef signed int SINT8 __attribute__((__mode__(__QI__)));
Index: plibffi/src/mips/ffi.c
Index: libffi/src/mips/ffi.c
===================================================================
--- plibffi.orig/src/mips/ffi.c
+++ plibffi/src/mips/ffi.c
--- libffi.orig/src/mips/ffi.c
+++ libffi/src/mips/ffi.c
@@ -625,7 +625,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(v
{
rvalue_copy = alloca (8);
@@ -110,10 +110,10 @@ Index: plibffi/src/mips/ffi.c
if (arg_types[i]->type == FFI_TYPE_FLOAT && argn < 8)
avaluep[i] = ((char *) argp) + sizeof (float);
else
Index: plibffi/src/mips/ffitarget.h
Index: libffi/src/mips/ffitarget.h
===================================================================
--- plibffi.orig/src/mips/ffitarget.h
+++ plibffi/src/mips/ffitarget.h
--- libffi.orig/src/mips/ffitarget.h
+++ libffi/src/mips/ffitarget.h
@@ -28,7 +28,10 @@
#define LIBFFI_TARGET_H
@@ -164,10 +164,10 @@ Index: plibffi/src/mips/ffitarget.h
typedef enum ffi_abi {
FFI_FIRST_ABI = 0,
Index: plibffi/src/mips/n32.S
Index: libffi/src/mips/n32.S
===================================================================
--- plibffi.orig/src/mips/n32.S
+++ plibffi/src/mips/n32.S
--- libffi.orig/src/mips/n32.S
+++ libffi/src/mips/n32.S
@@ -40,7 +40,9 @@
#define SIZEOF_FRAME ( 8 * FFI_SIZEOF_ARG )

View File

@@ -2,7 +2,19 @@ Index: libffi/src/closures.c
===================================================================
--- libffi.orig/src/closures.c
+++ libffi/src/closures.c
@@ -214,6 +214,8 @@ static int dlmunmap(void *, size_t);
@@ -50,11 +50,6 @@
executable memory. */
# define FFI_MMAP_EXEC_WRIT 1
# endif
-# if defined(X86_64) && defined(__sun__) && defined(__svr4__)
-/* The data segment on 64-bit Solaris/x86 isn't executable, so use mmap
- instead. */
-# define FFI_MMAP_EXEC_WRIT 1
-# endif
#endif
#if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX
@@ -214,6 +209,8 @@ static int dlmunmap(void *, size_t);
#if !(defined(X86_WIN32) || defined(X86_WIN64)) || defined (__CYGWIN__)
@@ -11,7 +23,7 @@ Index: libffi/src/closures.c
/* A mutex used to synchronize access to *exec* variables in this file. */
static pthread_mutex_t open_temp_exec_file_mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -483,6 +485,27 @@ dlmmap (void *start, size_t length, int
@@ -483,6 +480,27 @@ dlmmap (void *start, size_t length, int
return dlmmap_locked (start, length, prot, flags, offset);
}
@@ -43,7 +55,13 @@ Index: libffi/ChangeLog.libffi
===================================================================
--- libffi.orig/ChangeLog.libffi
+++ libffi/ChangeLog.libffi
@@ -1,3 +1,11 @@
@@ -1,3 +1,17 @@
+2009-12-25 Andreas Tobler <a.tobler@schweiz.org>
+
+ * fficonfig.h.in: Rebuilt again.
+ * src/closures.c: Remove the FFI_MMAP_EXEC_WRIT definition for
+ Solaris/x86.
+
+2009-10-27 Abdulaziz Ghuloum <aghuloum@gmail.com>
+
+ * configure.ac (FFI_MMAP_EXEC_WRIT): Define for snow
@@ -59,15 +77,7 @@ Index: libffi/configure.ac
===================================================================
--- libffi.orig/configure.ac
+++ libffi/configure.ac
@@ -163,6 +163,7 @@ case "$host" in
esac
AC_SUBST(AM_RUNTESTFLAGS)
+AC_SUBST(AM_LTLDFLAGS)
if test $TARGETDIR = unknown; then
AC_MSG_ERROR(["libffi has not been ported to $host."])
@@ -274,6 +275,14 @@ if test x$TARGET = xX86 || test x$TARGET
@@ -274,6 +274,14 @@ if test x$TARGET = xX86 || test x$TARGET
fi
fi
@@ -86,132 +96,7 @@ Index: libffi/configure
===================================================================
--- libffi.orig/configure
+++ libffi/configure
@@ -847,6 +847,7 @@ SPARC_FALSE
SPARC_TRUE
MIPS_FALSE
MIPS_TRUE
+AM_LTLDFLAGS
AM_RUNTESTFLAGS
TESTSUBDIR_FALSE
TESTSUBDIR_TRUE
@@ -4772,13 +4773,13 @@ if test "${lt_cv_nm_interface+set}" = se
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:4775: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:4776: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:4778: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:4779: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:4781: output\"" >&5)
+ (eval echo "\"\$as_me:4782: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -5984,7 +5985,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 5987 "configure"' > conftest.$ac_ext
+ echo '#line 5988 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7837,11 +7838,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7840: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7841: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7844: \$? = $ac_status" >&5
+ echo "$as_me:7845: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8176,11 +8177,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8179: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8180: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8183: \$? = $ac_status" >&5
+ echo "$as_me:8184: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8281,11 +8282,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8284: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8285: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8288: \$? = $ac_status" >&5
+ echo "$as_me:8289: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8336,11 +8337,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8339: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8340: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8343: \$? = $ac_status" >&5
+ echo "$as_me:8344: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11139,7 +11140,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11142 "configure"
+#line 11143 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11235,7 +11236,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11238 "configure"
+#line 11239 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12184,6 +12185,8 @@ case "$host" in
;;
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
TARGET=X86_WIN32; TARGETDIR=x86
+ # All mingw/cygwin/win32 builds require this for sharedlib
+ AM_LTLDFLAGS="-no-undefined"
;;
i?86-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86
@@ -12263,6 +12266,7 @@ esac
+
if test $TARGETDIR = unknown; then
{ { $as_echo "$as_me:$LINENO: error: \"libffi has not been ported to $host.\"" >&5
$as_echo "$as_me: error: \"libffi has not been ported to $host.\"" >&2;}
@@ -14498,7 +14502,7 @@ _ACEOF
@@ -14498,7 +14498,7 @@ _ACEOF
fi
case "$target" in
@@ -220,3 +105,27 @@ Index: libffi/configure
cat >>confdefs.h <<\_ACEOF
#define FFI_MMAP_EXEC_WRIT 1
Index: libffi/fficonfig.h.in
===================================================================
--- libffi.orig/fficonfig.h.in
+++ libffi/fficonfig.h.in
@@ -17,6 +17,9 @@
/* Define this if you want extra debugging. */
#undef FFI_DEBUG
+/* Cannot use malloc on this target, so, we revert to alternative means */
+#undef FFI_MMAP_EXEC_WRIT
+
/* Define this is you do not want support for the raw API. */
#undef FFI_NO_RAW_API
@@ -122,9 +125,6 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
/* Define to the version of this package. */
#undef PACKAGE_VERSION

View File

@@ -39,3 +39,140 @@ Index: libffi/configure.ac
;;
i?86-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86
@@ -163,6 +165,7 @@ case "$host" in
esac
AC_SUBST(AM_RUNTESTFLAGS)
+AC_SUBST(AM_LTLDFLAGS)
if test $TARGETDIR = unknown; then
AC_MSG_ERROR(["libffi has not been ported to $host."])
Index: libffi/configure
===================================================================
--- libffi.orig/configure
+++ libffi/configure
@@ -847,6 +847,7 @@ SPARC_FALSE
SPARC_TRUE
MIPS_FALSE
MIPS_TRUE
+AM_LTLDFLAGS
AM_RUNTESTFLAGS
TESTSUBDIR_FALSE
TESTSUBDIR_TRUE
@@ -4772,13 +4773,13 @@ if test "${lt_cv_nm_interface+set}" = se
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:4775: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:4776: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:4778: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:4779: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:4781: output\"" >&5)
+ (eval echo "\"\$as_me:4782: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -5984,7 +5985,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 5987 "configure"' > conftest.$ac_ext
+ echo '#line 5988 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7837,11 +7838,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7840: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7841: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7844: \$? = $ac_status" >&5
+ echo "$as_me:7845: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8176,11 +8177,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8179: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8180: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8183: \$? = $ac_status" >&5
+ echo "$as_me:8184: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -8281,11 +8282,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8284: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8285: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8288: \$? = $ac_status" >&5
+ echo "$as_me:8289: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8336,11 +8337,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8339: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8340: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8343: \$? = $ac_status" >&5
+ echo "$as_me:8344: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -11139,7 +11140,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11142 "configure"
+#line 11143 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11235,7 +11236,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11238 "configure"
+#line 11239 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12184,6 +12185,8 @@ case "$host" in
;;
i?86-win32* | i?86-*-cygwin* | i?86-*-mingw*)
TARGET=X86_WIN32; TARGETDIR=x86
+ # All mingw/cygwin/win32 builds require this for sharedlib
+ AM_LTLDFLAGS="-no-undefined"
;;
i?86-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86
@@ -12263,6 +12266,7 @@ esac
+
if test $TARGETDIR = unknown; then
{ { $as_echo "$as_me:$LINENO: error: \"libffi has not been ported to $host.\"" >&5
$as_echo "$as_me: error: \"libffi has not been ported to $host.\"" >&2;}