Commit 8fda7586 authored by doko's avatar doko

- Issue #22176: Update the ctypes module's libffi to v3.1. This release

  adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
  architectures.
parent 20fd3028
...@@ -196,6 +196,13 @@ Library ...@@ -196,6 +196,13 @@ Library
- Issue #21323: Fix http.server to again handle scripts in CGI subdirectories, - Issue #21323: Fix http.server to again handle scripts in CGI subdirectories,
broken by the fix for security issue #19435. Patch by Zach Byrne. broken by the fix for security issue #19435. Patch by Zach Byrne.
Extension Modules
-----------------
- Issue #22176: Update the ctypes module's libffi to v3.1. This release
adds support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
architectures.
Build Build
----- -----
......
diff -r -N -u libffi.orig/autom4te.cache/output.0 libffi/autom4te.cache/output.0 diff -urN libffi-3.1/configure libffi/configure
diff -r -N -u libffi.orig/configure libffi/configure --- libffi-3.1/configure 2014-05-19 15:44:03.000000000 +0200
--- libffi.orig/configure 2013-03-17 15:37:50.000000000 -0700 +++ libffi/configure 2014-08-09 21:51:07.877871443 +0200
+++ libffi/configure 2013-03-18 15:11:39.611575163 -0700 @@ -17236,6 +17236,10 @@
@@ -13368,6 +13368,10 @@
fi fi
;; ;;
...@@ -13,22 +12,22 @@ diff -r -N -u libffi.orig/configure libffi/configure ...@@ -13,22 +12,22 @@ diff -r -N -u libffi.orig/configure libffi/configure
x86_64-*-darwin*) x86_64-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86 TARGET=X86_DARWIN; TARGETDIR=x86
;; ;;
@@ -13426,12 +13430,12 @@ @@ -17298,12 +17302,12 @@
;; ;;
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*) mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
- TARGET=MIPS; TARGETDIR=mips - TARGET=MIPS; TARGETDIR=mips
+ TARGET=MIPS_IRIX; TARGETDIR=mips + TARGET=MIPS_IRIX; TARGETDIR=mips
;; ;;
mips*-*-linux* | mips*-*-openbsd*) mips*-*linux* | mips*-*-openbsd*)
# Support 128-bit long double for NewABI. # Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)' HAVE_LONG_DOUBLE='defined(__mips64)'
- TARGET=MIPS; TARGETDIR=mips - TARGET=MIPS; TARGETDIR=mips
+ TARGET=MIPS_IRIX; TARGETDIR=mips + TARGET=MIPS_LINUX; TARGETDIR=mips
;; ;;
powerpc*-*-linux* | powerpc-*-sysv*) nios2*-linux*)
@@ -13491,7 +13495,7 @@ @@ -17373,7 +17377,7 @@
as_fn_error $? "\"libffi has not been ported to $host.\"" "$LINENO" 5 as_fn_error $? "\"libffi has not been ported to $host.\"" "$LINENO" 5
fi fi
...@@ -37,7 +36,7 @@ diff -r -N -u libffi.orig/configure libffi/configure ...@@ -37,7 +36,7 @@ diff -r -N -u libffi.orig/configure libffi/configure
MIPS_TRUE= MIPS_TRUE=
MIPS_FALSE='#' MIPS_FALSE='#'
else else
@@ -14862,6 +14866,12 @@ @@ -18814,6 +18818,12 @@
ac_config_files="$ac_config_files include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc" ac_config_files="$ac_config_files include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc"
...@@ -50,7 +49,7 @@ diff -r -N -u libffi.orig/configure libffi/configure ...@@ -50,7 +49,7 @@ diff -r -N -u libffi.orig/configure libffi/configure
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure # This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure # tests run on this system so they can be shared between configure
@@ -16047,6 +16057,8 @@ @@ -20126,6 +20136,8 @@
"testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
"libffi.pc") CONFIG_FILES="$CONFIG_FILES libffi.pc" ;; "libffi.pc") CONFIG_FILES="$CONFIG_FILES libffi.pc" ;;
...@@ -59,9 +58,9 @@ diff -r -N -u libffi.orig/configure libffi/configure ...@@ -59,9 +58,9 @@ diff -r -N -u libffi.orig/configure libffi/configure
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac esac
diff -r -N -u libffi.orig/configure.ac libffi/configure.ac diff -urN libffi-3.1/configure.ac libffi/configure.ac
--- libffi.orig/configure.ac 2013-03-17 15:37:50.000000000 -0700 --- libffi-3.1/configure.ac 2014-05-11 15:57:49.000000000 +0200
+++ libffi/configure.ac 2013-03-18 15:11:11.392989136 -0700 +++ libffi/configure.ac 2014-08-09 21:51:07.877871443 +0200
@@ -1,4 +1,7 @@ @@ -1,4 +1,7 @@
dnl Process this with autoconf to create configure dnl Process this with autoconf to create configure
+# +#
...@@ -70,33 +69,32 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac ...@@ -70,33 +69,32 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac
AC_PREREQ(2.68) AC_PREREQ(2.68)
@@ -146,6 +149,10 @@ @@ -144,6 +147,9 @@
fi AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
fi
;; ;;
+ i*86-*-nto-qnx*) + i*86-*-nto-qnx*)
+ TARGET=X86; TARGETDIR=x86 + TARGET=X86; TARGETDIR=x86
+ ;; + ;;
+ i?86-*-darwin*)
x86_64-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86 TARGET=X86_DARWIN; TARGETDIR=x86
;; ;;
@@ -204,12 +211,12 @@ @@ -218,12 +224,12 @@
;; ;;
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*) mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
- TARGET=MIPS; TARGETDIR=mips - TARGET=MIPS; TARGETDIR=mips
+ TARGET=MIPS_IRIX; TARGETDIR=mips + TARGET=MIPS_IRIX; TARGETDIR=mips
;; ;;
mips*-*-linux* | mips*-*-openbsd*) mips*-*linux* | mips*-*-openbsd*)
# Support 128-bit long double for NewABI. # Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)' HAVE_LONG_DOUBLE='defined(__mips64)'
- TARGET=MIPS; TARGETDIR=mips - TARGET=MIPS; TARGETDIR=mips
+ TARGET=MIPS_IRIX; TARGETDIR=mips + TARGET=MIPS_LINUX; TARGETDIR=mips
;; ;;
powerpc*-*-linux* | powerpc-*-sysv*) nios2*-linux*)
@@ -269,7 +276,7 @@ @@ -293,7 +299,7 @@
AC_MSG_ERROR(["libffi has not been ported to $host."]) AC_MSG_ERROR(["libffi has not been ported to $host."])
fi fi
...@@ -105,7 +103,7 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac ...@@ -105,7 +103,7 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac
AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN) AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN)
AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC) AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
AM_CONDITIONAL(X86, test x$TARGET = xX86) AM_CONDITIONAL(X86, test x$TARGET = xX86)
@@ -567,4 +574,8 @@ @@ -617,4 +623,8 @@
AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc) AC_CONFIG_FILES(include/Makefile include/ffi.h Makefile testsuite/Makefile man/Makefile libffi.pc)
...@@ -114,13 +112,13 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac ...@@ -114,13 +112,13 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac
+AC_CONFIG_FILES(fficonfig.py) +AC_CONFIG_FILES(fficonfig.py)
+ +
AC_OUTPUT AC_OUTPUT
--- libffi-3.0.11/fficonfig.py.in 1970-01-01 01:00:00.000000000 +0100 diff -urN libffi-3.1/fficonfig.py.in libffi/fficonfig.py.in
+++ libffi/fficonfig.py.in 2012-03-15 01:04:27.000000000 +0100 --- libffi-3.1/fficonfig.py.in 1970-01-01 01:00:00.000000000 +0100
+++ libffi/fficonfig.py.in 2014-08-09 21:43:25.229871827 +0200
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
+ffi_sources = """ +ffi_sources = """
+src/prep_cif.c +src/prep_cif.c
+src/closures.c +src/closures.c
+src/dlmalloc.c
+""".split() +""".split()
+ +
+ffi_platforms = { +ffi_platforms = {
...@@ -134,9 +132,10 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac ...@@ -134,9 +132,10 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac
+ 'IA64': ['src/ia64/ffi.c', 'src/ia64/unix.S'], + 'IA64': ['src/ia64/ffi.c', 'src/ia64/unix.S'],
+ 'M32R': ['src/m32r/sysv.S', 'src/m32r/ffi.c'], + 'M32R': ['src/m32r/sysv.S', 'src/m32r/ffi.c'],
+ 'M68K': ['src/m68k/ffi.c', 'src/m68k/sysv.S'], + 'M68K': ['src/m68k/ffi.c', 'src/m68k/sysv.S'],
+ 'POWERPC': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S', 'src/powerpc/linux64.S', 'src/powerpc/linux64_closure.S'], + 'POWERPC': ['src/powerpc/ffi.c', 'src/powerpc/ffi_sysv.c', 'src/powerpc/ffi_linux64.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S', 'src/powerpc/linux64.S', 'src/powerpc/linux64_closure.S'],
+ 'POWERPC_AIX': ['src/powerpc/ffi_darwin.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'], + 'POWERPC_AIX': ['src/powerpc/ffi_darwin.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'],
+ 'POWERPC_FREEBSD': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S'], + 'POWERPC_FREEBSD': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S'],
+ 'AARCH64': ['src/aarch64/sysv.S', 'src/aarch64/ffi.c'],
+ 'ARM': ['src/arm/sysv.S', 'src/arm/ffi.c'], + 'ARM': ['src/arm/sysv.S', 'src/arm/ffi.c'],
+ 'LIBFFI_CRIS': ['src/cris/sysv.S', 'src/cris/ffi.c'], + 'LIBFFI_CRIS': ['src/cris/sysv.S', 'src/cris/ffi.c'],
+ 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'], + 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'],
...@@ -152,9 +151,9 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac ...@@ -152,9 +151,9 @@ diff -r -N -u libffi.orig/configure.ac libffi/configure.ac
+ffi_sources += ffi_platforms['@TARGET@'] +ffi_sources += ffi_platforms['@TARGET@']
+ +
+ffi_cflags = '@CFLAGS@' +ffi_cflags = '@CFLAGS@'
diff -urN libffi-3.0.11/src/dlmalloc.c libffi/src/dlmalloc.c diff -urN libffi-3.1/src/dlmalloc.c libffi/src/dlmalloc.c
--- libffi-3.0.11/src/dlmalloc.c 2012-04-12 04:46:06.000000000 +0200 --- libffi-3.1/src/dlmalloc.c 2014-04-25 19:45:13.000000000 +0200
+++ libffi/src/dlmalloc.c 2012-06-26 15:15:58.949547461 +0200 +++ libffi/src/dlmalloc.c 2014-08-09 21:51:07.881871443 +0200
@@ -457,6 +457,11 @@ @@ -457,6 +457,11 @@
#define LACKS_ERRNO_H #define LACKS_ERRNO_H
#define MALLOC_FAILURE_ACTION #define MALLOC_FAILURE_ACTION
...@@ -167,25 +166,7 @@ diff -urN libffi-3.0.11/src/dlmalloc.c libffi/src/dlmalloc.c ...@@ -167,25 +166,7 @@ diff -urN libffi-3.0.11/src/dlmalloc.c libffi/src/dlmalloc.c
#endif /* WIN32 */ #endif /* WIN32 */
#ifdef __OS2__ #ifdef __OS2__
@@ -3393,7 +3393,7 @@ @@ -4497,7 +4502,7 @@
*ss = m->seg; /* Push current record */
m->seg.base = tbase;
m->seg.size = tsize;
- set_segment_flags(&m->seg, mmapped);
+ (void)set_segment_flags(&m->seg, mmapped);
m->seg.next = ss;
/* Insert trailing fenceposts */
@@ -3553,7 +3553,7 @@
if (!is_initialized(m)) { /* first-time initialization */
m->seg.base = m->least_addr = tbase;
m->seg.size = tsize;
- set_segment_flags(&m->seg, mmap_flag);
+ (void)set_segment_flags(&m->seg, mmap_flag);
m->magic = mparams.magic;
init_bins(m);
if (is_global(m))
@@ -4502,7 +4502,7 @@
char* tbase = (char*)(CALL_MMAP(tsize)); char* tbase = (char*)(CALL_MMAP(tsize));
if (tbase != CMFAIL) { if (tbase != CMFAIL) {
m = init_user_mstate(tbase, tsize); m = init_user_mstate(tbase, tsize);
...@@ -194,7 +175,7 @@ diff -urN libffi-3.0.11/src/dlmalloc.c libffi/src/dlmalloc.c ...@@ -194,7 +175,7 @@ diff -urN libffi-3.0.11/src/dlmalloc.c libffi/src/dlmalloc.c
set_lock(m, locked); set_lock(m, locked);
} }
} }
@@ -4517,7 +4517,7 @@ @@ -4512,7 +4517,7 @@
if (capacity > msize + TOP_FOOT_SIZE && if (capacity > msize + TOP_FOOT_SIZE &&
capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) { capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {
m = init_user_mstate((char*)base, capacity); m = init_user_mstate((char*)base, capacity);
......
.libs
.deps
*.o
*.lo
.dirstamp
*.la
Makefile
config.log
config.status
*~
fficonfig.h
include/ffi.h
include/ffitarget.h
libffi.pc
libtool
stamp-h1
libffi*gz
autom4te.cache
libffi.xcodeproj/xcuserdata
libffi.xcodeproj/project.xcworkspace
ios/
language: c
compiler:
- gcc
- clang
before_script: sudo apt-get install dejagnu
script: ./configure && make && make check
This diff is collapsed.
This diff is collapsed.
...@@ -2,7 +2,7 @@ The libffi version 1 ChangeLog archive. ...@@ -2,7 +2,7 @@ The libffi version 1 ChangeLog archive.
Version 1 of libffi had per-directory ChangeLogs. Current and future Version 1 of libffi had per-directory ChangeLogs. Current and future
versions have a single ChangeLog file in the root directory. The versions have a single ChangeLog file in the root directory. The
version 1 ChangeLogs have all been concatonated into this file for version 1 ChangeLogs have all been concatenated into this file for
future reference only. future reference only.
--- libffi ---------------------------------------------------------------- --- libffi ----------------------------------------------------------------
......
libffi - Copyright (c) 1996-2012 Anthony Green, Red Hat, Inc and others. libffi - Copyright (c) 1996-2014 Anthony Green, Red Hat, Inc and others.
See source files for details. See source files for details.
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
......
...@@ -6,10 +6,11 @@ ACLOCAL_AMFLAGS = -I m4 ...@@ -6,10 +6,11 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = include testsuite man SUBDIRS = include testsuite man
EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj \
src/aarch64/ffi.c src/aarch64/ffitarget.h src/aarch64/sysv.S \ src/aarch64/ffi.c src/aarch64/ffitarget.h src/aarch64/sysv.S \
build-ios.sh src/alpha/ffi.c src/alpha/osf.S \ src/alpha/ffi.c src/alpha/osf.S \
src/alpha/ffitarget.h src/arm/ffi.c src/arm/sysv.S \ src/alpha/ffitarget.h src/arc/ffi.c src/arc/arcompact.S \
src/arc/ffitarget.h src/arm/ffi.c src/arm/sysv.S \
src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \ src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \
src/avr32/ffitarget.h src/cris/ffi.c src/cris/sysv.S \ src/avr32/ffitarget.h src/cris/ffi.c src/cris/sysv.S \
src/cris/ffitarget.h src/ia64/ffi.c src/ia64/ffitarget.h \ src/cris/ffitarget.h src/ia64/ffi.c src/ia64/ffitarget.h \
...@@ -19,8 +20,12 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \ ...@@ -19,8 +20,12 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
src/moxie/ffitarget.h src/moxie/eabi.S src/mips/ffitarget.h \ src/moxie/ffitarget.h src/moxie/eabi.S src/mips/ffitarget.h \
src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \ src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \ src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
src/m88k/ffi.c src/m88k/obsd.S src/m88k/ffitarget.h \
src/microblaze/ffi.c src/microblaze/sysv.S \ src/microblaze/ffi.c src/microblaze/sysv.S \
src/microblaze/ffitarget.h src/powerpc/ffi.c \ src/microblaze/ffitarget.h \
src/nios2/ffi.c src/nios2/ffitarget.h src/nios2/sysv.S \
src/powerpc/ffi.c src/powerpc/ffi_powerpc.h \
src/powerpc/ffi_sysv.c src/powerpc/ffi_linux64.c \
src/powerpc/sysv.S src/powerpc/linux64.S \ src/powerpc/sysv.S src/powerpc/linux64.S \
src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \ src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \
src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \ src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \
...@@ -38,14 +43,14 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \ ...@@ -38,14 +43,14 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
src/bfin/ffitarget.h src/bfin/sysv.S src/frv/eabi.S \ src/bfin/ffitarget.h src/bfin/sysv.S src/frv/eabi.S \
src/frv/ffitarget.h src/dlmalloc.c src/tile/ffi.c \ src/frv/ffitarget.h src/dlmalloc.c src/tile/ffi.c \
src/tile/ffitarget.h src/tile/tile.S libtool-version \ src/tile/ffitarget.h src/tile/tile.S libtool-version \
src/vax/ffi.c src/vax/ffitarget.h src/vax/elfbsd.S \
src/xtensa/ffitarget.h src/xtensa/ffi.c src/xtensa/sysv.S \ src/xtensa/ffitarget.h src/xtensa/ffi.c src/xtensa/sysv.S \
ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \ ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \ m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
m4/ltversion.m4 src/arm/gentramp.sh src/debug.c msvcc.sh \ m4/ltversion.m4 src/arm/gentramp.sh src/debug.c msvcc.sh \
generate-ios-source-and-headers.py \ generate-darwin-source-and-headers.py \
generate-osx-source-and-headers.py \
libffi.xcodeproj/project.pbxproj src/arm/trampoline.S \ libffi.xcodeproj/project.pbxproj src/arm/trampoline.S \
libtool-ldflags libtool-ldflags ChangeLog.libffi-3.1
info_TEXINFOS = doc/libffi.texi info_TEXINFOS = doc/libffi.texi
...@@ -59,39 +64,39 @@ info_TEXINFOS = doc/libffi.texi ...@@ -59,39 +64,39 @@ info_TEXINFOS = doc/libffi.texi
# values defined in terms of make variables, as is the case for CC and # values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile. # friends when we are called from the top level Makefile.
AM_MAKEFLAGS = \ AM_MAKEFLAGS = \
"AR_FLAGS=$(AR_FLAGS)" \ 'AR_FLAGS=$(AR_FLAGS)' \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \ 'CC_FOR_BUILD=$(CC_FOR_BUILD)' \
"CFLAGS=$(CFLAGS)" \ 'CFLAGS=$(CFLAGS)' \
"CXXFLAGS=$(CXXFLAGS)" \ 'CXXFLAGS=$(CXXFLAGS)' \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ 'CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)' \
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ 'CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)' \
"INSTALL=$(INSTALL)" \ 'INSTALL=$(INSTALL)' \
"INSTALL_DATA=$(INSTALL_DATA)" \ 'INSTALL_DATA=$(INSTALL_DATA)' \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ 'INSTALL_PROGRAM=$(INSTALL_PROGRAM)' \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ 'INSTALL_SCRIPT=$(INSTALL_SCRIPT)' \
"JC1FLAGS=$(JC1FLAGS)" \ 'JC1FLAGS=$(JC1FLAGS)' \
"LDFLAGS=$(LDFLAGS)" \ 'LDFLAGS=$(LDFLAGS)' \
"LIBCFLAGS=$(LIBCFLAGS)" \ 'LIBCFLAGS=$(LIBCFLAGS)' \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ 'LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)' \
"MAKE=$(MAKE)" \ 'MAKE=$(MAKE)' \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ 'MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)' \
"PICFLAG=$(PICFLAG)" \ 'PICFLAG=$(PICFLAG)' \
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ 'PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)' \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \ 'RUNTESTFLAGS=$(RUNTESTFLAGS)' \
"SHELL=$(SHELL)" \ 'SHELL=$(SHELL)' \
"exec_prefix=$(exec_prefix)" \ 'exec_prefix=$(exec_prefix)' \
"infodir=$(infodir)" \ 'infodir=$(infodir)' \
"libdir=$(libdir)" \ 'libdir=$(libdir)' \
"mandir=$(mandir)" \ 'mandir=$(mandir)' \
"prefix=$(prefix)" \ 'prefix=$(prefix)' \
"AR=$(AR)" \ 'AR=$(AR)' \
"AS=$(AS)" \ 'AS=$(AS)' \
"CC=$(CC)" \ 'CC=$(CC)' \
"CXX=$(CXX)" \ 'CXX=$(CXX)' \
"LD=$(LD)" \ 'LD=$(LD)' \
"NM=$(NM)" \ 'NM=$(NM)' \
"RANLIB=$(RANLIB)" \ 'RANLIB=$(RANLIB)' \
"DESTDIR=$(DESTDIR)" 'DESTDIR=$(DESTDIR)'
# Subdir rules rely on $(FLAGS_TO_PASS) # Subdir rules rely on $(FLAGS_TO_PASS)
FLAGS_TO_PASS = $(AM_MAKEFLAGS) FLAGS_TO_PASS = $(AM_MAKEFLAGS)
...@@ -120,10 +125,10 @@ if BFIN ...@@ -120,10 +125,10 @@ if BFIN
nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
endif endif
if X86 if X86
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S src/x86/win32.S
endif endif
if X86_FREEBSD if X86_FREEBSD
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S src/x86/win32.S
endif endif
if X86_WIN32 if X86_WIN32
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
...@@ -133,6 +138,9 @@ nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S ...@@ -133,6 +138,9 @@ nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
endif endif
if X86_DARWIN if X86_DARWIN
nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
if X86_DARWIN32
nodist_libffi_la_SOURCES += src/x86/win32.S
endif
endif endif
if SPARC if SPARC
nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
...@@ -149,14 +157,20 @@ endif ...@@ -149,14 +157,20 @@ endif
if M68K if M68K
nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
endif endif
if M88K
nodist_libffi_la_SOURCES += src/m88k/ffi.c src/m88k/obsd.S
endif
if MOXIE if MOXIE
nodist_libffi_la_SOURCES += src/moxie/ffi.c src/moxie/eabi.S nodist_libffi_la_SOURCES += src/moxie/ffi.c src/moxie/eabi.S
endif endif
if MICROBLAZE if MICROBLAZE
nodist_libffi_la_SOURCES += src/microblaze/ffi.c src/microblaze/sysv.S nodist_libffi_la_SOURCES += src/microblaze/ffi.c src/microblaze/sysv.S
endif endif
if NIOS2
nodist_libffi_la_SOURCES += src/nios2/sysv.S src/nios2/ffi.c
endif
if POWERPC if POWERPC
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/ffi_linux64.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
endif endif
if POWERPC_AIX if POWERPC_AIX
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
...@@ -165,11 +179,14 @@ if POWERPC_DARWIN ...@@ -165,11 +179,14 @@ if POWERPC_DARWIN
nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
endif endif
if POWERPC_FREEBSD if POWERPC_FREEBSD
nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
endif endif
if AARCH64 if AARCH64
nodist_libffi_la_SOURCES += src/aarch64/sysv.S src/aarch64/ffi.c nodist_libffi_la_SOURCES += src/aarch64/sysv.S src/aarch64/ffi.c
endif endif
if ARC
nodist_libffi_la_SOURCES += src/arc/arcompact.S src/arc/ffi.c
endif
if ARM if ARM
nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
if FFI_EXEC_TRAMPOLINE_TABLE if FFI_EXEC_TRAMPOLINE_TABLE
...@@ -212,14 +229,26 @@ endif ...@@ -212,14 +229,26 @@ endif
if METAG if METAG
nodist_libffi_la_SOURCES += src/metag/sysv.S src/metag/ffi.c nodist_libffi_la_SOURCES += src/metag/sysv.S src/metag/ffi.c
endif endif
if VAX
nodist_libffi_la_SOURCES += src/vax/elfbsd.S src/vax/ffi.c
endif
libffi_convenience_la_SOURCES = $(libffi_la_SOURCES) libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES) nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/libtool-ldflags $(LDFLAGS)) LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/libtool-ldflags $(LDFLAGS))
AM_CFLAGS =
if FFI_DEBUG
# Build debug. Define FFI_DEBUG on the commandline so that, when building with
# MSVC, it can link against the debug CRT.
AM_CFLAGS += -DFFI_DEBUG
endif
libffi_la_LDFLAGS = -no-undefined -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS) libffi_la_LDFLAGS = -no-undefined -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
AM_CCASFLAGS = $(AM_CPPFLAGS) AM_CCASFLAGS = $(AM_CPPFLAGS)
dist-hook:
if [ -d $(top_srcdir)/.git ] ; then (cd $(top_srcdir); git log --no-decorate) ; else echo 'See git log for history.' ; fi > $(distdir)/ChangeLog
This diff is collapsed.
Status Status
====== ======
libffi-3.0.13 was released on March 17, 2013. Check the libffi web libffi-3.1 was released on May 19, 2014. Check the libffi web page
page for updates: <URL:http://sourceware.org/libffi/>. for updates: <URL:http://sourceware.org/libffi/>.
What is libffi? What is libffi?
...@@ -43,7 +43,7 @@ Libffi has been ported to many different platforms. ...@@ -43,7 +43,7 @@ Libffi has been ported to many different platforms.
For specific configuration details and testing status, please For specific configuration details and testing status, please
refer to the wiki page here: refer to the wiki page here:
http://www.moxielogic.org/wiki/index.php?title=Libffi_3.0.13 http://www.moxielogic.org/wiki/index.php?title=Libffi_3.1
At the time of release, the following basic configurations have been At the time of release, the following basic configurations have been
tested: tested:
...@@ -51,9 +51,11 @@ tested: ...@@ -51,9 +51,11 @@ tested:
|-----------------+------------------+-------------------------| |-----------------+------------------+-------------------------|
| Architecture | Operating System | Compiler | | Architecture | Operating System | Compiler |
|-----------------+------------------+-------------------------| |-----------------+------------------+-------------------------|
| AArch64 (ARM64) | iOS | Clang |
| AArch64 | Linux | GCC | | AArch64 | Linux | GCC |
| Alpha | Linux | GCC | | Alpha | Linux | GCC |
| Alpha | Tru64 | GCC | | Alpha | Tru64 | GCC |
| ARC | Linux | GCC |
| ARM | Linux | GCC | | ARM | Linux | GCC |
| ARM | iOS | GCC | | ARM | iOS | GCC |
| AVR32 | Linux | GCC | | AVR32 | Linux | GCC |
...@@ -61,15 +63,17 @@ tested: ...@@ -61,15 +63,17 @@ tested:
| HPPA | HPUX | GCC | | HPPA | HPUX | GCC |
| IA-64 | Linux | GCC | | IA-64 | Linux | GCC |
| M68K | FreeMiNT | GCC | | M68K | FreeMiNT | GCC |
| M68K | Linux | GCC | | M68K | Linux | GCC |
| M68K | RTEMS | GCC | | M68K | RTEMS | GCC |
| M88K | OpenBSD/mvme88k | GCC |
| Meta | Linux | GCC | | Meta | Linux | GCC |
| MicroBlaze | Linux | GCC | | MicroBlaze | Linux | GCC |
| MIPS | IRIX | GCC | | MIPS | IRIX | GCC |
| MIPS | Linux | GCC | | MIPS | Linux | GCC |
| MIPS | RTEMS | GCC | | MIPS | RTEMS | GCC |
| MIPS64 | Linux | GCC | | MIPS64 | Linux | GCC |
| Moxie | Bare metal | GCC | Moxie | Bare metal | GCC |
| Nios II | Linux | GCC |
| PowerPC 32-bit | AIX | IBM XL C | | PowerPC 32-bit | AIX | IBM XL C |
| PowerPC 64-bit | AIX | IBM XL C | | PowerPC 64-bit | AIX | IBM XL C |
| PowerPC | AMIGA | GCC | | PowerPC | AMIGA | GCC |
...@@ -77,7 +81,8 @@ tested: ...@@ -77,7 +81,8 @@ tested:
| PowerPC | Mac OSX | GCC | | PowerPC | Mac OSX | GCC |
| PowerPC | FreeBSD | GCC | | PowerPC | FreeBSD | GCC |
| PowerPC 64-bit | FreeBSD | GCC | | PowerPC 64-bit | FreeBSD | GCC |
| PowerPC 64-bit | Linux | GCC | | PowerPC 64-bit | Linux ELFv1 | GCC |
| PowerPC 64-bit | Linux ELFv2 | GCC |
| S390 | Linux | GCC | | S390 | Linux | GCC |
| S390X | Linux | GCC | | S390X | Linux | GCC |
| SPARC | Linux | GCC | | SPARC | Linux | GCC |
...@@ -87,6 +92,7 @@ tested: ...@@ -87,6 +92,7 @@ tested:
| SPARC64 | FreeBSD | GCC | | SPARC64 | FreeBSD | GCC |
| SPARC64 | Solaris | Oracle Solaris Studio C | | SPARC64 | Solaris | Oracle Solaris Studio C |
| TILE-Gx/TILEPro | Linux | GCC | | TILE-Gx/TILEPro | Linux | GCC |
| VAX | OpenBSD/vax | GCC |
| X86 | FreeBSD | GCC | | X86 | FreeBSD | GCC |
| X86 | GNU HURD | GCC | | X86 | GNU HURD | GCC |
| X86 | Interix | GCC | | X86 | Interix | GCC |
...@@ -120,6 +126,9 @@ system. Go to the directory you wish to build libffi in and run the ...@@ -120,6 +126,9 @@ system. Go to the directory you wish to build libffi in and run the
"configure" program found in the root directory of the libffi source "configure" program found in the root directory of the libffi source
distribution. distribution.
If you're building libffi directly from version control, configure won't
exist yet; run ./autogen.sh first.
You may want to tell configure where to install the libffi library and You may want to tell configure where to install the libffi library and
header files. To do that, use the --prefix configure switch. Libffi header files. To do that, use the --prefix configure switch. Libffi
will install under /usr/local by default. will install under /usr/local by default.
...@@ -137,13 +146,16 @@ It's also possible to build libffi on Windows platforms with ...@@ -137,13 +146,16 @@ It's also possible to build libffi on Windows platforms with
Microsoft's Visual C++ compiler. In this case, use the msvcc.sh Microsoft's Visual C++ compiler. In this case, use the msvcc.sh
wrapper script during configuration like so: wrapper script during configuration like so:
path/to/configure CC=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\" path/to/configure CC=path/to/msvcc.sh CXX=path/to/msvcc.sh LD=link CPP=\"cl -nologo -EP\"
For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64" and
CXX="path/to/msvcc.sh -m64". You may also need to specify --build
appropriately.
For 64-bit Windows builds, use CC="path/to/msvcc.sh -m64". When building with MSVC under a MingW environment, you may need to
You may also need to specify --build appropriately. When building with MSVC remove the line in configure that sets 'fix_srcfile_path' to a 'cygpath'
under a MingW environment, you may need to remove the line in configure command. ('cygpath' is not present in MingW, and is not required when
that sets 'fix_srcfile_path' to a 'cygpath' command. ('cygpath' is not using MingW-style paths.)
present in MingW, and is not required when using MingW-style paths.)
For iOS builds, the 'libffi.xcodeproj' Xcode project is available. For iOS builds, the 'libffi.xcodeproj' Xcode project is available.
...@@ -161,7 +173,20 @@ To install the library and header files, type "make install". ...@@ -161,7 +173,20 @@ To install the library and header files, type "make install".
History History
======= =======
See the ChangeLog files for details. See the git log for details at http://github.com/atgreen/libffi.
3.1 May-19-14
Add AArch64 (ARM64) iOS support.
Add Nios II support.
Add m88k and DEC VAX support.
Add support for stdcall, thiscall, and fastcall on non-Windows
32-bit x86 targets such as Linux.
Various Android, MIPS N32, x86, FreeBSD and UltraSPARC IIi
fixes.
Make the testsuite more robust: eliminate several spurious
failures, and respect the $CC and $CXX environment variables.
Archive off the manually maintained ChangeLog in favor of git
log.
3.0.13 Mar-17-13 3.0.13 Mar-17-13
Add Meta support. Add Meta support.
...@@ -187,7 +212,6 @@ See the ChangeLog files for details. ...@@ -187,7 +212,6 @@ See the ChangeLog files for details.
3.0.11 Apr-11-12 3.0.11 Apr-11-12
Lots of build fixes. Lots of build fixes.
Add Amiga newer MacOS support.
Add support for variadic functions (ffi_prep_cif_var). Add support for variadic functions (ffi_prep_cif_var).
Add Linux/x32 support. Add Linux/x32 support.
Add thiscall, fastcall and MSVC cdecl support on Windows. Add thiscall, fastcall and MSVC cdecl support on Windows.
...@@ -339,7 +363,7 @@ See the ChangeLog files for details. ...@@ -339,7 +363,7 @@ See the ChangeLog files for details.
Authors & Credits Authors & Credits
================= =================
libffi was originally written by Anthony Green <green@redhat.com>. libffi was originally written by Anthony Green <green@moxielogic.com>.
The developers of the GNU Compiler Collection project have made The developers of the GNU Compiler Collection project have made
innumerable valuable contributions. See the ChangeLog file for innumerable valuable contributions. See the ChangeLog file for
...@@ -363,10 +387,12 @@ frv Anthony Green ...@@ -363,10 +387,12 @@ frv Anthony Green
ia64 Hans Boehm ia64 Hans Boehm
m32r Kazuhiro Inaoka m32r Kazuhiro Inaoka
m68k Andreas Schwab m68k Andreas Schwab
m88k Miod Vallat
microblaze Nathan Rossi microblaze Nathan Rossi
mips Anthony Green, Casey Marshall mips Anthony Green, Casey Marshall
mips64 David Daney mips64 David Daney
moxie Anthony Green moxie Anthony Green
nios ii Sandra Loosemore
pa Randolph Chung, Dave Anglin, Andreas Tobler pa Randolph Chung, Dave Anglin, Andreas Tobler
powerpc Geoffrey Keating, Andreas Tobler, powerpc Geoffrey Keating, Andreas Tobler,
David Edelsohn, John Hornkvist David Edelsohn, John Hornkvist
...@@ -376,6 +402,7 @@ sh Kaz Kojima ...@@ -376,6 +402,7 @@ sh Kaz Kojima
sh64 Kaz Kojima sh64 Kaz Kojima
sparc Anthony Green, Gordon Irlam sparc Anthony Green, Gordon Irlam
tile-gx/tilepro Walter Lee tile-gx/tilepro Walter Lee
vax Miod Vallat
x86 Anthony Green, Jon Beniston x86 Anthony Green, Jon Beniston
x86-64 Bo Thorsen x86-64 Bo Thorsen
xtensa Chris Zankel xtensa Chris Zankel
......
This diff is collapsed.
#!/bin/sh
PLATFORM_IOS=/Developer/Platforms/iPhoneOS.platform/
PLATFORM_IOS_SIM=/Developer/Platforms/iPhoneSimulator.platform/
SDK_IOS_VERSION="4.2"
MIN_IOS_VERSION="3.0"
OUTPUT_DIR="universal-ios"
build_target () {
local platform=$1
local sdk=$2
local arch=$3
local triple=$4
local builddir=$5
mkdir -p "${builddir}"
pushd "${builddir}"
export CC="${platform}"/Developer/usr/bin/gcc-4.2
export CFLAGS="-arch ${arch} -isysroot ${sdk} -miphoneos-version-min=${MIN_IOS_VERSION}"
../configure --host=${triple} && make
popd
}
# Build all targets
build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv6 arm-apple-darwin10 armv6-ios
build_target "${PLATFORM_IOS}" "${PLATFORM_IOS}/Developer/SDKs/iPhoneOS${SDK_IOS_VERSION}.sdk/" armv7 arm-apple-darwin10 armv7-ios
build_target "${PLATFORM_IOS_SIM}" "${PLATFORM_IOS_SIM}/Developer/SDKs/iPhoneSimulator${SDK_IOS_VERSION}.sdk/" i386 i386-apple-darwin10 i386-ios-sim
# Create universal output directories
mkdir -p "${OUTPUT_DIR}"
mkdir -p "${OUTPUT_DIR}/include"
mkdir -p "${OUTPUT_DIR}/include/armv6"
mkdir -p "${OUTPUT_DIR}/include/armv7"
mkdir -p "${OUTPUT_DIR}/include/i386"
# Create the universal binary
lipo -create armv6-ios/.libs/libffi.a armv7-ios/.libs/libffi.a i386-ios-sim/.libs/libffi.a -output "${OUTPUT_DIR}/libffi.a"
# Copy in the headers
copy_headers () {
local src=$1
local dest=$2
# Fix non-relative header reference
sed 's/<ffitarget.h>/"ffitarget.h"/' < "${src}/include/ffi.h" > "${dest}/ffi.h"
cp "${src}/include/ffitarget.h" "${dest}"
}
copy_headers armv6-ios "${OUTPUT_DIR}/include/armv6"
copy_headers armv7-ios "${OUTPUT_DIR}/include/armv7"
copy_headers i386-ios-sim "${OUTPUT_DIR}/include/i386"
# Create top-level header
(
cat << EOF
#ifdef __arm__
#include <arm/arch.h>
#ifdef _ARM_ARCH_6
#include "include/armv6/ffi.h"
#elif _ARM_ARCH_7
#include "include/armv7/ffi.h"
#endif
#elif defined(__i386__)
#include "include/i386/ffi.h"
#endif
EOF
) > "${OUTPUT_DIR}/ffi.h"
#! /bin/sh #! /bin/sh
# Wrapper for compilers which do not understand `-c -o'. # Wrapper for compilers which do not understand '-c -o'.
scriptversion=2009-10-06.20; # UTC scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software # Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>. # Written by Tom Tromey <tromey@cygnus.com>.
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
...@@ -29,21 +28,224 @@ scriptversion=2009-10-06.20; # UTC ...@@ -29,21 +28,224 @@ scriptversion=2009-10-06.20; # UTC
# bugs to <bug-automake@gnu.org> or send patches to # bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>. # <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in case $1 in
'') '')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2 echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1; exit 1;
;; ;;
-h | --h*) -h | --h*)
cat <<\EOF cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS] Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'. Wrapper for compilers which do not understand '-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected. arguments, and rename the output as expected.
If you are trying to build a whole package this is not the If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'. right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>. Report bugs to <bug-automake@gnu.org>.
EOF EOF
...@@ -53,11 +255,13 @@ EOF ...@@ -53,11 +255,13 @@ EOF
echo "compile $scriptversion" echo "compile $scriptversion"
exit $? exit $?
;; ;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac esac
ofile= ofile=
cfile= cfile=
eat=
for arg for arg
do do
...@@ -66,8 +270,8 @@ do ...@@ -66,8 +270,8 @@ do
else else
case $1 in case $1 in
-o) -o)
# configure might choose to run compile as `compile cc -o foo foo.c'. # configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object. # So we strip '-o arg' only if arg is an object.
eat=1 eat=1
case $2 in case $2 in
*.o | *.obj) *.o | *.obj)
...@@ -94,10 +298,10 @@ do ...@@ -94,10 +298,10 @@ do
done done
if test -z "$ofile" || test -z "$cfile"; then if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a # If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a # pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no # normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also # '.c' file was seen then we are probably linking. That is also
# ok. # ok.
exec "$@" exec "$@"
fi fi
...@@ -106,7 +310,7 @@ fi ...@@ -106,7 +310,7 @@ fi
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory. # Create the lock directory.
# Note: use `[/\\:.-]' here to ensure that we don't use the same name # Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected # that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build. # object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
......
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright 1992-2013 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012, 2013 Free Software Foundation, Inc.
timestamp='2012-12-29' timestamp='2013-06-10'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
...@@ -26,7 +24,7 @@ timestamp='2012-12-29' ...@@ -26,7 +24,7 @@ timestamp='2012-12-29'
# program. This Exception is an additional permission under section 7 # program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3"). # of the GNU General Public License, version 3 ("GPLv3").
# #
# Originally written by Per Bothner. # Originally written by Per Bothner.
# #
# You can get the latest version of this script from: # You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
...@@ -52,9 +50,7 @@ version="\ ...@@ -52,9 +50,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, Copyright 1992-2013 Free Software Foundation, Inc.
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012, 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
...@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown ...@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
case "${UNAME_SYSTEM}" in
Linux|GNU|GNU/*)
# If the system lacks a compiler, then just pick glibc.
# We could probably try harder.
LIBC=gnu
eval $set_cc_for_build
cat <<-EOF > $dummy.c
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
LIBC=gnu
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
;;
esac
# Note: order is significant - the case branches are not exclusive. # Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
...@@ -857,21 +874,21 @@ EOF ...@@ -857,21 +874,21 @@ EOF
exit ;; exit ;;
*:GNU:*:*) *:GNU:*:*)
# the GNU system # the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;; exit ;;
*:GNU/*:*:*) *:GNU/*:*:*)
# other systems with GNU libc and userland # other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;; exit ;;
i*86:Minix:*:*) i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix echo ${UNAME_MACHINE}-pc-minix
exit ;; exit ;;
aarch64:Linux:*:*) aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
aarch64_be:Linux:*:*) aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
alpha:Linux:*:*) alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
...@@ -884,59 +901,54 @@ EOF ...@@ -884,59 +901,54 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;; EV68*) UNAME_MACHINE=alphaev68 ;;
esac esac
objdump --private-headers /bin/sh | grep -q ld.so.1 objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arc:Linux:*:* | arceb:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
arm*:Linux:*:*) arm*:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__ | grep -q __ARM_EABI__
then then
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP | grep -q __ARM_PCS_VFP
then then
echo ${UNAME_MACHINE}-unknown-linux-gnueabi echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
else else
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
fi fi
fi fi
exit ;; exit ;;
avr32*:Linux:*:*) avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
cris:Linux:*:*) cris:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;; exit ;;
crisv32:Linux:*:*) crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;; exit ;;
frv:Linux:*:*) frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
hexagon:Linux:*:*) hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
i*86:Linux:*:*) i*86:Linux:*:*)
LIBC=gnu echo ${UNAME_MACHINE}-pc-linux-${LIBC}
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;; exit ;;
ia64:Linux:*:*) ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
m32r*:Linux:*:*) m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
m68*:Linux:*:*) m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
mips:Linux:*:* | mips64:Linux:*:*) mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build eval $set_cc_for_build
...@@ -955,54 +967,63 @@ EOF ...@@ -955,54 +967,63 @@ EOF
#endif #endif
EOF EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;; ;;
or1k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
or32:Linux:*:*) or32:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
padre:Linux:*:*) padre:Linux:*:*)
echo sparc-unknown-linux-gnu echo sparc-unknown-linux-${LIBC}
exit ;; exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*) parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu echo hppa64-unknown-linux-${LIBC}
exit ;; exit ;;
parisc:Linux:*:* | hppa:Linux:*:*) parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level # Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;; PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
*) echo hppa-unknown-linux-gnu ;; *) echo hppa-unknown-linux-${LIBC} ;;
esac esac
exit ;; exit ;;
ppc64:Linux:*:*) ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu echo powerpc64-unknown-linux-${LIBC}
exit ;; exit ;;
ppc:Linux:*:*) ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu echo powerpc-unknown-linux-${LIBC}
exit ;;
ppc64le:Linux:*:*)
echo powerpc64le-unknown-linux-${LIBC}
exit ;;
ppcle:Linux:*:*)
echo powerpcle-unknown-linux-${LIBC}
exit ;; exit ;;
s390:Linux:*:* | s390x:Linux:*:*) s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;; exit ;;
sh64*:Linux:*:*) sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
sh*:Linux:*:*) sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*) sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
tile*:Linux:*:*) tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
vax:Linux:*:*) vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;; exit ;;
x86_64:Linux:*:*) x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
xtensa*:Linux:*:*) xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
i*86:DYNIX/ptx:4*:*) i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
...@@ -1235,19 +1256,21 @@ EOF ...@@ -1235,19 +1256,21 @@ EOF
exit ;; exit ;;
*:Darwin:*:*) *:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in eval $set_cc_for_build
i386) if test "$UNAME_PROCESSOR" = unknown ; then
eval $set_cc_for_build UNAME_PROCESSOR=powerpc
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then fi
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
grep IS_64BIT_ARCH >/dev/null (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
then grep IS_64BIT_ARCH >/dev/null
UNAME_PROCESSOR="x86_64" then
fi case $UNAME_PROCESSOR in
fi ;; i386) UNAME_PROCESSOR=x86_64 ;;
unknown) UNAME_PROCESSOR=powerpc ;; powerpc) UNAME_PROCESSOR=powerpc64 ;;
esac esac
fi
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;; exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*) *:procnto*:*:* | *:QNX:[0123456789]*:*)
......
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # Copyright 1992-2013 Free Software Foundation, Inc.
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012, 2013 Free Software Foundation, Inc.
timestamp='2012-12-29' timestamp='2013-04-24'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
...@@ -70,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>." ...@@ -70,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, Copyright 1992-2013 Free Software Foundation, Inc.
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012, 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
...@@ -256,7 +252,7 @@ case $basic_machine in ...@@ -256,7 +252,7 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \ | am33_2.0 \
| arc \ | arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \ | avr | avr32 \
| be32 | be64 \ | be32 | be64 \
...@@ -290,16 +286,17 @@ case $basic_machine in ...@@ -290,16 +286,17 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \ | mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \ | mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \ | mipstx39 | mipstx39el \
| mn10200 | mn10300 \ | mn10200 | mn10300 \
| moxie \ | moxie \
| mt \ | mt \
| msp430 \ | msp430 \
| nds32 | nds32le | nds32be \ | nds32 | nds32le | nds32be \
| nios | nios2 \ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \ | ns16k | ns32k \
| open8 \ | open8 \
| or32 \ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \ | pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \ | pyramid \
...@@ -369,7 +366,7 @@ case $basic_machine in ...@@ -369,7 +366,7 @@ case $basic_machine in
| aarch64-* | aarch64_be-* \ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \ | avr-* | avr32-* \
| be32-* | be64-* \ | be32-* | be64-* \
...@@ -407,12 +404,13 @@ case $basic_machine in ...@@ -407,12 +404,13 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \ | mipstx39-* | mipstx39el-* \
| mmix-* \ | mmix-* \
| mt-* \ | mt-* \
| msp430-* \ | msp430-* \
| nds32-* | nds32le-* | nds32be-* \ | nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \ | none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \ | open8-* \
| orion-* \ | orion-* \
...@@ -1008,7 +1006,7 @@ case $basic_machine in ...@@ -1008,7 +1006,7 @@ case $basic_machine in
;; ;;
ppc64) basic_machine=powerpc64-unknown ppc64) basic_machine=powerpc64-unknown
;; ;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;; ;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little) ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown basic_machine=powerpc64le-unknown
...@@ -1354,7 +1352,7 @@ case $os in ...@@ -1354,7 +1352,7 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* \ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
...@@ -1500,9 +1498,6 @@ case $os in ...@@ -1500,9 +1498,6 @@ case $os in
-aros*) -aros*)
os=-aros os=-aros
;; ;;
-kaos*)
os=-kaos
;;
-zvmoe) -zvmoe)
os=-zvmoe os=-zvmoe
;; ;;
...@@ -1594,6 +1589,9 @@ case $basic_machine in ...@@ -1594,6 +1589,9 @@ case $basic_machine in
mips*-*) mips*-*)
os=-elf os=-elf
;; ;;
or1k-*)
os=-elf
;;
or32-*) or32-*)
os=-coff os=-coff
;; ;;
......
This diff is collapsed.
...@@ -5,13 +5,17 @@ dnl Process this with autoconf to create configure ...@@ -5,13 +5,17 @@ dnl Process this with autoconf to create configure
AC_PREREQ(2.68) AC_PREREQ(2.68)
AC_INIT([libffi], [3.0.13], [http://github.com/atgreen/libffi/issues]) AC_INIT([libffi], [3.1], [http://github.com/atgreen/libffi/issues])
AC_CONFIG_HEADERS([fficonfig.h]) AC_CONFIG_HEADERS([fficonfig.h])
AC_CANONICAL_SYSTEM AC_CANONICAL_SYSTEM
target_alias=${target_alias-$host_alias} target_alias=${target_alias-$host_alias}
. ${srcdir}/configure.host case "${host}" in
frv*-elf)
LDFLAGS=`echo $LDFLAGS | sed "s/\-B[^ ]*libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/
;;
esac
AX_ENABLE_BUILDDIR AX_ENABLE_BUILDDIR
...@@ -28,6 +32,7 @@ m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) ...@@ -28,6 +32,7 @@ m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS])
m4_define([_AC_ARG_VAR_PRECIOUS],[]) m4_define([_AC_ARG_VAR_PRECIOUS],[])
save_CFLAGS=$CFLAGS save_CFLAGS=$CFLAGS
AC_PROG_CC AC_PROG_CC
AC_PROG_CXX
CFLAGS=$save_CFLAGS CFLAGS=$save_CFLAGS
m4_undefine([_AC_ARG_VAR_PRECIOUS]) m4_undefine([_AC_ARG_VAR_PRECIOUS])
m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
...@@ -52,12 +57,12 @@ fi ...@@ -52,12 +57,12 @@ fi
if test "x$GCC" = "xyes"; then if test "x$GCC" = "xyes"; then
CFLAGS="$CFLAGS -fexceptions" CFLAGS="$CFLAGS -fexceptions"
touch local.exp fi
else
cat > local.exp <<EOF cat > local.exp <<EOF
set CC_FOR_TARGET "$CC" set CC_FOR_TARGET "$CC"
set CXX_FOR_TARGET "$CXX"
EOF EOF
fi
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
...@@ -69,6 +74,7 @@ dnl The -no-testsuite modules omit the test subdir. ...@@ -69,6 +74,7 @@ dnl The -no-testsuite modules omit the test subdir.
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite) AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
TARGETDIR="unknown" TARGETDIR="unknown"
HAVE_LONG_DOUBLE_VARIANT=0
case "$host" in case "$host" in
aarch64*-*-*) aarch64*-*-*)
TARGET=AARCH64; TARGETDIR=aarch64 TARGET=AARCH64; TARGETDIR=aarch64
...@@ -80,6 +86,10 @@ case "$host" in ...@@ -80,6 +86,10 @@ case "$host" in
HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)' HAVE_LONG_DOUBLE='defined(__LONG_DOUBLE_128__)'
;; ;;
arc*-*-*)
TARGET=ARC; TARGETDIR=arc
;;
arm*-*-*) arm*-*-*)
TARGET=ARM; TARGETDIR=arm TARGET=ARM; TARGETDIR=arm
;; ;;
...@@ -137,6 +147,9 @@ case "$host" in ...@@ -137,6 +147,9 @@ case "$host" in
AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"';
fi fi
;; ;;
i*86-*-nto-qnx*)
TARGET=X86; TARGETDIR=x86
;;
i?86-*-darwin*) i?86-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86 TARGET=X86_DARWIN; TARGETDIR=x86
;; ;;
...@@ -149,10 +162,6 @@ case "$host" in ...@@ -149,10 +162,6 @@ case "$host" in
fi fi
;; ;;
i*86-*-nto-qnx*)
TARGET=X86; TARGETDIR=x86
;;
x86_64-*-darwin*) x86_64-*-darwin*)
TARGET=X86_DARWIN; TARGETDIR=x86 TARGET=X86_DARWIN; TARGETDIR=x86
;; ;;
...@@ -198,6 +207,10 @@ case "$host" in ...@@ -198,6 +207,10 @@ case "$host" in
TARGET=M68K; TARGETDIR=m68k TARGET=M68K; TARGETDIR=m68k
;; ;;
m88k-*-*)
TARGET=M88K; TARGETDIR=m88k
;;
microblaze*-*-*) microblaze*-*-*)
TARGET=MICROBLAZE; TARGETDIR=microblaze TARGET=MICROBLAZE; TARGETDIR=microblaze
;; ;;
...@@ -213,14 +226,19 @@ case "$host" in ...@@ -213,14 +226,19 @@ case "$host" in
mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*) mips-sgi-irix5.* | mips-sgi-irix6.* | mips*-*-rtems*)
TARGET=MIPS_IRIX; TARGETDIR=mips TARGET=MIPS_IRIX; TARGETDIR=mips
;; ;;
mips*-*-linux* | mips*-*-openbsd*) mips*-*linux* | mips*-*-openbsd*)
# Support 128-bit long double for NewABI. # Support 128-bit long double for NewABI.
HAVE_LONG_DOUBLE='defined(__mips64)' HAVE_LONG_DOUBLE='defined(__mips64)'
TARGET=MIPS_IRIX; TARGETDIR=mips TARGET=MIPS_LINUX; TARGETDIR=mips
;;
nios2*-linux*)
TARGET=NIOS2; TARGETDIR=nios2
;; ;;
powerpc*-*-linux* | powerpc-*-sysv*) powerpc*-*-linux* | powerpc-*-sysv*)
TARGET=POWERPC; TARGETDIR=powerpc TARGET=POWERPC; TARGETDIR=powerpc
HAVE_LONG_DOUBLE_VARIANT=1
;; ;;
powerpc-*-amigaos*) powerpc-*-amigaos*)
TARGET=POWERPC; TARGETDIR=powerpc TARGET=POWERPC; TARGETDIR=powerpc
...@@ -236,6 +254,7 @@ case "$host" in ...@@ -236,6 +254,7 @@ case "$host" in
;; ;;
powerpc-*-freebsd* | powerpc-*-openbsd*) powerpc-*-freebsd* | powerpc-*-openbsd*)
TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc TARGET=POWERPC_FREEBSD; TARGETDIR=powerpc
HAVE_LONG_DOUBLE_VARIANT=1
;; ;;
powerpc64-*-freebsd*) powerpc64-*-freebsd*)
TARGET=POWERPC; TARGETDIR=powerpc TARGET=POWERPC; TARGETDIR=powerpc
...@@ -263,6 +282,10 @@ case "$host" in ...@@ -263,6 +282,10 @@ case "$host" in
TARGET=TILE; TARGETDIR=tile TARGET=TILE; TARGETDIR=tile
;; ;;
vax-*-*)
TARGET=VAX; TARGETDIR=vax
;;
xtensa*-*) xtensa*-*)
TARGET=XTENSA; TARGETDIR=xtensa TARGET=XTENSA; TARGETDIR=xtensa
;; ;;
...@@ -284,18 +307,23 @@ AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD) ...@@ -284,18 +307,23 @@ AM_CONDITIONAL(X86_FREEBSD, test x$TARGET = xX86_FREEBSD)
AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32) AM_CONDITIONAL(X86_WIN32, test x$TARGET = xX86_WIN32)
AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64) AM_CONDITIONAL(X86_WIN64, test x$TARGET = xX86_WIN64)
AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN) AM_CONDITIONAL(X86_DARWIN, test x$TARGET = xX86_DARWIN)
AM_CONDITIONAL(X86_DARWIN32, test x$TARGET = xX86_DARWIN && test $ac_cv_sizeof_size_t = 4)
AM_CONDITIONAL(X86_DARWIN64, test x$TARGET = xX86_DARWIN && test $ac_cv_sizeof_size_t = 8)
AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA) AM_CONDITIONAL(ALPHA, test x$TARGET = xALPHA)
AM_CONDITIONAL(IA64, test x$TARGET = xIA64) AM_CONDITIONAL(IA64, test x$TARGET = xIA64)
AM_CONDITIONAL(M32R, test x$TARGET = xM32R) AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
AM_CONDITIONAL(M68K, test x$TARGET = xM68K) AM_CONDITIONAL(M68K, test x$TARGET = xM68K)
AM_CONDITIONAL(M88K, test x$TARGET = xM88K)
AM_CONDITIONAL(MICROBLAZE, test x$TARGET = xMICROBLAZE) AM_CONDITIONAL(MICROBLAZE, test x$TARGET = xMICROBLAZE)
AM_CONDITIONAL(METAG, test x$TARGET = xMETAG) AM_CONDITIONAL(METAG, test x$TARGET = xMETAG)
AM_CONDITIONAL(MOXIE, test x$TARGET = xMOXIE) AM_CONDITIONAL(MOXIE, test x$TARGET = xMOXIE)
AM_CONDITIONAL(NIOS2, test x$TARGET = xNIOS2)
AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC) AM_CONDITIONAL(POWERPC, test x$TARGET = xPOWERPC)
AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX) AM_CONDITIONAL(POWERPC_AIX, test x$TARGET = xPOWERPC_AIX)
AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN) AM_CONDITIONAL(POWERPC_DARWIN, test x$TARGET = xPOWERPC_DARWIN)
AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD) AM_CONDITIONAL(POWERPC_FREEBSD, test x$TARGET = xPOWERPC_FREEBSD)
AM_CONDITIONAL(AARCH64, test x$TARGET = xAARCH64) AM_CONDITIONAL(AARCH64, test x$TARGET = xAARCH64)
AM_CONDITIONAL(ARC, test x$TARGET = xARC)
AM_CONDITIONAL(ARM, test x$TARGET = xARM) AM_CONDITIONAL(ARM, test x$TARGET = xARM)
AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32) AM_CONDITIONAL(AVR32, test x$TARGET = xAVR32)
AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS) AM_CONDITIONAL(LIBFFI_CRIS, test x$TARGET = xLIBFFI_CRIS)
...@@ -308,6 +336,7 @@ AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX) ...@@ -308,6 +336,7 @@ AM_CONDITIONAL(PA_LINUX, test x$TARGET = xPA_LINUX)
AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX) AM_CONDITIONAL(PA_HPUX, test x$TARGET = xPA_HPUX)
AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX) AM_CONDITIONAL(PA64_HPUX, test x$TARGET = xPA64_HPUX)
AM_CONDITIONAL(TILE, test x$TARGET = xTILE) AM_CONDITIONAL(TILE, test x$TARGET = xTILE)
AM_CONDITIONAL(VAX, test x$TARGET = xVAX)
AM_CONDITIONAL(XTENSA, test x$TARGET = xXTENSA) AM_CONDITIONAL(XTENSA, test x$TARGET = xXTENSA)
AC_HEADER_STDC AC_HEADER_STDC
...@@ -320,14 +349,20 @@ AC_CHECK_SIZEOF(long double) ...@@ -320,14 +349,20 @@ AC_CHECK_SIZEOF(long double)
# Also AC_SUBST this variable for ffi.h. # Also AC_SUBST this variable for ffi.h.
if test -z "$HAVE_LONG_DOUBLE"; then if test -z "$HAVE_LONG_DOUBLE"; then
HAVE_LONG_DOUBLE=0 HAVE_LONG_DOUBLE=0
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then if test $ac_cv_sizeof_long_double != 0; then
if test $ac_cv_sizeof_long_double != 0; then if test $HAVE_LONG_DOUBLE_VARIANT != 0; then
AC_DEFINE(HAVE_LONG_DOUBLE_VARIANT, 1, [Define if you support more than one size of the long double type])
HAVE_LONG_DOUBLE=1 HAVE_LONG_DOUBLE=1
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double]) else
if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then
HAVE_LONG_DOUBLE=1
AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the long double type and it is bigger than a double])
fi
fi fi
fi fi
fi fi
AC_SUBST(HAVE_LONG_DOUBLE) AC_SUBST(HAVE_LONG_DOUBLE)
AC_SUBST(HAVE_LONG_DOUBLE_VARIANT)
AC_C_BIGENDIAN AC_C_BIGENDIAN
...@@ -413,11 +448,9 @@ AC_ARG_ENABLE(pax_emutramp, ...@@ -413,11 +448,9 @@ AC_ARG_ENABLE(pax_emutramp,
[Define this if you want to enable pax emulated trampolines]) [Define this if you want to enable pax emulated trampolines])
fi) fi)
if test x$TARGET = xX86_WIN64; then LT_SYS_SYMBOL_USCORE
LT_SYS_SYMBOL_USCORE if test "x$sys_symbol_underscore" = xyes; then
if test "x$sys_symbol_underscore" = xyes; then AC_DEFINE(SYMBOL_UNDERSCORE, 1, [Define if symbols are underscored.])
AC_DEFINE(SYMBOL_UNDERSCORE, 1, [Define if symbols are underscored.])
fi
fi fi
FFI_EXEC_TRAMPOLINE_TABLE=0 FFI_EXEC_TRAMPOLINE_TABLE=0
...@@ -438,12 +471,28 @@ AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1) ...@@ -438,12 +471,28 @@ AM_CONDITIONAL(FFI_EXEC_TRAMPOLINE_TABLE, test x$FFI_EXEC_TRAMPOLINE_TABLE = x1)
AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE) AC_SUBST(FFI_EXEC_TRAMPOLINE_TABLE)
if test x$TARGET = xX86_64; then if test x$TARGET = xX86_64; then
AC_CACHE_CHECK([assembler supports unwind section type], AC_CACHE_CHECK([toolchain supports unwind section type],
libffi_cv_as_x86_64_unwind_section_type, [ libffi_cv_as_x86_64_unwind_section_type, [
libffi_cv_as_x86_64_unwind_section_type=yes cat > conftest1.s << EOF
echo '.section .eh_frame,"a",@unwind' > conftest.s .text
if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then .globl foo
libffi_cv_as_x86_64_unwind_section_type=no foo:
jmp bar
.section .eh_frame,"a",@unwind
bar:
EOF
cat > conftest2.c << EOF
extern void foo();
int main(){foo();}
EOF
libffi_cv_as_x86_64_unwind_section_type=no
# we ensure that we can compile _and_ link an assembly file containing an @unwind section
# since the compiler can support it and not the linker (ie old binutils)
if $CC -Wa,--fatal-warnings $CFLAGS -c conftest1.s > /dev/null 2>&1 && \
$CC conftest2.c conftest1.o > /dev/null 2>&1 ; then
libffi_cv_as_x86_64_unwind_section_type=yes
fi fi
]) ])
if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then
...@@ -526,14 +575,14 @@ AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes") ...@@ -526,14 +575,14 @@ AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
AC_ARG_ENABLE(structs, AC_ARG_ENABLE(structs,
[ --disable-structs omit code for struct support], [ --disable-structs omit code for struct support],
if test "$enable_structs" = "no"; then if test "$enable_structs" = "no"; then
AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this is you do not want support for aggregate types.]) AC_DEFINE(FFI_NO_STRUCTS, 1, [Define this if you do not want support for aggregate types.])
fi) fi)
AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes") AM_CONDITIONAL(FFI_DEBUG, test "$enable_debug" = "yes")
AC_ARG_ENABLE(raw-api, AC_ARG_ENABLE(raw-api,
[ --disable-raw-api make the raw api unavailable], [ --disable-raw-api make the raw api unavailable],
if test "$enable_raw_api" = "no"; then if test "$enable_raw_api" = "no"; then
AC_DEFINE(FFI_NO_RAW_API, 1, [Define this is you do not want support for the raw API.]) AC_DEFINE(FFI_NO_RAW_API, 1, [Define this if you do not want support for the raw API.])
fi) fi)
AC_ARG_ENABLE(purify-safety, AC_ARG_ENABLE(purify-safety,
...@@ -553,7 +602,7 @@ if test "x$GCC" = "xyes"; then ...@@ -553,7 +602,7 @@ if test "x$GCC" = "xyes"; then
toolexecdir='$(libdir)/gcc-lib/$(target_alias)' toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
toolexeclibdir='$(libdir)' toolexeclibdir='$(libdir)'
fi fi
multi_os_directory=`$CC -print-multi-os-directory` multi_os_directory=`$CC $CFLAGS -print-multi-os-directory`
case $multi_os_directory in case $multi_os_directory in
.) ;; # Avoid trailing /. .) ;; # Avoid trailing /.
../*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; ../*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
......
# configure.host
#
# This shell script handles all host based configuration for libffi.
#
# THIS TABLE IS SORTED. KEEP IT THAT WAY.
case "${host}" in
frv*-elf)
LDFLAGS=`echo $LDFLAGS | sed "s/\-B[^ ]*libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/
;;
esac
This diff is collapsed.
This diff is collapsed.
...@@ -184,11 +184,11 @@ This calls the function @var{fn} according to the description given in ...@@ -184,11 +184,11 @@ This calls the function @var{fn} according to the description given in
@var{rvalue} is a pointer to a chunk of memory that will hold the @var{rvalue} is a pointer to a chunk of memory that will hold the
result of the function call. This must be large enough to hold the result of the function call. This must be large enough to hold the
result and must be suitably aligned; it is the caller's responsibility result, no smaller than the system register size (generally 32 or 64
bits), and must be suitably aligned; it is the caller's responsibility
to ensure this. If @var{cif} declares that the function returns to ensure this. If @var{cif} declares that the function returns
@code{void} (using @code{ffi_type_void}), then @var{rvalue} is @code{void} (using @code{ffi_type_void}), then @var{rvalue} is
ignored. If @var{rvalue} is @samp{NULL}, then the return value is ignored.
discarded.
@var{avalues} is a vector of @code{void *} pointers that point to the @var{avalues} is a vector of @code{void *} pointers that point to the
memory locations holding the argument values for a call. If @var{cif} memory locations holding the argument values for a call. If @var{cif}
...@@ -214,7 +214,7 @@ int main() ...@@ -214,7 +214,7 @@ int main()
ffi_type *args[1]; ffi_type *args[1];
void *values[1]; void *values[1];
char *s; char *s;
int rc; ffi_arg rc;
/* Initialize the argument info vectors */ /* Initialize the argument info vectors */
args[0] = &ffi_type_pointer; args[0] = &ffi_type_pointer;
...@@ -222,7 +222,7 @@ int main() ...@@ -222,7 +222,7 @@ int main()
/* Initialize the cif */ /* Initialize the cif */
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
&ffi_type_uint, args) == FFI_OK) &ffi_type_sint, args) == FFI_OK)
@{ @{
s = "Hello World!"; s = "Hello World!";
ffi_call(&cif, puts, &rc, values); ffi_call(&cif, puts, &rc, values);
...@@ -414,6 +414,7 @@ Here is the corresponding code to describe this struct to ...@@ -414,6 +414,7 @@ Here is the corresponding code to describe this struct to
int i; int i;
tm_type.size = tm_type.alignment = 0; tm_type.size = tm_type.alignment = 0;
tm_type.type = FFI_TYPE_STRUCT;
tm_type.elements = &tm_type_elements; tm_type.elements = &tm_type_elements;
for (i = 0; i < 9; i++) for (i = 0; i < 9; i++)
...@@ -533,28 +534,30 @@ writable and executable addresses. ...@@ -533,28 +534,30 @@ writable and executable addresses.
@section Closure Example @section Closure Example
A trivial example that creates a new @code{puts} by binding A trivial example that creates a new @code{puts} by binding
@code{fputs} with @code{stdin}. @code{fputs} with @code{stdout}.
@example @example
#include <stdio.h> #include <stdio.h>
#include <ffi.h> #include <ffi.h>
/* Acts like puts with the file given at time of enclosure. */ /* Acts like puts with the file given at time of enclosure. */
void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[], void puts_binding(ffi_cif *cif, void *ret, void* args[],
FILE *stream) void *stream)
@{ @{
*ret = fputs(*(char **)args[0], stream); *(ffi_arg *)ret = fputs(*(char **)args[0], (FILE *)stream);
@} @}
typedef int (*puts_t)(char *);
int main() int main()
@{ @{
ffi_cif cif; ffi_cif cif;
ffi_type *args[1]; ffi_type *args[1];
ffi_closure *closure; ffi_closure *closure;
int (*bound_puts)(char *); void *bound_puts;
int rc; int rc;
/* Allocate closure and bound_puts */ /* Allocate closure and bound_puts */
closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts); closure = ffi_closure_alloc(sizeof(ffi_closure), &bound_puts);
...@@ -565,13 +568,13 @@ int main() ...@@ -565,13 +568,13 @@ int main()
/* Initialize the cif */ /* Initialize the cif */
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
&ffi_type_uint, args) == FFI_OK) &ffi_type_sint, args) == FFI_OK)
@{ @{
/* Initialize the closure, setting stream to stdout */ /* Initialize the closure, setting stream to stdout */
if (ffi_prep_closure_loc(closure, &cif, puts_binding, if (ffi_prep_closure_loc(closure, &cif, puts_binding,
stdout, bound_puts) == FFI_OK) stdout, bound_puts) == FFI_OK)
@{ @{
rc = bound_puts("Hello World!"); rc = ((puts_t)bound_puts)("Hello World!");
/* rc now holds the result of the call to fputs */ /* rc now holds the result of the call to fputs */
@} @}
@} @}
......
@set UPDATED 16 March 2013 @set UPDATED 25 April 2014
@set UPDATED-MONTH March 2013 @set UPDATED-MONTH April 2014
@set EDITION 3.0.13 @set EDITION 3.1
@set VERSION 3.0.13 @set VERSION 3.1
@set UPDATED 16 March 2013 @set UPDATED 25 April 2014
@set UPDATED-MONTH March 2013 @set UPDATED-MONTH April 2014
@set EDITION 3.0.13 @set EDITION 3.1
@set VERSION 3.0.13 @set VERSION 3.1
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
/* Cannot use malloc on this target, so, we revert to alternative means */ /* Cannot use malloc on this target, so, we revert to alternative means */
#undef FFI_MMAP_EXEC_WRIT #undef FFI_MMAP_EXEC_WRIT
/* Define this is you do not want support for the raw API. */ /* Define this if you do not want support for the raw API. */
#undef FFI_NO_RAW_API #undef FFI_NO_RAW_API
/* Define this is you do not want support for aggregate types. */ /* Define this if you do not want support for aggregate types. */
#undef FFI_NO_STRUCTS #undef FFI_NO_STRUCTS
/* Define to 1 if you have `alloca', as a function or macro. */ /* Define to 1 if you have `alloca', as a function or macro. */
...@@ -73,6 +73,9 @@ ...@@ -73,6 +73,9 @@
/* Define if you have the long double type and it is bigger than a double */ /* Define if you have the long double type and it is bigger than a double */
#undef HAVE_LONG_DOUBLE #undef HAVE_LONG_DOUBLE
/* Define if you support more than one size of the long double type */
#undef HAVE_LONG_DOUBLE_VARIANT
/* Define to 1 if you have the `memcpy' function. */ /* Define to 1 if you have the `memcpy' function. */
#undef HAVE_MEMCPY #undef HAVE_MEMCPY
...@@ -118,8 +121,7 @@ ...@@ -118,8 +121,7 @@
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H #undef HAVE_UNISTD_H
/* Define to the sub-directory in which libtool stores uninstalled libraries. /* Define to the sub-directory where libtool stores uninstalled libraries. */
*/
#undef LT_OBJDIR #undef LT_OBJDIR
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
...@@ -152,6 +154,9 @@ ...@@ -152,6 +154,9 @@
/* The size of `long double', as computed by sizeof. */ /* The size of `long double', as computed by sizeof. */
#undef SIZEOF_LONG_DOUBLE #undef SIZEOF_LONG_DOUBLE
/* The size of `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T
/* If using the C implementation of alloca, define if you know the /* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be direction of stack growth for your system; otherwise it will be
automatically deduced at runtime. automatically deduced at runtime.
......
...@@ -14,9 +14,10 @@ ffi_platforms = { ...@@ -14,9 +14,10 @@ ffi_platforms = {
'IA64': ['src/ia64/ffi.c', 'src/ia64/unix.S'], 'IA64': ['src/ia64/ffi.c', 'src/ia64/unix.S'],
'M32R': ['src/m32r/sysv.S', 'src/m32r/ffi.c'], 'M32R': ['src/m32r/sysv.S', 'src/m32r/ffi.c'],
'M68K': ['src/m68k/ffi.c', 'src/m68k/sysv.S'], 'M68K': ['src/m68k/ffi.c', 'src/m68k/sysv.S'],
'POWERPC': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S', 'src/powerpc/linux64.S', 'src/powerpc/linux64_closure.S'], 'POWERPC': ['src/powerpc/ffi.c', 'src/powerpc/ffi_sysv.c', 'src/powerpc/ffi_linux64.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S', 'src/powerpc/linux64.S', 'src/powerpc/linux64_closure.S'],
'POWERPC_AIX': ['src/powerpc/ffi_darwin.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'], 'POWERPC_AIX': ['src/powerpc/ffi_darwin.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'],
'POWERPC_FREEBSD': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S'], 'POWERPC_FREEBSD': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S'],
'AARCH64': ['src/aarch64/sysv.S', 'src/aarch64/ffi.c'],
'ARM': ['src/arm/sysv.S', 'src/arm/ffi.c'], 'ARM': ['src/arm/sysv.S', 'src/arm/ffi.c'],
'LIBFFI_CRIS': ['src/cris/sysv.S', 'src/cris/ffi.c'], 'LIBFFI_CRIS': ['src/cris/sysv.S', 'src/cris/ffi.c'],
'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'], 'FRV': ['src/frv/eabi.S', 'src/frv/ffi.c'],
......
This diff is collapsed.
This diff is collapsed.
...@@ -221,6 +221,11 @@ typedef struct { ...@@ -221,6 +221,11 @@ typedef struct {
#endif #endif
} ffi_cif; } ffi_cif;
#if HAVE_LONG_DOUBLE_VARIANT
/* Used to adjust size/alignment of ffi types. */
void ffi_prep_types (ffi_abi abi);
# endif
/* Used internally, but overridden by some architectures */ /* Used internally, but overridden by some architectures */
ffi_status ffi_prep_cif_core(ffi_cif *cif, ffi_status ffi_prep_cif_core(ffi_cif *cif,
ffi_abi abi, ffi_abi abi,
......
/* ----------------------------------------------------------------------- /* -----------------------------------------------------------------------
ffi_common.h - Copyright (C) 2011, 2012 Anthony Green ffi_common.h - Copyright (C) 2011, 2012, 2013 Anthony Green
Copyright (C) 2007 Free Software Foundation, Inc Copyright (C) 2007 Free Software Foundation, Inc
Copyright (c) 1996 Red Hat, Inc. Copyright (c) 1996 Red Hat, Inc.
...@@ -19,10 +19,14 @@ extern "C" { ...@@ -19,10 +19,14 @@ extern "C" {
/* Do not move this. Some versions of AIX are very picky about where /* Do not move this. Some versions of AIX are very picky about where
this is positioned. */ this is positioned. */
#ifdef __GNUC__ #ifdef __GNUC__
/* mingw64 defines this already in malloc.h. */ # if HAVE_ALLOCA_H
#ifndef alloca # include <alloca.h>
# define alloca __builtin_alloca # else
#endif /* mingw64 defines this already in malloc.h. */
# ifndef alloca
# define alloca __builtin_alloca
# endif
# endif
# define MAYBE_UNUSED __attribute__((__unused__)) # define MAYBE_UNUSED __attribute__((__unused__))
#else #else
# define MAYBE_UNUSED # define MAYBE_UNUSED
...@@ -30,17 +34,17 @@ extern "C" { ...@@ -30,17 +34,17 @@ extern "C" {
# include <alloca.h> # include <alloca.h>
# else # else
# ifdef _AIX # ifdef _AIX
#pragma alloca # pragma alloca
# else # else
# ifndef alloca /* predefined by HP cc +Olibcalls */ # ifndef alloca /* predefined by HP cc +Olibcalls */
# ifdef _MSC_VER # ifdef _MSC_VER
# define alloca _alloca # define alloca _alloca
# else # else
char *alloca (); char *alloca ();
# endif
# endif # endif
# endif # endif
# endif # endif
# endif
#endif #endif
/* Check for the existence of memcpy. */ /* Check for the existence of memcpy. */
......
This diff is collapsed.
prefix=@prefix@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@ libdir=@libdir@
toolexeclibdir=@toolexeclibdir@
includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
Name: @PACKAGE_NAME@ Name: @PACKAGE_NAME@
Description: Library supporting Foreign Function Interfaces Description: Library supporting Foreign Function Interfaces
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@
Libs: -L${libdir} -lffi Libs: -L${toolexeclibdir} -lffi
Cflags: -I${includedir} Cflags: -I${includedir}
...@@ -26,4 +26,4 @@ ...@@ -26,4 +26,4 @@
# release, then set age to 0. # release, then set age to 0.
# #
# CURRENT:REVISION:AGE # CURRENT:REVISION:AGE
6:1:0 6:2:0
This diff is collapsed.
...@@ -155,7 +155,7 @@ case $host_cpu in ...@@ -155,7 +155,7 @@ case $host_cpu in
sparc*) sparc*)
AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/]) AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/])
cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` cputype=`echo "$cputype" | tr -d ' -' | sed 's/SPARCIIi/SPARCII/' | tr $as_cr_LETTERS $as_cr_letters`
case $cputype in case $cputype in
*ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;
*ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;
......
This diff is collapsed.
This diff is collapsed.
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
# #
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Copyright (C) 2004-2005, 2007-2008, 2011-2013 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004 # Written by Gary V. Vaughan, 2004
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
...@@ -33,7 +34,7 @@ m4_define([_lt_join], ...@@ -33,7 +34,7 @@ m4_define([_lt_join],
# ------------ # ------------
# Manipulate m4 lists. # Manipulate m4 lists.
# These macros are necessary as long as will still need to support # These macros are necessary as long as will still need to support
# Autoconf-2.59 which quotes differently. # Autoconf-2.59, which quotes differently.
m4_define([lt_car], [[$1]]) m4_define([lt_car], [[$1]])
m4_define([lt_cdr], m4_define([lt_cdr],
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
...@@ -44,7 +45,7 @@ m4_define([lt_unquote], $1) ...@@ -44,7 +45,7 @@ m4_define([lt_unquote], $1)
# lt_append(MACRO-NAME, STRING, [SEPARATOR]) # lt_append(MACRO-NAME, STRING, [SEPARATOR])
# ------------------------------------------ # ------------------------------------------
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
# Note that neither SEPARATOR nor STRING are expanded; they are appended # Note that neither SEPARATOR nor STRING are expanded; they are appended
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
# No SEPARATOR is output if MACRO-NAME was previously undefined (different # No SEPARATOR is output if MACRO-NAME was previously undefined (different
......
# ltversion.m4 -- version numbers -*- Autoconf -*- # ltversion.m4 -- version numbers -*- Autoconf -*-
# #
# Copyright (C) 2004 Free Software Foundation, Inc. # Copyright (C) 2004, 2011-2013 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004 # Written by Scott James Remnant, 2004
# #
# This file is free software; the Free Software Foundation gives # This file is free software; the Free Software Foundation gives
...@@ -9,15 +9,15 @@ ...@@ -9,15 +9,15 @@
# @configure_input@ # @configure_input@
# serial 3337 ltversion.m4 # serial 4038 ltversion.m4
# This file is part of GNU Libtool # This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_VERSION], [2.4.2.418])
m4_define([LT_PACKAGE_REVISION], [1.3337]) m4_define([LT_PACKAGE_REVISION], [2.4.2.418])
AC_DEFUN([LTVERSION_VERSION], AC_DEFUN([LTVERSION_VERSION],
[macro_version='2.4.2' [macro_version='2.4.2.418'
macro_revision='1.3337' macro_revision='2.4.2.418'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0) _LT_DECL(, macro_revision, 0)
]) ])
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -47,8 +47,12 @@ typedef enum ffi_abi ...@@ -47,8 +47,12 @@ typedef enum ffi_abi
/* ---- Internal ---- */ /* ---- Internal ---- */
#if defined (__APPLE__)
#define FFI_TARGET_SPECIFIC_VARIADIC
#define FFI_EXTRA_CIF_FIELDS unsigned aarch64_flags; unsigned aarch64_nfixedargs
#else
#define FFI_EXTRA_CIF_FIELDS unsigned aarch64_flags #define FFI_EXTRA_CIF_FIELDS unsigned aarch64_flags
#endif
#define AARCH64_FFI_WITH_V_BIT 0 #define AARCH64_FFI_WITH_V_BIT 0
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment