diff --git a/CHANGES.md b/CHANGES.md
index b30815177a..04a3a4c8c1 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,6 +7,7 @@ Next Release (5.7.0)
Features
--------
+* [#1264](https://github.com/java-native-access/jna/pull/1264): Update libffi to v3.3; Add Windows `aarch64` target. - [@tresf](https://github.com/tresf).
* [#1217](https://github.com/java-native-access/jna/pull/1217): Add mappings for AIX `Perfstat` library to `c.s.j.p.unix.aix` - [@dbwiddis](https://github.com/dbwiddis).
* [#1231](https://github.com/java-native-access/jna/pull/1231): The test suite can now be executed on Windows using either ANSI or UNICODE win32 API by passing `-Dw32.ascii=true/false` to ant. Previously, UNICODE was always used. - [@T-Svensson](https://github.com/T-Svensson/)
* [#1237](https://github.com/java-native-access/jna/pull/1237): *Experimental:* Add artifacts that make jna and jna-platform named modules (provide `module-info.class`). The new artifacts are named `jna-jpms.jar` and `jna-platform-jpms.jar` - [@matthiasblaesing](https://github.com/matthiasblaesing).
diff --git a/appveyor.yml b/appveyor.yml
index 07d6b7259f..1d83ac9b63 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,20 +1,72 @@
version: 1.0.{build}
-image: Visual Studio 2015
+
+# speed up cloning
+shallow_clone: true
+clone_depth: 10
+
+environment:
+ matrix:
+ - TARGET_ARCH: x86_64
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+ CYGWIN_PACKAGES: git,make,automake,libtool,mingw64-x86_64-gcc-g++,mingw64-x86_64-gcc-core
+ CHOCO_PACKAGES: ant cygwin
+ CYGWIN_SETUP: cygwinsetup.exe # from choco
+ JAVA_HOME: C:\Program Files\Java\jdk1.8.0
+
+ - TARGET_ARCH: x86
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+ CYGWIN_PACKAGES: git,make,automake,libtool,mingw64-i686-gcc-g++,mingw64-i686-gcc-core
+ CHOCO_PACKAGES: ant cygwin
+ CYGWIN_SETUP: cygwinsetup.exe # from choco
+ JAVA_HOME: C:\Program Files (x86)\Java\jdk1.8.0 # 32-bit
+
+ - TARGET_ARCH: aarch64
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 # provides cygwin, mingw
+ CYGWIN_PACKAGES: make,automake,libtool
+ CHOCO_PACKAGES: ant
+ CYGWIN_SETUP: setup-x86_64.exe # from appveyor
+ JAVA_HOME: C:\Program Files\Java\jdk1.8.0
install:
-- cmd: set PATH=%PATH%;c:\cygwin64;c:\cygwin64\bin
-- cmd: choco install -y -f -i ant
-- cmd: choco install -y -f -i cygwin
-- cmd: C:\cygwin64\cygwinsetup.exe --root C:\cygwin64 --local-package-dir C:\cygwin64\packages --quiet-mode --no-desktop --no-startmenu --packages git,make,automake,automake1.15,libtool,mingw64-x86_64-gcc-g++,mingw64-x86_64-gcc-core,gcc-g++
-- cmd: set JAVA_HOME=C:\Program Files\Java\jdk1.8.0
-- cmd: set PATH=%JAVA_HOME%\bin;%PATH%
-- cmd: set PATH=c:\cygwin64;c:\cygwin64\bin;%PATH%
-- cmd: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64'
+ # Must prepend cygwin PATH to avoid "cygheap base mismatch" from Git\usr\bin\sed
+ - cmd: set PATH=C:\cygwin64;C:\cygwin64\bin;%JAVA_HOME%\bin;%PATH%;
+ - cmd: choco install -y -f -i %CHOCO_PACKAGES%
+ - cmd: '%CYGWIN_SETUP% --root C:\cygwin64 --local-package-dir C:\cygwin64\packages --quiet-mode --no-desktop --no-startmenu --packages %CYGWIN_PACKAGES%'
-build_script:
-- cmd: ant dist
+# Setup msvc environment
+for:
+ - # VS 2015: x64
+ matrix:
+ only:
+ - TARGET_ARCH: x86_64
+ before_build:
+ - cmd: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64'
+ before_test:
+ - cmd: net start spooler
+ test_script:
+ - cmd: ant test
+ - cmd: ant test-platform
+
+ - # VS 2015: x86
+ matrix:
+ only:
+ - TARGET_ARCH: x86
+ before_build:
+ - cmd: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86'
+ before_test:
+ - cmd: net start spooler
+ test_script:
+ - cmd: ant test
+ - cmd: ant test-platform
-test_script:
-- cmd: net start spooler
-- cmd: ant test
-- cmd: ant test-platform
+ - # VS 2019: aarch64
+ matrix:
+ only:
+ - TARGET_ARCH: aarch64
+ before_build:
+ - cmd: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64_arm64'
+ test_script:
+ - cmd: echo Skipping tests
+
+build_script:
+ - cmd: ant -Dos.prefix=win32-%TARGET_ARCH% dist
diff --git a/build.xml b/build.xml
index f9d96f6320..02223dd48f 100644
--- a/build.xml
+++ b/build.xml
@@ -465,6 +465,8 @@ com/sun/jna/win32-x86/jnidispatch.dll;
processor=x86;osname=win,
com/sun/jna/win32-x86-64/jnidispatch.dll;
processor=x86-64;osname=win,
+com/sun/jna/win32-aarch64/jnidispatch.dll;
+processor=aarch64;osname=win,
com/sun/jna/w32ce-arm/jnidispatch.dll;
processor=arm;osname=wince,
@@ -627,6 +629,9 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
+
@@ -744,7 +749,8 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
+ failonerror="${grep.required}" relative="true" output="${md5.file}"
+ error="${md5.file}.error">
@@ -784,6 +790,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
+
@@ -876,7 +883,7 @@ osname=macosx;processor=x86;processor=x86-64;processor=ppc
-
+
diff --git a/lib/native/win32-aarch64.jar b/lib/native/win32-aarch64.jar
new file mode 100644
index 0000000000..62296e6f9c
Binary files /dev/null and b/lib/native/win32-aarch64.jar differ
diff --git a/native/Makefile b/native/Makefile
index e6e71c180a..48dbd6d594 100644
--- a/native/Makefile
+++ b/native/Makefile
@@ -9,7 +9,7 @@
#
# Supported platforms (built and tested):
#
-# Windows 2000/XP/2003/Vista (x86/amd64)
+# Windows (x86/amd64/aarch64)
# Windows CE/Mobile (arm)
# Darwin/OS X (i386/x86_64/ppc)
# Linux (i386/amd64/ppc/arm)
@@ -246,8 +246,21 @@ LIBS=psapi.lib
ARSFX=.lib
ifeq ($(ARCH),amd64)
CC+= -m64
-endif
-FFI_CONFIG+= && rm -f include/ffitarget.h && cp $(FFI_SRC)/include/*.h $(FFI_SRC)/src/x86/ffitarget.h include
+FFI_TARGET=$(FFI_SRC)/src/x86/ffitarget.h
+else ifeq ($(ARCH),aarch64)
+# Force $(CC) fallback; avoid arch mismatch
+WINDRES=false
+# Disable mingw; no aarch64 support
+MINGW=
+FFI_CONFIG+=--host=aarch64-cygwin
+# Skip building assembly callback functions
+CDEFINES+= -DASMFN_OFF
+DLLCB=
+CC+= -marm64
+FFI_CONFIG+=--host=aarch64-cygwin
+endif
+FFI_TARGET?=$(FFI_SRC)/src/$(ARCH)/ffitarget.h
+FFI_CONFIG+= && rm -f include/ffitarget.h && cp $(FFI_SRC)/include/*.h $(FFI_TARGET) include
FFI_ENV+=LD="$(LD)" CPP="$(CPP)" CXXCPP="$(CPP)"
EXTRAOBJS+=$(DLLCB)
diff --git a/native/build.xml b/native/build.xml
index c7129efcde..1d17b6d84e 100644
--- a/native/build.xml
+++ b/native/build.xml
@@ -236,7 +236,7 @@
-
+
diff --git a/native/callback.c b/native/callback.c
index a3881fadc9..846f344720 100644
--- a/native/callback.c
+++ b/native/callback.c
@@ -51,7 +51,7 @@
extern "C" {
#endif
-#if defined(_WIN32) && !defined(_WIN32_WCE)
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(ASMFN_OFF)
#include "com_sun_jna_win32_DLLCallback.h"
#ifdef _WIN64
#ifdef _MSC_VER
@@ -313,7 +313,6 @@ create_callback(JNIEnv* env, jobject obj, jobject method,
}
void
free_callback(JNIEnv* env, callback *cb) {
- int i;
(*env)->DeleteWeakGlobalRef(env, cb->object);
ffi_closure_free(cb->closure);
free(cb->arg_types);
@@ -332,6 +331,7 @@ free_callback(JNIEnv* env, callback *cb) {
}
free(cb->arg_jtypes);
#ifdef DLL_FPTRS
+ int i;
for (i=0;i < DLL_FPTRS;i++) {
if (fn[i] == cb->saved_x_closure) {
fn[i] = NULL;
diff --git a/native/libffi/.appveyor.yml b/native/libffi/.appveyor.yml
new file mode 100644
index 0000000000..ece8a948c9
--- /dev/null
+++ b/native/libffi/.appveyor.yml
@@ -0,0 +1,66 @@
+shallow_clone: true
+
+# We're currently only testing libffi built with Microsoft's
+# tools.
+# This matrix should be expanded to include at least:
+# 32- and 64-bit gcc/cygwin
+# 32- and 64-bit gcc/mingw
+# 32- and 64-bit clang/mingw
+# and perhaps more.
+
+image: Visual Studio 2017
+platform:
+ - x64
+ - x86
+ - arm
+ - arm64
+
+environment:
+ global:
+ CYG_ROOT: C:/cygwin
+ CYG_CACHE: C:/cygwin/var/cache/setup
+ CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
+ matrix:
+ - VSVER: 15
+
+install:
+ - ps: >-
+ If ($env:Platform -Match "x86") {
+ $env:VCVARS_PLATFORM="x86"
+ $env:BUILD="i686-pc-cygwin"
+ $env:HOST="i686-pc-cygwin"
+ $env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh"
+ $env:SRC_ARCHITECTURE="x86"
+ } ElseIf ($env:Platform -Match "arm64") {
+ $env:VCVARS_PLATFORM="x86_arm64"
+ $env:BUILD="i686-pc-cygwin"
+ $env:HOST="aarch64-w64-cygwin"
+ $env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -marm64"
+ $env:SRC_ARCHITECTURE="aarch64"
+ } ElseIf ($env:Platform -Match "arm") {
+ $env:VCVARS_PLATFORM="x86_arm"
+ $env:BUILD="i686-pc-cygwin"
+ $env:HOST="arm-w32-cygwin"
+ $env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -marm"
+ $env:SRC_ARCHITECTURE="arm"
+ } Else {
+ $env:VCVARS_PLATFORM="amd64"
+ $env:BUILD="x86_64-w64-cygwin"
+ $env:HOST="x86_64-w64-cygwin"
+ $env:MSVCC="/cygdrive/c/projects/libffi/msvcc.sh -m64"
+ $env:SRC_ARCHITECTURE="x86"
+ }
+ - 'appveyor DownloadFile https://cygwin.com/setup-x86.exe -FileName setup.exe'
+ - 'setup.exe -qnNdO -R "%CYG_ROOT%" -s "%CYG_MIRROR%" -l "%CYG_CACHE%" -P dejagnu >NUL'
+ - '%CYG_ROOT%/bin/bash -lc "cygcheck -dc cygwin"'
+ - echo call VsDevCmd to set VS150COMNTOOLS
+ - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
+ - ps: $env:VSCOMNTOOLS=(Get-Content ("env:VS" + "$env:VSVER" + "0COMNTOOLS"))
+ - echo "Using Visual Studio %VSVER%.0 at %VSCOMNTOOLS%"
+ - call "%VSCOMNTOOLS%..\..\vc\Auxiliary\Build\vcvarsall.bat" %VCVARS_PLATFORM%
+
+build_script:
+ - c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./autogen.sh;)"
+ - c:\cygwin\bin\sh -lc "(cd $OLDPWD; ./configure CC='%MSVCC%' CXX='%MSVCC%' LD='link' CPP='cl -nologo -EP' CXXCPP='cl -nologo -EP' CPPFLAGS='-DFFI_BUILDING_DLL' AR='/cygdrive/c/projects/libffi/.travis/ar-lib lib' NM='dumpbin -symbols' STRIP=':' --build=$BUILD --host=$HOST;)"
+ - c:\cygwin\bin\sh -lc "(cd $OLDPWD; cp src/%SRC_ARCHITECTURE%/ffitarget.h include; make; find .;)"
+ - c:\cygwin\bin\sh -lc "(cd $OLDPWD; cp `find . -name 'libffi-?.dll'` $HOST/testsuite/; make check; cat `find ./ -name libffi.log`)"
diff --git a/native/libffi/.gitattributes b/native/libffi/.gitattributes
new file mode 100644
index 0000000000..f7d3833e78
--- /dev/null
+++ b/native/libffi/.gitattributes
@@ -0,0 +1,4 @@
+* text=auto
+
+*.sln text eol=crlf
+*.vcxproj* text eol=crlf
diff --git a/native/libffi/.github/issue_template.md b/native/libffi/.github/issue_template.md
new file mode 100644
index 0000000000..e197e2cea7
--- /dev/null
+++ b/native/libffi/.github/issue_template.md
@@ -0,0 +1,10 @@
+## System Details
+
+
+
+
+## Problems Description
+
+
+
+
diff --git a/native/libffi/.gitignore b/native/libffi/.gitignore
index 1158ecef28..e393a472d6 100644
--- a/native/libffi/.gitignore
+++ b/native/libffi/.gitignore
@@ -5,10 +5,11 @@
.dirstamp
*.la
Makefile
+!testsuite/libffi.bhaible/Makefile
Makefile.in
aclocal.m4
compile
-config.*
+!.travis/compile
configure
depcomp
doc/libffi.info
@@ -20,7 +21,6 @@ include/ffitarget.h
install-sh
libffi.pc
libtool
-libtool-ldflags
ltmain.sh
m4/libtool.m4
m4/lt*.m4
@@ -33,3 +33,5 @@ libffi.xcodeproj/xcuserdata
libffi.xcodeproj/project.xcworkspace
build_*/
darwin_*/
+src/arm/trampoline.S
+**/texinfo.tex
diff --git a/native/libffi/.travis.yml b/native/libffi/.travis.yml
index 6c14fcd0b0..8db2ddfb24 100644
--- a/native/libffi/.travis.yml
+++ b/native/libffi/.travis.yml
@@ -1,22 +1,83 @@
+---
+sudo: required
+
language: cpp
-compiler:
- - gcc
- - clang
-env:
- -
- - HOST=i386-pc-linux-gnu
+
+# For qemu-powered targets, get the list of supported processors from
+# travis by setting QEMU_CPU=help, then set -mcpu= for the compilers
+# accordingly.
+
matrix:
- exclude:
- - compiler: clang
- env: HOST=i386-pc-linux-gnu
+ include:
+ - os: linux
+ env: HOST=powerpc-eabisim RUNTESTFLAGS="--target_board powerpc-eabisim" DEJAGNU="/opt/.travis/site.exp"
+ - os: linux
+ env: HOST=or1k-elf RUNTESTFLAGS="--target_board or1k-sim" DEJAGNU="/opt/.travis/site.exp"
+ - os: linux
+ env: HOST=m32r-elf RUNTESTFLAGS="--target_board m32r-sim" DEJAGNU="/opt/.travis/site.exp"
+ - os: linux
+ env: HOST=bfin-elf RUNTESTFLAGS="--target_board bfin-sim" DEJAGNU="/opt/.travis/site.exp"
+# This configuration is still using the native x86 toolchain?
+# - os: osx
+# env: HOST=aarch64-apple-darwin13
+ - os: osx
+ env: HOST=x86_64-apple-darwin10
+ - os: linux
+ env: HOST=x86_64-w64-mingw32 MEVAL='export CC="x86_64-w64-mingw32-gcc" && CXX="x86_64-w64-mingw32-g++" RUNTESTFLAGS="--target_board wine-sim" DEJAGNU="$TRAVIS_BUILD_DIR/.travis/site.exp" CONFIGURE_OPTIONS=--disable-shared LIBFFI_TEST_OPTIMIZATION="-O2"
+ - os: linux
+ env: HOST=sh4-linux-gnu CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/sh4-linux-gnu
+ - os: linux
+ env: HOST=alpha-linux-gnu CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/alpha-linux-gnu
+ - os: linux
+ env: HOST=m68k-linux-gnu MEVAL='export CC="m68k-linux-gnu-gcc-8 -mcpu=547x" && CXX="m68k-linux-gnu-g++-8 -mcpu=547x"' CONFIGURE_OPTIONS=--disable-shared QEMU_LD_PREFIX=/usr/m68k-linux-gnu QEMU_CPU=cfv4e
+ - os: linux
+ arch: s390x
+ env: HOST=s390x-linux-gnu
+ - os: linux
+ arch: ppc64le
+ env: HOST=ppc64le-linux-gnu
+ - os: linux
+ arch: arm64
+ env: HOST=aarch64-linux-gnu
+ - os: linux
+ arch: arm64
+ env: HOST=aarch64-linux-gnu
+ compiler: clang
+ - os: linux
+ env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O0"
+ - os: linux
+ env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O2"
+ - os: linux
+ env: HOST=arm32v7-linux-gnu LIBFFI_TEST_OPTIMIZATION="-O2 -fomit-frame-pointer"
+# The sparc64 linux system in the GCC compile farm is non-responsive.
+# - os: linux
+# env: HOST=sparc64-linux-gnu
+# The mips64 linux system in the GCC compile farm is not allowing logins
+# - os: linux
+# env: HOST=mips64el-linux-gnu
+ - os: linux
+ compiler: gcc
+ env: HOST=i386-pc-linux-gnu MEVAL='export CC="$CC -m32" && CXX="$CXX -m32"'
+ - os: linux
+ compiler: gcc
+ - os: linux
+ compiler: gcc
+ env: CONFIGURE_OPTIONS=--disable-shared
+ - os: linux
+ compiler: clang
+ - os: linux
+ compiler: clang
+ env: CONFIGURE_OPTIONS=--disable-shared
+ - os: linux
+ env: HOST=moxie-elf MEVAL='export PATH=/opt/moxielogic/bin:$PATH && CC=moxie-elf-gcc && CXX=moxie-elf-g++' LDFLAGS=-Tsim.ld RUNTESTFLAGS="--target_board moxie-sim" DEJAGNU="$TRAVIS_BUILD_DIR/.travis/site.exp"
+
+before_install:
+ - if test x"$MEVAL" != x; then eval ${MEVAL}; fi
-before_script:
- - sudo apt-get install dejagnu texinfo
- - if [ "$HOST" = i386-pc-linux-gnu ] ; then sudo apt-get install gcc-multilib g++-multilib && CC="$CC -m32" && CXX="$CXX -m32" ; fi
+install:
+ - travis_wait 30 ./.travis/install.sh
script:
- - ./autogen.sh
- - ./configure ${HOST+--host=$HOST}
- - make
- - make dist
- - make check
+ - if ! test x"$MEVAL" = x; then eval ${MEVAL}; fi
+ - travis_wait 115 sleep infinity &
+ - ./.travis/build.sh
diff --git a/native/libffi/.travis/ar-lib b/native/libffi/.travis/ar-lib
new file mode 100644
index 0000000000..0baa4f6076
--- /dev/null
+++ b/native/libffi/.travis/ar-lib
@@ -0,0 +1,270 @@
+#! /bin/sh
+# Wrapper for Microsoft lib.exe
+
+me=ar-lib
+scriptversion=2012-03-01.08; # UTC
+
+# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Written by Peter Rosin .
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to or send patches to
+# .
+
+
+# func_error message
+func_error ()
+{
+ echo "$me: $1" 1>&2
+ exit 1
+}
+
+file_conv=
+
+# func_file_conv build_file
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts.
+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 in
+ 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_at_file at_file operation archive
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
+# for each of them.
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
+# since the user would need to supply preconverted file names to
+# binutils ar, at least for MinGW.
+func_at_file ()
+{
+ operation=$2
+ archive=$3
+ at_file_contents=`cat "$1"`
+ eval set x "$at_file_contents"
+ shift
+
+ for member
+ do
+ $AR -NOLOGO $operation:"$member" "$archive" || exit $?
+ done
+}
+
+case $1 in
+ '')
+ func_error "no command. Try '$0 --help' for more information."
+ ;;
+ -h | --h*)
+ cat < libffi.log
+
+ ./rlgl l --key=${RLGL_KEY} https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git libffi.log
+ exit $?
+}
+
+function build_linux()
+{
+ ./autogen.sh
+ ./configure ${HOST+--host=$HOST} ${CONFIGURE_OPTIONS} || cat */config.log
+ make
+ make dist
+ make check RUNTESTFLAGS="-a $RUNTESTFLAGS"
+
+ ./rlgl l --key=${RLGL_KEY} https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
+ exit $?
+}
+
+function build_foreign_linux()
+{
+ ${DOCKER} run --rm -t -i -v $(pwd):/opt ${SET_QEMU_CPU} -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" $2 bash -c /opt/.travis/build-in-container.sh
+
+ ./rlgl l --key=${RLGL_KEY} https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
+ exit $?
+}
+
+function build_cross_linux()
+{
+ ${DOCKER} run --rm -t -i -v $(pwd):/opt ${SET_QEMU_CPU} -e HOST="${HOST}" -e CC="${HOST}-gcc-8 ${GCC_OPTIONS}" -e CXX="${HOST}-g++-8 ${GCC_OPTIONS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" moxielogic/cross-ci-build-container:latest bash -c /opt/.travis/build-in-container.sh
+
+ ./rlgl l --key=${RLGL_KEY} https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
+ exit $?
+}
+
+function build_cross()
+{
+ ${DOCKER} pull quay.io/moxielogic/libffi-ci-${HOST}
+ ${DOCKER} run --rm -t -i -v $(pwd):/opt -e HOST="${HOST}" -e CC="${HOST}-gcc ${GCC_OPTIONS}" -e CXX="${HOST}-g++ ${GCC_OPTIONS}" -e TRAVIS_BUILD_DIR=/opt -e DEJAGNU="${DEJAGNU}" -e RUNTESTFLAGS="${RUNTESTFLAGS}" -e LIBFFI_TEST_OPTIMIZATION="${LIBFFI_TEST_OPTIMIZATION}" quay.io/moxielogic/libffi-ci-${HOST} bash -c /opt/.travis/build-cross-in-container.sh
+
+ ./rlgl l --key=${RLGL_KEY} https://rl.gl
+ ID=$(./rlgl start)
+ ./rlgl e --id=$ID --policy=https://github.com/libffi/rlgl-policy.git */testsuite/libffi.log
+ exit $?
+}
+
+function build_ios()
+{
+ which python
+# export PYTHON_BIN=/usr/local/bin/python
+ ./generate-darwin-source-and-headers.py --only-ios
+ xcodebuild -showsdks
+ xcodebuild -project libffi.xcodeproj -target "libffi-iOS" -configuration Release -sdk iphoneos11.4
+ exit $?
+}
+
+function build_macosx()
+{
+ which python
+# export PYTHON_BIN=/usr/local/bin/python
+ ./generate-darwin-source-and-headers.py --only-osx
+ xcodebuild -showsdks
+ xcodebuild -project libffi.xcodeproj -target "libffi-Mac" -configuration Release -sdk macosx10.13
+ echo "Finished build"
+ exit $?
+}
+
+case "$HOST" in
+ arm-apple-darwin*)
+ ./autogen.sh
+ build_ios
+ ;;
+ x86_64-apple-darwin*)
+ ./autogen.sh
+ build_macosx
+ ;;
+ arm32v7-linux-gnu)
+ ./autogen.sh
+ build_foreign_linux arm moxielogic/arm32v7-ci-build-container:latest
+ ;;
+ mips64el-linux-gnu | sparc64-linux-gnu)
+ build_cfarm
+ ;;
+ bfin-elf )
+ ./autogen.sh
+ GCC_OPTIONS=-msim build_cross
+ ;;
+ m32r-elf )
+ ./autogen.sh
+ build_cross
+ ;;
+ or1k-elf )
+ ./autogen.sh
+ build_cross
+ ;;
+ powerpc-eabisim )
+ ./autogen.sh
+ build_cross
+ ;;
+ m68k-linux-gnu )
+ ./autogen.sh
+ GCC_OPTIONS=-mcpu=547x build_cross_linux
+ ;;
+ alpha-linux-gnu | sh4-linux-gnu )
+ ./autogen.sh
+ build_cross_linux
+ ;;
+ *)
+ ./autogen.sh
+ build_linux
+ ;;
+esac
diff --git a/native/libffi/.travis/compile b/native/libffi/.travis/compile
new file mode 100644
index 0000000000..655932a224
--- /dev/null
+++ b/native/libffi/.travis/compile
@@ -0,0 +1,351 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2018-03-27.18; # UTC
+
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Written by Tom Tromey .
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to or send patches to
+# .
+
+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
+ ;;
+ -warn)
+ eat=1
+ ;;
+ -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
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to .
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+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'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # 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
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# 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
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/native/libffi/.travis/install.sh b/native/libffi/.travis/install.sh
new file mode 100644
index 0000000000..2420245710
--- /dev/null
+++ b/native/libffi/.travis/install.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+set -x
+
+if [[ $TRAVIS_OS_NAME != 'linux' ]]; then
+ brew update > brew-update.log 2>&1
+ # fix an issue with libtool on travis by reinstalling it
+ brew uninstall libtool;
+ brew install libtool dejagnu;
+
+ # Download and extract the rlgl client
+ wget -qO - https://rl.gl/cli/rlgl-darwin-amd64.tgz | \
+ tar --strip-components=2 -xvzf - ./rlgl/rlgl;
+
+else
+ # Download and extract the rlgl client
+ case $HOST in
+ aarch64-linux-gnu)
+ wget -qO - https://rl.gl/cli/rlgl-linux-arm.tgz | \
+ tar --strip-components=2 -xvzf - ./rlgl/rlgl;
+ ;;
+ ppc64le-linux-gnu)
+ wget -qO - https://rl.gl/cli/rlgl-linux-ppc64le.tgz | \
+ tar --strip-components=2 -xvzf - ./rlgl/rlgl;
+ ;;
+ s390x-linux-gnu)
+ wget -qO - https://rl.gl/cli/rlgl-linux-s390x.tgz | \
+ tar --strip-components=2 -xvzf - ./rlgl/rlgl;
+ ;;
+ *)
+ wget -qO - https://rl.gl/cli/rlgl-linux-amd64.tgz | \
+ tar --strip-components=2 -xvzf - ./rlgl/rlgl;
+ ;;
+ esac
+
+ sudo apt-get clean # clear the cache
+ sudo apt-get update
+ case $HOST in
+ mips64el-linux-gnu | sparc64-linux-gnu)
+ ;;
+ alpha-linux-gnu | arm32v7-linux-gnu | m68k-linux-gnu | sh4-linux-gnu)
+ sudo apt-get install qemu-user-static
+ ;;
+ hppa-linux-gnu )
+ sudo apt-get install -y qemu-user-static g++-5-hppa-linux-gnu
+ ;;
+ i386-pc-linux-gnu)
+ sudo apt-get install gcc-multilib g++-multilib;
+ ;;
+ moxie-elf)
+ echo 'deb https://repos.moxielogic.org:7114/MoxieLogic moxiedev main' | sudo tee -a /etc/apt/sources.list
+ sudo apt-get clean # clear the cache
+ sudo apt-get update ## -qq
+ sudo apt-get update
+ sudo apt-get install -y --allow-unauthenticated moxielogic-moxie-elf-gcc moxielogic-moxie-elf-gcc-c++ moxielogic-moxie-elf-gcc-libstdc++ moxielogic-moxie-elf-gdb-sim
+ ;;
+ x86_64-w64-mingw32)
+ sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 wine;
+ ;;
+ i686-w32-mingw32)
+ sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 wine;
+ ;;
+ esac
+ case $HOST in
+ arm32v7-linux-gnu)
+ # don't install host tools
+ ;;
+ *)
+ sudo apt-get install dejagnu texinfo sharutils
+ ;;
+ esac
+fi
diff --git a/native/libffi/.travis/m32r-sim.exp b/native/libffi/.travis/m32r-sim.exp
new file mode 100644
index 0000000000..c18123f28f
--- /dev/null
+++ b/native/libffi/.travis/m32r-sim.exp
@@ -0,0 +1,58 @@
+# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
+#
+# This file is part of DejaGnu.
+#
+# DejaGnu is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DejaGnu is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DejaGnu; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {m32r-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "m32r" is the name of the sim subdir in devo/sim.
+setup_sim m32r
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/native/libffi/.travis/moxie-sim.exp b/native/libffi/.travis/moxie-sim.exp
new file mode 100644
index 0000000000..32979ea6be
--- /dev/null
+++ b/native/libffi/.travis/moxie-sim.exp
@@ -0,0 +1,60 @@
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# This file is part of DejaGnu.
+#
+# DejaGnu is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DejaGnu is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DejaGnu; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {moxie-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "moxie" is the name of the sim subdir in devo/sim.
+setup_sim moxie
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+# No linker script needed.
+set_board_info ldscript "-Tsim.ld"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/native/libffi/.travis/or1k-sim.exp b/native/libffi/.travis/or1k-sim.exp
new file mode 100644
index 0000000000..3920413ee1
--- /dev/null
+++ b/native/libffi/.travis/or1k-sim.exp
@@ -0,0 +1,58 @@
+# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
+#
+# This file is part of DejaGnu.
+#
+# DejaGnu is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DejaGnu is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DejaGnu; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {or1k-elf}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "or1k" is the name of the sim subdir in devo/sim.
+setup_sim or1k
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/native/libffi/.travis/powerpc-eabisim.exp b/native/libffi/.travis/powerpc-eabisim.exp
new file mode 100644
index 0000000000..285fd4f6fe
--- /dev/null
+++ b/native/libffi/.travis/powerpc-eabisim.exp
@@ -0,0 +1,58 @@
+# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
+#
+# This file is part of DejaGnu.
+#
+# DejaGnu is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DejaGnu is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DejaGnu; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {powerpc-eabisim}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+# basic-sim.exp is a basic description for the standard Cygnus simulator.
+load_base_board_description "basic-sim"
+
+# "powerpc" is the name of the sim subdir in devo/sim.
+setup_sim powerpc
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/native/libffi/.travis/site.exp b/native/libffi/.travis/site.exp
new file mode 100644
index 0000000000..644ec63185
--- /dev/null
+++ b/native/libffi/.travis/site.exp
@@ -0,0 +1,27 @@
+# Copyright (C) 2008, 2010, 2018, 2019 Anthony Green
+
+# Make sure we look in the right place for the board description files.
+if ![info exists boards_dir] {
+ set boards_dir {}
+}
+
+lappend boards_dir $::env(TRAVIS_BUILD_DIR)/.travis
+
+verbose "Global Config File: target_triplet is $target_triplet" 2
+global target_list
+
+case "$target_triplet" in {
+ { "bfin-elf" } {
+ set target_list "bfin-sim"
+ }
+ { "m32r-elf" } {
+ set target_list "m32r-sim"
+ }
+ { "moxie-elf" } {
+ set target_list "moxie-sim"
+ }
+ { "or1k-elf" } {
+ set target_list "or1k-sim"
+ }
+}
+
diff --git a/native/libffi/.travis/wine-sim.exp b/native/libffi/.travis/wine-sim.exp
new file mode 100644
index 0000000000..1ad603817a
--- /dev/null
+++ b/native/libffi/.travis/wine-sim.exp
@@ -0,0 +1,55 @@
+# Copyright (C) 2010, 2019 Free Software Foundation, Inc.
+#
+# This file is part of DejaGnu.
+#
+# DejaGnu is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# DejaGnu is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with DejaGnu; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, MA 02110, USA.
+
+# This is a list of toolchains that are supported on this board.
+set_board_info target_install {i686-w64-mingw32}
+
+# Load the generic configuration for this board. This will define a basic set
+# of routines needed by the tool to communicate with the board.
+load_generic_config "sim"
+
+set_board_info sim "wineconsole --backend=curses"
+set_board_info is_simulator 1
+
+# No multilib options needed by default.
+process_multilib_options ""
+
+# We only support newlib on this target. We assume that all multilib
+# options have been specified before we get here.
+
+set_board_info compiler "[find_gcc]"
+set_board_info cflags "[libgloss_include_flags] [newlib_include_flags]"
+set_board_info ldflags "[libgloss_link_flags] [newlib_link_flags]"
+
+# Configuration settings for testsuites
+set_board_info noargs 1
+set_board_info gdb,nosignals 1
+set_board_info gdb,noresults 1
+set_board_info gdb,cannot_call_functions 1
+set_board_info gdb,skip_float_tests 1
+set_board_info gdb,can_reverse 1
+set_board_info gdb,use_precord 1
+
+# More time is needed
+set_board_info gcc,timeout 800
+set_board_info gdb,timeout 60
+
+# Used by a few gcc.c-torture testcases to delimit how large the stack can
+# be.
+set_board_info gcc,stack_size 5000
+
diff --git a/native/libffi/ChangeLog.libffi b/native/libffi/ChangeLog.libffi
deleted file mode 100644
index 49ba8dad3a..0000000000
--- a/native/libffi/ChangeLog.libffi
+++ /dev/null
@@ -1,584 +0,0 @@
-2011-02-08 Andreas Tobler
-
- * testsuite/lib/libffi.exp: Tweak for stand-alone mode.
-
-2009-12-25 Samuli Suominen
-
- * configure.ac: Undefine _AC_ARG_VAR_PRECIOUS for autoconf 2.64.
- * configure: Rebuilt.
- * fficonfig.h.in: Rebuilt.
-
-2009-06-16 Andrew Haley
-
- * testsuite/libffi.call/cls_align_sint64.c,
- testsuite/libffi.call/cls_align_uint64.c,
- testsuite/libffi.call/cls_longdouble_va.c,
- testsuite/libffi.call/cls_ulonglong.c,
- testsuite/libffi.call/return_ll1.c,
- testsuite/libffi.call/stret_medium2.c: Fix printf format
- specifiers.
- * testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
- * testsuite/libffi.call/float2.c: Fix dg-excess-errors.
- * testsuite/libffi.call/ffitest.h,
- testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
-
-2009-06-12 Andrew Haley
-
- * testsuite/libffi.call/cls_align_sint64.c,
- testsuite/libffi.call/cls_align_uint64.c,
- testsuite/libffi.call/cls_ulonglong.c,
- testsuite/libffi.call/return_ll1.c,
- testsuite/libffi.call/stret_medium2.c: Fix printf format
- specifiers.
- testsuite/libffi.special/unwindtest.cc: include stdint.h.
-
-2009-06-11 Timothy Wall
-
- * Makefile.am,
- configure.ac,
- include/ffi.h.in,
- include/ffi_common.h,
- src/closures.c,
- src/dlmalloc.c,
- src/x86/ffi.c,
- src/x86/ffitarget.h,
- src/x86/win64.S (new),
- README: Added win64 support (mingw or MSVC)
- * Makefile.in,
- include/Makefile.in,
- man/Makefile.in,
- testsuite/Makefile.in,
- configure,
- aclocal.m4: Regenerated
- * ltcf-c.sh: properly escape cygwin/w32 path
- * man/ffi_call.3: Clarify size requirements for return value.
- * src/x86/ffi64.c: Fix filename in comment.
- * src/x86/win32.S: Remove unused extern.
-
- * testsuite/libffi.call/closure_fn0.c,
- testsuite/libffi.call/closure_fn1.c,
- testsuite/libffi.call/closure_fn2.c,
- testsuite/libffi.call/closure_fn3.c,
- testsuite/libffi.call/closure_fn4.c,
- testsuite/libffi.call/closure_fn5.c,
- testsuite/libffi.call/closure_fn6.c,
- testsuite/libffi.call/closure_stdcall.c,
- testsuite/libffi.call/cls_12byte.c,
- testsuite/libffi.call/cls_16byte.c,
- testsuite/libffi.call/cls_18byte.c,
- testsuite/libffi.call/cls_19byte.c,
- testsuite/libffi.call/cls_1_1byte.c,
- testsuite/libffi.call/cls_20byte.c,
- testsuite/libffi.call/cls_20byte1.c,
- testsuite/libffi.call/cls_24byte.c,
- testsuite/libffi.call/cls_2byte.c,
- testsuite/libffi.call/cls_3_1byte.c,
- testsuite/libffi.call/cls_3byte1.c,
- testsuite/libffi.call/cls_3byte2.c,
- testsuite/libffi.call/cls_4_1byte.c,
- testsuite/libffi.call/cls_4byte.c,
- testsuite/libffi.call/cls_5_1_byte.c,
- testsuite/libffi.call/cls_5byte.c,
- testsuite/libffi.call/cls_64byte.c,
- testsuite/libffi.call/cls_6_1_byte.c,
- testsuite/libffi.call/cls_6byte.c,
- testsuite/libffi.call/cls_7_1_byte.c,
- testsuite/libffi.call/cls_7byte.c,
- testsuite/libffi.call/cls_8byte.c,
- testsuite/libffi.call/cls_9byte1.c,
- testsuite/libffi.call/cls_9byte2.c,
- testsuite/libffi.call/cls_align_double.c,
- testsuite/libffi.call/cls_align_float.c,
- testsuite/libffi.call/cls_align_longdouble.c,
- testsuite/libffi.call/cls_align_longdouble_split.c,
- testsuite/libffi.call/cls_align_longdouble_split2.c,
- testsuite/libffi.call/cls_align_pointer.c,
- testsuite/libffi.call/cls_align_sint16.c,
- testsuite/libffi.call/cls_align_sint32.c,
- testsuite/libffi.call/cls_align_sint64.c,
- testsuite/libffi.call/cls_align_uint16.c,
- testsuite/libffi.call/cls_align_uint32.c,
- testsuite/libffi.call/cls_align_uint64.c,
- testsuite/libffi.call/cls_dbls_struct.c,
- testsuite/libffi.call/cls_double.c,
- testsuite/libffi.call/cls_double_va.c,
- testsuite/libffi.call/cls_float.c,
- testsuite/libffi.call/cls_longdouble.c,
- testsuite/libffi.call/cls_longdouble_va.c,
- testsuite/libffi.call/cls_multi_schar.c,
- testsuite/libffi.call/cls_multi_sshort.c,
- testsuite/libffi.call/cls_multi_sshortchar.c,
- testsuite/libffi.call/cls_multi_uchar.c,
- testsuite/libffi.call/cls_multi_ushort.c,
- testsuite/libffi.call/cls_multi_ushortchar.c,
- testsuite/libffi.call/cls_pointer.c,
- testsuite/libffi.call/cls_pointer_stack.c,
- testsuite/libffi.call/cls_schar.c,
- testsuite/libffi.call/cls_sint.c,
- testsuite/libffi.call/cls_sshort.c,
- testsuite/libffi.call/cls_uchar.c,
- testsuite/libffi.call/cls_uint.c,
- testsuite/libffi.call/cls_ulonglong.c,
- testsuite/libffi.call/cls_ushort.c,
- testsuite/libffi.call/err_bad_abi.c,
- testsuite/libffi.call/err_bad_typedef.c,
- testsuite/libffi.call/float2.c,
- testsuite/libffi.call/huge_struct.c,
- testsuite/libffi.call/nested_struct.c,
- testsuite/libffi.call/nested_struct1.c,
- testsuite/libffi.call/nested_struct10.c,
- testsuite/libffi.call/nested_struct2.c,
- testsuite/libffi.call/nested_struct3.c,
- testsuite/libffi.call/nested_struct4.c,
- testsuite/libffi.call/nested_struct5.c,
- testsuite/libffi.call/nested_struct6.c,
- testsuite/libffi.call/nested_struct7.c,
- testsuite/libffi.call/nested_struct8.c,
- testsuite/libffi.call/nested_struct9.c,
- testsuite/libffi.call/problem1.c,
- testsuite/libffi.call/return_ldl.c,
- testsuite/libffi.call/return_ll1.c,
- testsuite/libffi.call/stret_large.c,
- testsuite/libffi.call/stret_large2.c,
- testsuite/libffi.call/stret_medium.c,
- testsuite/libffi.call/stret_medium2.c,
- testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
- of checking for MMAP. Use intptr_t instead of long casts.
-
-2009-06-04 Andrew Haley
-
- * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.
-
-2009-06-04 Andrew Haley
-
- * src/mips/o32.S,
- src/mips/n32.S: Fix licence formatting.
-
-2009-06-04 Andrew Haley
-
- * src/x86/darwin.S: Fix licence formatting.
- src/x86/win32.S: Likewise.
- src/sh64/sysv.S: Likewise.
- src/sh/sysv.S: Likewise.
-
-2009-06-04 Andrew Haley
-
- * src/sh64/ffi.c: Remove lint directives. Was missing from merge
- of Andreas Tobler's patch from 2006-04-22.
-
-2009-06-04 Andrew Haley
-
- * src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
- 2007-03-07.
-
-2008-12-26 Timothy Wall
-
- * testsuite/libffi.call/cls_longdouble.c,
- testsuite/libffi.call/cls_longdouble_va.c,
- testsuite/libffi.call/cls_align_longdouble.c,
- testsuite/libffi.call/cls_align_longdouble_split.c,
- testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
- failures on x86_64 cygwin/mingw.
-
-2008-12-22 Timothy Wall
-
- * testsuite/libffi.call/closure_fn0.c,
- testsuite/libffi.call/closure_fn1.c,
- testsuite/libffi.call/closure_fn2.c,
- testsuite/libffi.call/closure_fn3.c,
- testsuite/libffi.call/closure_fn4.c,
- testsuite/libffi.call/closure_fn5.c,
- testsuite/libffi.call/closure_fn6.c,
- testsuite/libffi.call/closure_loc_fn0.c,
- testsuite/libffi.call/closure_stdcall.c,
- testsuite/libffi.call/cls_align_pointer.c,
- testsuite/libffi.call/cls_pointer.c,
- testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
- pointer to integer (intptr_t).
- * testsuite/libffi.call/cls_longdouble.c: disable for win64.
-
-2008-12-19 Anthony Green
-
- * configure.ac: Bump version to 3.0.8.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-11-11 Anthony Green
-
- * configure.ac: Bump version to 3.0.7.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-08-25 Andreas Tobler
-
- * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
- FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
- Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
- Adjust copyright notice.
- * src/powerpc/ffi.c: Add two new flags to indicate if we have one
- register or two register to use for FFI_SYSV structs.
- (ffi_prep_cif_machdep): Pass the right register flag introduced above.
- (ffi_closure_helper_SYSV): Fix the return type for
- FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
- Adjust copyright notice.
-
-2008-07-24 Anthony Green
-
- * testsuite/libffi.call/cls_dbls_struct.c,
- testsuite/libffi.call/cls_double_va.c,
- testsuite/libffi.call/cls_longdouble.c,
- testsuite/libffi.call/cls_longdouble_va.c,
- testsuite/libffi.call/cls_pointer.c,
- testsuite/libffi.call/cls_pointer_stack.c,
- testsuite/libffi.call/err_bad_abi.c: Clean up failures from
- compiler warnings.
-
-2008-07-17 Anthony Green
-
- * configure.ac: Bump version to 3.0.6.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision. Add documentation.
- * README: Update for new release.
-
-2008-07-16 Kaz Kojima
-
- * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
- int.
-
-2008-07-16 Kaz Kojima
-
- * src/sh/sysv.S: Add .note.GNU-stack on Linux.
- * src/sh64/sysv.S: Likewise.
-
-2008-04-03 Anthony Green
-
- * libffi.pc.in (Libs): Add -L${libdir}.
- * configure.ac: Bump version to 3.0.5.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-04-03 Anthony Green
- Xerces Ranby
-
- * include/ffi.h.in: Wrap definition of target architecture to
- protect from double definitions.
-
-2008-03-22 Moriyoshi Koizumi
-
- * src/x86/ffi.c (ffi_prep_closure_loc): Fix for bug revealed in
- closure_loc_fn0.c.
- * testsuite/libffi.call/closure_loc_fn0.c (closure_loc_test_fn0):
- New test.
-
-2008-03-04 Anthony Green
- Blake Chaffin
- hos@tamanegi.org
-
- * testsuite/libffi.call/cls_align_longdouble_split2.c
- testsuite/libffi.call/cls_align_longdouble_split.c
- testsuite/libffi.call/cls_dbls_struct.c
- testsuite/libffi.call/cls_double_va.c
- testsuite/libffi.call/cls_longdouble.c
- testsuite/libffi.call/cls_longdouble_va.c
- testsuite/libffi.call/cls_pointer.c
- testsuite/libffi.call/cls_pointer_stack.c
- testsuite/libffi.call/err_bad_abi.c
- testsuite/libffi.call/err_bad_typedef.c
- testsuite/libffi.call/huge_struct.c
- testsuite/libffi.call/stret_large2.c
- testsuite/libffi.call/stret_large.c
- testsuite/libffi.call/stret_medium2.c
- testsuite/libffi.call/stret_medium.c: New tests from Apple.
-
-2008-02-26 Jakub Jelinek
- Anthony Green
-
- * src/alpha/osf.S: Add .note.GNU-stack on Linux.
- * src/s390/sysv.S: Likewise.
- * src/powerpc/linux64.S: Likewise.
- * src/powerpc/linux64_closure.S: Likewise.
- * src/powerpc/ppc_closure.S: Likewise.
- * src/powerpc/sysv.S: Likewise.
- * src/x86/unix64.S: Likewise.
- * src/x86/sysv.S: Likewise.
- * src/sparc/v8.S: Likewise.
- * src/sparc/v9.S: Likewise.
- * src/m68k/sysv.S: Likewise.
- * src/ia64/unix.S: Likewise.
- * src/arm/sysv.S: Likewise.
-
-2008-02-26 Anthony Green
- Thomas Heller
-
- * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
- comment.
-
-2008-02-26 Anthony Green
- Thomas Heller
-
- * include/ffi.h.in: Change void (*)() to void (*)(void).
-
-2008-02-26 Anthony Green
- Thomas Heller
-
- * src/alpha/ffi.c: Change void (*)() to void (*)(void).
- src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
- src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
- src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
- src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
- src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
- src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,
- src/x86/ffi64.c: Ditto.
-
-2008-02-24 Anthony Green
-
- * configure.ac: Accept openbsd*, not just openbsd.
- Bump version to 3.0.4.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-02-22 Anthony Green
-
- * README: Clean up list of tested platforms.
-
-2008-02-22 Anthony Green
-
- * configure.ac: Bump version to 3.0.3.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release. Clean up test docs.
-
-2008-02-22 Bjoern Koenig
- Andreas Tobler
-
- * configure.ac: Add amd64-*-freebsd* target.
- * configure: Regenerate.
-
-2008-02-22 Thomas Heller
-
- * configure.ac: Add x86 OpenBSD support.
- * configure: Rebuilt.
-
-2008-02-21 Thomas Heller
-
- * README: Change "make test" to "make check".
-
-2008-02-21 Anthony Green
-
- * configure.ac: Bump version to 3.0.2.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-02-21 Björn König
-
- * src/x86/freebsd.S: New file.
- * configure.ac: Add x86 FreeBSD support.
- * Makefile.am: Ditto.
-
-2008-02-15 Anthony Green
-
- * configure.ac: Bump version to 3.0.1.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * libtool-version: Increment revision.
- * README: Update for new release.
-
-2008-02-15 David Daney
-
- * src/mips/ffi.c: Remove extra '>' from include directive.
- (ffi_prep_closure_loc): Use clear_location instead of tramp.
-
-2008-02-15 Anthony Green
-
- * configure.ac: Bump version to 3.0.0.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
-
-2008-02-15 David Daney
-
- * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
- Define (conditionally), and use it to include cachectl.h.
- (ffi_prep_closure_loc): Fix cache flushing.
- * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
-
-2008-02-15 Anthony Green
-
- * man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
- Update dates and remove all references to ffi_prep_closure.
- * configure.ac: Bump version to 2.99.9.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
-
-2008-02-15 Anthony Green
-
- * man/ffi_prep_closure.3: Delete.
- * man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
- (man_MANS): Ditto.
- * man/Makefile.in: Rebuilt.
- * configure.ac: Bump version to 2.99.8.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * configure.ac: Bump version to 2.99.7.
- * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
- * include/ffi.h.in LICENSE src/debug.c src/closures.c
- src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
- src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
- src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
- src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
- src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
- src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
- src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
- src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
- src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
- src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
- src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
- src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
- src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
- src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
- src/arm/ffitarget.h src/prep_cif.c: Update license text.
-
-2008-02-14 Anthony Green
-
- * README: Update tested platforms.
- * configure.ac: Bump version to 2.99.6.
- * configure: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * configure.ac: Bump version to 2.99.5.
- * configure: Rebuilt.
- * Makefile.am (EXTRA_DIST): Add darwin64.S
- * Makefile.in: Rebuilt.
- * testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
- * LICENSE: Update WARRANTY.
-
-2008-02-14 Anthony Green
-
- * libffi.pc.in (libdir): Fix libdir definition.
- * configure.ac: Bump version to 2.99.4.
- * configure: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * README: Update.
- * libffi.info: New file.
- * doc/stamp-vti: New file.
- * configure.ac: Bump version to 2.99.3.
- * configure: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * Makefile.am (SUBDIRS): Add man dir.
- * Makefile.in: Rebuilt.
- * configure.ac: Create Makefile.
- * configure: Rebuilt.
- * man/ffi_call.3 man/ffi_prep_cif.3 man/ffi_prep_closure.3
- man/Makefile.am man/Makefile.in: New files.
-
-2008-02-14 Tom Tromey
-
- * aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
- * mdate-sh, texinfo.tex: New files.
- * Makefile.am (info_TEXINFOS): New variable.
- * doc/libffi.texi: New file.
- * doc/version.texi: Likewise.
-
-2008-02-14 Anthony Green
-
- * Makefile.am (AM_CFLAGS): Don't compile with -D$(TARGET).
- (lib_LTLIBRARIES): Define.
- (toolexeclib_LIBRARIES): Undefine.
- * Makefile.in: Rebuilt.
- * configure.ac: Reset version to 2.99.1.
- * configure.in: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * libffi.pc.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
- * configure.ac: Reset version to 2.99.1.
- * configure.in: Rebuilt.
- * Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
- * Makefile.in: Rebuilt.
- * LICENSE: Update copyright notice.
-
-2008-02-14 Anthony Green
-
- * include/Makefile.am (nodist_includes_HEADERS): Define. Don't
- distribute ffitarget.h or ffi.h from the build include dir.
- * Makefile.in: Rebuilt.
-
-2008-02-14 Anthony Green
-
- * include/Makefile.am (includesdir): Install headers under libdir.
- (pkgconfigdir): Define. Install libffi.pc.
- * include/Makefile.in: Rebuilt.
- * libffi.pc.in: Create.
- * libtool-version: Increment CURRENT
- * configure.ac: Add libffi.pc.in
- * configure: Rebuilt.
-
-2008-02-03 Anthony Green
-
- * include/Makefile.am (includesdir): Fix header install with
- DESTDIR.
- * include/Makefile.in: Rebuilt.
-
-2008-02-03 Timothy Wall
-
- * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
- offset based on code pointer, not data pointer.
-
-2008-02-01 Anthony Green
-
- * include/Makefile.am: Fix header installs.
- * Makefile.am: Ditto.
- * include/Makefile.in: Rebuilt.
- * Makefile.in: Ditto.
-
-2008-02-01 Anthony Green
-
- * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL,
- FFI_INIT_TRAMPOLINE): Revert my broken changes to twall's last
- patch.
-
-2008-01-31 Anthony Green
-
- * Makefile.am (EXTRA_DIST): Add missing files.
- * testsuite/Makefile.am: Ditto.
- * Makefile.in, testsuite/Makefile.in: Rebuilt.
-
-2008-01-31 Timothy Wall
-
- * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
- closures.
- * src/x86/ffitarget.h: Increase size of trampoline for stdcall
- closures.
- * src/x86/win32.S: Add assembly for stdcall closure.
- * src/x86/ffi.c: Initialize stdcall closure trampoline.
-
-2008-01-30 H.J. Lu
-
- PR libffi/34612
- * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
- returning struct.
-
- * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
- tests.
-
-2008-01-30 Anthony Green
-
- * Makefile.am, include/Makefile.am: Move headers to
- libffi_la_SOURCES for new automake.
- * Makefile.in, include/Makefile.in: Rebuilt.
-
- * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for
- execution outside of gcc tree.
- * testsuite/lib/target-libpath.exp: Ditto.
-
- * testsuite/lib/libffi-dg.exp: Many changes to allow for execution
- outside of gcc tree.
-
diff --git a/native/libffi/ChangeLog.libgcj b/native/libffi/ChangeLog.libgcj
deleted file mode 100644
index ea5d02f19b..0000000000
--- a/native/libffi/ChangeLog.libgcj
+++ /dev/null
@@ -1,40 +0,0 @@
-2004-01-14 Kelley Cook
-
- * configure.in: Add in AC_PREREQ(2.13)
-
-2003-02-20 Alexandre Oliva
-
- * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
- config.status.
- * configure: Rebuilt.
-
-2002-01-27 Alexandre Oliva
-
- * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
- Remove USE_LIBDIR conditional.
- * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
- * Makefile.in, configure: Rebuilt.
-
-Mon Aug 9 18:33:38 1999 Rainer Orth
-
- * include/Makefile.in: Rebuilt.
- * Makefile.in: Rebuilt
- * Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
- builds.
- Use USE_LIBDIR.
-
- * configure: Rebuilt.
- * configure.in (USE_LIBDIR): Define for native builds.
- Use lowercase in configure --help explanations.
-
-1999-08-08 Anthony Green
-
- * include/ffi.h.in (FFI_FN): Remove `...'.
-
-1999-08-08 Anthony Green
-
- * Makefile.in: Rebuilt.
- * Makefile.am (AM_CFLAGS): Compile with -fexceptions.
-
- * src/x86/sysv.S: Add exception handling metadata.
-
diff --git a/native/libffi/ChangeLog.libffi-3.1 b/native/libffi/ChangeLog.old
similarity index 82%
rename from native/libffi/ChangeLog.libffi-3.1
rename to native/libffi/ChangeLog.old
index 8f7f50d6f9..8de1ca75f1 100644
--- a/native/libffi/ChangeLog.libffi-3.1
+++ b/native/libffi/ChangeLog.old
@@ -1,3 +1,11 @@
+Libffi change logs used to be maintained in separate ChangeLog files.
+These days we generate them directly from the git commit messages.
+The old ChangeLog files are saved here in order to maintain the historical
+record.
+
+=============================================================================
+From the old ChangeLog.libffi-3.1 file...
+
2014-03-16 Josh Triplett
* ChangeLog: Archive to ChangeLog.libffi-3.1 and delete. Future
@@ -5998,3 +6006,1402 @@ Thu Jul 8 14:28:42 1999 Anthony Green
* src/x86/ChangeLog: Removed.
* ChangeLog.v1: Created.
+
+=============================================================================
+From the old ChangeLog.libffi file....
+
+2011-02-08 Andreas Tobler
+
+ * testsuite/lib/libffi.exp: Tweak for stand-alone mode.
+
+2009-12-25 Samuli Suominen
+
+ * configure.ac: Undefine _AC_ARG_VAR_PRECIOUS for autoconf 2.64.
+ * configure: Rebuilt.
+ * fficonfig.h.in: Rebuilt.
+
+2009-06-16 Andrew Haley
+
+ * testsuite/libffi.call/cls_align_sint64.c,
+ testsuite/libffi.call/cls_align_uint64.c,
+ testsuite/libffi.call/cls_longdouble_va.c,
+ testsuite/libffi.call/cls_ulonglong.c,
+ testsuite/libffi.call/return_ll1.c,
+ testsuite/libffi.call/stret_medium2.c: Fix printf format
+ specifiers.
+ * testsuite/libffi.call/huge_struct.c: Ad x86 XFAILs.
+ * testsuite/libffi.call/float2.c: Fix dg-excess-errors.
+ * testsuite/libffi.call/ffitest.h,
+ testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.
+
+2009-06-12 Andrew Haley
+
+ * testsuite/libffi.call/cls_align_sint64.c,
+ testsuite/libffi.call/cls_align_uint64.c,
+ testsuite/libffi.call/cls_ulonglong.c,
+ testsuite/libffi.call/return_ll1.c,
+ testsuite/libffi.call/stret_medium2.c: Fix printf format
+ specifiers.
+ testsuite/libffi.special/unwindtest.cc: include stdint.h.
+
+2009-06-11 Timothy Wall
+
+ * Makefile.am,
+ configure.ac,
+ include/ffi.h.in,
+ include/ffi_common.h,
+ src/closures.c,
+ src/dlmalloc.c,
+ src/x86/ffi.c,
+ src/x86/ffitarget.h,
+ src/x86/win64.S (new),
+ README: Added win64 support (mingw or MSVC)
+ * Makefile.in,
+ include/Makefile.in,
+ man/Makefile.in,
+ testsuite/Makefile.in,
+ configure,
+ aclocal.m4: Regenerated
+ * ltcf-c.sh: properly escape cygwin/w32 path
+ * man/ffi_call.3: Clarify size requirements for return value.
+ * src/x86/ffi64.c: Fix filename in comment.
+ * src/x86/win32.S: Remove unused extern.
+
+ * testsuite/libffi.call/closure_fn0.c,
+ testsuite/libffi.call/closure_fn1.c,
+ testsuite/libffi.call/closure_fn2.c,
+ testsuite/libffi.call/closure_fn3.c,
+ testsuite/libffi.call/closure_fn4.c,
+ testsuite/libffi.call/closure_fn5.c,
+ testsuite/libffi.call/closure_fn6.c,
+ testsuite/libffi.call/closure_stdcall.c,
+ testsuite/libffi.call/cls_12byte.c,
+ testsuite/libffi.call/cls_16byte.c,
+ testsuite/libffi.call/cls_18byte.c,
+ testsuite/libffi.call/cls_19byte.c,
+ testsuite/libffi.call/cls_1_1byte.c,
+ testsuite/libffi.call/cls_20byte.c,
+ testsuite/libffi.call/cls_20byte1.c,
+ testsuite/libffi.call/cls_24byte.c,
+ testsuite/libffi.call/cls_2byte.c,
+ testsuite/libffi.call/cls_3_1byte.c,
+ testsuite/libffi.call/cls_3byte1.c,
+ testsuite/libffi.call/cls_3byte2.c,
+ testsuite/libffi.call/cls_4_1byte.c,
+ testsuite/libffi.call/cls_4byte.c,
+ testsuite/libffi.call/cls_5_1_byte.c,
+ testsuite/libffi.call/cls_5byte.c,
+ testsuite/libffi.call/cls_64byte.c,
+ testsuite/libffi.call/cls_6_1_byte.c,
+ testsuite/libffi.call/cls_6byte.c,
+ testsuite/libffi.call/cls_7_1_byte.c,
+ testsuite/libffi.call/cls_7byte.c,
+ testsuite/libffi.call/cls_8byte.c,
+ testsuite/libffi.call/cls_9byte1.c,
+ testsuite/libffi.call/cls_9byte2.c,
+ testsuite/libffi.call/cls_align_double.c,
+ testsuite/libffi.call/cls_align_float.c,
+ testsuite/libffi.call/cls_align_longdouble.c,
+ testsuite/libffi.call/cls_align_longdouble_split.c,
+ testsuite/libffi.call/cls_align_longdouble_split2.c,
+ testsuite/libffi.call/cls_align_pointer.c,
+ testsuite/libffi.call/cls_align_sint16.c,
+ testsuite/libffi.call/cls_align_sint32.c,
+ testsuite/libffi.call/cls_align_sint64.c,
+ testsuite/libffi.call/cls_align_uint16.c,
+ testsuite/libffi.call/cls_align_uint32.c,
+ testsuite/libffi.call/cls_align_uint64.c,
+ testsuite/libffi.call/cls_dbls_struct.c,
+ testsuite/libffi.call/cls_double.c,
+ testsuite/libffi.call/cls_double_va.c,
+ testsuite/libffi.call/cls_float.c,
+ testsuite/libffi.call/cls_longdouble.c,
+ testsuite/libffi.call/cls_longdouble_va.c,
+ testsuite/libffi.call/cls_multi_schar.c,
+ testsuite/libffi.call/cls_multi_sshort.c,
+ testsuite/libffi.call/cls_multi_sshortchar.c,
+ testsuite/libffi.call/cls_multi_uchar.c,
+ testsuite/libffi.call/cls_multi_ushort.c,
+ testsuite/libffi.call/cls_multi_ushortchar.c,
+ testsuite/libffi.call/cls_pointer.c,
+ testsuite/libffi.call/cls_pointer_stack.c,
+ testsuite/libffi.call/cls_schar.c,
+ testsuite/libffi.call/cls_sint.c,
+ testsuite/libffi.call/cls_sshort.c,
+ testsuite/libffi.call/cls_uchar.c,
+ testsuite/libffi.call/cls_uint.c,
+ testsuite/libffi.call/cls_ulonglong.c,
+ testsuite/libffi.call/cls_ushort.c,
+ testsuite/libffi.call/err_bad_abi.c,
+ testsuite/libffi.call/err_bad_typedef.c,
+ testsuite/libffi.call/float2.c,
+ testsuite/libffi.call/huge_struct.c,
+ testsuite/libffi.call/nested_struct.c,
+ testsuite/libffi.call/nested_struct1.c,
+ testsuite/libffi.call/nested_struct10.c,
+ testsuite/libffi.call/nested_struct2.c,
+ testsuite/libffi.call/nested_struct3.c,
+ testsuite/libffi.call/nested_struct4.c,
+ testsuite/libffi.call/nested_struct5.c,
+ testsuite/libffi.call/nested_struct6.c,
+ testsuite/libffi.call/nested_struct7.c,
+ testsuite/libffi.call/nested_struct8.c,
+ testsuite/libffi.call/nested_struct9.c,
+ testsuite/libffi.call/problem1.c,
+ testsuite/libffi.call/return_ldl.c,
+ testsuite/libffi.call/return_ll1.c,
+ testsuite/libffi.call/stret_large.c,
+ testsuite/libffi.call/stret_large2.c,
+ testsuite/libffi.call/stret_medium.c,
+ testsuite/libffi.call/stret_medium2.c,
+ testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
+ of checking for MMAP. Use intptr_t instead of long casts.
+
+2009-06-04 Andrew Haley
+
+ * src/powerpc/ffitarget.h: Fix misapplied merge from gcc.
+
+2009-06-04 Andrew Haley
+
+ * src/mips/o32.S,
+ src/mips/n32.S: Fix licence formatting.
+
+2009-06-04 Andrew Haley
+
+ * src/x86/darwin.S: Fix licence formatting.
+ src/x86/win32.S: Likewise.
+ src/sh64/sysv.S: Likewise.
+ src/sh/sysv.S: Likewise.
+
+2009-06-04 Andrew Haley
+
+ * src/sh64/ffi.c: Remove lint directives. Was missing from merge
+ of Andreas Tobler's patch from 2006-04-22.
+
+2009-06-04 Andrew Haley
+
+ * src/sh/ffi.c: Apply missing hunk from Alexandre Oliva's patch of
+ 2007-03-07.
+
+2008-12-26 Timothy Wall
+
+ * testsuite/libffi.call/cls_longdouble.c,
+ testsuite/libffi.call/cls_longdouble_va.c,
+ testsuite/libffi.call/cls_align_longdouble.c,
+ testsuite/libffi.call/cls_align_longdouble_split.c,
+ testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
+ failures on x86_64 cygwin/mingw.
+
+2008-12-22 Timothy Wall
+
+ * testsuite/libffi.call/closure_fn0.c,
+ testsuite/libffi.call/closure_fn1.c,
+ testsuite/libffi.call/closure_fn2.c,
+ testsuite/libffi.call/closure_fn3.c,
+ testsuite/libffi.call/closure_fn4.c,
+ testsuite/libffi.call/closure_fn5.c,
+ testsuite/libffi.call/closure_fn6.c,
+ testsuite/libffi.call/closure_loc_fn0.c,
+ testsuite/libffi.call/closure_stdcall.c,
+ testsuite/libffi.call/cls_align_pointer.c,
+ testsuite/libffi.call/cls_pointer.c,
+ testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
+ pointer to integer (intptr_t).
+ * testsuite/libffi.call/cls_longdouble.c: disable for win64.
+
+2008-12-19 Anthony Green
+
+ * configure.ac: Bump version to 3.0.8.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-11-11 Anthony Green
+
+ * configure.ac: Bump version to 3.0.7.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-08-25 Andreas Tobler
+
+ * src/powerpc/ffitarget.h (ffi_abi): Add FFI_LINUX and
+ FFI_LINUX_SOFT_FLOAT to the POWERPC_FREEBSD enum.
+ Add note about flag bits used for FFI_SYSV_TYPE_SMALL_STRUCT.
+ Adjust copyright notice.
+ * src/powerpc/ffi.c: Add two new flags to indicate if we have one
+ register or two register to use for FFI_SYSV structs.
+ (ffi_prep_cif_machdep): Pass the right register flag introduced above.
+ (ffi_closure_helper_SYSV): Fix the return type for
+ FFI_SYSV_TYPE_SMALL_STRUCT. Comment.
+ Adjust copyright notice.
+
+2008-07-24 Anthony Green
+
+ * testsuite/libffi.call/cls_dbls_struct.c,
+ testsuite/libffi.call/cls_double_va.c,
+ testsuite/libffi.call/cls_longdouble.c,
+ testsuite/libffi.call/cls_longdouble_va.c,
+ testsuite/libffi.call/cls_pointer.c,
+ testsuite/libffi.call/cls_pointer_stack.c,
+ testsuite/libffi.call/err_bad_abi.c: Clean up failures from
+ compiler warnings.
+
+2008-07-17 Anthony Green
+
+ * configure.ac: Bump version to 3.0.6.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision. Add documentation.
+ * README: Update for new release.
+
+2008-07-16 Kaz Kojima
+
+ * src/sh/ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned
+ int.
+
+2008-07-16 Kaz Kojima
+
+ * src/sh/sysv.S: Add .note.GNU-stack on Linux.
+ * src/sh64/sysv.S: Likewise.
+
+2008-04-03 Anthony Green
+
+ * libffi.pc.in (Libs): Add -L${libdir}.
+ * configure.ac: Bump version to 3.0.5.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-04-03 Anthony Green
+ Xerces Ranby
+
+ * include/ffi.h.in: Wrap definition of target architecture to
+ protect from double definitions.
+
+2008-03-22 Moriyoshi Koizumi
+
+ * src/x86/ffi.c (ffi_prep_closure_loc): Fix for bug revealed in
+ closure_loc_fn0.c.
+ * testsuite/libffi.call/closure_loc_fn0.c (closure_loc_test_fn0):
+ New test.
+
+2008-03-04 Anthony Green
+ Blake Chaffin
+ hos@tamanegi.org
+
+ * testsuite/libffi.call/cls_align_longdouble_split2.c
+ testsuite/libffi.call/cls_align_longdouble_split.c
+ testsuite/libffi.call/cls_dbls_struct.c
+ testsuite/libffi.call/cls_double_va.c
+ testsuite/libffi.call/cls_longdouble.c
+ testsuite/libffi.call/cls_longdouble_va.c
+ testsuite/libffi.call/cls_pointer.c
+ testsuite/libffi.call/cls_pointer_stack.c
+ testsuite/libffi.call/err_bad_abi.c
+ testsuite/libffi.call/err_bad_typedef.c
+ testsuite/libffi.call/huge_struct.c
+ testsuite/libffi.call/stret_large2.c
+ testsuite/libffi.call/stret_large.c
+ testsuite/libffi.call/stret_medium2.c
+ testsuite/libffi.call/stret_medium.c: New tests from Apple.
+
+2008-02-26 Jakub Jelinek
+ Anthony Green
+
+ * src/alpha/osf.S: Add .note.GNU-stack on Linux.
+ * src/s390/sysv.S: Likewise.
+ * src/powerpc/linux64.S: Likewise.
+ * src/powerpc/linux64_closure.S: Likewise.
+ * src/powerpc/ppc_closure.S: Likewise.
+ * src/powerpc/sysv.S: Likewise.
+ * src/x86/unix64.S: Likewise.
+ * src/x86/sysv.S: Likewise.
+ * src/sparc/v8.S: Likewise.
+ * src/sparc/v9.S: Likewise.
+ * src/m68k/sysv.S: Likewise.
+ * src/ia64/unix.S: Likewise.
+ * src/arm/sysv.S: Likewise.
+
+2008-02-26 Anthony Green
+ Thomas Heller
+
+ * src/x86/ffi.c (ffi_closure_SYSV_inner): Change C++ comment to C
+ comment.
+
+2008-02-26 Anthony Green
+ Thomas Heller
+
+ * include/ffi.h.in: Change void (*)() to void (*)(void).
+
+2008-02-26 Anthony Green
+ Thomas Heller
+
+ * src/alpha/ffi.c: Change void (*)() to void (*)(void).
+ src/alpha/osf.S, src/arm/ffi.c, src/frv/ffi.c, src/ia64/ffi.c,
+ src/ia64/unix.S, src/java_raw_api.c, src/m32r/ffi.c,
+ src/mips/ffi.c, src/pa/ffi.c, src/pa/hpux32.S, src/pa/linux.S,
+ src/powerpc/ffi.c, src/powerpc/ffi_darwin.c, src/raw_api.c,
+ src/s390/ffi.c, src/sh/ffi.c, src/sh64/ffi.c, src/sparc/ffi.c,
+ src/x86/ffi.c, src/x86/unix64.S, src/x86/darwin64.S,
+ src/x86/ffi64.c: Ditto.
+
+2008-02-24 Anthony Green
+
+ * configure.ac: Accept openbsd*, not just openbsd.
+ Bump version to 3.0.4.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-02-22 Anthony Green
+
+ * README: Clean up list of tested platforms.
+
+2008-02-22 Anthony Green
+
+ * configure.ac: Bump version to 3.0.3.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release. Clean up test docs.
+
+2008-02-22 Bjoern Koenig
+ Andreas Tobler
+
+ * configure.ac: Add amd64-*-freebsd* target.
+ * configure: Regenerate.
+
+2008-02-22 Thomas Heller
+
+ * configure.ac: Add x86 OpenBSD support.
+ * configure: Rebuilt.
+
+2008-02-21 Thomas Heller
+
+ * README: Change "make test" to "make check".
+
+2008-02-21 Anthony Green
+
+ * configure.ac: Bump version to 3.0.2.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-02-21 Björn König
+
+ * src/x86/freebsd.S: New file.
+ * configure.ac: Add x86 FreeBSD support.
+ * Makefile.am: Ditto.
+
+2008-02-15 Anthony Green
+
+ * configure.ac: Bump version to 3.0.1.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * libtool-version: Increment revision.
+ * README: Update for new release.
+
+2008-02-15 David Daney
+
+ * src/mips/ffi.c: Remove extra '>' from include directive.
+ (ffi_prep_closure_loc): Use clear_location instead of tramp.
+
+2008-02-15 Anthony Green
+
+ * configure.ac: Bump version to 3.0.0.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15 David Daney
+
+ * src/mips/ffi.c (USE__BUILTIN___CLEAR_CACHE):
+ Define (conditionally), and use it to include cachectl.h.
+ (ffi_prep_closure_loc): Fix cache flushing.
+ * src/mips/ffitarget.h (_ABIN32, _ABI64, _ABIO32): Define.
+
+2008-02-15 Anthony Green
+
+ * man/ffi_call.3, man/ffi_prep_cif.3, man/ffi.3:
+ Update dates and remove all references to ffi_prep_closure.
+ * configure.ac: Bump version to 2.99.9.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-15 Anthony Green
+
+ * man/ffi_prep_closure.3: Delete.
+ * man/Makefile.am (EXTRA_DIST): Remove ffi_prep_closure.3.
+ (man_MANS): Ditto.
+ * man/Makefile.in: Rebuilt.
+ * configure.ac: Bump version to 2.99.8.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * configure.ac: Bump version to 2.99.7.
+ * configure, doc/stamp-vti, doc/version.texi: Rebuilt.
+ * include/ffi.h.in LICENSE src/debug.c src/closures.c
+ src/ffitest.c src/s390/sysv.S src/s390/ffitarget.h
+ src/types.c src/m68k/ffitarget.h src/raw_api.c src/frv/ffi.c
+ src/frv/ffitarget.h src/sh/ffi.c src/sh/sysv.S
+ src/sh/ffitarget.h src/powerpc/ffitarget.h src/pa/ffi.c
+ src/pa/ffitarget.h src/pa/linux.S src/java_raw_api.c
+ src/cris/ffitarget.h src/x86/ffi.c src/x86/sysv.S
+ src/x86/unix64.S src/x86/win32.S src/x86/ffitarget.h
+ src/x86/ffi64.c src/x86/darwin.S src/ia64/ffi.c
+ src/ia64/ffitarget.h src/ia64/ia64_flags.h src/ia64/unix.S
+ src/sparc/ffi.c src/sparc/v9.S src/sparc/ffitarget.h
+ src/sparc/v8.S src/alpha/ffi.c src/alpha/ffitarget.h
+ src/alpha/osf.S src/sh64/ffi.c src/sh64/sysv.S
+ src/sh64/ffitarget.h src/mips/ffi.c src/mips/ffitarget.h
+ src/mips/n32.S src/mips/o32.S src/arm/ffi.c src/arm/sysv.S
+ src/arm/ffitarget.h src/prep_cif.c: Update license text.
+
+2008-02-14 Anthony Green
+
+ * README: Update tested platforms.
+ * configure.ac: Bump version to 2.99.6.
+ * configure: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * configure.ac: Bump version to 2.99.5.
+ * configure: Rebuilt.
+ * Makefile.am (EXTRA_DIST): Add darwin64.S
+ * Makefile.in: Rebuilt.
+ * testsuite/lib/libffi-dg.exp: Remove libstdc++ bits from GCC tree.
+ * LICENSE: Update WARRANTY.
+
+2008-02-14 Anthony Green
+
+ * libffi.pc.in (libdir): Fix libdir definition.
+ * configure.ac: Bump version to 2.99.4.
+ * configure: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * README: Update.
+ * libffi.info: New file.
+ * doc/stamp-vti: New file.
+ * configure.ac: Bump version to 2.99.3.
+ * configure: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * Makefile.am (SUBDIRS): Add man dir.
+ * Makefile.in: Rebuilt.
+ * configure.ac: Create Makefile.
+ * configure: Rebuilt.
+ * man/ffi_call.3 man/ffi_prep_cif.3 man/ffi_prep_closure.3
+ man/Makefile.am man/Makefile.in: New files.
+
+2008-02-14 Tom Tromey
+
+ * aclocal.m4, Makefile.in, configure, fficonfig.h.in: Rebuilt.
+ * mdate-sh, texinfo.tex: New files.
+ * Makefile.am (info_TEXINFOS): New variable.
+ * doc/libffi.texi: New file.
+ * doc/version.texi: Likewise.
+
+2008-02-14 Anthony Green
+
+ * Makefile.am (AM_CFLAGS): Don't compile with -D$(TARGET).
+ (lib_LTLIBRARIES): Define.
+ (toolexeclib_LIBRARIES): Undefine.
+ * Makefile.in: Rebuilt.
+ * configure.ac: Reset version to 2.99.1.
+ * configure.in: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * libffi.pc.in: Use @PACKAGE_NAME@ and @PACKAGE_VERSION@.
+ * configure.ac: Reset version to 2.99.1.
+ * configure.in: Rebuilt.
+ * Makefile.am (EXTRA_DIST): Add ChangeLog.libffi.
+ * Makefile.in: Rebuilt.
+ * LICENSE: Update copyright notice.
+
+2008-02-14 Anthony Green
+
+ * include/Makefile.am (nodist_includes_HEADERS): Define. Don't
+ distribute ffitarget.h or ffi.h from the build include dir.
+ * Makefile.in: Rebuilt.
+
+2008-02-14 Anthony Green
+
+ * include/Makefile.am (includesdir): Install headers under libdir.
+ (pkgconfigdir): Define. Install libffi.pc.
+ * include/Makefile.in: Rebuilt.
+ * libffi.pc.in: Create.
+ * libtool-version: Increment CURRENT
+ * configure.ac: Add libffi.pc.in
+ * configure: Rebuilt.
+
+2008-02-03 Anthony Green
+
+ * include/Makefile.am (includesdir): Fix header install with
+ DESTDIR.
+ * include/Makefile.in: Rebuilt.
+
+2008-02-03 Timothy Wall
+
+ * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL): Calculate jump return
+ offset based on code pointer, not data pointer.
+
+2008-02-01 Anthony Green
+
+ * include/Makefile.am: Fix header installs.
+ * Makefile.am: Ditto.
+ * include/Makefile.in: Rebuilt.
+ * Makefile.in: Ditto.
+
+2008-02-01 Anthony Green
+
+ * src/x86/ffi.c (FFI_INIT_TRAMPOLINE_STDCALL,
+ FFI_INIT_TRAMPOLINE): Revert my broken changes to twall's last
+ patch.
+
+2008-01-31 Anthony Green
+
+ * Makefile.am (EXTRA_DIST): Add missing files.
+ * testsuite/Makefile.am: Ditto.
+ * Makefile.in, testsuite/Makefile.in: Rebuilt.
+
+2008-01-31 Timothy Wall
+
+ * testsuite/libffi.call/closure_stdcall.c: Add test for stdcall
+ closures.
+ * src/x86/ffitarget.h: Increase size of trampoline for stdcall
+ closures.
+ * src/x86/win32.S: Add assembly for stdcall closure.
+ * src/x86/ffi.c: Initialize stdcall closure trampoline.
+
+2008-01-30 H.J. Lu
+
+ PR libffi/34612
+ * src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
+ returning struct.
+
+ * testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
+ tests.
+
+2008-01-30 Anthony Green
+
+ * Makefile.am, include/Makefile.am: Move headers to
+ libffi_la_SOURCES for new automake.
+ * Makefile.in, include/Makefile.in: Rebuilt.
+
+ * testsuite/lib/wrapper.exp: Copied from gcc tree to allow for
+ execution outside of gcc tree.
+ * testsuite/lib/target-libpath.exp: Ditto.
+
+ * testsuite/lib/libffi-dg.exp: Many changes to allow for execution
+ outside of gcc tree.
+
+
+=============================================================================
+From the old ChangeLog.libgcj file....
+
+2004-01-14 Kelley Cook
+
+ * configure.in: Add in AC_PREREQ(2.13)
+
+2003-02-20 Alexandre Oliva
+
+ * configure.in: Propagate ORIGINAL_LD_FOR_MULTILIBS to
+ config.status.
+ * configure: Rebuilt.
+
+2002-01-27 Alexandre Oliva
+
+ * configure.in (toolexecdir, toolexeclibdir): Set and AC_SUBST.
+ Remove USE_LIBDIR conditional.
+ * Makefile.am (toolexecdir, toolexeclibdir): Don't override.
+ * Makefile.in, configure: Rebuilt.
+
+Mon Aug 9 18:33:38 1999 Rainer Orth
+
+ * include/Makefile.in: Rebuilt.
+ * Makefile.in: Rebuilt
+ * Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
+ builds.
+ Use USE_LIBDIR.
+
+ * configure: Rebuilt.
+ * configure.in (USE_LIBDIR): Define for native builds.
+ Use lowercase in configure --help explanations.
+
+1999-08-08 Anthony Green
+
+ * include/ffi.h.in (FFI_FN): Remove `...'.
+
+1999-08-08 Anthony Green
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (AM_CFLAGS): Compile with -fexceptions.
+
+ * src/x86/sysv.S: Add exception handling metadata.
+
+
+=============================================================================
+
+The libffi version 1 ChangeLog archive.
+
+Version 1 of libffi had per-directory ChangeLogs. Current and future
+versions have a single ChangeLog file in the root directory. The
+version 1 ChangeLogs have all been concatenated into this file for
+future reference only.
+
+--- libffi ----------------------------------------------------------------
+
+Mon Oct 5 02:17:50 1998 Anthony Green
+
+ * configure.in: Boosted rev.
+ * configure, Makefile.in, aclocal.m4: Rebuilt.
+ * README: Boosted rev and updated release notes.
+
+Mon Oct 5 01:03:03 1998 Anthony Green
+
+ * configure.in: Boosted rev.
+ * configure, Makefile.in, aclocal.m4: Rebuilt.
+ * README: Boosted rev and updated release notes.
+
+1998-07-25 Andreas Schwab
+
+ * m68k/ffi.c (ffi_prep_cif_machdep): Use bitmask for cif->flags.
+ Correctly handle small structures.
+ (ffi_prep_args): Also handle small structures.
+ (ffi_call): Pass size of return type to ffi_call_SYSV.
+ * m68k/sysv.S: Adjust for above changes. Correctly align small
+ structures in the return value.
+
+ * types.c (uint64, sint64) [M68K]: Change alignment to 4.
+
+Fri Apr 17 17:26:58 1998 Anthony Green
+
+ * configure.in: Boosted rev.
+ * configure,Makefile.in,aclocal.m4: Rebuilt.
+ * README: Boosted rev and added release notes.
+
+Sun Feb 22 00:50:41 1998 Geoff Keating
+
+ * configure.in: Add PowerPC config bits.
+
+1998-02-14 Andreas Schwab
+
+ * configure.in: Add m68k config bits. Change AC_CANONICAL_SYSTEM
+ to AC_CANONICAL_HOST, this is not a compiler. Use $host instead
+ of $target. Remove AC_CHECK_SIZEOF(char), we already know the
+ result. Fix argument of AC_ARG_ENABLE.
+ * configure, fficonfig.h.in: Rebuilt.
+
+Tue Feb 10 20:53:40 1998 Richard Henderson
+
+ * configure.in: Add Alpha config bits.
+
+Tue May 13 13:39:20 1997 Anthony Green
+
+ * README: Updated dates and reworded Irix comments.
+
+ * configure.in: Removed AC_PROG_RANLIB.
+
+ * Makefile.in, aclocal.m4, config.guess, config.sub, configure,
+ ltmain.sh, */Makefile.in: libtoolized again and rebuilt with
+ automake and autoconf.
+
+Sat May 10 18:44:50 1997 Tom Tromey
+
+ * configure, aclocal.m4: Rebuilt.
+ * configure.in: Don't compute EXTRADIST; now handled in
+ src/Makefile.in. Removed macros implied by AM_INIT_AUTOMAKE.
+ Don't run AM_MAINTAINER_MODE.
+
+Thu May 8 14:34:05 1997 Anthony Green
+
+ * missing, ltmain.sh, ltconfig.sh: Created. These are new files
+ required by automake and libtool.
+
+ * README: Boosted rev to 1.14. Added notes.
+
+ * acconfig.h: Moved PACKAGE and VERSION for new automake.
+
+ * configure.in: Changes for libtool.
+
+ * Makefile.am (check): make test now make check. Uses libtool now.
+
+ * Makefile.in, configure.in, aclocal.h, fficonfig.h.in: Rebuilt.
+
+Thu May 1 16:27:07 1997 Anthony Green
+
+ * missing: Added file required by new automake.
+
+Tue Nov 26 14:10:42 1996 Anthony Green
+
+ * acconfig.h: Added USING_PURIFY flag. This is defined when
+ --enable-purify-safety was used at configure time.
+
+ * configure.in (allsources): Added --enable-purify-safety switch.
+ (VERSION): Boosted rev to 1.13.
+ * configure: Rebuilt.
+
+Fri Nov 22 06:46:12 1996 Anthony Green
+
+ * configure.in (VERSION): Boosted rev to 1.12.
+ Removed special CFLAGS hack for gcc.
+ * configure: Rebuilt.
+
+ * README: Boosted rev to 1.12. Added notes.
+
+ * Many files: Cygnus Support changed to Cygnus Solutions.
+
+Wed Oct 30 11:15:25 1996 Anthony Green
+
+ * configure.in (VERSION): Boosted rev to 1.11.
+ * configure: Rebuilt.
+
+ * README: Boosted rev to 1.11. Added notes about GNU make.
+
+Tue Oct 29 12:25:12 1996 Anthony Green
+
+ * configure.in: Fixed -Wall trick.
+ (VERSION): Boosted rev.
+ * configure: Rebuilt
+
+ * acconfig.h: Needed for --enable-debug configure switch.
+
+ * README: Boosted rev to 1.09. Added more notes on building
+ libffi, and LCLint.
+
+ * configure.in: Added --enable-debug switch. Boosted rev to
+ 1.09.
+ * configure: Rebuilt
+
+Tue Oct 15 13:11:28 1996 Anthony Green
+
+ * configure.in (VERSION): Boosted rev to 1.08
+ * configure: Rebuilt.
+
+ * README: Added n32 bug fix notes.
+
+ * Makefile.am: Added "make lint" production.
+ * Makefile.in: Rebuilt.
+
+Mon Oct 14 10:54:46 1996 Anthony Green
+
+ * README: Added web page reference.
+
+ * configure.in, README: Boosted rev to 1.05
+ * configure: Rebuilt.
+
+ * README: Fixed n32 sample code.
+
+Fri Oct 11 17:09:28 1996 Anthony Green
+
+ * README: Added sparc notes.
+
+ * configure.in, README: Boosted rev to 1.04.
+ * configure: Rebuilt.
+
+Thu Oct 10 10:31:03 1996 Anthony Green
+
+ * configure.in, README: Boosted rev to 1.03.
+ * configure: Rebuilt.
+
+ * README: Added struct notes.
+
+ * Makefile.am (EXTRA_DIST): Added LICENSE to distribution.
+ * Makefile.in: Rebuilt.
+
+ * README: Removed Linux section. No special notes now
+ because aggregates arg/return types work.
+
+Wed Oct 9 16:16:42 1996 Anthony Green
+
+ * README, configure.in (VERSION): Boosted rev to 1.02
+ * configure: Rebuilt.
+
+Tue Oct 8 11:56:33 1996 Anthony Green
+
+ * README (NOTE): Added n32 notes.
+
+ * Makefile.am: Added test production.
+ * Makefile: Rebuilt
+
+ * README: spell checked!
+
+ * configure.in (VERSION): Boosted rev to 1.01
+ * configure: Rebuilt.
+
+Mon Oct 7 15:50:22 1996 Anthony Green
+
+ * configure.in: Added nasty bit to support SGI tools.
+ * configure: Rebuilt.
+
+ * README: Added SGI notes. Added note about automake bug.
+
+Mon Oct 7 11:00:28 1996 Anthony Green
+
+ * README: Rewrote intro, and fixed examples.
+
+Fri Oct 4 10:19:55 1996 Anthony Green
+
+ * configure.in: -D$TARGET is no longer used as a compiler switch.
+ It is now inserted into ffi.h at configure time.
+ * configure: Rebuilt.
+
+ * FFI_ABI and FFI_STATUS are now ffi_abi and ffi_status.
+
+Thu Oct 3 13:47:34 1996 Anthony Green
+
+ * README, LICENSE: Created. Wrote some docs.
+
+ * configure.in: Don't barf on i586-unknown-linuxaout.
+ Added EXTRADIST code for "make dist".
+ * configure: Rebuilt.
+
+ * */Makefile.in: Rebuilt with patched automake.
+
+Tue Oct 1 17:12:25 1996 Anthony Green
+
+ * Makefile.am, aclocal.m4, config.guess, config.sub,
+ configure.in, fficonfig.h.in, install-sh, mkinstalldirs,
+ stamp-h.in: Created
+ * Makefile.in, configure: Generated
+
+--- libffi/include --------------------------------------------------------
+
+Tue Feb 24 13:09:36 1998 Anthony Green
+
+ * ffi_mips.h: Updated FFI_TYPE_STRUCT_* values based on
+ ffi.h.in changes. This is a work-around for SGI's "simple"
+ assembler.
+
+Sun Feb 22 00:51:55 1998 Geoff Keating
+
+ * ffi.h.in: PowerPC support.
+
+1998-02-14 Andreas Schwab
+
+ * ffi.h.in: Add m68k support.
+ (FFI_TYPE_LONGDOUBLE): Make it a separate value.
+
+Tue Feb 10 20:55:16 1998 Richard Henderson
+
+ * ffi.h.in (SIZEOF_ARG): Use a pointer type by default.
+
+ * ffi.h.in: Alpha support.
+
+Fri Nov 22 06:48:45 1996 Anthony Green
+
+ * ffi.h.in, ffi_common.h: Cygnus Support -> Cygnus Solutions.
+
+Wed Nov 20 22:31:01 1996 Anthony Green
+
+ * ffi.h.in: Added ffi_type_void definition.
+
+Tue Oct 29 12:22:40 1996 Anthony Green
+
+ * Makefile.am (hack_DATA): Always install ffi_mips.h.
+
+ * ffi.h.in: Removed FFI_DEBUG. It's now in the correct
+ place (acconfig.h).
+ Added #include for size_t definition.
+
+Tue Oct 15 17:23:35 1996 Anthony Green
+
+ * ffi.h.in, ffi_common.h, ffi_mips.h: More clean up.
+ Commented out #define of FFI_DEBUG.
+
+Tue Oct 15 13:01:06 1996 Anthony Green
+
+ * ffi_common.h: Added bool definition.
+
+ * ffi.h.in, ffi_common.h: Clean up based on LCLint output.
+ Added funny /*@...@*/ comments to annotate source.
+
+Mon Oct 14 12:29:23 1996 Anthony Green
+
+ * ffi.h.in: Interface changes based on feedback from Jim
+ Blandy.
+
+Fri Oct 11 16:49:35 1996 Anthony Green
+
+ * ffi.h.in: Small change for sparc support.
+
+Thu Oct 10 14:53:37 1996 Anthony Green
+
+ * ffi_mips.h: Added FFI_TYPE_STRUCT_* definitions for
+ special structure return types.
+
+Wed Oct 9 13:55:57 1996 Anthony Green
+
+ * ffi.h.in: Added SIZEOF_ARG definition for X86
+
+Tue Oct 8 11:40:36 1996 Anthony Green
+
+ * ffi.h.in (FFI_FN): Added macro for eliminating compiler warnings.
+ Use it to case your function pointers to the proper type.
+
+ * ffi_mips.h (SIZEOF_ARG): Added magic to fix type promotion bug.
+
+ * Makefile.am (EXTRA_DIST): Added ffi_mips.h to EXTRA_DIST.
+ * Makefile: Rebuilt.
+
+ * ffi_mips.h: Created. Moved all common mips definitions here.
+
+Mon Oct 7 10:58:12 1996 Anthony Green
+
+ * ffi.h.in: The SGI assember is very picky about parens. Redefined
+ some macros to avoid problems.
+
+ * ffi.h.in: Added FFI_DEFAULT_ABI definitions. Also added
+ externs for pointer, and 64bit integral ffi_types.
+
+Fri Oct 4 09:51:37 1996 Anthony Green
+
+ * ffi.h.in: Added FFI_ABI member to ffi_cif and changed
+ function prototypes accordingly.
+ Added #define @TARGET@. Now programs including ffi.h don't
+ have to specify this themselves.
+
+Thu Oct 3 15:36:44 1996 Anthony Green
+
+ * ffi.h.in: Changed ffi_prep_cif's values from void* to void**
+
+ * Makefile.am (EXTRA_DIST): Added EXTRA_DIST for "make dist"
+ to work.
+ * Makefile.in: Regenerated.
+
+Wed Oct 2 10:16:59 1996 Anthony Green
+
+ * Makefile.am: Created
+ * Makefile.in: Generated
+
+ * ffi_common.h: Added rcsid comment
+
+Tue Oct 1 17:13:51 1996 Anthony Green
+
+ * ffi.h.in, ffi_common.h: Created
+
+--- libffi/src ------------------------------------------------------------
+
+Mon Oct 5 02:17:50 1998 Anthony Green
+
+ * arm/ffi.c, arm/sysv.S: Created.
+
+ * Makefile.am: Added arm files.
+ * Makefile.in: Rebuilt.
+
+Mon Oct 5 01:41:38 1998 Anthony Green
+
+ * Makefile.am (libffi_la_LDFLAGS): Incremented revision.
+
+Sun Oct 4 16:27:17 1998 Anthony Green
+
+ * alpha/osf.S (ffi_call_osf): Patch for DU assembler.
+
+ * ffitest.c (main): long long and long double return values work
+ for x86.
+
+Fri Apr 17 11:50:58 1998 Anthony Green
+
+ * Makefile.in: Rebuilt.
+
+ * ffitest.c (main): Floating point tests not executed for systems
+ with broken lond double (SunOS 4 w/ GCC).
+
+ * types.c: Fixed x86 alignment info for long long types.
+
+Thu Apr 16 07:15:28 1998 Anthony Green
+
+ * ffitest.c: Added more notes about GCC bugs under Irix 6.
+
+Wed Apr 15 08:42:22 1998 Anthony Green
+
+ * ffitest.c (struct5): New test function.
+ (main): New test with struct5.
+
+Thu Mar 5 10:48:11 1998 Anthony Green
+
+ * prep_cif.c (initialize_aggregate): Fix assertion for
+ nested structures.
+
+Tue Feb 24 16:33:41 1998 Anthony Green
+
+ * prep_cif.c (ffi_prep_cif): Added long double support for sparc.
+
+Sun Feb 22 00:52:18 1998 Geoff Keating
+
+ * powerpc/asm.h: New file.
+ * powerpc/ffi.c: New file.
+ * powerpc/sysv.S: New file.
+ * Makefile.am: PowerPC port.
+ * ffitest.c (main): Allow all tests to run even in presence of gcc
+ bug on PowerPC.
+
+1998-02-17 Anthony Green
+
+ * mips/ffi.c: Fixed comment typo.
+
+ * x86/ffi.c (ffi_prep_cif_machdep), x86/sysv.S (retfloat):
+ Fixed x86 long double return handling.
+
+ * types.c: Fixed x86 long double alignment info.
+
+1998-02-14 Andreas Schwab
+
+ * types.c: Add m68k support.
+
+ * ffitest.c (floating): Add long double parameter.
+ (return_ll, ldblit): New functions to test long long and long
+ double return value.
+ (main): Fix type error in assignment of ts[1-4]_type.elements.
+ Add tests for long long and long double arguments and return
+ values.
+
+ * prep_cif.c (ffi_prep_cif) [M68K]: Don't allocate argument for
+ struct value pointer.
+
+ * m68k/ffi.c, m68k/sysv.S: New files.
+ * Makefile.am: Add bits for m68k port. Add kludge to work around
+ automake deficiency.
+ (test): Don't require "." in $PATH.
+ * Makefile.in: Rebuilt.
+
+Wed Feb 11 07:36:50 1998 Anthony Green
+
+ * Makefile.in: Rebuilt.
+
+Tue Feb 10 20:56:00 1998 Richard Henderson
+
+ * alpha/ffi.c, alpha/osf.S: New files.
+ * Makefile.am: Alpha port.
+
+Tue Nov 18 14:12:07 1997 Anthony Green
+
+ * mips/ffi.c (ffi_prep_cif_machdep): Initialize rstruct_flag
+ for n32.
+
+Tue Jun 3 17:18:20 1997 Anthony Green
+
+ * ffitest.c (main): Added hack to get structure tests working
+ correctly.
+
+Sat May 10 19:06:42 1997 Tom Tromey
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (EXTRA_DIST): Explicitly list all distributable
+ files in subdirs.
+ (VERSION, CC): Removed.
+
+Thu May 8 17:19:01 1997 Anthony Green
+
+ * Makefile.am: Many changes for new automake and libtool.
+ * Makefile.in: Rebuilt.
+
+Fri Nov 22 06:57:56 1996 Anthony Green
+
+ * ffitest.c (main): Fixed test case for non mips machines.
+
+Wed Nov 20 22:31:59 1996 Anthony Green
+
+ * types.c: Added ffi_type_void declaration.
+
+Tue Oct 29 13:07:19 1996 Anthony Green
+
+ * ffitest.c (main): Fixed character constants.
+ (main): Emit warning for structure test 3 failure on Sun.
+
+ * Makefile.am (VPATH): Fixed VPATH def'n so automake won't
+ strip it out.
+ Moved distdir hack from libffi to automake.
+ (ffitest): Added missing -c for $(COMPILE) (change in automake).
+ * Makefile.in: Rebuilt.
+
+Tue Oct 15 13:08:20 1996 Anthony Green
+
+ * Makefile.am: Added "make lint" production.
+ * Makefile.in: Rebuilt.
+
+ * prep_cif.c (STACK_ARG_SIZE): Improved STACK_ARG_SIZE macro.
+ Clean up based on LCLint output. Added funny /*@...@*/ comments to
+ annotate source.
+
+ * ffitest.c, debug.c: Cleaned up code.
+
+Mon Oct 14 12:26:56 1996 Anthony Green
+
+ * ffitest.c: Changes based on interface changes.
+
+ * prep_cif.c (ffi_prep_cif): Cleaned up interface based on
+ feedback from Jim Blandy.
+
+Fri Oct 11 15:53:18 1996 Anthony Green
+
+ * ffitest.c: Reordered tests while porting to sparc.
+ Made changes to handle lame structure passing for sparc.
+ Removed calls to fflush().
+
+ * prep_cif.c (ffi_prep_cif): Added special case for sparc
+ aggregate type arguments.
+
+Thu Oct 10 09:56:51 1996 Anthony Green
+
+ * ffitest.c (main): Added structure passing/returning tests.
+
+ * prep_cif.c (ffi_prep_cif): Perform proper initialization
+ of structure return types if needed.
+ (initialize_aggregate): Bug fix
+
+Wed Oct 9 16:04:20 1996 Anthony Green
+
+ * types.c: Added special definitions for x86 (double doesn't
+ need double word alignment).
+
+ * ffitest.c: Added many tests
+
+Tue Oct 8 09:19:22 1996 Anthony Green
+
+ * prep_cif.c (ffi_prep_cif): Fixed assertion.
+
+ * debug.c (ffi_assert): Must return a non void now.
+
+ * Makefile.am: Added test production.
+ * Makefile: Rebuilt.
+
+ * ffitest.c (main): Created.
+
+ * types.c: Created. Stripped common code out of */ffi.c.
+
+ * prep_cif.c: Added missing stdlib.h include.
+
+ * debug.c (ffi_type_test): Used "a" to eliminate compiler
+ warnings in non-debug builds. Included ffi_common.h.
+
+Mon Oct 7 15:36:42 1996 Anthony Green
+
+ * Makefile.am: Added a rule for .s -> .o
+ This is required by the SGI compiler.
+ * Makefile: Rebuilt.
+
+Fri Oct 4 09:51:08 1996 Anthony Green
+
+ * prep_cif.c (initialize_aggregate): Moved abi specification
+ to ffi_prep_cif().
+
+Thu Oct 3 15:37:37 1996 Anthony Green
+
+ * prep_cif.c (ffi_prep_cif): Changed values from void* to void**.
+ (initialize_aggregate): Fixed aggregate type initialization.
+
+ * Makefile.am (EXTRA_DIST): Added support code for "make dist".
+ * Makefile.in: Regenerated.
+
+Wed Oct 2 11:41:57 1996 Anthony Green
+
+ * debug.c, prep_cif: Created.
+
+ * Makefile.am: Added debug.o and prep_cif.o to OBJ.
+ * Makefile.in: Regenerated.
+
+ * Makefile.am (INCLUDES): Added missing -I../include
+ * Makefile.in: Regenerated.
+
+Tue Oct 1 17:11:51 1996 Anthony Green
+
+ * error.c, Makefile.am: Created.
+ * Makefile.in: Generated.
+
+--- libffi/src/x86 --------------------------------------------------------
+
+Sun Oct 4 16:27:17 1998 Anthony Green
+
+ * sysv.S (retlongdouble): Fixed long long return value support.
+ * ffi.c (ffi_prep_cif_machdep): Ditto.
+
+Wed May 13 04:30:33 1998 Anthony Green
+
+ * ffi.c (ffi_prep_cif_machdep): Fixed long double return value
+ support.
+
+Wed Apr 15 08:43:20 1998 Anthony Green
+
+ * ffi.c (ffi_prep_args): small struct support was missing.
+
+Thu May 8 16:53:58 1997 Anthony Green
+
+ * objects.mak: Removed.
+
+Mon Dec 2 15:12:58 1996 Tom Tromey
+
+ * sysv.S: Use .balign, for a.out Linux boxes.
+
+Tue Oct 15 13:06:50 1996 Anthony Green
+
+ * ffi.c: Clean up based on LCLint output.
+ Added funny /*@...@*/ comments to annotate source.
+
+Fri Oct 11 16:43:38 1996 Anthony Green
+
+ * ffi.c (ffi_call): Added assertion for bad ABIs.
+
+Wed Oct 9 13:57:27 1996 Anthony Green
+
+ * sysv.S (retdouble): Fixed double return problems.
+
+ * ffi.c (ffi_call): Corrected fn arg definition.
+ (ffi_prep_cif_machdep): Fixed double return problems
+
+Tue Oct 8 12:12:49 1996 Anthony Green
+
+ * ffi.c: Moved ffi_type definitions to types.c.
+ (ffi_prep_args): Fixed type promotion bug.
+
+Mon Oct 7 15:53:06 1996 Anthony Green
+
+ * ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
+
+Fri Oct 4 09:54:53 1996 Anthony Green
+
+ * ffi.c (ffi_call): Removed FFI_ABI arg, and swapped
+ remaining args.
+
+Wed Oct 2 10:07:05 1996 Anthony Green
+
+ * ffi.c, sysv.S, objects.mak: Created.
+ (ffi_prep_cif): cif->rvalue no longer initialized to NULL.
+ (ffi_prep_cif_machdep): Moved machine independent cif processing
+ to src/prep_cif.c. Introduced ffi_prep_cif_machdep().
+
+--- libffi/src/mips -------------------------------------------------------
+
+Tue Feb 17 17:18:07 1998 Anthony Green
+
+ * o32.S: Fixed typo in comment.
+
+ * ffi.c (ffi_prep_cif_machdep): Fixed argument processing.
+
+Thu May 8 16:53:58 1997 Anthony Green
+
+ * o32.s, n32.s: Wrappers for SGI tool support.
+
+ * objects.mak: Removed.
+
+Tue Oct 29 14:37:45 1996 Anthony Green
+
+ * ffi.c (ffi_prep_args): Changed int z to size_t z.
+
+Tue Oct 15 13:17:25 1996 Anthony Green
+
+ * n32.S: Fixed bad stack munging.
+
+ * ffi.c: Moved prototypes for ffi_call_?32() to here from
+ ffi_mips.h because extended_cif is not defined in ffi_mips.h.
+
+Mon Oct 14 12:42:02 1996 Anthony Green
+
+ * ffi.c: Interface changes based on feedback from Jim Blandy.
+
+Thu Oct 10 11:22:16 1996 Anthony Green
+
+ * n32.S, ffi.c: Lots of changes to support passing and
+ returning structures with the n32 calling convention.
+
+ * n32.S: Fixed fn pointer bug.
+
+ * ffi.c (ffi_prep_cif_machdep): Fix for o32 structure
+ return values.
+ (ffi_prep_args): Fixed n32 structure passing when structures
+ partially fit in registers.
+
+Wed Oct 9 13:49:25 1996 Anthony Green
+
+ * objects.mak: Added n32.o.
+
+ * n32.S: Created.
+
+ * ffi.c (ffi_prep_args): Added magic to support proper
+ n32 processing.
+
+Tue Oct 8 10:37:35 1996 Anthony Green
+
+ * ffi.c: Moved ffi_type definitions to types.c.
+ (ffi_prep_args): Fixed type promotion bug.
+
+ * o32.S: This code is only built for o32 compiles.
+ A lot of the #define cruft has moved to ffi_mips.h.
+
+ * ffi.c (ffi_prep_cif_machdep): Fixed arg flags. Second arg
+ is only processed if the first is either a float or double.
+
+Mon Oct 7 15:33:59 1996 Anthony Green
+
+ * o32.S: Modified to compile under each of o32, n32 and n64.
+
+ * ffi.c (FFI_*_TYPEDEF): Removed redundant ';'
+
+Fri Oct 4 09:53:25 1996 Anthony Green